initial commit
103
app/js/script.js
Normal file
@@ -0,0 +1,103 @@
|
||||
$( document ).ready(function() {
|
||||
// Get the theme URL
|
||||
var url;
|
||||
if ($('meta[name=pluginURL]').attr("content")) {
|
||||
url = $('meta[name=pluginURL]').attr("content");
|
||||
} else {
|
||||
// If for some reason we can't find the URL attribute
|
||||
url = "/user/plugins/air66Theme";
|
||||
}
|
||||
|
||||
// Detect login page
|
||||
if ($("body").hasClass("login")) {
|
||||
|
||||
$("#login").prepend('<img class="air66-logo" src="' + url + '/dist/images/a66-logo.svg" alt="Air 66 Design Ltd Logo">');
|
||||
}
|
||||
|
||||
// Remove the YOURLS header
|
||||
$("header[role=banner]").hide();
|
||||
$("header[role=banner]").remove();
|
||||
|
||||
// remove help link in nav
|
||||
$('#admin_menu_help_link').remove();
|
||||
|
||||
$('#admin_menu').append('<li class="admin_menu_toplevel"><a href="https://air66design.com" target="_blank">Contact Air 66 Design</a></li>');
|
||||
|
||||
// Add New A66 header
|
||||
$("body").prepend($('<header class="site-header">').load(url + '/dist/html/header.php', function() {
|
||||
// run add header content function
|
||||
a66_add_header_content();
|
||||
|
||||
$('body').prepend('<div class="nav-overlay"></div>');
|
||||
// add air 66 design link to menu
|
||||
|
||||
// Nav icon toggle
|
||||
$('#menu-icon').click(function(){
|
||||
$(this).toggleClass('open');
|
||||
$('nav, .nav-overlay').toggleClass('nav-open');
|
||||
});
|
||||
|
||||
if ($("body").hasClass("index")) {
|
||||
|
||||
// Add content padding to suit new URL section
|
||||
//$("#wrap").css("padding-top", "200px");
|
||||
// Hide YOURLS new URL section
|
||||
$("#new_url").hide();
|
||||
// Grab the nonce id
|
||||
var nonce = $("#nonce-add").val();
|
||||
|
||||
// Remove the YOURLS new URL Section
|
||||
$("#new_url").remove();
|
||||
|
||||
$(".index").prepend($('<div class="form-wrap">').load(url + '/dist/html/form.php', function () {
|
||||
$("#nonce-add").val(nonce);
|
||||
}));
|
||||
} else {
|
||||
//$("#wrap").css("padding-top", "70px");
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
// Update favicon
|
||||
$('link[rel="shortcut icon"]').attr('href', url + "/dist/images/favicon.ico")
|
||||
|
||||
// wrap index table in table-responsive
|
||||
|
||||
$('#main_table').wrap("<div class='table-responsive'></div>");
|
||||
$( "#main_table" ).addClass( "table" );
|
||||
|
||||
// handle p tags
|
||||
|
||||
$("p").each(function (index) {
|
||||
if (/Display/.test($(this).text()) || /Overall/.test($(this).text())) {
|
||||
// Move info on index page to the bottom
|
||||
$("main").append("<p>" + $(this).html() + "</p>");
|
||||
$(this).remove();
|
||||
} else if (/Powered by/.test($(this).text())) {
|
||||
// Update footer
|
||||
var content = $(this).html();
|
||||
var i = 77
|
||||
var updated_content = "Running on" + content.slice(13, i) + '& <a href="https://air66design.com/" title="Air 66 Design Ltd" target="_blank">Air 66 Design Ltd</a>' + content.slice(i-1)
|
||||
$(this).html(updated_content);
|
||||
}
|
||||
});
|
||||
|
||||
// wrap div around data tabs so can scroll on small screens
|
||||
|
||||
$('#stat_tab_stats, #stat_tab_location, #stat_tab_sources, #stat_tab_share').wrapAll('<div class="tab-scroll"></div>');
|
||||
|
||||
// remove help link in nav
|
||||
$('#admin_menu_help_link').remove();
|
||||
|
||||
|
||||
// add header function
|
||||
|
||||
function a66_add_header_content() {
|
||||
$('.site-header').append('<div class="air66-logo-wrap"><a class="air66-logo-link" href="https://air66design.com" target="_blank"><img class="air66-logo" src="' + url + '/dist/images/a66-logo-wh.svg" alt="Air 66 Design Ltd Logo"></a></div>');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});// end document.ready
|
||||
45
app/scss/_bootstrap.scss
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap v4.3.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
@import "../../node_modules/bootstrap/scss/functions";
|
||||
@import "../../node_modules/bootstrap/scss/variables";
|
||||
@import "../../node_modules/bootstrap/scss/mixins";
|
||||
@import "../../node_modules/bootstrap/scss/root";
|
||||
@import "../../node_modules/bootstrap/scss/reboot";
|
||||
//@import "../../node_modules/bootstrap/scss/type";
|
||||
@import "../../node_modules/bootstrap/scss/images";
|
||||
@import "../../node_modules/bootstrap/scss/code";
|
||||
@import "../../node_modules/bootstrap/scss/grid";
|
||||
@import "../../node_modules/bootstrap/scss/tables";
|
||||
@import "../../node_modules/bootstrap/scss/forms";
|
||||
@import "../../node_modules/bootstrap/scss/buttons";
|
||||
@import "../../node_modules/bootstrap/scss/transitions";
|
||||
@import "../../node_modules/bootstrap/scss/dropdown";
|
||||
@import "../../node_modules/bootstrap/scss/button-group";
|
||||
@import "../../node_modules/bootstrap/scss/input-group";
|
||||
@import "../../node_modules/bootstrap/scss/custom-forms";
|
||||
@import "../../node_modules/bootstrap/scss/nav";
|
||||
@import "../../node_modules/bootstrap/scss/navbar";
|
||||
@import "../../node_modules/bootstrap/scss/card";
|
||||
@import "../../node_modules/bootstrap/scss/breadcrumb";
|
||||
@import "../../node_modules/bootstrap/scss/pagination";
|
||||
@import "../../node_modules/bootstrap/scss/badge";
|
||||
@import "../../node_modules/bootstrap/scss/jumbotron";
|
||||
@import "../../node_modules/bootstrap/scss/alert";
|
||||
@import "../../node_modules/bootstrap/scss/progress";
|
||||
@import "../../node_modules/bootstrap/scss/media";
|
||||
@import "../../node_modules/bootstrap/scss/list-group";
|
||||
@import "../../node_modules/bootstrap/scss/close";
|
||||
@import "../../node_modules/bootstrap/scss/toasts";
|
||||
@import "../../node_modules/bootstrap/scss/modal";
|
||||
@import "../../node_modules/bootstrap/scss/tooltip";
|
||||
@import "../../node_modules/bootstrap/scss/popover";
|
||||
@import "../../node_modules/bootstrap/scss/carousel";
|
||||
@import "../../node_modules/bootstrap/scss/spinners";
|
||||
@import "../../node_modules/bootstrap/scss/utilities";
|
||||
@import "../../node_modules/bootstrap/scss/print";
|
||||
|
||||
8039
app/scss/style.css
Normal file
768
app/scss/style.scss
Normal file
@@ -0,0 +1,768 @@
|
||||
@import "bootstrap";
|
||||
|
||||
@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800');
|
||||
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');
|
||||
|
||||
// vars
|
||||
|
||||
$primary: #272b35;
|
||||
$white: #ffffff;
|
||||
$secondary: #2cd1dd;
|
||||
$tertiary: #efefef;
|
||||
$text: #929292;
|
||||
$footer: darken( $primary, 10% );
|
||||
|
||||
// Set up our basic colour scheme
|
||||
$lightest: #e8e8e8;
|
||||
$light: white;
|
||||
$default: #f7f7f7;
|
||||
$darker: #efefef;
|
||||
$darkest: #161616;
|
||||
|
||||
// Accents
|
||||
$accent: $secondary;
|
||||
// $accent_secondary: black;
|
||||
|
||||
// Text colours
|
||||
$title: $primary;
|
||||
|
||||
/* GENRAL STYLES */
|
||||
|
||||
body {
|
||||
background-color: $tertiary;
|
||||
color: $text;
|
||||
//font-size: 1rem !important;
|
||||
padding: 0;
|
||||
|
||||
* {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
//
|
||||
// Notification Bar
|
||||
//
|
||||
.jquery-notify-bar {
|
||||
color: #fff;
|
||||
text-shadow: none;
|
||||
border: none;
|
||||
opacity: 1;
|
||||
box-shadow: none;
|
||||
font-size: 1rem;
|
||||
font-weight: normal;
|
||||
position: static;
|
||||
margin-top: 126px;
|
||||
//margin-bottom: -80px;
|
||||
padding: 10px;
|
||||
|
||||
a, a:link, a:active, a:visited {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.jquery-notify-bar.error,
|
||||
.jquery-notify-bar.fail {
|
||||
background-color: #FF9800;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.jquery-notify-bar.success {
|
||||
color: white;
|
||||
background-color: #4CAF50;
|
||||
}
|
||||
|
||||
input {
|
||||
outline: none !important;
|
||||
padding: 10px;
|
||||
background: $white !important;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
input.text {
|
||||
width: 270px !important;
|
||||
border: 1px solid transparent !important;
|
||||
}
|
||||
|
||||
input.button {
|
||||
font-weight: normal;
|
||||
color: $white;
|
||||
padding: 10px 25px;
|
||||
margin-top: 15px !important;
|
||||
background: $secondary !important;
|
||||
border: none;
|
||||
text-transform: uppercase;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
input.button:hover {
|
||||
background: darken($secondary, 10%) !important;
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
select {
|
||||
width: 150px;
|
||||
padding: 5px 35px 5px 10px;
|
||||
// font-size: 0.9em;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
height: 26px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
color: $text;
|
||||
background: url(data:image/png;base64,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) 96% / 15% no-repeat $white;
|
||||
margin: 5px 10px;
|
||||
transition: 0.4s all;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
select:hover {
|
||||
background: url(data:image/png;base64,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) 96% / 15% no-repeat $white;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Login page
|
||||
//
|
||||
.login {
|
||||
|
||||
.site-header {
|
||||
display: none;
|
||||
}
|
||||
#wrap {
|
||||
margin: auto;
|
||||
min-height: calc(100vh - 100px);
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: 1em;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 150px;
|
||||
margin: 30px auto;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
input.text {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
input.button {
|
||||
font-weight: normal;
|
||||
padding: 10px 25px;
|
||||
margin-top: 15px !important;
|
||||
background: $secondary !important;
|
||||
}
|
||||
|
||||
input.button:hover {
|
||||
background: darken($secondary, 10%) !important;
|
||||
}
|
||||
|
||||
.error {
|
||||
padding: 10px;
|
||||
background: $primary;
|
||||
color: white;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
/* HEADER */
|
||||
|
||||
.site-header {
|
||||
background: $primary;
|
||||
z-index: 9;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
display: grid;
|
||||
z-index: 11;
|
||||
grid-template-columns: auto 1fr;
|
||||
align-items: center;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
height: 60px;
|
||||
.air66-logo-wrap {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.air66-logo {
|
||||
width: 100px;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.form-wrap {
|
||||
position: fixed;
|
||||
top: 60px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 8;
|
||||
background: lighten($primary, 10%);
|
||||
padding: 5px 20px;
|
||||
|
||||
#new_url_form {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
label {
|
||||
margin: 5px 10px 5px 0;
|
||||
color: white;
|
||||
}
|
||||
|
||||
input {
|
||||
vertical-align: middle;
|
||||
margin: 5px 10px 5px 0;
|
||||
border-radius: 0;
|
||||
//width: 250px;
|
||||
}
|
||||
|
||||
#add-button {
|
||||
padding: 10px 20px;
|
||||
background-color: $secondary !important;
|
||||
text-transform: uppercase;
|
||||
outline: none !important;
|
||||
border: none;
|
||||
color: white;
|
||||
border-radius: 0;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover, &:active, &:focus {
|
||||
background-color: darken($secondary, 10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* MENU ICON */
|
||||
#menu-icon {
|
||||
width: 34px; // 60px
|
||||
height: 27px; // 40px
|
||||
position: relative;
|
||||
//margin: 50px auto;
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
-webkit-transition: .5s ease-in-out;
|
||||
-moz-transition: .5s ease-in-out;
|
||||
-o-transition: .5s ease-in-out;
|
||||
transition: .5s ease-in-out;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#menu-icon span {
|
||||
display: block;
|
||||
position: absolute;
|
||||
height: 5px;
|
||||
width: 100%;
|
||||
background: $white;
|
||||
border-radius: 9px;
|
||||
opacity: 1;
|
||||
left: 0;
|
||||
-webkit-transform: rotate(0deg);
|
||||
-moz-transform: rotate(0deg);
|
||||
-o-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
-webkit-transition: .25s ease-in-out;
|
||||
-moz-transition: .25s ease-in-out;
|
||||
-o-transition: .25s ease-in-out;
|
||||
transition: .25s ease-in-out;
|
||||
}
|
||||
|
||||
#menu-icon span:nth-child(1) {
|
||||
top: 0px;
|
||||
}
|
||||
|
||||
#menu-icon span:nth-child(2),#menu-icon span:nth-child(3) {
|
||||
top: 11px;
|
||||
}
|
||||
|
||||
#menu-icon span:nth-child(4) {
|
||||
top: 22px;
|
||||
}
|
||||
|
||||
#menu-icon.open span:nth-child(1) {
|
||||
top: 18px;
|
||||
width: 0%;
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
#menu-icon.open span:nth-child(2) {
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
#menu-icon.open span:nth-child(3) {
|
||||
-webkit-transform: rotate(-45deg);
|
||||
-moz-transform: rotate(-45deg);
|
||||
-o-transform: rotate(-45deg);
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
|
||||
#menu-icon.open span:nth-child(4) {
|
||||
top: 18px;
|
||||
width: 0%;
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
|
||||
/* PAGE STYLES */
|
||||
|
||||
header[role=banner] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#wrap {
|
||||
background: none;
|
||||
padding-top: 70px;
|
||||
//margin-left: 270px;
|
||||
border: none;
|
||||
max-width: 100%;
|
||||
min-height: calc(100vh - 100px);
|
||||
}
|
||||
|
||||
.index #wrap {
|
||||
padding-top: 126px;
|
||||
}
|
||||
|
||||
#new_url {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.notice {
|
||||
width: calc(100% - 22px);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-radius: 0;
|
||||
background: $accent;
|
||||
border: 1px solid $accent;
|
||||
padding: 10px;
|
||||
|
||||
p {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
#shareboxes {
|
||||
margin-top: -10px;
|
||||
}
|
||||
|
||||
#sharebox {
|
||||
width: auto;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
#copybox {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
div.share {
|
||||
background: $default;
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
padding: 0px 20px 10px;
|
||||
margin-top: 10px;
|
||||
min-height: 170px;
|
||||
height: auto;
|
||||
|
||||
input {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
textarea {
|
||||
background: $light;
|
||||
color: $text;
|
||||
border: none;
|
||||
padding: 3px;
|
||||
outline: none;
|
||||
margin: 1px !important;
|
||||
box-sizing: border-box;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
#charcount {
|
||||
padding-left: 5px;
|
||||
color: $text;
|
||||
}
|
||||
|
||||
#share_links a {
|
||||
color: $text;
|
||||
}
|
||||
}
|
||||
|
||||
.tab-scroll {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
overflow-x: auto;
|
||||
width: 100%;
|
||||
background: $white;
|
||||
}
|
||||
|
||||
#stat_tab_stats, #stat_tab_location, #stat_tab_sources, #stat_tab_share {
|
||||
flex: 0 0 auto;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* NAVIGATION */
|
||||
|
||||
|
||||
nav {
|
||||
background: $primary;
|
||||
color: $white;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transform: translateX(-100%);
|
||||
padding: 90px 30px;
|
||||
width: 280px;
|
||||
max-width: 85%;
|
||||
z-index: 10;
|
||||
transition: all 0.4s ease-in-out;
|
||||
|
||||
&.nav-open {
|
||||
transform: translateX(0%);
|
||||
box-shadow: 5px 0px 12px 0px rgba($primary, 0.6);
|
||||
}
|
||||
|
||||
a, a:link, a:active, a:visited {
|
||||
color: $white;
|
||||
text-decoration: none;
|
||||
font-size: 1rem;
|
||||
transition: 0.4s all ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
nav a:active:hover, nav a:hover, nav a:link:hover, nav a:visited:hover {
|
||||
color: $secondary !important;
|
||||
}
|
||||
|
||||
ul#admin_menu li {
|
||||
color: $white;
|
||||
font-size: 1rem;
|
||||
padding: 1px 0;
|
||||
}
|
||||
|
||||
ul#admin_menu li:hover {
|
||||
list-style-type: none;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
.nav-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba($primary, 0.4);
|
||||
z-index: 9;
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
transition: all 0.3s ease-in-out;
|
||||
|
||||
&.nav-open {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Information
|
||||
//
|
||||
.infos {
|
||||
#tabs {
|
||||
//min-width: 580px;
|
||||
max-width: 100%;
|
||||
|
||||
.tab {
|
||||
background: $light !important;
|
||||
}
|
||||
|
||||
.wrap_unfloat {
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
|
||||
ul#headers {
|
||||
border: none;
|
||||
padding: 0px;
|
||||
display: flex !important;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
li {
|
||||
color: $text;
|
||||
}
|
||||
|
||||
#historical_clicks li:hover {
|
||||
background: #5f5f5f !important;
|
||||
}
|
||||
|
||||
ul#headers li a,
|
||||
#stats_lines li a {
|
||||
outline: none;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
background: $light;
|
||||
color: $text;
|
||||
padding: 10px 15px 7px 25px;
|
||||
display: inline-block;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
|
||||
&:hover {
|
||||
background: darken($default, 10%);
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 400;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
&.selected {
|
||||
background: $lightest;
|
||||
border-bottom: 2px solid $accent;
|
||||
|
||||
&:hover {
|
||||
background: darken($default, 15%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#stats_lines li a {
|
||||
padding: 7px 15px;
|
||||
}
|
||||
|
||||
ul.toggle_display {
|
||||
border: none;
|
||||
}
|
||||
|
||||
svg {
|
||||
ellipse {
|
||||
fill: $accent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TABLE
|
||||
|
||||
table.tblSorter {
|
||||
background-color: $default;
|
||||
color: $text;
|
||||
|
||||
a {
|
||||
color: $text;
|
||||
}
|
||||
|
||||
small a {
|
||||
color: darken($white, 50%)
|
||||
}
|
||||
|
||||
thead tr .tablesorter-header {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
tfoot tr {
|
||||
background-color: $default;
|
||||
}
|
||||
|
||||
thead tr th,
|
||||
tfoot tr th,
|
||||
th.header {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
/* font-size: 8pt; */
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
thead tr .tablesorter-headerAsc,
|
||||
thead tr .tablesorter-headerDesc {
|
||||
background-color: $lightest !important;
|
||||
}
|
||||
|
||||
tbody td {
|
||||
color: $text;
|
||||
padding: 5px;
|
||||
background-color: $light;
|
||||
vertical-align: middle;
|
||||
transition: 0.4s all;
|
||||
}
|
||||
|
||||
tbody tr:hover td {
|
||||
background-color: $lightest !important;
|
||||
}
|
||||
|
||||
tbody tr.normal-row td {
|
||||
background: $light;
|
||||
}
|
||||
|
||||
.keyword {
|
||||
border-left: 8px solid $accent;
|
||||
}
|
||||
|
||||
input.text {
|
||||
padding: 5px;
|
||||
margin: 8px 5px !important;
|
||||
}
|
||||
|
||||
.navigation .nav_link a {
|
||||
background: $light;
|
||||
border: none;
|
||||
|
||||
&:hover {
|
||||
background: $lightest;
|
||||
}
|
||||
}
|
||||
|
||||
tr.edit-row td {
|
||||
background: $default !important;
|
||||
}
|
||||
|
||||
td.actions .button {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
// Icons
|
||||
$icons-list: stats, share, edit, delete;
|
||||
@each $icon in $icons-list {
|
||||
@if $icon == delete {
|
||||
td.actions .button_#{$icon} {
|
||||
background: red url(images/#{$icon}.png) 0px center no-repeat;
|
||||
background-size: 23px;
|
||||
background-position: center;
|
||||
border: none;
|
||||
padding: 3px;
|
||||
border-radius: 2px;
|
||||
visibility: visible;
|
||||
|
||||
&:hover {
|
||||
background: darken(red, 10%) url(images/#{$icon}.png) 0px center no-repeat;
|
||||
background-size: 23px;
|
||||
background-position: center;
|
||||
}
|
||||
}
|
||||
} @else {
|
||||
td.actions .button_#{$icon} {
|
||||
background: $secondary url(images/#{$icon}.png) 0px center no-repeat;
|
||||
background-size: 23px;
|
||||
background-position: center;
|
||||
border: none;
|
||||
padding: 3px;
|
||||
border-radius: 2px;
|
||||
visibility: visible;
|
||||
|
||||
&:hover {
|
||||
background: darken($secondary, 10%) url(images/#{$icon}.png) 0px center no-repeat;
|
||||
background-size: 23px;
|
||||
background-position: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// calander
|
||||
|
||||
.close {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Footer
|
||||
//
|
||||
|
||||
#footer {
|
||||
bottom: 0;
|
||||
//width: 230px;
|
||||
color: #828282;
|
||||
font-size: 0.8rem;
|
||||
padding: 10px;
|
||||
text-align: right;
|
||||
|
||||
p {
|
||||
background: none;
|
||||
border: none;
|
||||
max-width: 100%;
|
||||
font-size: 1em;
|
||||
|
||||
a {
|
||||
background: none;
|
||||
padding-left: 0;
|
||||
color: $text;
|
||||
|
||||
&:hover {
|
||||
color: #828282;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* OTHER TIDY UPS */
|
||||
|
||||
// hide help page
|
||||
|
||||
#admin_menu_help_link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* MEDIA QUERIES */
|
||||
|
||||
@media (max-width: 800px) {
|
||||
|
||||
.index #wrap {
|
||||
padding-top: 70px;
|
||||
}
|
||||
|
||||
.form-wrap {
|
||||
|
||||
position: relative;
|
||||
|
||||
#new_url_form input {
|
||||
margin: 10px 0;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
#new_url_form {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
10
dist/html/form.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
<form id="new_url_form" action="javascript:add_link();" method="get">
|
||||
<label>Link:</label>
|
||||
<input type="text" id="add-url" name="url" value="" class="text" placeholder="https://">
|
||||
<label class="short">Short URL:</label>
|
||||
<input type="text" id="add-keyword" name="keyword" value="" class="text" placeholder="Optional">
|
||||
<input type="hidden" id="nonce-add" name="nonce-add" value="">
|
||||
<input type="button" id="add-button" name="add-button" value="Shorten" onclick="add_link();">
|
||||
</form>
|
||||
|
||||
10
dist/html/header.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<div>
|
||||
<div id="menu-icon">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
62
dist/images/a66-logo-wh.svg
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 2040 1014.54" style="enable-background:new 0 0 2040 1014.54;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:#2CD1DD;}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M1284.71,331.19c-37.67-37.67-99.29-55.98-188.38-55.98H957.9c-40.55,0-76.26,27.34-86.83,66.49
|
||||
L764.09,737.94c-5.65,20.93-1.33,42.82,11.85,60.03s33.18,27.09,54.87,27.09c31.2,0,58.64-21.04,66.74-51.17l32.09-119.33h77.85
|
||||
l112.49,182.26c18.7,29.55,39.54,43.34,65.52,43.34c27.15,0,53.24-15.91,66.45-40.54c10.81-20.14,10.29-41.82-1.43-59.47
|
||||
l-92.9-143.64l8.56-2.41c59.4-16.73,88.37-39.95,108.87-60.45c33.49-32.75,51.16-78.13,51.16-131.28
|
||||
C1326.21,396.8,1311.86,358.35,1284.71,331.19z M1157.26,512.95c-20.94,20.95-56.86,32.48-101.14,32.48h-97.86l40.56-149.04h90.26
|
||||
c33.82,0,58.38,7.41,73,22.02c11.51,10.62,17.2,24.3,17.2,41.64C1179.29,480.55,1171.87,498.34,1157.26,512.95z"/>
|
||||
<path class="st0" d="M550.94,739.94l-58.85-380.63c-7.89-51.06-51.13-88.12-102.8-88.12c-34.17,0-66.16,16.79-85.58,44.9
|
||||
L20.32,726.34c-13.55,19.61-15.02,43.92-3.95,65.02c11.07,21.1,31.91,33.71,55.74,33.71c21.1,0,40.68-10.48,52.38-28.03
|
||||
l48.87-73.3h226.39l5.04,37.37c4.92,36.47,36.38,63.97,73.18,63.97c21.58,0,42.01-9.4,56.06-25.78
|
||||
C548.07,782.9,554.24,761.27,550.94,739.94z M247.55,615.41l121.71-185.82l24.16,185.82H247.55z"/>
|
||||
<path class="st0" d="M682.49,326.15L571.76,738.44c-5.59,20.83-1.28,42.58,11.85,59.7c13.12,17.11,33.02,26.93,54.58,26.93
|
||||
c31.06,0,58.37-20.95,66.43-50.94l110.73-412.29c5.59-20.83,1.27-42.58-11.85-59.7c-13.12-17.11-33.02-26.93-54.58-26.93h0
|
||||
C717.86,275.21,690.54,296.16,682.49,326.15z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M1377.35,356.07c11.02,1.92,22.17-0.56,31.33-6.99c9.17-6.44,15.28-16.07,17.2-27.11
|
||||
c7.12-40.8,42.45-70.41,83.99-70.41c47.01,0,85.26,38.25,85.26,85.27s-38.25,85.27-85.26,85.27h-136.4
|
||||
c0.56,6.63,0.84,13.39,0.84,20.28c0,22.42-2.77,43.7-8.11,63.6h143.66c93.27,0,169.14-75.88,169.14-169.14
|
||||
s-75.89-169.14-169.16-169.14c-12.6,0-25.24,1.44-37.69,4.29c37-45.61,88.34-72.57,139.06-72.57c21.89,0,39.7-17.81,39.7-39.7
|
||||
s-17.81-39.7-39.7-39.7c-142.99,0-268.41,135.11-268.41,289.13c0,0.39,0.04,0.77,0.15,0.8
|
||||
C1340.39,331.98,1355.5,352.25,1377.35,356.07z"/>
|
||||
<path class="st1" d="M1850.84,287.82c-10.14,0-20.47,1-30.83,2.98c36.45-40.09,83.6-62.88,130.78-62.88
|
||||
c21.9,0,39.7-17.81,39.7-39.7s-17.81-39.7-39.7-39.7c-142.99,0-268.42,135.11-268.42,289.13c0,3.71,0.64,7.57,1.92,11.61
|
||||
c4.21,16.52,17.84,28.74,34.7,31.15c11.13,1.58,22.16-1.23,31.11-7.97c8.93-6.72,14.73-16.54,16.32-27.64
|
||||
c5.94-41.67,42.23-73.09,84.42-73.09c47.03,0,85.28,38.25,85.28,85.27s-38.25,85.27-85.28,85.27h-497.99
|
||||
c-9.94,20.75-23.19,39.45-39.69,55.58c-9.18,9.18-19.84,18.82-33.33,28.29h571.01c93.27,0,169.16-75.88,169.16-169.14
|
||||
S1944.11,287.82,1850.84,287.82z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M319.92,877.16h28.28c22.79,0,38.53,15.64,38.53,36.04v0.21c0,20.41-15.74,36.25-38.53,36.25h-28.28V877.16z
|
||||
M335.87,891.56v43.71h12.33c13.05,0,21.85-8.8,21.85-21.65v-0.21c0-12.84-8.8-21.85-21.85-21.85H335.87z"/>
|
||||
<path class="st1" d="M473.42,877.16h54.69v14.19h-38.84v14.71h34.18v14.19h-34.18v15.23h39.36v14.19h-55.2V877.16z"/>
|
||||
<path class="st1" d="M610.35,939.1l9.42-11.29c6.53,5.39,13.36,8.8,21.65,8.8c6.52,0,10.46-2.59,10.46-6.83v-0.21
|
||||
c0-4.04-2.48-6.11-14.6-9.22c-14.61-3.73-24.03-7.77-24.03-22.17v-0.21c0-13.15,10.56-21.85,25.38-21.85
|
||||
c10.56,0,19.58,3.31,26.93,9.22l-8.29,12.01c-6.42-4.45-12.74-7.15-18.85-7.15c-6.11,0-9.32,2.8-9.32,6.32v0.21
|
||||
c0,4.76,3.11,6.32,15.64,9.53c14.71,3.83,22.99,9.11,22.99,21.75v0.21c0,14.4-10.98,22.48-26.62,22.48
|
||||
C630.13,950.7,619.05,946.87,610.35,939.1z"/>
|
||||
<path class="st1" d="M754.84,877.16h15.95v72.5h-15.95V877.16z"/>
|
||||
<path class="st1" d="M858.21,913.62v-0.21c0-20.61,16.05-37.49,38.01-37.49c13.05,0,20.92,3.52,28.48,9.94l-10.05,12.12
|
||||
c-5.59-4.66-10.56-7.35-18.96-7.35c-11.6,0-20.82,10.25-20.82,22.58v0.21c0,13.26,9.11,22.99,21.96,22.99
|
||||
c5.8,0,10.98-1.45,15.02-4.35V921.7h-16.05v-13.78h31.48v31.49c-7.45,6.32-17.71,11.5-30.97,11.5
|
||||
C873.75,950.9,858.21,935.06,858.21,913.62z"/>
|
||||
<path class="st1" d="M1015.13,877.16h14.71l33.97,44.64v-44.64h15.74v72.5h-13.57l-35.11-46.09v46.09h-15.75V877.16z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M1569.39,656.24h-344.37l54.25,83.88h290.12c47.01,0,85.27,38.27,85.27,85.3c0,47-38.25,85.25-85.27,85.25
|
||||
c-41.67,0-77.02-29.73-84.04-70.7c-3.9-22.78-25.59-38.18-48.41-34.26c-11.05,1.89-20.69,7.97-27.16,17.11
|
||||
c-6.47,9.15-8.99,20.27-7.09,31.32c13.97,81.36,84.08,140.41,166.7,140.41c93.27,0,169.14-75.87,169.14-169.13
|
||||
C1738.53,732.13,1662.65,656.24,1569.39,656.24z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
57
dist/images/a66-logo.svg
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 2040 1014.5" style="enable-background:new 0 0 2040 1014.5;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#272B35;}
|
||||
.st1{fill:#2CD1DD;}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M1284.7,331.2c-37.7-37.7-99.3-56-188.4-56H957.9c-40.6,0-76.3,27.3-86.8,66.5l-107,396.2
|
||||
c-5.7,20.9-1.3,42.8,11.9,60s33.2,27.1,54.9,27.1c31.2,0,58.6-21,66.7-51.2l32.1-119.3h77.8L1120,836.8
|
||||
c18.7,29.5,39.5,43.3,65.5,43.3c27.2,0,53.2-15.9,66.4-40.5c10.8-20.1,10.3-41.8-1.4-59.5l-92.9-143.6l8.6-2.4
|
||||
c59.4-16.7,88.4-39.9,108.9-60.4c33.5-32.7,51.2-78.1,51.2-131.3C1326.2,396.8,1311.9,358.4,1284.7,331.2z M1157.3,513
|
||||
c-20.9,20.9-56.9,32.5-101.1,32.5h-97.9l40.6-149h90.3c33.8,0,58.4,7.4,73,22c11.5,10.6,17.2,24.3,17.2,41.6
|
||||
C1179.3,480.5,1171.9,498.3,1157.3,513z"/>
|
||||
<path class="st0" d="M550.9,739.9l-58.9-380.6c-7.9-51.1-51.1-88.1-102.8-88.1c-34.2,0-66.2,16.8-85.6,44.9L20.3,726.3
|
||||
c-13.5,19.6-15,43.9-4,65c11.1,21.1,31.9,33.7,55.7,33.7c21.1,0,40.7-10.5,52.4-28l48.9-73.3h226.4l5,37.4
|
||||
c4.9,36.5,36.4,64,73.2,64c21.6,0,42-9.4,56.1-25.8C548.1,782.9,554.2,761.3,550.9,739.9z M247.5,615.4l121.7-185.8l24.2,185.8
|
||||
H247.5z"/>
|
||||
<path class="st0" d="M682.5,326.2L571.8,738.4c-5.6,20.8-1.3,42.6,11.8,59.7c13.1,17.1,33,26.9,54.6,26.9
|
||||
c31.1,0,58.4-20.9,66.4-50.9l110.7-412.3c5.6-20.8,1.3-42.6-11.8-59.7c-13.1-17.1-33-26.9-54.6-26.9h0
|
||||
C717.9,275.2,690.5,296.2,682.5,326.2z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M1377.4,356.1c11,1.9,22.2-0.6,31.3-7c9.2-6.4,15.3-16.1,17.2-27.1c7.1-40.8,42.4-70.4,84-70.4
|
||||
c47,0,85.3,38.3,85.3,85.3s-38.2,85.3-85.3,85.3h-136.4c0.6,6.6,0.8,13.4,0.8,20.3c0,22.4-2.8,43.7-8.1,63.6h143.7
|
||||
c93.3,0,169.1-75.9,169.1-169.1s-75.9-169.1-169.2-169.1c-12.6,0-25.2,1.4-37.7,4.3c37-45.6,88.3-72.6,139.1-72.6
|
||||
c21.9,0,39.7-17.8,39.7-39.7S1633.1,20,1611.2,20c-143,0-268.4,135.1-268.4,289.1c0,0.4,0,0.8,0.1,0.8
|
||||
C1340.4,332,1355.5,352.3,1377.4,356.1z"/>
|
||||
<path class="st1" d="M1850.8,287.8c-10.1,0-20.5,1-30.8,3c36.4-40.1,83.6-62.9,130.8-62.9c21.9,0,39.7-17.8,39.7-39.7
|
||||
s-17.8-39.7-39.7-39.7c-143,0-268.4,135.1-268.4,289.1c0,3.7,0.6,7.6,1.9,11.6c4.2,16.5,17.8,28.7,34.7,31.2
|
||||
c11.1,1.6,22.2-1.2,31.1-8c8.9-6.7,14.7-16.5,16.3-27.6c5.9-41.7,42.2-73.1,84.4-73.1c47,0,85.3,38.3,85.3,85.3
|
||||
s-38.3,85.3-85.3,85.3h-498c-9.9,20.8-23.2,39.4-39.7,55.6c-9.2,9.2-19.8,18.8-33.3,28.3h571c93.3,0,169.2-75.9,169.2-169.1
|
||||
S1944.1,287.8,1850.8,287.8z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M319.9,877.2h28.3c22.8,0,38.5,15.6,38.5,36v0.2c0,20.4-15.7,36.3-38.5,36.3h-28.3V877.2z M335.9,891.6v43.7
|
||||
h12.3c13,0,21.9-8.8,21.9-21.6v-0.2c0-12.8-8.8-21.9-21.9-21.9H335.9z"/>
|
||||
<path class="st1" d="M473.4,877.2h54.7v14.2h-38.8v14.7h34.2v14.2h-34.2v15.2h39.4v14.2h-55.2V877.2z"/>
|
||||
<path class="st1" d="M610.4,939.1l9.4-11.3c6.5,5.4,13.4,8.8,21.6,8.8c6.5,0,10.5-2.6,10.5-6.8v-0.2c0-4-2.5-6.1-14.6-9.2
|
||||
c-14.6-3.7-24-7.8-24-22.2V898c0-13.2,10.6-21.9,25.4-21.9c10.6,0,19.6,3.3,26.9,9.2l-8.3,12c-6.4-4.5-12.7-7.1-18.8-7.1
|
||||
c-6.1,0-9.3,2.8-9.3,6.3v0.2c0,4.8,3.1,6.3,15.6,9.5c14.7,3.8,23,9.1,23,21.8v0.2c0,14.4-11,22.5-26.6,22.5
|
||||
C630.1,950.7,619.1,946.9,610.4,939.1z"/>
|
||||
<path class="st1" d="M754.8,877.2h16v72.5h-16V877.2z"/>
|
||||
<path class="st1" d="M858.2,913.6v-0.2c0-20.6,16.1-37.5,38-37.5c13,0,20.9,3.5,28.5,9.9l-10,12.1c-5.6-4.7-10.6-7.4-19-7.4
|
||||
c-11.6,0-20.8,10.3-20.8,22.6v0.2c0,13.3,9.1,23,22,23c5.8,0,11-1.4,15-4.3v-10.4h-16.1v-13.8h31.5v31.5
|
||||
c-7.5,6.3-17.7,11.5-31,11.5C873.7,950.9,858.2,935.1,858.2,913.6z"/>
|
||||
<path class="st1" d="M1015.1,877.2h14.7l34,44.6v-44.6h15.7v72.5H1066l-35.1-46.1v46.1h-15.7V877.2z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M1569.4,656.2H1225l54.3,83.9h290.1c47,0,85.3,38.3,85.3,85.3c0,47-38.3,85.2-85.3,85.2
|
||||
c-41.7,0-77-29.7-84-70.7c-3.9-22.8-25.6-38.2-48.4-34.3c-11,1.9-20.7,8-27.2,17.1c-6.5,9.1-9,20.3-7.1,31.3
|
||||
c14,81.4,84.1,140.4,166.7,140.4c93.3,0,169.1-75.9,169.1-169.1C1738.5,732.1,1662.7,656.2,1569.4,656.2z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
BIN
dist/images/delete.png
vendored
Normal file
|
After Width: | Height: | Size: 228 B |
BIN
dist/images/edit.png
vendored
Normal file
|
After Width: | Height: | Size: 239 B |
BIN
dist/images/favicon-16x16.png
vendored
Normal file
|
After Width: | Height: | Size: 742 B |
BIN
dist/images/favicon.ico
vendored
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
dist/images/share.png
vendored
Normal file
|
After Width: | Height: | Size: 496 B |
BIN
dist/images/stats.png
vendored
Normal file
|
After Width: | Height: | Size: 243 B |
1
dist/main.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
$(document).ready(function(){var a;a=$("meta[name=pluginURL]").attr("content")?$("meta[name=pluginURL]").attr("content"):"/user/plugins/air66Theme",$("body").hasClass("login")&&$("#login").prepend('<img class="air66-logo" src="'+a+'/dist/images/a66-logo.svg" alt="Air 66 Design Ltd Logo">'),$("header[role=banner]").hide(),$("header[role=banner]").remove(),$("#admin_menu_help_link").remove(),$("#admin_menu").append('<li class="admin_menu_toplevel"><a href="https://air66design.com" target="_blank">Contact Air 66 Design</a></li>'),$("body").prepend($('<header class="site-header">').load(a+"/dist/html/header.php",function(){if($(".site-header").append('<div class="air66-logo-wrap"><a class="air66-logo-link" href="https://air66design.com" target="_blank"><img class="air66-logo" src="'+a+'/dist/images/a66-logo-wh.svg" alt="Air 66 Design Ltd Logo"></a></div>'),$("body").prepend('<div class="nav-overlay"></div>'),$("#menu-icon").click(function(){$(this).toggleClass("open"),$("nav, .nav-overlay").toggleClass("nav-open")}),$("body").hasClass("index")){$("#new_url").hide();var e=$("#nonce-add").val();$("#new_url").remove(),$(".index").prepend($('<div class="form-wrap">').load(a+"/dist/html/form.php",function(){$("#nonce-add").val(e)}))}})),$('link[rel="shortcut icon"]').attr("href",a+"/dist/images/favicon.ico"),$("#main_table").wrap("<div class='table-responsive'></div>"),$("#main_table").addClass("table"),$("p").each(function(e){if(/Display/.test($(this).text())||/Overall/.test($(this).text()))$("main").append("<p>"+$(this).html()+"</p>"),$(this).remove();else if(/Powered by/.test($(this).text())){var a=$(this).html(),t="Running on"+a.slice(13,77)+'& <a href="https://air66design.com/" title="Air 66 Design Ltd" target="_blank">Air 66 Design Ltd</a>'+a.slice(76);$(this).html(t)}}),$("#stat_tab_stats, #stat_tab_location, #stat_tab_sources, #stat_tab_share").wrapAll('<div class="tab-scroll"></div>'),$("#admin_menu_help_link").remove()});
|
||||
7
dist/style.css
vendored
Normal file
1
dist/style.css.map
vendored
Normal file
66
gulpfile.js
Normal file
@@ -0,0 +1,66 @@
|
||||
// Initialize modules
|
||||
// Importing specific gulp API functions lets us write them below as series() instead of gulp.series()
|
||||
const { src, dest, watch, series, parallel } = require('gulp');
|
||||
// Importing all the Gulp-related packages we want to use
|
||||
const sourcemaps = require('gulp-sourcemaps');
|
||||
const sass = require('gulp-sass');
|
||||
const concat = require('gulp-concat');
|
||||
const uglify = require('gulp-uglify');
|
||||
const postcss = require('gulp-postcss');
|
||||
const autoprefixer = require('autoprefixer');
|
||||
const cssnano = require('cssnano');
|
||||
var replace = require('gulp-replace');
|
||||
|
||||
|
||||
// File paths
|
||||
const files = {
|
||||
scssPath: 'app/scss/**/*.scss',
|
||||
jsPath: 'app/js/**/*.js'
|
||||
}
|
||||
|
||||
// Sass task: compiles the style.scss file into style.css
|
||||
function scssTask(){
|
||||
return src(files.scssPath)
|
||||
.pipe(sourcemaps.init()) // initialize sourcemaps first
|
||||
.pipe(sass()) // compile SCSS to CSS
|
||||
.pipe(postcss([ autoprefixer(), cssnano() ])) // PostCSS plugins
|
||||
.pipe(sourcemaps.write('.')) // write sourcemaps file in current directory
|
||||
.pipe(dest('dist')
|
||||
); // put final CSS in dist folder
|
||||
}
|
||||
|
||||
// JS task: concatenates and uglifies JS files to script.js
|
||||
function jsTask(){
|
||||
return src([
|
||||
files.jsPath
|
||||
//,'!' + 'includes/js/jquery.min.js', // to exclude any specific files
|
||||
])
|
||||
.pipe(concat('main.js'))
|
||||
.pipe(uglify())
|
||||
.pipe(dest('dist')
|
||||
);
|
||||
}
|
||||
|
||||
// Cachebust
|
||||
var cbString = new Date().getTime();
|
||||
function cacheBustTask(){
|
||||
return src(['index.html'])
|
||||
.pipe(replace(/cb=\d+/g, 'cb=' + cbString))
|
||||
.pipe(dest('.'));
|
||||
}
|
||||
|
||||
// Watch task: watch SCSS and JS files for changes
|
||||
// If any change, run scss and js tasks simultaneously
|
||||
function watchTask(){
|
||||
watch([files.scssPath, files.jsPath],
|
||||
parallel(scssTask, jsTask));
|
||||
}
|
||||
|
||||
// Export the default Gulp task so it can be run
|
||||
// Runs the scss and js tasks simultaneously
|
||||
// then runs cacheBust, then watch task
|
||||
exports.default = series(
|
||||
parallel(scssTask, jsTask),
|
||||
cacheBustTask,
|
||||
watchTask
|
||||
);
|
||||
20
index.html
Normal file
@@ -0,0 +1,20 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Untitled Document</title>
|
||||
<!-- CSS File -->
|
||||
<link rel="stylesheet" href="dist/style.css?cb=1563954696324">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<main>
|
||||
<h1>Hello World</h1>
|
||||
<p>dilly dilly dangle!</p>
|
||||
</main>
|
||||
|
||||
|
||||
<script src="dist/main.js?cb=1563954696324"></script>
|
||||
</body>
|
||||
</html>
|
||||
15
node_modules/.bin/acorn
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../acorn/bin/acorn" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../acorn/bin/acorn" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/acorn.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\acorn\bin\acorn" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\acorn\bin\acorn" %*
|
||||
)
|
||||
15
node_modules/.bin/atob
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../atob/bin/atob.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../atob/bin/atob.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/atob.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\atob\bin\atob.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\atob\bin\atob.js" %*
|
||||
)
|
||||
15
node_modules/.bin/autoprefixer
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../autoprefixer/bin/autoprefixer" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../autoprefixer/bin/autoprefixer" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/autoprefixer.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\autoprefixer\bin\autoprefixer" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\autoprefixer\bin\autoprefixer" %*
|
||||
)
|
||||
15
node_modules/.bin/browserslist
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../browserslist/cli.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../browserslist/cli.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/browserslist.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\browserslist\cli.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\browserslist\cli.js" %*
|
||||
)
|
||||
15
node_modules/.bin/color-support
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../color-support/bin.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../color-support/bin.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/color-support.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\color-support\bin.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\color-support\bin.js" %*
|
||||
)
|
||||
15
node_modules/.bin/concat
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../concat/bin/concat" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../concat/bin/concat" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/concat.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\concat\bin\concat" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\concat\bin\concat" %*
|
||||
)
|
||||
15
node_modules/.bin/cssesc
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../cssesc/bin/cssesc" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/cssesc.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\cssesc\bin\cssesc" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\cssesc\bin\cssesc" %*
|
||||
)
|
||||
15
node_modules/.bin/esparse
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../esprima/bin/esparse.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/esparse.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\esprima\bin\esparse.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\esprima\bin\esparse.js" %*
|
||||
)
|
||||
15
node_modules/.bin/esvalidate
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../esprima/bin/esvalidate.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/esvalidate.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\esprima\bin\esvalidate.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\esprima\bin\esvalidate.js" %*
|
||||
)
|
||||
15
node_modules/.bin/gulp
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../gulp/bin/gulp.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../gulp/bin/gulp.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/gulp.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\gulp\bin\gulp.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\gulp\bin\gulp.js" %*
|
||||
)
|
||||
15
node_modules/.bin/in-install
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../in-publish/in-install.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../in-publish/in-install.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/in-install.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\in-publish\in-install.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\in-publish\in-install.js" %*
|
||||
)
|
||||
15
node_modules/.bin/in-publish
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../in-publish/in-publish.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../in-publish/in-publish.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/in-publish.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\in-publish\in-publish.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\in-publish\in-publish.js" %*
|
||||
)
|
||||
15
node_modules/.bin/js-yaml
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/js-yaml.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\js-yaml\bin\js-yaml.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\js-yaml\bin\js-yaml.js" %*
|
||||
)
|
||||
15
node_modules/.bin/mkdirp
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../mkdirp/bin/cmd.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/mkdirp.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\mkdirp\bin\cmd.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\mkdirp\bin\cmd.js" %*
|
||||
)
|
||||
15
node_modules/.bin/node-gyp
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../node-gyp/bin/node-gyp.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../node-gyp/bin/node-gyp.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/node-gyp.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\node-gyp\bin\node-gyp.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\node-gyp\bin\node-gyp.js" %*
|
||||
)
|
||||
15
node_modules/.bin/node-sass
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../node-sass/bin/node-sass" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../node-sass/bin/node-sass" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/node-sass.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\node-sass\bin\node-sass" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\node-sass\bin\node-sass" %*
|
||||
)
|
||||
15
node_modules/.bin/nopt
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../nopt/bin/nopt.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/nopt.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\nopt\bin\nopt.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\nopt\bin\nopt.js" %*
|
||||
)
|
||||
15
node_modules/.bin/not-in-install
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../in-publish/not-in-install.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../in-publish/not-in-install.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/not-in-install.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\in-publish\not-in-install.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\in-publish\not-in-install.js" %*
|
||||
)
|
||||
15
node_modules/.bin/not-in-publish
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../in-publish/not-in-publish.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../in-publish/not-in-publish.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/not-in-publish.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\in-publish\not-in-publish.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\in-publish\not-in-publish.js" %*
|
||||
)
|
||||
15
node_modules/.bin/rimraf
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../rimraf/bin.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../rimraf/bin.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/rimraf.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\rimraf\bin.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\rimraf\bin.js" %*
|
||||
)
|
||||
15
node_modules/.bin/sassgraph
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../sass-graph/bin/sassgraph" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../sass-graph/bin/sassgraph" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/sassgraph.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\sass-graph\bin\sassgraph" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\sass-graph\bin\sassgraph" %*
|
||||
)
|
||||
15
node_modules/.bin/semver
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../semver/bin/semver" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../semver/bin/semver" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/semver.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\semver\bin\semver" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\semver\bin\semver" %*
|
||||
)
|
||||
15
node_modules/.bin/sshpk-conv
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../sshpk/bin/sshpk-conv" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/sshpk-conv.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-conv" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\sshpk\bin\sshpk-conv" %*
|
||||
)
|
||||
15
node_modules/.bin/sshpk-sign
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../sshpk/bin/sshpk-sign" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/sshpk-sign.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-sign" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\sshpk\bin\sshpk-sign" %*
|
||||
)
|
||||
15
node_modules/.bin/sshpk-verify
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../sshpk/bin/sshpk-verify" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/sshpk-verify.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-verify" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\sshpk\bin\sshpk-verify" %*
|
||||
)
|
||||
15
node_modules/.bin/strip-indent
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../strip-indent/cli.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../strip-indent/cli.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/strip-indent.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\strip-indent\cli.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\strip-indent\cli.js" %*
|
||||
)
|
||||
15
node_modules/.bin/svgo
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../svgo/bin/svgo" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../svgo/bin/svgo" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/svgo.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\svgo\bin\svgo" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\svgo\bin\svgo" %*
|
||||
)
|
||||
15
node_modules/.bin/uglifyjs
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../uglify-js/bin/uglifyjs" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/uglifyjs.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\uglify-js\bin\uglifyjs" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\uglify-js\bin\uglifyjs" %*
|
||||
)
|
||||
15
node_modules/.bin/uuid
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../uuid/bin/uuid" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../uuid/bin/uuid" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/uuid.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\uuid\bin\uuid" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\uuid\bin\uuid" %*
|
||||
)
|
||||
15
node_modules/.bin/which
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../which/bin/which" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../which/bin/which" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
node_modules/.bin/which.cmd
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\which\bin\which" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\which\bin\which" %*
|
||||
)
|
||||
21
node_modules/@gulp-sourcemaps/identity-map/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Blaine Bublitz <blaine.bublitz@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
40
node_modules/@gulp-sourcemaps/identity-map/README.md
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
# @gulp-sourcemaps/identity-map
|
||||
|
||||
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url]
|
||||
|
||||
Gulp plugin for generating an identity sourcemap for a file.
|
||||
|
||||
## Example
|
||||
|
||||
```js
|
||||
var identityMap = require('@gulp-sourcemaps/identity-map');
|
||||
|
||||
gulp.src(...)
|
||||
.pipe(sourcemaps.init())
|
||||
.pipe(identityMap()) // .js and .css files will get a generated sourcemap
|
||||
.pipe(sourcemaps.write())
|
||||
.pipe(gulp.dest(...))
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### `identityMap()`
|
||||
|
||||
Returns an `objectMode` Transform stream that processes each file with a `.sourceMap` property and buffered contents. A sourcemap is generated and attached for each `.js` and `.css` file.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
[downloads-image]: http://img.shields.io/npm/dm/@gulp-sourcemaps/identity-map.svg
|
||||
[npm-url]: https://npmjs.org/package/@gulp-sourcemaps/identity-map
|
||||
[npm-image]: http://img.shields.io/npm/v/@gulp-sourcemaps/identity-map.svg
|
||||
|
||||
[travis-url]: https://travis-ci.org/gulp-sourcemaps/identity-map
|
||||
[travis-image]: http://img.shields.io/travis/gulp-sourcemaps/identity-map.svg?label=travis-ci
|
||||
|
||||
[appveyor-url]: https://ci.appveyor.com/project/phated/identity-map
|
||||
[appveyor-image]: https://img.shields.io/appveyor/ci/phated/identity-map.svg?label=appveyor
|
||||
|
||||
[coveralls-url]: https://coveralls.io/r/gulp-sourcemaps/identity-map
|
||||
[coveralls-image]: http://img.shields.io/coveralls/gulp-sourcemaps/identity-map.svg
|
||||
35
node_modules/@gulp-sourcemaps/identity-map/index.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
|
||||
var through = require('through2');
|
||||
var normalizePath = require('normalize-path');
|
||||
|
||||
var generate = require('./lib/generate');
|
||||
|
||||
function identityMap() {
|
||||
|
||||
function transform(file, _, cb) {
|
||||
if (!file.sourceMap || !file.isBuffer()) {
|
||||
return cb(null, file);
|
||||
}
|
||||
|
||||
var sourcePath = normalizePath(file.relative);
|
||||
var contents = file.contents.toString();
|
||||
|
||||
switch (file.extname) {
|
||||
case '.js': {
|
||||
file.sourceMap = generate.js(sourcePath, contents);
|
||||
break;
|
||||
}
|
||||
case '.css': {
|
||||
file.sourceMap = generate.css(sourcePath, contents);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
cb(null, file);
|
||||
}
|
||||
|
||||
return through.obj(transform);
|
||||
}
|
||||
|
||||
module.exports = identityMap;
|
||||
65
node_modules/@gulp-sourcemaps/identity-map/lib/generate.js
generated
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
'use strict';
|
||||
|
||||
var css = require('css');
|
||||
var acorn = require('acorn');
|
||||
var SourceMapGenerator = require('source-map').SourceMapGenerator;
|
||||
|
||||
function generateJs(sourcePath, fileContent) {
|
||||
var generator = new SourceMapGenerator({ file: sourcePath });
|
||||
var tokenizer = acorn.tokenizer(fileContent, { allowHashBang: true, locations: true });
|
||||
|
||||
while (true) {
|
||||
var token = tokenizer.getToken();
|
||||
|
||||
if (token.type.label === 'eof') {
|
||||
break;
|
||||
}
|
||||
var mapping = {
|
||||
original: token.loc.start,
|
||||
generated: token.loc.start,
|
||||
source: sourcePath,
|
||||
};
|
||||
if (token.type.label === 'name') {
|
||||
mapping.name = token.value;
|
||||
}
|
||||
generator.addMapping(mapping);
|
||||
}
|
||||
generator.setSourceContent(sourcePath, fileContent);
|
||||
|
||||
return generator.toJSON();
|
||||
}
|
||||
|
||||
function generateCss(sourcePath, fileContent) {
|
||||
var generator = new SourceMapGenerator({ file: sourcePath });
|
||||
var ast = css.parse(fileContent, { silent: true });
|
||||
|
||||
function registerTokens(ast) {
|
||||
if (ast.position) {
|
||||
generator.addMapping({
|
||||
original: ast.position.start,
|
||||
generated: ast.position.start,
|
||||
source: sourcePath,
|
||||
});
|
||||
}
|
||||
|
||||
for (var key in ast) {
|
||||
if (key === 'position' || !ast[key]) {
|
||||
continue;
|
||||
}
|
||||
if (Object.prototype.toString.call(ast[key]) === '[object Object]') {
|
||||
registerTokens(ast[key]);
|
||||
} else if (Array.isArray(ast[key])) {
|
||||
ast[key].forEach(registerTokens);
|
||||
}
|
||||
}
|
||||
}
|
||||
registerTokens(ast);
|
||||
generator.setSourceContent(sourcePath, fileContent);
|
||||
|
||||
return generator.toJSON();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
js: generateJs,
|
||||
css: generateCss,
|
||||
};
|
||||
90
node_modules/@gulp-sourcemaps/identity-map/package.json
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"_from": "@gulp-sourcemaps/identity-map@1.X",
|
||||
"_id": "@gulp-sourcemaps/identity-map@1.0.2",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==",
|
||||
"_location": "/@gulp-sourcemaps/identity-map",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "@gulp-sourcemaps/identity-map@1.X",
|
||||
"name": "@gulp-sourcemaps/identity-map",
|
||||
"escapedName": "@gulp-sourcemaps%2fidentity-map",
|
||||
"scope": "@gulp-sourcemaps",
|
||||
"rawSpec": "1.X",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.X"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/gulp-sourcemaps"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz",
|
||||
"_shasum": "1e6fe5d8027b1f285dc0d31762f566bccd73d5a9",
|
||||
"_spec": "@gulp-sourcemaps/identity-map@1.X",
|
||||
"_where": "D:\\Air66 Files\\dev_sites\\www.airurl.dev.cc\\user\\plugins\\air66Theme\\node_modules\\gulp-sourcemaps",
|
||||
"author": {
|
||||
"name": "Gulp-sourcemaps Team"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/gulp-sourcemaps/identity-map/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Blaine Bublitz",
|
||||
"email": "blaine.bublitz@gmail.com"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"acorn": "^5.0.3",
|
||||
"css": "^2.2.1",
|
||||
"normalize-path": "^2.1.1",
|
||||
"source-map": "^0.6.0",
|
||||
"through2": "^2.0.3"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Gulp plugin for generating an identity sourcemap for a file.",
|
||||
"devDependencies": {
|
||||
"eslint": "^1.7.3",
|
||||
"eslint-config-gulp": "^2.0.0",
|
||||
"expect": "^1.19.0",
|
||||
"istanbul": "^0.4.3",
|
||||
"istanbul-coveralls": "^1.0.3",
|
||||
"jscs": "^2.3.5",
|
||||
"jscs-preset-gulp": "^1.0.0",
|
||||
"mississippi": "^1.3.0",
|
||||
"mocha": "^2.4.5",
|
||||
"vinyl": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
},
|
||||
"files": [
|
||||
"LICENSE",
|
||||
"index.js",
|
||||
"lib"
|
||||
],
|
||||
"homepage": "https://github.com/gulp-sourcemaps/identity-map#readme",
|
||||
"keywords": [
|
||||
"sourcemap",
|
||||
"identity",
|
||||
"generate",
|
||||
"stream"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"name": "@gulp-sourcemaps/identity-map",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/gulp-sourcemaps/identity-map.git"
|
||||
},
|
||||
"scripts": {
|
||||
"cover": "istanbul cover _mocha --report lcovonly",
|
||||
"coveralls": "npm run cover && istanbul-coveralls",
|
||||
"lint": "eslint . && jscs index.js test/index.js lib/",
|
||||
"pretest": "npm run lint",
|
||||
"test": "mocha --async-only"
|
||||
},
|
||||
"version": "1.0.2"
|
||||
}
|
||||
21
node_modules/@gulp-sourcemaps/map-sources/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Blaine Bublitz <blaine.bublitz@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
52
node_modules/@gulp-sourcemaps/map-sources/README.md
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
# @gulp-sourcemaps/map-sources
|
||||
|
||||
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url]
|
||||
|
||||
Gulp plugin for mapping sources of a sourcemap.
|
||||
|
||||
## Example
|
||||
|
||||
```js
|
||||
var mapSources = require('@gulp-sourcemaps/map-sources');
|
||||
|
||||
gulp.src(...)
|
||||
.pipe(sourcemaps.init())
|
||||
.pipe(mapSources(function(sourcePath, file) {
|
||||
return '../' + sourcePath;
|
||||
}))
|
||||
.pipe(sourcemaps.write())
|
||||
.pipe(gulp.dest(...))
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### `mapSources(mapFn)`
|
||||
|
||||
Takes a map function as the only argument. Returns an `objectMode` Transform stream.
|
||||
|
||||
#### `mapFn(sourcePath, file)`
|
||||
|
||||
The map function is called once per value of the `sources` array of a `sourceMap` attached to each [`Vinyl`][vinyl-url] object passed through the stream. The map function is called with the `sourcePath` string from the `sources` array and the `file` object it originated from. The return value replaces the original value in the array.
|
||||
|
||||
If a `Vinyl` object doesn't have a `sourceMap` or `sourceMap.sources` property, the file is passed through the stream without having the `mapFn` called.
|
||||
|
||||
All `sources` are normalized to use `/` instead of `\\` as path separators.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
[vinyl-url]: https://github.com/gulpjs/vinyl
|
||||
|
||||
[downloads-image]: http://img.shields.io/npm/dm/@gulp-sourcemaps/map-sources.svg
|
||||
[npm-url]: https://npmjs.org/package/@gulp-sourcemaps/map-sources
|
||||
[npm-image]: http://img.shields.io/npm/v/@gulp-sourcemaps/map-sources.svg
|
||||
|
||||
[travis-url]: https://travis-ci.org/gulp-sourcemaps/map-sources
|
||||
[travis-image]: http://img.shields.io/travis/gulp-sourcemaps/map-sources.svg?label=travis-ci
|
||||
|
||||
[appveyor-url]: https://ci.appveyor.com/project/phated/map-sources
|
||||
[appveyor-image]: https://img.shields.io/appveyor/ci/phated/map-sources.svg?label=appveyor
|
||||
|
||||
[coveralls-url]: https://coveralls.io/r/gulp-sourcemaps/map-sources
|
||||
[coveralls-image]: http://img.shields.io/coveralls/gulp-sourcemaps/map-sources.svg
|
||||
30
node_modules/@gulp-sourcemaps/map-sources/index.js
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
'use strict';
|
||||
|
||||
var through = require('through2');
|
||||
var normalize = require('normalize-path');
|
||||
|
||||
function mapSources(mapFn) {
|
||||
|
||||
function transform(file, _, cb) {
|
||||
if (!file.sourceMap || !file.sourceMap.sources) {
|
||||
return cb(null, file);
|
||||
}
|
||||
|
||||
function mapper(sourcePath) {
|
||||
var result = sourcePath;
|
||||
if (typeof mapFn === 'function') {
|
||||
result = mapFn(sourcePath, file);
|
||||
}
|
||||
|
||||
return normalize(result);
|
||||
}
|
||||
|
||||
file.sourceMap.sources = file.sourceMap.sources.map(mapper);
|
||||
|
||||
cb(null, file);
|
||||
}
|
||||
|
||||
return through.obj(transform);
|
||||
}
|
||||
|
||||
module.exports = mapSources;
|
||||
85
node_modules/@gulp-sourcemaps/map-sources/package.json
generated
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"_from": "@gulp-sourcemaps/map-sources@1.X",
|
||||
"_id": "@gulp-sourcemaps/map-sources@1.0.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=",
|
||||
"_location": "/@gulp-sourcemaps/map-sources",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "@gulp-sourcemaps/map-sources@1.X",
|
||||
"name": "@gulp-sourcemaps/map-sources",
|
||||
"escapedName": "@gulp-sourcemaps%2fmap-sources",
|
||||
"scope": "@gulp-sourcemaps",
|
||||
"rawSpec": "1.X",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.X"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/gulp-sourcemaps"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz",
|
||||
"_shasum": "890ae7c5d8c877f6d384860215ace9d7ec945bda",
|
||||
"_spec": "@gulp-sourcemaps/map-sources@1.X",
|
||||
"_where": "D:\\Air66 Files\\dev_sites\\www.airurl.dev.cc\\user\\plugins\\air66Theme\\node_modules\\gulp-sourcemaps",
|
||||
"author": {
|
||||
"name": "Gulp-sourcemaps Team"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/gulp-sourcemaps/map-sources/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Blaine Bublitz",
|
||||
"email": "blaine.bublitz@gmail.com"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"normalize-path": "^2.0.1",
|
||||
"through2": "^2.0.3"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Gulp plugin for mapping sources of a sourcemap.",
|
||||
"devDependencies": {
|
||||
"eslint": "^1.7.3",
|
||||
"eslint-config-gulp": "^2.0.0",
|
||||
"expect": "^1.19.0",
|
||||
"istanbul": "^0.4.3",
|
||||
"istanbul-coveralls": "^1.0.3",
|
||||
"jscs": "^2.3.5",
|
||||
"jscs-preset-gulp": "^1.0.0",
|
||||
"mississippi": "^1.3.0",
|
||||
"mocha": "^2.4.5",
|
||||
"vinyl": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
},
|
||||
"files": [
|
||||
"LICENSE",
|
||||
"index.js"
|
||||
],
|
||||
"homepage": "https://github.com/gulp-sourcemaps/map-sources#readme",
|
||||
"keywords": [
|
||||
"sourcemap",
|
||||
"sources",
|
||||
"stream"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"name": "@gulp-sourcemaps/map-sources",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/gulp-sourcemaps/map-sources.git"
|
||||
},
|
||||
"scripts": {
|
||||
"cover": "istanbul cover _mocha --report lcovonly",
|
||||
"coveralls": "npm run cover && istanbul-coveralls",
|
||||
"lint": "eslint . && jscs index.js test/",
|
||||
"pretest": "npm run lint",
|
||||
"test": "mocha --async-only"
|
||||
},
|
||||
"version": "1.0.0"
|
||||
}
|
||||
21
node_modules/@types/q/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE
|
||||
16
node_modules/@types/q/README.md
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# Installation
|
||||
> `npm install --save @types/q`
|
||||
|
||||
# Summary
|
||||
This package contains type definitions for Q ( https://github.com/kriskowal/q ).
|
||||
|
||||
# Details
|
||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/q
|
||||
|
||||
Additional Details
|
||||
* Last updated: Wed, 13 Mar 2019 17:15:46 GMT
|
||||
* Dependencies: none
|
||||
* Global values: Q
|
||||
|
||||
# Credits
|
||||
These definitions were written by Barrie Nemetchek <https://github.com/bnemetchek>, Andrew Gaspar <https://github.com/AndrewGaspar>, John Reilly <https://github.com/johnnyreilly>, Michel Boudreau <https://github.com/mboudreau>, TeamworkGuy2 <https://github.com/TeamworkGuy2>.
|
||||
598
node_modules/@types/q/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,598 @@
|
||||
// Type definitions for Q 1.5
|
||||
// Project: https://github.com/kriskowal/q
|
||||
// Definitions by: Barrie Nemetchek <https://github.com/bnemetchek>
|
||||
// Andrew Gaspar <https://github.com/AndrewGaspar>
|
||||
// John Reilly <https://github.com/johnnyreilly>
|
||||
// Michel Boudreau <https://github.com/mboudreau>
|
||||
// TeamworkGuy2 <https://github.com/TeamworkGuy2>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
export = Q;
|
||||
export as namespace Q;
|
||||
|
||||
/**
|
||||
* If value is a Q promise, returns the promise.
|
||||
* If value is a promise from another library it is coerced into a Q promise (where possible).
|
||||
* If value is not a promise, returns a promise that is fulfilled with value.
|
||||
*/
|
||||
declare function Q<T>(promise: PromiseLike<T> | T): Q.Promise<T>;
|
||||
/**
|
||||
* Calling with nothing at all creates a void promise
|
||||
*/
|
||||
declare function Q(): Q.Promise<void>;
|
||||
|
||||
declare namespace Q {
|
||||
export type IWhenable<T> = PromiseLike<T> | T;
|
||||
export type IPromise<T> = PromiseLike<T>;
|
||||
|
||||
export interface Deferred<T> {
|
||||
promise: Promise<T>;
|
||||
|
||||
/**
|
||||
* Calling resolve with a pending promise causes promise to wait on the passed promise, becoming fulfilled with its
|
||||
* fulfillment value or rejected with its rejection reason (or staying pending forever, if the passed promise does).
|
||||
* Calling resolve with a rejected promise causes promise to be rejected with the passed promise's rejection reason.
|
||||
* Calling resolve with a fulfilled promise causes promise to be fulfilled with the passed promise's fulfillment value.
|
||||
* Calling resolve with a non-promise value causes promise to be fulfilled with that value.
|
||||
*/
|
||||
resolve(value?: IWhenable<T>): void;
|
||||
|
||||
/**
|
||||
* Calling reject with a reason causes promise to be rejected with that reason.
|
||||
*/
|
||||
reject(reason?: any): void;
|
||||
|
||||
/**
|
||||
* Calling notify with a value causes promise to be notified of progress with that value. That is, any onProgress
|
||||
* handlers registered with promise or promises derived from promise will be called with the progress value.
|
||||
*/
|
||||
notify(value: any): void;
|
||||
|
||||
/**
|
||||
* Returns a function suitable for passing to a Node.js API. That is, it has a signature (err, result) and will
|
||||
* reject deferred.promise with err if err is given, or fulfill it with result if that is given.
|
||||
*/
|
||||
makeNodeResolver(): (reason: any, value: T) => void;
|
||||
}
|
||||
|
||||
export interface Promise<T> {
|
||||
/**
|
||||
* The then method from the Promises/A+ specification, with an additional progress handler.
|
||||
*/
|
||||
then<U>(onFulfill?: ((value: T) => IWhenable<U>) | null, onReject?: ((error: any) => IWhenable<U>) | null, onProgress?: ((progress: any) => any) | null): Promise<U>;
|
||||
then<U = T, V = never>(onFulfill?: ((value: T) => IWhenable<U>) | null, onReject?: ((error: any) => IWhenable<V>) | null, onProgress?: ((progress: any) => any) | null): Promise<U | V>;
|
||||
/**
|
||||
* Like a finally clause, allows you to observe either the fulfillment or rejection of a promise, but to do so
|
||||
* without modifying the final value. This is useful for collecting resources regardless of whether a job succeeded,
|
||||
* like closing a database connection, shutting a server down, or deleting an unneeded key from an object.
|
||||
* finally returns a promise, which will become resolved with the same fulfillment value or rejection reason
|
||||
* as promise. However, if callback returns a promise, the resolution of the returned promise will be delayed
|
||||
* until the promise returned from callback is finished. Furthermore, if the returned promise rejects, that
|
||||
* rejection will be passed down the chain instead of the previous result.
|
||||
*/
|
||||
finally(finallyCallback: () => any): Promise<T>;
|
||||
|
||||
/**
|
||||
* Alias for finally() (for non-ES5 browsers)
|
||||
*/
|
||||
fin(finallyCallback: () => any): Promise<T>;
|
||||
|
||||
/**
|
||||
* Like then, but "spreads" the array into a variadic fulfillment handler. If any of the promises in the array are
|
||||
* rejected, instead calls onRejected with the first rejected promise's rejection reason.
|
||||
* This is especially useful in conjunction with all
|
||||
*/
|
||||
spread<U>(onFulfill: (...args: any[]) => IWhenable<U>, onReject?: (reason: any) => IWhenable<U>): Promise<U>;
|
||||
|
||||
/**
|
||||
* A sugar method, equivalent to promise.then(undefined, onRejected).
|
||||
*/
|
||||
catch<U>(onRejected: (reason: any) => IWhenable<U>): Promise<U>;
|
||||
|
||||
/**
|
||||
* Alias for catch() (for non-ES5 browsers)
|
||||
*/
|
||||
fail<U>(onRejected: (reason: any) => IWhenable<U>): Promise<U>;
|
||||
|
||||
/**
|
||||
* A sugar method, equivalent to promise.then(undefined, undefined, onProgress).
|
||||
*/
|
||||
progress(onProgress: (progress: any) => any): Promise<T>;
|
||||
|
||||
/**
|
||||
* Much like then, but with different behavior around unhandled rejection. If there is an unhandled rejection,
|
||||
* either because promise is rejected and no onRejected callback was provided, or because onFulfilled or onRejected
|
||||
* threw an error or returned a rejected promise, the resulting rejection reason is thrown as an exception in a
|
||||
* future turn of the event loop.
|
||||
* This method should be used to terminate chains of promises that will not be passed elsewhere. Since exceptions
|
||||
* thrown in then callbacks are consumed and transformed into rejections, exceptions at the end of the chain are
|
||||
* easy to accidentally, silently ignore. By arranging for the exception to be thrown in a future turn of the
|
||||
* event loop, so that it won't be caught, it causes an onerror event on the browser window, or an uncaughtException
|
||||
* event on Node.js's process object.
|
||||
* Exceptions thrown by done will have long stack traces, if Q.longStackSupport is set to true. If Q.onerror is set,
|
||||
* exceptions will be delivered there instead of thrown in a future turn.
|
||||
* The Golden Rule of done vs. then usage is: either return your promise to someone else, or if the chain ends
|
||||
* with you, call done to terminate it. Terminating with catch is not sufficient because the catch handler may
|
||||
* itself throw an error.
|
||||
*/
|
||||
done(onFulfilled?: ((value: T) => any) | null, onRejected?: ((reason: any) => any) | null, onProgress?: ((progress: any) => any) | null): void;
|
||||
|
||||
/**
|
||||
* If callback is a function, assumes it's a Node.js-style callback, and calls it as either callback(rejectionReason)
|
||||
* when/if promise becomes rejected, or as callback(null, fulfillmentValue) when/if promise becomes fulfilled.
|
||||
* If callback is not a function, simply returns promise.
|
||||
*/
|
||||
nodeify(callback: (reason: any, value: any) => void): Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns a promise to get the named property of an object. Essentially equivalent to
|
||||
*
|
||||
* @example
|
||||
* promise.then(function (o) { return o[propertyName]; });
|
||||
*/
|
||||
get<U>(propertyName: string): Promise<U>;
|
||||
|
||||
set<U>(propertyName: string, value: any): Promise<U>;
|
||||
|
||||
delete<U>(propertyName: string): Promise<U>;
|
||||
|
||||
/**
|
||||
* Returns a promise for the result of calling the named method of an object with the given array of arguments.
|
||||
* The object itself is this in the function, just like a synchronous method call. Essentially equivalent to
|
||||
*
|
||||
* @example
|
||||
* promise.then(function (o) { return o[methodName].apply(o, args); });
|
||||
*/
|
||||
post<U>(methodName: string, args: any[]): Promise<U>;
|
||||
|
||||
/**
|
||||
* Returns a promise for the result of calling the named method of an object with the given variadic arguments.
|
||||
* The object itself is this in the function, just like a synchronous method call.
|
||||
*/
|
||||
invoke<U>(methodName: string, ...args: any[]): Promise<U>;
|
||||
|
||||
/**
|
||||
* Returns a promise for an array of the property names of an object. Essentially equivalent to
|
||||
*
|
||||
* @example
|
||||
* promise.then(function (o) { return Object.keys(o); });
|
||||
*/
|
||||
keys(): Promise<string[]>;
|
||||
|
||||
/**
|
||||
* Returns a promise for the result of calling a function, with the given array of arguments. Essentially equivalent to
|
||||
*
|
||||
* @example
|
||||
* promise.then(function (f) {
|
||||
* return f.apply(undefined, args);
|
||||
* });
|
||||
*/
|
||||
fapply<U>(args: any[]): Promise<U>;
|
||||
|
||||
/**
|
||||
* Returns a promise for the result of calling a function, with the given variadic arguments. Has the same return
|
||||
* value/thrown exception translation as explained above for fbind.
|
||||
* In its static form, it is aliased as Q.try, since it has semantics similar to a try block (but handling both
|
||||
* synchronous exceptions and asynchronous rejections). This allows code like
|
||||
*
|
||||
* @example
|
||||
* Q.try(function () {
|
||||
* if (!isConnectedToCloud()) {
|
||||
* throw new Error("The cloud is down!");
|
||||
* }
|
||||
* return syncToCloud();
|
||||
* })
|
||||
* .catch(function (error) {
|
||||
* console.error("Couldn't sync to the cloud", error);
|
||||
* });
|
||||
*/
|
||||
fcall<U>(...args: any[]): Promise<U>;
|
||||
|
||||
/**
|
||||
* A sugar method, equivalent to promise.then(function () { return value; }).
|
||||
*/
|
||||
thenResolve<U>(value: U): Promise<U>;
|
||||
|
||||
/**
|
||||
* A sugar method, equivalent to promise.then(function () { throw reason; }).
|
||||
*/
|
||||
thenReject<U = T>(reason?: any): Promise<U>;
|
||||
|
||||
/**
|
||||
* Attaches a handler that will observe the value of the promise when it becomes fulfilled, returning a promise for
|
||||
* that same value, perhaps deferred but not replaced by the promise returned by the onFulfilled handler.
|
||||
*/
|
||||
tap(onFulfilled: (value: T) => any): Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns a promise that will have the same result as promise, except that if promise is not fulfilled or rejected
|
||||
* before ms milliseconds, the returned promise will be rejected with an Error with the given message. If message
|
||||
* is not supplied, the message will be "Timed out after " + ms + " ms".
|
||||
*/
|
||||
timeout(ms: number, message?: string): Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns a promise that will have the same result as promise, but will only be fulfilled or rejected after at least
|
||||
* ms milliseconds have passed.
|
||||
*/
|
||||
delay(ms: number): Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns whether a given promise is in the fulfilled state. When the static version is used on non-promises, the
|
||||
* result is always true.
|
||||
*/
|
||||
isFulfilled(): boolean;
|
||||
|
||||
/**
|
||||
* Returns whether a given promise is in the rejected state. When the static version is used on non-promises, the
|
||||
* result is always false.
|
||||
*/
|
||||
isRejected(): boolean;
|
||||
|
||||
/**
|
||||
* Returns whether a given promise is in the pending state. When the static version is used on non-promises, the
|
||||
* result is always false.
|
||||
*/
|
||||
isPending(): boolean;
|
||||
|
||||
valueOf(): any;
|
||||
|
||||
/**
|
||||
* Returns a "state snapshot" object, which will be in one of three forms:
|
||||
*
|
||||
* - { state: "pending" }
|
||||
* - { state: "fulfilled", value: <fulfllment value> }
|
||||
* - { state: "rejected", reason: <rejection reason> }
|
||||
*/
|
||||
inspect(): PromiseState<T>;
|
||||
}
|
||||
|
||||
export interface PromiseState<T> {
|
||||
state: "fulfilled" | "rejected" | "pending";
|
||||
value?: T;
|
||||
reason?: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a "deferred" object with a:
|
||||
* promise property
|
||||
* resolve(value) method
|
||||
* reject(reason) method
|
||||
* notify(value) method
|
||||
* makeNodeResolver() method
|
||||
*/
|
||||
export function defer<T>(): Deferred<T>;
|
||||
|
||||
/**
|
||||
* Calling resolve with a pending promise causes promise to wait on the passed promise, becoming fulfilled with its
|
||||
* fulfillment value or rejected with its rejection reason (or staying pending forever, if the passed promise does).
|
||||
* Calling resolve with a rejected promise causes promise to be rejected with the passed promise's rejection reason.
|
||||
* Calling resolve with a fulfilled promise causes promise to be fulfilled with the passed promise's fulfillment value.
|
||||
* Calling resolve with a non-promise value causes promise to be fulfilled with that value.
|
||||
*/
|
||||
export function resolve<T>(object?: IWhenable<T>): Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns a promise that is rejected with reason.
|
||||
*/
|
||||
export function reject<T>(reason?: any): Promise<T>;
|
||||
|
||||
// If no value provided, returned promise will be of void type
|
||||
export function when(): Promise<void>;
|
||||
|
||||
// if no fulfill, reject, or progress provided, returned promise will be of same type
|
||||
export function when<T>(value: IWhenable<T>): Promise<T>;
|
||||
|
||||
// If a non-promise value is provided, it will not reject or progress
|
||||
export function when<T, U>(value: IWhenable<T>, onFulfilled: (val: T) => IWhenable<U>, onRejected?: ((reason: any) => IWhenable<U>) | null, onProgress?: ((progress: any) => any) | null): Promise<U>;
|
||||
|
||||
/**
|
||||
* (Deprecated) Returns a new function that calls a function asynchronously with the given variadic arguments, and returns a promise.
|
||||
* Notably, any synchronous return values or thrown exceptions are transformed, respectively, into fulfillment values
|
||||
* or rejection reasons for the promise returned by this new function.
|
||||
* This method is especially useful in its static form for wrapping functions to ensure that they are always
|
||||
* asynchronous, and that any thrown exceptions (intentional or accidental) are appropriately transformed into a
|
||||
* returned rejected promise. For example:
|
||||
*
|
||||
* @example
|
||||
* var getUserData = Q.fbind(function (userName) {
|
||||
* if (!userName) {
|
||||
* throw new Error("userName must be truthy!");
|
||||
* }
|
||||
* if (localCache.has(userName)) {
|
||||
* return localCache.get(userName);
|
||||
* }
|
||||
* return getUserFromCloud(userName);
|
||||
* });
|
||||
*/
|
||||
export function fbind<T>(method: (...args: any[]) => IWhenable<T>, ...args: any[]): (...args: any[]) => Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns a promise for the result of calling a function, with the given variadic arguments. Has the same return
|
||||
* value/thrown exception translation as explained above for fbind.
|
||||
* In its static form, it is aliased as Q.try, since it has semantics similar to a try block (but handling both synchronous
|
||||
* exceptions and asynchronous rejections). This allows code like
|
||||
*
|
||||
* @example
|
||||
* Q.try(function () {
|
||||
* if (!isConnectedToCloud()) {
|
||||
* throw new Error("The cloud is down!");
|
||||
* }
|
||||
* return syncToCloud();
|
||||
* })
|
||||
* .catch(function (error) {
|
||||
* console.error("Couldn't sync to the cloud", error);
|
||||
* });
|
||||
*/
|
||||
export function fcall<T>(method: (...args: any[]) => T, ...args: any[]): Promise<T>;
|
||||
|
||||
// but 'try' is a reserved word. This is the only way to get around this
|
||||
/**
|
||||
* Alias for fcall()
|
||||
*/
|
||||
export { fcall as try };
|
||||
|
||||
/**
|
||||
* Returns a promise for the result of calling the named method of an object with the given variadic arguments.
|
||||
* The object itself is this in the function, just like a synchronous method call.
|
||||
*/
|
||||
export function invoke<T>(obj: any, functionName: string, ...args: any[]): Promise<T>;
|
||||
|
||||
/**
|
||||
* Alias for invoke()
|
||||
*/
|
||||
export function send<T>(obj: any, functionName: string, ...args: any[]): Promise<T>;
|
||||
|
||||
/**
|
||||
* Alias for invoke()
|
||||
*/
|
||||
export function mcall<T>(obj: any, functionName: string, ...args: any[]): Promise<T>;
|
||||
|
||||
/**
|
||||
* Creates a promise-returning function from a Node.js-style function, optionally binding it with the given
|
||||
* variadic arguments. An example:
|
||||
*
|
||||
* @example
|
||||
* var readFile = Q.nfbind(FS.readFile);
|
||||
* readFile("foo.txt", "utf-8").done(function (text) {
|
||||
* //...
|
||||
* });
|
||||
*
|
||||
* Note that if you have a method that uses the Node.js callback pattern, as opposed to just a function, you will
|
||||
* need to bind its this value before passing it to nfbind, like so:
|
||||
*
|
||||
* @example
|
||||
* var Kitty = mongoose.model("Kitty");
|
||||
* var findKitties = Q.nfbind(Kitty.find.bind(Kitty));
|
||||
*
|
||||
* The better strategy for methods would be to use Q.nbind, as shown below.
|
||||
*/
|
||||
export function nfbind<T>(nodeFunction: (...args: any[]) => any, ...args: any[]): (...args: any[]) => Promise<T>;
|
||||
|
||||
/**
|
||||
* Alias for nfbind()
|
||||
*/
|
||||
export function denodeify<T>(nodeFunction: (...args: any[]) => any, ...args: any[]): (...args: any[]) => Promise<T>;
|
||||
|
||||
/**
|
||||
* Creates a promise-returning function from a Node.js-style method, optionally binding it with the given
|
||||
* variadic arguments. An example:
|
||||
*
|
||||
* @example
|
||||
* var Kitty = mongoose.model("Kitty");
|
||||
* var findKitties = Q.nbind(Kitty.find, Kitty);
|
||||
* findKitties({ cute: true }).done(function (theKitties) {
|
||||
* //...
|
||||
* });
|
||||
*/
|
||||
export function nbind<T>(nodeFunction: (...args: any[]) => any, thisArg: any, ...args: any[]): (...args: any[]) => Promise<T>;
|
||||
|
||||
/**
|
||||
* Calls a Node.js-style function with the given array of arguments, returning a promise that is fulfilled if the
|
||||
* Node.js function calls back with a result, or rejected if it calls back with an error
|
||||
* (or throws one synchronously). An example:
|
||||
*
|
||||
* @example
|
||||
* Q.nfapply(FS.readFile, ["foo.txt", "utf-8"]).done(function (text) {
|
||||
* });
|
||||
*
|
||||
* Note that this example only works because FS.readFile is a function exported from a module, not a method on
|
||||
* an object. For methods, e.g. redisClient.get, you must bind the method to an instance before passing it to
|
||||
* Q.nfapply (or, generally, as an argument to any function call):
|
||||
*
|
||||
* @example
|
||||
* Q.nfapply(redisClient.get.bind(redisClient), ["user:1:id"]).done(function (user) {
|
||||
* });
|
||||
*
|
||||
* The better strategy for methods would be to use Q.npost, as shown below.
|
||||
*/
|
||||
export function nfapply<T>(nodeFunction: (...args: any[]) => any, args: any[]): Promise<T>;
|
||||
|
||||
/**
|
||||
* Calls a Node.js-style function with the given variadic arguments, returning a promise that is fulfilled if the
|
||||
* Node.js function calls back with a result, or rejected if it calls back with an error
|
||||
* (or throws one synchronously). An example:
|
||||
*
|
||||
* @example
|
||||
* Q.nfcall(FS.readFile, "foo.txt", "utf-8").done(function (text) {
|
||||
* });
|
||||
*
|
||||
* The same warning about functions vs. methods applies for nfcall as it does for nfapply. In this case, the better
|
||||
* strategy would be to use Q.ninvoke.
|
||||
*/
|
||||
export function nfcall<T>(nodeFunction: (...args: any[]) => any, ...args: any[]): Promise<T>;
|
||||
|
||||
/**
|
||||
* Calls a Node.js-style method with the given arguments array, returning a promise that is fulfilled if the method
|
||||
* calls back with a result, or rejected if it calls back with an error (or throws one synchronously). An example:
|
||||
*
|
||||
* @example
|
||||
* Q.npost(redisClient, "get", ["user:1:id"]).done(function (user) {
|
||||
* });
|
||||
*/
|
||||
export function npost<T>(nodeModule: any, functionName: string, args: any[]): Promise<T>;
|
||||
|
||||
/**
|
||||
* Calls a Node.js-style method with the given variadic arguments, returning a promise that is fulfilled if the
|
||||
* method calls back with a result, or rejected if it calls back with an error (or throws one synchronously). An example:
|
||||
*
|
||||
* @example
|
||||
* Q.ninvoke(redisClient, "get", "user:1:id").done(function (user) {
|
||||
* });
|
||||
*/
|
||||
export function ninvoke<T>(nodeModule: any, functionName: string, ...args: any[]): Promise<T>;
|
||||
|
||||
/**
|
||||
* Alias for ninvoke()
|
||||
*/
|
||||
export function nsend<T>(nodeModule: any, functionName: string, ...args: any[]): Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns a promise that is fulfilled with an array containing the fulfillment value of each promise, or is rejected with the same rejection reason as the first promise to be rejected.
|
||||
*/
|
||||
export function all<A, B, C, D, E, F>(promises: IWhenable<[IWhenable<A>, IWhenable<B>, IWhenable<C>, IWhenable<D>, IWhenable<E>, IWhenable<F>]>): Promise<[A, B, C, D, E, F]>;
|
||||
/**
|
||||
* Returns a promise that is fulfilled with an array containing the fulfillment value of each promise, or is rejected with the same rejection reason as the first promise to be rejected.
|
||||
*/
|
||||
export function all<A, B, C, D, E>(promises: IWhenable<[IWhenable<A>, IWhenable<B>, IWhenable<C>, IWhenable<D>, IWhenable<E>]>): Promise<[A, B, C, D, E]>;
|
||||
/**
|
||||
* Returns a promise that is fulfilled with an array containing the fulfillment value of each promise, or is rejected with the same rejection reason as the first promise to be rejected.
|
||||
*/
|
||||
export function all<A, B, C, D>(promises: IWhenable<[IWhenable<A>, IWhenable<B>, IWhenable<C>, IWhenable<D>]>): Promise<[A, B, C, D]>;
|
||||
/**
|
||||
* Returns a promise that is fulfilled with an array containing the fulfillment value of each promise, or is rejected with the same rejection reason as the first promise to be rejected.
|
||||
*/
|
||||
export function all<A, B, C>(promises: IWhenable<[IWhenable<A>, IWhenable<B>, IWhenable<C>]>): Promise<[A, B, C]>;
|
||||
/**
|
||||
* Returns a promise that is fulfilled with an array containing the fulfillment value of each promise, or is rejected with the same rejection reason as the first promise to be rejected.
|
||||
*/
|
||||
export function all<A, B>(promises: IWhenable<[IPromise<A>, IPromise<B>]>): Promise<[A, B]>;
|
||||
export function all<A, B>(promises: IWhenable<[A, IPromise<B>]>): Promise<[A, B]>;
|
||||
export function all<A, B>(promises: IWhenable<[IPromise<A>, B]>): Promise<[A, B]>;
|
||||
export function all<A, B>(promises: IWhenable<[A, B]>): Promise<[A, B]>;
|
||||
/**
|
||||
* Returns a promise that is fulfilled with an array containing the fulfillment value of each promise, or is rejected with the same rejection reason as the first promise to be rejected.
|
||||
*/
|
||||
export function all<T>(promises: IWhenable<Array<IWhenable<T>>>): Promise<T[]>;
|
||||
|
||||
/**
|
||||
* Returns a promise for the first of an array of promises to become settled.
|
||||
*/
|
||||
export function race<T>(promises: Array<IWhenable<T>>): Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns a promise that is fulfilled with an array of promise state snapshots, but only after all the original promises
|
||||
* have settled, i.e. become either fulfilled or rejected.
|
||||
*/
|
||||
export function allSettled<T>(promises: IWhenable<Array<IWhenable<T>>>): Promise<Array<PromiseState<T>>>;
|
||||
|
||||
/**
|
||||
* Deprecated Alias for allSettled()
|
||||
*/
|
||||
export function allResolved<T>(promises: IWhenable<Array<IWhenable<T>>>): Promise<Array<Promise<T>>>;
|
||||
|
||||
/**
|
||||
* Like then, but "spreads" the array into a variadic fulfillment handler. If any of the promises in the array are
|
||||
* rejected, instead calls onRejected with the first rejected promise's rejection reason. This is especially useful
|
||||
* in conjunction with all.
|
||||
*/
|
||||
export function spread<T, U>(promises: Array<IWhenable<T>>, onFulfilled: (...args: T[]) => IWhenable<U>, onRejected?: (reason: any) => IWhenable<U>): Promise<U>;
|
||||
|
||||
/**
|
||||
* Returns a promise that will have the same result as promise, except that if promise is not fulfilled or rejected
|
||||
* before ms milliseconds, the returned promise will be rejected with an Error with the given message. If message
|
||||
* is not supplied, the message will be "Timed out after " + ms + " ms".
|
||||
*/
|
||||
export function timeout<T>(promise: Promise<T>, ms: number, message?: string): Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns a promise that will have the same result as promise, but will only be fulfilled or rejected after at least ms milliseconds have passed.
|
||||
*/
|
||||
export function delay<T>(promiseOrValue: Promise<T> | T, ms: number): Promise<T>;
|
||||
/**
|
||||
* Returns a promise that will be fulfilled with undefined after at least ms milliseconds have passed.
|
||||
*/
|
||||
export function delay(ms: number): Promise<void>;
|
||||
|
||||
/**
|
||||
* Returns whether a given promise is in the fulfilled state. When the static version is used on non-promises, the result is always true.
|
||||
*/
|
||||
export function isFulfilled(promise: Promise<any>): boolean;
|
||||
|
||||
/**
|
||||
* Returns whether a given promise is in the rejected state. When the static version is used on non-promises, the result is always false.
|
||||
*/
|
||||
export function isRejected(promise: Promise<any>): boolean;
|
||||
|
||||
/**
|
||||
* Returns whether a given promise is in the pending state. When the static version is used on non-promises, the result is always false.
|
||||
*/
|
||||
export function isPending(promiseOrObject: Promise<any> | any): boolean;
|
||||
|
||||
/**
|
||||
* Synchronously calls resolver(resolve, reject, notify) and returns a promise whose state is controlled by the
|
||||
* functions passed to resolver. This is an alternative promise-creation API that has the same power as the deferred
|
||||
* concept, but without introducing another conceptual entity.
|
||||
* If resolver throws an exception, the returned promise will be rejected with that thrown exception as the rejection reason.
|
||||
* note: In the latest github, this method is called Q.Promise, but if you are using the npm package version 0.9.7
|
||||
* or below, the method is called Q.promise (lowercase vs uppercase p).
|
||||
*/
|
||||
export function Promise<T>(resolver: (resolve: (val?: IWhenable<T>) => void, reject: (reason?: any) => void, notify: (progress: any) => void) => void): Promise<T>;
|
||||
|
||||
/**
|
||||
* Creates a new version of func that accepts any combination of promise and non-promise values, converting them to their
|
||||
* fulfillment values before calling the original func. The returned version also always returns a promise: if func does
|
||||
* a return or throw, then Q.promised(func) will return fulfilled or rejected promise, respectively.
|
||||
* This can be useful for creating functions that accept either promises or non-promise values, and for ensuring that
|
||||
* the function always returns a promise even in the face of unintentional thrown exceptions.
|
||||
*/
|
||||
export function promised<T>(callback: (...args: any[]) => T): (...args: any[]) => Promise<T>;
|
||||
|
||||
/**
|
||||
* Returns whether the given value is a Q promise.
|
||||
*/
|
||||
export function isPromise(object: any): object is Promise<any>;
|
||||
|
||||
/**
|
||||
* Returns whether the given value is a promise (i.e. it's an object with a then function).
|
||||
*/
|
||||
export function isPromiseAlike(object: any): object is IPromise<any>;
|
||||
|
||||
/**
|
||||
* If an object is not a promise, it is as "near" as possible.
|
||||
* If a promise is rejected, it is as "near" as possible too.
|
||||
* If it's a fulfilled promise, the fulfillment value is nearer.
|
||||
* If it's a deferred promise and the deferred has been resolved, the
|
||||
* resolution is "nearer".
|
||||
*/
|
||||
export function nearer<T>(promise: Promise<T>): T;
|
||||
|
||||
/**
|
||||
* This is an experimental tool for converting a generator function into a deferred function. This has the potential
|
||||
* of reducing nested callbacks in engines that support yield.
|
||||
*/
|
||||
export function async<T>(generatorFunction: any): (...args: any[]) => Promise<T>;
|
||||
|
||||
export function nextTick(callback: (...args: any[]) => any): void;
|
||||
|
||||
/**
|
||||
* A settable property that will intercept any uncaught errors that would otherwise be thrown in the next tick of the
|
||||
* event loop, usually as a result of done. Can be useful for getting the full
|
||||
* stack trace of an error in browsers, which is not usually possible with window.onerror.
|
||||
*/
|
||||
export let onerror: (reason: any) => void;
|
||||
/**
|
||||
* A settable property that lets you turn on long stack trace support. If turned on, "stack jumps" will be tracked
|
||||
* across asynchronous promise operations, so that if an uncaught error is thrown by done or a rejection reason's stack
|
||||
* property is inspected in a rejection callback, a long stack trace is produced.
|
||||
*/
|
||||
export let longStackSupport: boolean;
|
||||
|
||||
/**
|
||||
* Resets the global "Q" variable to the value it has before Q was loaded.
|
||||
* This will either be undefined if there was no version or the version of Q which was already loaded before.
|
||||
* @returns The last version of Q.
|
||||
*/
|
||||
export function noConflict(): typeof Q;
|
||||
}
|
||||
69
node_modules/@types/q/package.json
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"_from": "@types/q@^1.5.1",
|
||||
"_id": "@types/q@1.5.2",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==",
|
||||
"_location": "/@types/q",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "@types/q@^1.5.1",
|
||||
"name": "@types/q",
|
||||
"escapedName": "@types%2fq",
|
||||
"scope": "@types",
|
||||
"rawSpec": "^1.5.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^1.5.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/coa"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
|
||||
"_shasum": "690a1475b84f2a884fd07cd797c00f5f31356ea8",
|
||||
"_spec": "@types/q@^1.5.1",
|
||||
"_where": "D:\\Air66 Files\\dev_sites\\www.airurl.dev.cc\\user\\plugins\\air66Theme\\node_modules\\coa",
|
||||
"bugs": {
|
||||
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Barrie Nemetchek",
|
||||
"url": "https://github.com/bnemetchek"
|
||||
},
|
||||
{
|
||||
"name": "Andrew Gaspar",
|
||||
"url": "https://github.com/AndrewGaspar"
|
||||
},
|
||||
{
|
||||
"name": "John Reilly",
|
||||
"url": "https://github.com/johnnyreilly"
|
||||
},
|
||||
{
|
||||
"name": "Michel Boudreau",
|
||||
"url": "https://github.com/mboudreau"
|
||||
},
|
||||
{
|
||||
"name": "TeamworkGuy2",
|
||||
"url": "https://github.com/TeamworkGuy2"
|
||||
}
|
||||
],
|
||||
"dependencies": {},
|
||||
"deprecated": false,
|
||||
"description": "TypeScript definitions for Q",
|
||||
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme",
|
||||
"license": "MIT",
|
||||
"main": "",
|
||||
"name": "@types/q",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
||||
"directory": "types/q"
|
||||
},
|
||||
"scripts": {},
|
||||
"typeScriptVersion": "2.3",
|
||||
"types": "index",
|
||||
"typesPublisherContentHash": "831f89b03c9bf944abfea1d45425872fe7bc687a3ea0ee83f6bb2bb63af9dbc2",
|
||||
"version": "1.5.2"
|
||||
}
|
||||
46
node_modules/abbrev/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
This software is dual-licensed under the ISC and MIT licenses.
|
||||
You may use this software under EITHER of the following licenses.
|
||||
|
||||
----------
|
||||
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
----------
|
||||
|
||||
Copyright Isaac Z. Schlueter and Contributors
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
23
node_modules/abbrev/README.md
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# abbrev-js
|
||||
|
||||
Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).
|
||||
|
||||
Usage:
|
||||
|
||||
var abbrev = require("abbrev");
|
||||
abbrev("foo", "fool", "folding", "flop");
|
||||
|
||||
// returns:
|
||||
{ fl: 'flop'
|
||||
, flo: 'flop'
|
||||
, flop: 'flop'
|
||||
, fol: 'folding'
|
||||
, fold: 'folding'
|
||||
, foldi: 'folding'
|
||||
, foldin: 'folding'
|
||||
, folding: 'folding'
|
||||
, foo: 'foo'
|
||||
, fool: 'fool'
|
||||
}
|
||||
|
||||
This is handy for command-line scripts, or other cases where you want to be able to accept shorthands.
|
||||
61
node_modules/abbrev/abbrev.js
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
module.exports = exports = abbrev.abbrev = abbrev
|
||||
|
||||
abbrev.monkeyPatch = monkeyPatch
|
||||
|
||||
function monkeyPatch () {
|
||||
Object.defineProperty(Array.prototype, 'abbrev', {
|
||||
value: function () { return abbrev(this) },
|
||||
enumerable: false, configurable: true, writable: true
|
||||
})
|
||||
|
||||
Object.defineProperty(Object.prototype, 'abbrev', {
|
||||
value: function () { return abbrev(Object.keys(this)) },
|
||||
enumerable: false, configurable: true, writable: true
|
||||
})
|
||||
}
|
||||
|
||||
function abbrev (list) {
|
||||
if (arguments.length !== 1 || !Array.isArray(list)) {
|
||||
list = Array.prototype.slice.call(arguments, 0)
|
||||
}
|
||||
for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
|
||||
args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
|
||||
}
|
||||
|
||||
// sort them lexicographically, so that they're next to their nearest kin
|
||||
args = args.sort(lexSort)
|
||||
|
||||
// walk through each, seeing how much it has in common with the next and previous
|
||||
var abbrevs = {}
|
||||
, prev = ""
|
||||
for (var i = 0, l = args.length ; i < l ; i ++) {
|
||||
var current = args[i]
|
||||
, next = args[i + 1] || ""
|
||||
, nextMatches = true
|
||||
, prevMatches = true
|
||||
if (current === next) continue
|
||||
for (var j = 0, cl = current.length ; j < cl ; j ++) {
|
||||
var curChar = current.charAt(j)
|
||||
nextMatches = nextMatches && curChar === next.charAt(j)
|
||||
prevMatches = prevMatches && curChar === prev.charAt(j)
|
||||
if (!nextMatches && !prevMatches) {
|
||||
j ++
|
||||
break
|
||||
}
|
||||
}
|
||||
prev = current
|
||||
if (j === cl) {
|
||||
abbrevs[current] = current
|
||||
continue
|
||||
}
|
||||
for (var a = current.substr(0, j) ; j <= cl ; j ++) {
|
||||
abbrevs[a] = current
|
||||
a += current.charAt(j)
|
||||
}
|
||||
}
|
||||
return abbrevs
|
||||
}
|
||||
|
||||
function lexSort (a, b) {
|
||||
return a === b ? 0 : a > b ? 1 : -1
|
||||
}
|
||||
56
node_modules/abbrev/package.json
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"_from": "abbrev@1",
|
||||
"_id": "abbrev@1.1.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
||||
"_location": "/abbrev",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "abbrev@1",
|
||||
"name": "abbrev",
|
||||
"escapedName": "abbrev",
|
||||
"rawSpec": "1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/nopt"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||
"_shasum": "f8f2c887ad10bf67f634f005b6987fed3179aac8",
|
||||
"_spec": "abbrev@1",
|
||||
"_where": "D:\\Air66 Files\\dev_sites\\www.airurl.dev.cc\\user\\plugins\\air66Theme\\node_modules\\nopt",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/isaacs/abbrev-js/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"deprecated": false,
|
||||
"description": "Like ruby's abbrev module, but in js",
|
||||
"devDependencies": {
|
||||
"tap": "^10.1"
|
||||
},
|
||||
"files": [
|
||||
"abbrev.js"
|
||||
],
|
||||
"homepage": "https://github.com/isaacs/abbrev-js#readme",
|
||||
"license": "ISC",
|
||||
"main": "abbrev.js",
|
||||
"name": "abbrev",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+ssh://git@github.com/isaacs/abbrev-js.git"
|
||||
},
|
||||
"scripts": {
|
||||
"postpublish": "git push origin --all; git push origin --tags",
|
||||
"postversion": "npm publish",
|
||||
"preversion": "npm test",
|
||||
"test": "tap test.js --100"
|
||||
},
|
||||
"version": "1.1.1"
|
||||
}
|
||||
79
node_modules/acorn/AUTHORS
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
List of Acorn contributors. Updated before every release.
|
||||
|
||||
Adrian Heine
|
||||
Adrian Rakovsky
|
||||
Alistair Braidwood
|
||||
Amila Welihinda
|
||||
Andres Suarez
|
||||
Angelo
|
||||
Aparajita Fishman
|
||||
Arian Stolwijk
|
||||
Artem Govorov
|
||||
Boopesh Mahendran
|
||||
Bradley Heinz
|
||||
Brandon Mills
|
||||
Charles Hughes
|
||||
Charmander
|
||||
Chris McKnight
|
||||
Conrad Irwin
|
||||
Daniel Tschinder
|
||||
David Bonnet
|
||||
Domenico Matteo
|
||||
ehmicky
|
||||
Eugene Obrezkov
|
||||
Felix Maier
|
||||
Forbes Lindesay
|
||||
Gilad Peleg
|
||||
impinball
|
||||
Ingvar Stepanyan
|
||||
Jackson Ray Hamilton
|
||||
Jesse McCarthy
|
||||
Jiaxing Wang
|
||||
Joel Kemp
|
||||
Johannes Herr
|
||||
John-David Dalton
|
||||
Jordan Klassen
|
||||
Jürg Lehni
|
||||
Kai Cataldo
|
||||
keeyipchan
|
||||
Keheliya Gallaba
|
||||
Kevin Irish
|
||||
Kevin Kwok
|
||||
krator
|
||||
laosb
|
||||
luckyzeng
|
||||
Marek
|
||||
Marijn Haverbeke
|
||||
Martin Carlberg
|
||||
Mat Garcia
|
||||
Mathias Bynens
|
||||
Mathieu 'p01' Henri
|
||||
Matthew Bastien
|
||||
Max Schaefer
|
||||
Max Zerzouri
|
||||
Mihai Bazon
|
||||
Mike Rennie
|
||||
naoh
|
||||
Nicholas C. Zakas
|
||||
Nick Fitzgerald
|
||||
Olivier Thomann
|
||||
Oskar Schöldström
|
||||
Paul Harper
|
||||
Peter Rust
|
||||
PlNG
|
||||
Prayag Verma
|
||||
ReadmeCritic
|
||||
r-e-d
|
||||
Renée Kooi
|
||||
Richard Gibson
|
||||
Rich Harris
|
||||
Sebastian McKenzie
|
||||
Shahar Soel
|
||||
Sheel Bedi
|
||||
Simen Bekkhus
|
||||
Teddy Katz
|
||||
Timothy Gu
|
||||
Toru Nagashima
|
||||
Victor Homyakov
|
||||
Wexpo Lyu
|
||||
zsjforcn
|
||||
508
node_modules/acorn/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,508 @@
|
||||
## 5.7.3 (2018-09-10)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix failure to tokenize regexps after expressions like `x.of`.
|
||||
|
||||
Better error message for unterminated template literals.
|
||||
|
||||
## 5.7.2 (2018-08-24)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Properly handle `allowAwaitOutsideFunction` in for statements.
|
||||
|
||||
Treat function declarations at the top level of modules like let bindings.
|
||||
|
||||
Don't allow async function declarations as the only statement under a label.
|
||||
|
||||
## 5.7.1 (2018-06-15)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Make sure the walker and bin files are rebuilt on release (the previous release didn't get the up-to-date versions).
|
||||
|
||||
## 5.7.0 (2018-06-15)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix crash in walker when walking a binding-less catch node.
|
||||
|
||||
### New features
|
||||
|
||||
Upgraded to Unicode 11.
|
||||
|
||||
## 5.6.2 (2018-06-05)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
In the walker, go back to allowing the `baseVisitor` argument to be null to default to the default base everywhere.
|
||||
|
||||
## 5.6.1 (2018-06-01)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix regression when passing `null` as fourth argument to `walk.recursive`.
|
||||
|
||||
## 5.6.0 (2018-05-31)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix a bug in the walker that caused a crash when walking an object pattern spread.
|
||||
|
||||
### New features
|
||||
|
||||
Allow U+2028 and U+2029 in string when ECMAVersion >= 10.
|
||||
|
||||
Allow binding-less catch statements when ECMAVersion >= 10.
|
||||
|
||||
Add `allowAwaitOutsideFunction` option for parsing top-level `await`.
|
||||
|
||||
## 5.5.3 (2018-03-08)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps.
|
||||
|
||||
## 5.5.2 (2018-03-08)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0.
|
||||
|
||||
## 5.5.1 (2018-03-06)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix regression in walker causing property values in object patterns to be walked as expressions.
|
||||
|
||||
Fix misleading error message for octal escapes in template strings.
|
||||
|
||||
## 5.5.0 (2018-02-27)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Support object spread in the AST walker.
|
||||
|
||||
### New features
|
||||
|
||||
The identifier character categorization is now based on Unicode version 10.
|
||||
|
||||
Acorn will now validate the content of regular expressions, including new ES9 features.
|
||||
|
||||
## 5.4.1 (2018-02-02)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
5.4.0 somehow accidentally included an old version of walk.js.
|
||||
|
||||
## 5.4.0 (2018-02-01)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Disallow duplicate or escaped flags on regular expressions.
|
||||
|
||||
Disallow octal escapes in strings in strict mode.
|
||||
|
||||
### New features
|
||||
|
||||
Add support for async iteration.
|
||||
|
||||
Add support for object spread and rest.
|
||||
|
||||
## 5.3.0 (2017-12-28)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix parsing of floating point literals with leading zeroes in loose mode.
|
||||
|
||||
Allow duplicate property names in object patterns.
|
||||
|
||||
Don't allow static class methods named `prototype`.
|
||||
|
||||
Disallow async functions directly under `if` or `else`.
|
||||
|
||||
Parse right-hand-side of `for`/`of` as an assignment expression.
|
||||
|
||||
Stricter parsing of `for`/`in`.
|
||||
|
||||
Don't allow unicode escapes in contextual keywords.
|
||||
|
||||
### New features
|
||||
|
||||
Parsing class members was factored into smaller methods to allow plugins to hook into it.
|
||||
|
||||
## 5.2.1 (2017-10-30)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix a token context corruption bug.
|
||||
|
||||
## 5.2.0 (2017-10-30)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix token context tracking for `class` and `function` in property-name position.
|
||||
|
||||
Make sure `%*` isn't parsed as a valid operator.
|
||||
|
||||
The `full` and `fullAncestor` walkers no longer visit nodes multiple times.
|
||||
|
||||
Allow shorthand properties `get` and `set` to be followed by default values.
|
||||
|
||||
Disallow `super` when not in callee or object position.
|
||||
|
||||
### New features
|
||||
|
||||
Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements.
|
||||
|
||||
## 5.1.2 (2017-09-04)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Disable parsing of legacy HTML-style comments in modules.
|
||||
|
||||
Fix parsing of async methods whose names are keywords.
|
||||
|
||||
## 5.1.1 (2017-07-06)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix problem with disambiguating regexp and division after a class.
|
||||
|
||||
## 5.1.0 (2017-07-05)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`.
|
||||
|
||||
Parse zero-prefixed numbers with non-octal digits as decimal.
|
||||
|
||||
Allow object/array patterns in rest parameters.
|
||||
|
||||
Don't error when `yield` is used as a property name.
|
||||
|
||||
Allow `async` as a shorthand object property.
|
||||
|
||||
Make the ES module version of the loose parser actually work.
|
||||
|
||||
### New features
|
||||
|
||||
Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9.
|
||||
|
||||
New walker functions `full` and `fullAncestor`.
|
||||
|
||||
## 5.0.3 (2017-04-01)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix spurious duplicate variable definition errors for named functions.
|
||||
|
||||
## 5.0.2 (2017-03-30)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error.
|
||||
|
||||
## 5.0.0 (2017-03-28)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Raise an error for duplicated lexical bindings.
|
||||
|
||||
Fix spurious error when an assignement expression occurred after a spread expression.
|
||||
|
||||
Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions.
|
||||
|
||||
Allow labels in front or `var` declarations, even in strict mode.
|
||||
|
||||
### Breaking changes
|
||||
|
||||
Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`.
|
||||
|
||||
## 4.0.11 (2017-02-07)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Allow all forms of member expressions to be parenthesized as lvalue.
|
||||
|
||||
## 4.0.10 (2017-02-07)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Don't expect semicolons after default-exported functions or classes,
|
||||
even when they are expressions.
|
||||
|
||||
Check for use of `'use strict'` directives in non-simple parameter
|
||||
functions, even when already in strict mode.
|
||||
|
||||
## 4.0.9 (2017-02-06)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix incorrect error raised for parenthesized simple assignment
|
||||
targets, so that `(x) = 1` parses again.
|
||||
|
||||
## 4.0.8 (2017-02-03)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Solve spurious parenthesized pattern errors by temporarily erring on
|
||||
the side of accepting programs that our delayed errors don't handle
|
||||
correctly yet.
|
||||
|
||||
## 4.0.7 (2017-02-02)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Accept invalidly rejected code like `(x).y = 2` again.
|
||||
|
||||
Don't raise an error when a function _inside_ strict code has a
|
||||
non-simple parameter list.
|
||||
|
||||
## 4.0.6 (2017-02-02)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix exponential behavior (manifesting itself as a complete hang for
|
||||
even relatively small source files) introduced by the new 'use strict'
|
||||
check.
|
||||
|
||||
## 4.0.5 (2017-02-02)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Disallow parenthesized pattern expressions.
|
||||
|
||||
Allow keywords as export names.
|
||||
|
||||
Don't allow the `async` keyword to be parenthesized.
|
||||
|
||||
Properly raise an error when a keyword contains a character escape.
|
||||
|
||||
Allow `"use strict"` to appear after other string literal expressions.
|
||||
|
||||
Disallow labeled declarations.
|
||||
|
||||
## 4.0.4 (2016-12-19)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix issue with loading acorn_loose.js with an AMD loader.
|
||||
|
||||
Fix crash when `export` was followed by a keyword that can't be
|
||||
exported.
|
||||
|
||||
## 4.0.3 (2016-08-16)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Allow regular function declarations inside single-statement `if`
|
||||
branches in loose mode. Forbid them entirely in strict mode.
|
||||
|
||||
Properly parse properties named `async` in ES2017 mode.
|
||||
|
||||
Fix bug where reserved words were broken in ES2017 mode.
|
||||
|
||||
## 4.0.2 (2016-08-11)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Don't ignore period or 'e' characters after octal numbers.
|
||||
|
||||
Fix broken parsing for call expressions in default parameter values
|
||||
of arrow functions.
|
||||
|
||||
## 4.0.1 (2016-08-08)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix false positives in duplicated export name errors.
|
||||
|
||||
## 4.0.0 (2016-08-07)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
The default `ecmaVersion` option value is now 7.
|
||||
|
||||
A number of internal method signatures changed, so plugins might need
|
||||
to be updated.
|
||||
|
||||
### Bug fixes
|
||||
|
||||
The parser now raises errors on duplicated export names.
|
||||
|
||||
`arguments` and `eval` can now be used in shorthand properties.
|
||||
|
||||
Duplicate parameter names in non-simple argument lists now always
|
||||
produce an error.
|
||||
|
||||
### New features
|
||||
|
||||
The `ecmaVersion` option now also accepts year-style version numbers
|
||||
(2015, etc).
|
||||
|
||||
Support for `async`/`await` syntax when `ecmaVersion` is >= 8.
|
||||
|
||||
Support for trailing commas in call expressions when `ecmaVersion`
|
||||
is >= 8.
|
||||
|
||||
## 3.3.0 (2016-07-25)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix bug in tokenizing of regexp operator after a function declaration.
|
||||
|
||||
Fix parser crash when parsing an array pattern with a hole.
|
||||
|
||||
### New features
|
||||
|
||||
Implement check against complex argument lists in functions that
|
||||
enable strict mode in ES7.
|
||||
|
||||
## 3.2.0 (2016-06-07)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Improve handling of lack of unicode regexp support in host
|
||||
environment.
|
||||
|
||||
Properly reject shorthand properties whose name is a keyword.
|
||||
|
||||
Don't crash when the loose parser is called without options object.
|
||||
|
||||
### New features
|
||||
|
||||
Visitors created with `visit.make` now have their base as _prototype_,
|
||||
rather than copying properties into a fresh object.
|
||||
|
||||
Make it possible to use `visit.ancestor` with a walk state.
|
||||
|
||||
## 3.1.0 (2016-04-18)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix issue where the loose parser created invalid TemplateElement nodes
|
||||
for unclosed template literals.
|
||||
|
||||
Properly tokenize the division operator directly after a function
|
||||
expression.
|
||||
|
||||
Allow trailing comma in destructuring arrays.
|
||||
|
||||
### New features
|
||||
|
||||
The walker now allows defining handlers for `CatchClause` nodes.
|
||||
|
||||
## 3.0.4 (2016-02-25)
|
||||
|
||||
### Fixes
|
||||
|
||||
Allow update expressions as left-hand-side of the ES7 exponential
|
||||
operator.
|
||||
|
||||
## 3.0.2 (2016-02-10)
|
||||
|
||||
### Fixes
|
||||
|
||||
Fix bug that accidentally made `undefined` a reserved word when
|
||||
parsing ES7.
|
||||
|
||||
## 3.0.0 (2016-02-10)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
The default value of the `ecmaVersion` option is now 6 (used to be 5).
|
||||
|
||||
Support for comprehension syntax (which was dropped from the draft
|
||||
spec) has been removed.
|
||||
|
||||
### Fixes
|
||||
|
||||
`let` and `yield` are now “contextual keywords”, meaning you can
|
||||
mostly use them as identifiers in ES5 non-strict code.
|
||||
|
||||
A parenthesized class or function expression after `export default` is
|
||||
now parsed correctly.
|
||||
|
||||
### New features
|
||||
|
||||
When `ecmaVersion` is set to 7, Acorn will parse the exponentiation
|
||||
operator (`**`).
|
||||
|
||||
The identifier character ranges are now based on Unicode 8.0.0.
|
||||
|
||||
Plugins can now override the `raiseRecoverable` method to override the
|
||||
way non-critical errors are handled.
|
||||
|
||||
## 2.7.0 (2016-01-04)
|
||||
|
||||
### Fixes
|
||||
|
||||
Stop allowing rest parameters in setters.
|
||||
|
||||
Make sure the loose parser always attaches a `local` property to
|
||||
`ImportNamespaceSpecifier` nodes.
|
||||
|
||||
Disallow `y` rexexp flag in ES5.
|
||||
|
||||
Disallow `\00` and `\000` escapes in strict mode.
|
||||
|
||||
Raise an error when an import name is a reserved word.
|
||||
|
||||
## 2.6.4 (2015-11-12)
|
||||
|
||||
### Fixes
|
||||
|
||||
Fix crash in loose parser when parsing invalid object pattern.
|
||||
|
||||
### New features
|
||||
|
||||
Support plugins in the loose parser.
|
||||
|
||||
## 2.6.2 (2015-11-10)
|
||||
|
||||
### Fixes
|
||||
|
||||
Don't crash when no options object is passed.
|
||||
|
||||
## 2.6.0 (2015-11-09)
|
||||
|
||||
### Fixes
|
||||
|
||||
Add `await` as a reserved word in module sources.
|
||||
|
||||
Disallow `yield` in a parameter default value for a generator.
|
||||
|
||||
Forbid using a comma after a rest pattern in an array destructuring.
|
||||
|
||||
### New features
|
||||
|
||||
Support parsing stdin in command-line tool.
|
||||
|
||||
## 2.5.2 (2015-10-27)
|
||||
|
||||
### Fixes
|
||||
|
||||
Fix bug where the walker walked an exported `let` statement as an
|
||||
expression.
|
||||
|
||||
## 2.5.0 (2015-10-27)
|
||||
|
||||
### Fixes
|
||||
|
||||
Fix tokenizer support in the command-line tool.
|
||||
|
||||
In the loose parser, don't allow non-string-literals as import
|
||||
sources.
|
||||
|
||||
Stop allowing `new.target` outside of functions.
|
||||
|
||||
Remove legacy `guard` and `guardedHandler` properties from try nodes.
|
||||
|
||||
Stop allowing multiple `__proto__` properties on an object literal in
|
||||
strict mode.
|
||||
|
||||
Don't allow rest parameters to be non-identifier patterns.
|
||||
|
||||
Check for duplicate paramter names in arrow functions.
|
||||
19
node_modules/acorn/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2012-2018 by various contributors (see AUTHORS)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
467
node_modules/acorn/README.md
generated
vendored
Normal file
@@ -0,0 +1,467 @@
|
||||
# Acorn
|
||||
|
||||
[](https://travis-ci.org/acornjs/acorn)
|
||||
[](https://www.npmjs.com/package/acorn)
|
||||
[](https://cdnjs.com/libraries/acorn)
|
||||
[Author funding status: ](https://marijnhaverbeke.nl/fund/)
|
||||
|
||||
A tiny, fast JavaScript parser, written completely in JavaScript.
|
||||
|
||||
## Community
|
||||
|
||||
Acorn is open source software released under an
|
||||
[MIT license](https://github.com/acornjs/acorn/blob/master/LICENSE).
|
||||
|
||||
You are welcome to
|
||||
[report bugs](https://github.com/acornjs/acorn/issues) or create pull
|
||||
requests on [github](https://github.com/acornjs/acorn). For questions
|
||||
and discussion, please use the
|
||||
[Tern discussion forum](https://discuss.ternjs.net).
|
||||
|
||||
## Installation
|
||||
|
||||
The easiest way to install acorn is with [`npm`][npm].
|
||||
|
||||
[npm]: https://www.npmjs.com/
|
||||
|
||||
```sh
|
||||
npm install acorn
|
||||
```
|
||||
|
||||
Alternately, you can download the source and build acorn yourself:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/acornjs/acorn.git
|
||||
cd acorn
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Components
|
||||
|
||||
When run in a CommonJS (node.js) or AMD environment, exported values
|
||||
appear in the interfaces exposed by the individual files, as usual.
|
||||
When loaded in the browser (Acorn works in any JS-enabled browser more
|
||||
recent than IE5) without any kind of module management, a single
|
||||
global object `acorn` will be defined, and all the exported properties
|
||||
will be added to that.
|
||||
|
||||
### Main parser
|
||||
|
||||
This is implemented in `dist/acorn.js`, and is what you get when you
|
||||
`require("acorn")` in node.js.
|
||||
|
||||
**parse**`(input, options)` is used to parse a JavaScript program.
|
||||
The `input` parameter is a string, `options` can be undefined or an
|
||||
object setting some of the options listed below. The return value will
|
||||
be an abstract syntax tree object as specified by the
|
||||
[ESTree spec][estree].
|
||||
|
||||
When encountering a syntax error, the parser will raise a
|
||||
`SyntaxError` object with a meaningful message. The error object will
|
||||
have a `pos` property that indicates the character offset at which the
|
||||
error occurred, and a `loc` object that contains a `{line, column}`
|
||||
object referring to that same position.
|
||||
|
||||
[estree]: https://github.com/estree/estree
|
||||
|
||||
- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be
|
||||
either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018) or 10 (2019, partial
|
||||
support). This influences support for strict mode, the set of
|
||||
reserved words, and support for new syntax features. Default is 7.
|
||||
|
||||
**NOTE**: Only 'stage 4' (finalized) ECMAScript features are being
|
||||
implemented by Acorn.
|
||||
|
||||
- **sourceType**: Indicate the mode the code should be parsed in. Can be
|
||||
either `"script"` or `"module"`. This influences global strict mode
|
||||
and parsing of `import` and `export` declarations.
|
||||
|
||||
- **onInsertedSemicolon**: If given a callback, that callback will be
|
||||
called whenever a missing semicolon is inserted by the parser. The
|
||||
callback will be given the character offset of the point where the
|
||||
semicolon is inserted as argument, and if `locations` is on, also a
|
||||
`{line, column}` object representing this position.
|
||||
|
||||
- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing
|
||||
commas.
|
||||
|
||||
- **allowReserved**: If `false`, using a reserved word will generate
|
||||
an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher
|
||||
versions. When given the value `"never"`, reserved words and
|
||||
keywords can also not be used as property names (as in Internet
|
||||
Explorer's old parser).
|
||||
|
||||
- **allowReturnOutsideFunction**: By default, a return statement at
|
||||
the top level raises an error. Set this to `true` to accept such
|
||||
code.
|
||||
|
||||
- **allowImportExportEverywhere**: By default, `import` and `export`
|
||||
declarations can only appear at a program's top level. Setting this
|
||||
option to `true` allows them anywhere where a statement is allowed.
|
||||
|
||||
- **allowAwaitOutsideFunction**: By default, `await` expressions can only appear inside `async` functions. Setting this option to `true` allows to have top-level `await` expressions. They are still not allowed in non-`async` functions, though.
|
||||
|
||||
- **allowHashBang**: When this is enabled (off by default), if the
|
||||
code starts with the characters `#!` (as in a shellscript), the
|
||||
first line will be treated as a comment.
|
||||
|
||||
- **locations**: When `true`, each node has a `loc` object attached
|
||||
with `start` and `end` subobjects, each of which contains the
|
||||
one-based line and zero-based column numbers in `{line, column}`
|
||||
form. Default is `false`.
|
||||
|
||||
- **onToken**: If a function is passed for this option, each found
|
||||
token will be passed in same format as tokens returned from
|
||||
`tokenizer().getToken()`.
|
||||
|
||||
If array is passed, each found token is pushed to it.
|
||||
|
||||
Note that you are not allowed to call the parser from the
|
||||
callback—that will corrupt its internal state.
|
||||
|
||||
- **onComment**: If a function is passed for this option, whenever a
|
||||
comment is encountered the function will be called with the
|
||||
following parameters:
|
||||
|
||||
- `block`: `true` if the comment is a block comment, false if it
|
||||
is a line comment.
|
||||
- `text`: The content of the comment.
|
||||
- `start`: Character offset of the start of the comment.
|
||||
- `end`: Character offset of the end of the comment.
|
||||
|
||||
When the `locations` options is on, the `{line, column}` locations
|
||||
of the comment’s start and end are passed as two additional
|
||||
parameters.
|
||||
|
||||
If array is passed for this option, each found comment is pushed
|
||||
to it as object in Esprima format:
|
||||
|
||||
```javascript
|
||||
{
|
||||
"type": "Line" | "Block",
|
||||
"value": "comment text",
|
||||
"start": Number,
|
||||
"end": Number,
|
||||
// If `locations` option is on:
|
||||
"loc": {
|
||||
"start": {line: Number, column: Number}
|
||||
"end": {line: Number, column: Number}
|
||||
},
|
||||
// If `ranges` option is on:
|
||||
"range": [Number, Number]
|
||||
}
|
||||
```
|
||||
|
||||
Note that you are not allowed to call the parser from the
|
||||
callback—that will corrupt its internal state.
|
||||
|
||||
- **ranges**: Nodes have their start and end characters offsets
|
||||
recorded in `start` and `end` properties (directly on the node,
|
||||
rather than the `loc` object, which holds line/column data. To also
|
||||
add a [semi-standardized][range] `range` property holding a
|
||||
`[start, end]` array with the same numbers, set the `ranges` option
|
||||
to `true`.
|
||||
|
||||
- **program**: It is possible to parse multiple files into a single
|
||||
AST by passing the tree produced by parsing the first file as the
|
||||
`program` option in subsequent parses. This will add the toplevel
|
||||
forms of the parsed file to the "Program" (top) node of an existing
|
||||
parse tree.
|
||||
|
||||
- **sourceFile**: When the `locations` option is `true`, you can pass
|
||||
this option to add a `source` attribute in every node’s `loc`
|
||||
object. Note that the contents of this option are not examined or
|
||||
processed in any way; you are free to use whatever format you
|
||||
choose.
|
||||
|
||||
- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property
|
||||
will be added (regardless of the `location` option) directly to the
|
||||
nodes, rather than the `loc` object.
|
||||
|
||||
- **preserveParens**: If this option is `true`, parenthesized expressions
|
||||
are represented by (non-standard) `ParenthesizedExpression` nodes
|
||||
that have a single `expression` property containing the expression
|
||||
inside parentheses.
|
||||
|
||||
[range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
|
||||
|
||||
**parseExpressionAt**`(input, offset, options)` will parse a single
|
||||
expression in a string, and return its AST. It will not complain if
|
||||
there is more of the string left after the expression.
|
||||
|
||||
**getLineInfo**`(input, offset)` can be used to get a `{line,
|
||||
column}` object for a given program string and character offset.
|
||||
|
||||
**tokenizer**`(input, options)` returns an object with a `getToken`
|
||||
method that can be called repeatedly to get the next token, a `{start,
|
||||
end, type, value}` object (with added `loc` property when the
|
||||
`locations` option is enabled and `range` property when the `ranges`
|
||||
option is enabled). When the token's type is `tokTypes.eof`, you
|
||||
should stop calling the method, since it will keep returning that same
|
||||
token forever.
|
||||
|
||||
In ES6 environment, returned result can be used as any other
|
||||
protocol-compliant iterable:
|
||||
|
||||
```javascript
|
||||
for (let token of acorn.tokenizer(str)) {
|
||||
// iterate over the tokens
|
||||
}
|
||||
|
||||
// transform code to array of tokens:
|
||||
var tokens = [...acorn.tokenizer(str)];
|
||||
```
|
||||
|
||||
**tokTypes** holds an object mapping names to the token type objects
|
||||
that end up in the `type` properties of tokens.
|
||||
|
||||
#### Note on using with [Escodegen][escodegen]
|
||||
|
||||
Escodegen supports generating comments from AST, attached in
|
||||
Esprima-specific format. In order to simulate same format in
|
||||
Acorn, consider following example:
|
||||
|
||||
```javascript
|
||||
var comments = [], tokens = [];
|
||||
|
||||
var ast = acorn.parse('var x = 42; // answer', {
|
||||
// collect ranges for each node
|
||||
ranges: true,
|
||||
// collect comments in Esprima's format
|
||||
onComment: comments,
|
||||
// collect token ranges
|
||||
onToken: tokens
|
||||
});
|
||||
|
||||
// attach comments using collected information
|
||||
escodegen.attachComments(ast, comments, tokens);
|
||||
|
||||
// generate code
|
||||
console.log(escodegen.generate(ast, {comment: true}));
|
||||
// > 'var x = 42; // answer'
|
||||
```
|
||||
|
||||
[escodegen]: https://github.com/estools/escodegen
|
||||
|
||||
### dist/acorn_loose.js ###
|
||||
|
||||
This file implements an error-tolerant parser. It exposes a single
|
||||
function. The loose parser is accessible in node.js via `require("acorn/dist/acorn_loose")`.
|
||||
|
||||
**parse_dammit**`(input, options)` takes the same arguments and
|
||||
returns the same syntax tree as the `parse` function in `acorn.js`,
|
||||
but never raises an error, and will do its best to parse syntactically
|
||||
invalid code in as meaningful a way as it can. It'll insert identifier
|
||||
nodes with name `"✖"` as placeholders in places where it can't make
|
||||
sense of the input. Depends on `acorn.js`, because it uses the same
|
||||
tokenizer.
|
||||
|
||||
### dist/walk.js ###
|
||||
|
||||
Implements an abstract syntax tree walker. Will store its interface in
|
||||
`acorn.walk` when loaded without a module system.
|
||||
|
||||
**simple**`(node, visitors, base, state)` does a 'simple' walk over
|
||||
a tree. `node` should be the AST node to walk, and `visitors` an
|
||||
object with properties whose names correspond to node types in the
|
||||
[ESTree spec][estree]. The properties should contain functions
|
||||
that will be called with the node object and, if applicable the state
|
||||
at that point. The last two arguments are optional. `base` is a walker
|
||||
algorithm, and `state` is a start state. The default walker will
|
||||
simply visit all statements and expressions and not produce a
|
||||
meaningful state. (An example of a use of state is to track scope at
|
||||
each point in the tree.)
|
||||
|
||||
```js
|
||||
const acorn = require("acorn")
|
||||
const walk = require("acorn/dist/walk")
|
||||
|
||||
walk.simple(acorn.parse("let x = 10"), {
|
||||
Literal(node) {
|
||||
console.log(`Found a literal: ${node.value}`)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
**ancestor**`(node, visitors, base, state)` does a 'simple' walk over
|
||||
a tree, building up an array of ancestor nodes (including the current node)
|
||||
and passing the array to the callbacks as a third parameter.
|
||||
|
||||
```js
|
||||
const acorn = require("acorn")
|
||||
const walk = require("acorn/dist/walk")
|
||||
|
||||
walk.ancestor(acorn.parse("foo('hi')"), {
|
||||
Literal(_, ancestors) {
|
||||
console.log("This literal's ancestors are:",
|
||||
ancestors.map(n => n.type))
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
**recursive**`(node, state, functions, base)` does a 'recursive'
|
||||
walk, where the walker functions are responsible for continuing the
|
||||
walk on the child nodes of their target node. `state` is the start
|
||||
state, and `functions` should contain an object that maps node types
|
||||
to walker functions. Such functions are called with `(node, state, c)`
|
||||
arguments, and can cause the walk to continue on a sub-node by calling
|
||||
the `c` argument on it with `(node, state)` arguments. The optional
|
||||
`base` argument provides the fallback walker functions for node types
|
||||
that aren't handled in the `functions` object. If not given, the
|
||||
default walkers will be used.
|
||||
|
||||
**make**`(functions, base)` builds a new walker object by using the
|
||||
walker functions in `functions` and filling in the missing ones by
|
||||
taking defaults from `base`.
|
||||
|
||||
**full**`(node, callback, base, state)` does a 'full'
|
||||
walk over a tree, calling the callback with the arguments (node, state, type)
|
||||
for each node
|
||||
|
||||
**fullAncestor**`(node, callback, base, state)` does a 'full' walk over
|
||||
a tree, building up an array of ancestor nodes (including the current node)
|
||||
and passing the array to the callbacks as a third parameter.
|
||||
|
||||
```js
|
||||
const acorn = require("acorn")
|
||||
const walk = require("acorn/dist/walk")
|
||||
|
||||
walk.full(acorn.parse("1 + 1"), node => {
|
||||
console.log(`There's a ${node.type} node at ${node.ch}`)
|
||||
})
|
||||
```
|
||||
|
||||
**findNodeAt**`(node, start, end, test, base, state)` tries to
|
||||
locate a node in a tree at the given start and/or end offsets, which
|
||||
satisfies the predicate `test`. `start` and `end` can be either `null`
|
||||
(as wildcard) or a number. `test` may be a string (indicating a node
|
||||
type) or a function that takes `(nodeType, node)` arguments and
|
||||
returns a boolean indicating whether this node is interesting. `base`
|
||||
and `state` are optional, and can be used to specify a custom walker.
|
||||
Nodes are tested from inner to outer, so if two nodes match the
|
||||
boundaries, the inner one will be preferred.
|
||||
|
||||
**findNodeAround**`(node, pos, test, base, state)` is a lot like
|
||||
`findNodeAt`, but will match any node that exists 'around' (spanning)
|
||||
the given position.
|
||||
|
||||
**findNodeAfter**`(node, pos, test, base, state)` is similar to
|
||||
`findNodeAround`, but will match all nodes *after* the given position
|
||||
(testing outer nodes before inner nodes).
|
||||
|
||||
## Command line interface
|
||||
|
||||
The `bin/acorn` utility can be used to parse a file from the command
|
||||
line. It accepts as arguments its input file and the following
|
||||
options:
|
||||
|
||||
- `--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10`: Sets the ECMAScript version
|
||||
to parse. Default is version 7.
|
||||
|
||||
- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise.
|
||||
|
||||
- `--locations`: Attaches a "loc" object to each node with "start" and
|
||||
"end" subobjects, each of which contains the one-based line and
|
||||
zero-based column numbers in `{line, column}` form.
|
||||
|
||||
- `--allow-hash-bang`: If the code starts with the characters #! (as in a shellscript), the first line will be treated as a comment.
|
||||
|
||||
- `--compact`: No whitespace is used in the AST output.
|
||||
|
||||
- `--silent`: Do not output the AST, just return the exit status.
|
||||
|
||||
- `--help`: Print the usage information and quit.
|
||||
|
||||
The utility spits out the syntax tree as JSON data.
|
||||
|
||||
## Build system
|
||||
|
||||
Acorn is written in ECMAScript 6, as a set of small modules, in the
|
||||
project's `src` directory, and compiled down to bigger ECMAScript 3
|
||||
files in `dist` using [Browserify](http://browserify.org) and
|
||||
[Babel](http://babeljs.io/). If you are already using Babel, you can
|
||||
consider including the modules directly.
|
||||
|
||||
The command-line test runner (`npm test`) uses the ES6 modules. The
|
||||
browser-based test page (`test/index.html`) uses the compiled modules.
|
||||
The `bin/build-acorn.js` script builds the latter from the former.
|
||||
|
||||
If you are working on Acorn, you'll probably want to try the code out
|
||||
directly, without an intermediate build step. In your scripts, you can
|
||||
register the Babel require shim like this:
|
||||
|
||||
require("babel-core/register")
|
||||
|
||||
That will allow you to directly `require` the ES6 modules.
|
||||
|
||||
## Plugins
|
||||
|
||||
Acorn is designed support allow plugins which, within reasonable
|
||||
bounds, redefine the way the parser works. Plugins can add new token
|
||||
types and new tokenizer contexts (if necessary), and extend methods in
|
||||
the parser object. This is not a clean, elegant API—using it requires
|
||||
an understanding of Acorn's internals, and plugins are likely to break
|
||||
whenever those internals are significantly changed. But still, it is
|
||||
_possible_, in this way, to create parsers for JavaScript dialects
|
||||
without forking all of Acorn. And in principle it is even possible to
|
||||
combine such plugins, so that if you have, for example, a plugin for
|
||||
parsing types and a plugin for parsing JSX-style XML literals, you
|
||||
could load them both and parse code with both JSX tags and types.
|
||||
|
||||
A plugin should register itself by adding a property to
|
||||
`acorn.plugins`, which holds a function. Calling `acorn.parse`, a
|
||||
`plugins` option can be passed, holding an object mapping plugin names
|
||||
to configuration values (or just `true` for plugins that don't take
|
||||
options). After the parser object has been created, the initialization
|
||||
functions for the chosen plugins are called with `(parser,
|
||||
configValue)` arguments. They are expected to use the `parser.extend`
|
||||
method to extend parser methods. For example, the `readToken` method
|
||||
could be extended like this:
|
||||
|
||||
```javascript
|
||||
parser.extend("readToken", function(nextMethod) {
|
||||
return function(code) {
|
||||
console.log("Reading a token!")
|
||||
return nextMethod.call(this, code)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
The `nextMethod` argument passed to `extend`'s second argument is the
|
||||
previous value of this method, and should usually be called through to
|
||||
whenever the extended method does not handle the call itself.
|
||||
|
||||
Similarly, the loose parser allows plugins to register themselves via
|
||||
`acorn.pluginsLoose`. The extension mechanism is the same as for the
|
||||
normal parser:
|
||||
|
||||
```javascript
|
||||
looseParser.extend("readToken", function(nextMethod) {
|
||||
return function() {
|
||||
console.log("Reading a token in the loose parser!")
|
||||
return nextMethod.call(this)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
### Existing plugins
|
||||
|
||||
- [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx)
|
||||
- [`acorn-objj`](https://github.com/cappuccino/acorn-objj): [Objective-J](http://www.cappuccino-project.org/learn/objective-j.html) language parser built as Acorn plugin
|
||||
|
||||
Plugins for ECMAScript proposals:
|
||||
|
||||
- [`acorn-stage3`](https://github.com/acornjs/acorn-stage3): Parse most stage 3 proposals, bundling:
|
||||
- [`acorn-async-iteration`](https://github.com/acornjs/acorn-async-iteration): Parse [async iteration proposal](https://github.com/tc39/proposal-async-iteration)
|
||||
- [`acorn-bigint`](https://github.com/acornjs/acorn-bigint): Parse [BigInt proposal](https://github.com/tc39/proposal-bigint)
|
||||
- [`acorn-class-fields`](https://github.com/acornjs/acorn-class-fields): Parse [class fields proposal](https://github.com/tc39/proposal-class-fields)
|
||||
- [`acorn-dynamic-import`](https://github.com/kesne/acorn-dynamic-import): Parse [import() proposal](https://github.com/tc39/proposal-dynamic-import)
|
||||
- [`acorn-import-meta`](https://github.com/acornjs/acorn-import-meta): Parse [import.meta proposal](https://github.com/tc39/proposal-import-meta)
|
||||
- [`acorn-numeric-separator`](https://github.com/acornjs/acorn-numeric-separator): Parse [numeric separator proposal](https://github.com/tc39/proposal-numeric-separator)
|
||||
- [`acorn-optional-catch-binding`](https://github.com/acornjs/acorn-optional-catch-binding): Parse [optional catch binding proposal](https://github.com/tc39/proposal-optional-catch-binding)
|
||||
- [`acorn-private-methods`](https://github.com/acornjs/acorn-private-methods): parse [private methods, getters and setters proposal](https://github.com/tc39/proposal-private-methods)
|
||||
- [`acorn5-object-spread`](https://github.com/adrianheine/acorn5-object-spread): Parse [Object Rest/Spread Properties proposal](https://github.com/tc39/proposal-object-rest-spread)
|
||||
- [`acorn-object-rest-spread`](https://github.com/victor-homyakov/acorn-object-rest-spread): Parse [Object Rest/Spread Properties proposal](https://github.com/tc39/proposal-object-rest-spread)
|
||||
- [`acorn-es7`](https://github.com/angelozerr/acorn-es7): Parse [decorator syntax proposal](https://github.com/wycats/javascript-decorators)
|
||||
- [`acorn-static-class-property-initializer`](https://github.com/victor-homyakov/acorn-static-class-property-initializer): Partial support for static class properties from [ES Class Fields & Static Properties Proposal](https://github.com/tc39/proposal-class-public-fields) to support static property initializers in [React components written as ES6+ classes](https://babeljs.io/blog/2015/07/07/react-on-es6-plus)
|
||||