Merge pull request #827 from 30-seconds/pack-test-updates
[SCRIPTS] Packaging and testing updates
This commit is contained in:
1290
dist/_30s.es5.js
vendored
1290
dist/_30s.es5.js
vendored
File diff suppressed because it is too large
Load Diff
2
dist/_30s.es5.min.js
vendored
2
dist/_30s.es5.min.js
vendored
File diff suppressed because one or more lines are too long
2962
dist/_30s.esm.js
vendored
2962
dist/_30s.esm.js
vendored
File diff suppressed because it is too large
Load Diff
3305
dist/_30s.js
vendored
3305
dist/_30s.js
vendored
File diff suppressed because it is too large
Load Diff
682
package-lock.json
generated
682
package-lock.json
generated
@ -933,23 +933,6 @@
|
||||
"acorn": "5.5.3"
|
||||
}
|
||||
},
|
||||
"acorn-jsx": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
|
||||
"integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"acorn": "3.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"acorn": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
|
||||
"integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"ajv": {
|
||||
"version": "5.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
||||
@ -962,12 +945,6 @@
|
||||
"json-schema-traverse": "0.3.1"
|
||||
}
|
||||
},
|
||||
"ajv-keywords": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
|
||||
"integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
|
||||
"dev": true
|
||||
},
|
||||
"amdefine": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
||||
@ -1357,16 +1334,6 @@
|
||||
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
|
||||
"dev": true
|
||||
},
|
||||
"array-includes": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
|
||||
"integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "1.1.2",
|
||||
"es-abstract": "1.11.0"
|
||||
}
|
||||
},
|
||||
"array-union": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
|
||||
@ -1394,12 +1361,6 @@
|
||||
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
||||
"dev": true
|
||||
},
|
||||
"asap": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
|
||||
"dev": true
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
@ -2291,12 +2252,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"chardet": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
|
||||
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
|
||||
"dev": true
|
||||
},
|
||||
"ci-info": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.5.1.tgz",
|
||||
@ -2457,30 +2412,12 @@
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||
"dev": true
|
||||
},
|
||||
"concat-stream": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
|
||||
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-from": "1.1.0",
|
||||
"inherits": "2.0.3",
|
||||
"readable-stream": "2.3.3",
|
||||
"typedarray": "0.0.6"
|
||||
}
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
|
||||
"dev": true
|
||||
},
|
||||
"contains-path": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
|
||||
"integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
|
||||
"dev": true
|
||||
},
|
||||
"convert-source-map": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
|
||||
@ -2605,12 +2542,6 @@
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"debug-log": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz",
|
||||
"integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=",
|
||||
"dev": true
|
||||
},
|
||||
"decamelize": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||
@ -2712,20 +2643,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"deglob": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz",
|
||||
"integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-root": "1.1.0",
|
||||
"glob": "7.1.2",
|
||||
"ignore": "3.3.8",
|
||||
"pkg-config": "1.1.1",
|
||||
"run-parallel": "1.1.9",
|
||||
"uniq": "1.0.1"
|
||||
}
|
||||
},
|
||||
"del": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
|
||||
@ -2822,15 +2739,6 @@
|
||||
"integrity": "sha512-h3zEBLdHvsKfaXv1SHAtykJyNtwYFEKkrWGSFyW1BzGgPQ4ykAzD5Hd8C5MZGTAEhkCKmtyIwYUrapsI0xfKww==",
|
||||
"dev": true
|
||||
},
|
||||
"encoding": {
|
||||
"version": "0.1.12",
|
||||
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
|
||||
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"iconv-lite": "0.4.19"
|
||||
}
|
||||
},
|
||||
"entities": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
|
||||
@ -3116,97 +3024,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-config-semistandard": {
|
||||
"version": "12.0.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-12.0.1.tgz",
|
||||
"integrity": "sha512-4zaPW5uRFasf2uRZkE19Y+W84KBV3q+oyWYOsgUN+5DQXE5HCsh7ZxeWDXxozk7NPycGm0kXcsJzLe5GZ1jCeg==",
|
||||
"dev": true
|
||||
},
|
||||
"eslint-config-standard-jsx": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz",
|
||||
"integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==",
|
||||
"dev": true
|
||||
},
|
||||
"eslint-import-resolver-node": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
|
||||
"integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"resolve": "1.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-module-utils": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
|
||||
"integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"pkg-dir": "1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"pkg-dir": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
|
||||
"integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-up": "1.1.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-plugin-async-await": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-async-await/-/eslint-plugin-async-await-0.0.0.tgz",
|
||||
"integrity": "sha1-DyrhejgUeAY11I8kCd+eN4mMoJ8=",
|
||||
"dev": true
|
||||
},
|
||||
"eslint-plugin-react": {
|
||||
"version": "7.6.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.6.1.tgz",
|
||||
"integrity": "sha512-30aMOHWX/DOaaLJVBHz6RMvYM2qy5GH63+y2PLFdIrYe4YLtODFmT3N1YA7ZqUnaBweVbedr4K4cqxOlWAPjIw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"doctrine": "2.1.0",
|
||||
"has": "1.0.1",
|
||||
"jsx-ast-utils": "2.0.1",
|
||||
"prop-types": "15.6.1"
|
||||
}
|
||||
},
|
||||
"eslint-scope": {
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
|
||||
"integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"esrecurse": "4.2.1",
|
||||
"estraverse": "4.2.0"
|
||||
}
|
||||
},
|
||||
"eslint-utils": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz",
|
||||
@ -3219,16 +3036,6 @@
|
||||
"integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
|
||||
"dev": true
|
||||
},
|
||||
"espree": {
|
||||
"version": "3.5.4",
|
||||
"resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
|
||||
"integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"acorn": "5.5.3",
|
||||
"acorn-jsx": "3.0.1"
|
||||
}
|
||||
},
|
||||
"esprima": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
|
||||
@ -3360,17 +3167,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"external-editor": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
|
||||
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chardet": "0.4.2",
|
||||
"iconv-lite": "0.4.19",
|
||||
"tmp": "0.0.33"
|
||||
}
|
||||
},
|
||||
"extglob": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
|
||||
@ -3413,29 +3209,6 @@
|
||||
"bser": "2.0.0"
|
||||
}
|
||||
},
|
||||
"fbjs": {
|
||||
"version": "0.8.17",
|
||||
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
|
||||
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-js": "1.2.7",
|
||||
"isomorphic-fetch": "2.2.1",
|
||||
"loose-envify": "1.3.1",
|
||||
"object-assign": "4.1.1",
|
||||
"promise": "7.3.1",
|
||||
"setimmediate": "1.0.5",
|
||||
"ua-parser-js": "0.7.18"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": {
|
||||
"version": "1.2.7",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
|
||||
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"figures": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
|
||||
@ -3484,12 +3257,6 @@
|
||||
"repeat-string": "1.6.1"
|
||||
}
|
||||
},
|
||||
"find-root": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
|
||||
"integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
|
||||
"dev": true
|
||||
},
|
||||
"find-up": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
|
||||
@ -4661,18 +4428,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.19",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
||||
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
|
||||
"dev": true
|
||||
},
|
||||
"ignore": {
|
||||
"version": "3.3.8",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz",
|
||||
"integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==",
|
||||
"dev": true
|
||||
},
|
||||
"import-local": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
|
||||
@ -4720,54 +4475,6 @@
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"dev": true
|
||||
},
|
||||
"inquirer": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
|
||||
"integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-escapes": "3.1.0",
|
||||
"chalk": "2.4.1",
|
||||
"cli-cursor": "2.1.0",
|
||||
"cli-width": "2.2.0",
|
||||
"external-editor": "2.2.0",
|
||||
"figures": "2.0.0",
|
||||
"lodash": "4.17.11",
|
||||
"mute-stream": "0.0.7",
|
||||
"run-async": "2.3.0",
|
||||
"rx-lite": "4.0.8",
|
||||
"rx-lite-aggregates": "4.0.8",
|
||||
"string-width": "2.1.1",
|
||||
"strip-ansi": "4.0.0",
|
||||
"through": "2.3.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
|
||||
"dev": true
|
||||
},
|
||||
"figures": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
|
||||
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"escape-string-regexp": "1.0.5"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"invariant": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
|
||||
@ -5059,16 +4766,6 @@
|
||||
"isarray": "1.0.0"
|
||||
}
|
||||
},
|
||||
"isomorphic-fetch": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
|
||||
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"node-fetch": "1.7.3",
|
||||
"whatwg-fetch": "2.0.4"
|
||||
}
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
@ -5746,15 +5443,6 @@
|
||||
"verror": "1.10.0"
|
||||
}
|
||||
},
|
||||
"jsx-ast-utils": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz",
|
||||
"integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"array-includes": "3.0.3"
|
||||
}
|
||||
},
|
||||
"kind-of": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||
@ -5810,18 +5498,6 @@
|
||||
"uc.micro": "1.0.5"
|
||||
}
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
|
||||
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"parse-json": "2.2.0",
|
||||
"pify": "2.3.0",
|
||||
"strip-bom": "3.0.0"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
|
||||
@ -5858,12 +5534,6 @@
|
||||
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.cond": {
|
||||
"version": "4.5.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz",
|
||||
"integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.isplainobject": {
|
||||
"version": "4.0.6",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
|
||||
@ -6217,16 +5887,6 @@
|
||||
"lower-case": "1.1.4"
|
||||
}
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
|
||||
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"encoding": "0.1.12",
|
||||
"is-stream": "1.1.0"
|
||||
}
|
||||
},
|
||||
"node-gyp": {
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
|
||||
@ -6824,66 +6484,6 @@
|
||||
"pinkie": "2.0.4"
|
||||
}
|
||||
},
|
||||
"pkg-conf": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz",
|
||||
"integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-up": "2.1.0",
|
||||
"load-json-file": "4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"find-up": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "2.0.0"
|
||||
}
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
|
||||
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"parse-json": "4.0.0",
|
||||
"pify": "3.0.0",
|
||||
"strip-bom": "3.0.0"
|
||||
}
|
||||
},
|
||||
"parse-json": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
|
||||
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"error-ex": "1.3.1",
|
||||
"json-parse-better-errors": "1.0.2"
|
||||
}
|
||||
},
|
||||
"pify": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"pkg-config": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz",
|
||||
"integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug-log": "1.0.1",
|
||||
"find-root": "1.1.0",
|
||||
"xtend": "4.0.1"
|
||||
}
|
||||
},
|
||||
"pkg-dir": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
|
||||
@ -6986,15 +6586,6 @@
|
||||
"integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
|
||||
"dev": true
|
||||
},
|
||||
"promise": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
||||
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asap": "2.0.6"
|
||||
}
|
||||
},
|
||||
"prompts": {
|
||||
"version": "0.1.14",
|
||||
"resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz",
|
||||
@ -7005,17 +6596,6 @@
|
||||
"sisteransi": "0.1.1"
|
||||
}
|
||||
},
|
||||
"prop-types": {
|
||||
"version": "15.6.1",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz",
|
||||
"integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fbjs": "0.8.17",
|
||||
"loose-envify": "1.3.1",
|
||||
"object-assign": "4.1.1"
|
||||
}
|
||||
},
|
||||
"pseudomap": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
|
||||
@ -7437,27 +7017,6 @@
|
||||
"integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==",
|
||||
"dev": true
|
||||
},
|
||||
"run-parallel": {
|
||||
"version": "1.1.9",
|
||||
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
|
||||
"integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"rx-lite": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
|
||||
"integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
|
||||
"dev": true
|
||||
},
|
||||
"rx-lite-aggregates": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
|
||||
"integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"rx-lite": "4.0.8"
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.3.3",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
|
||||
@ -7935,185 +7494,6 @@
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"semistandard": {
|
||||
"version": "12.0.1",
|
||||
"resolved": "https://registry.npmjs.org/semistandard/-/semistandard-12.0.1.tgz",
|
||||
"integrity": "sha512-+FBRXBCi8GC1Nivc4ruw2KXER31bE1lrNyESo7prn2Sv9I9+H/Iqpt0NOtlV/GUxq34AgJwJViBUpA3/PUGqOw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"eslint": "4.18.2",
|
||||
"eslint-config-semistandard": "12.0.1",
|
||||
"eslint-config-standard": "11.0.0",
|
||||
"eslint-config-standard-jsx": "5.0.0",
|
||||
"eslint-plugin-import": "2.8.0",
|
||||
"eslint-plugin-node": "6.0.1",
|
||||
"eslint-plugin-promise": "3.6.0",
|
||||
"eslint-plugin-react": "7.6.1",
|
||||
"eslint-plugin-standard": "3.0.1",
|
||||
"standard-engine": "8.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"eslint": {
|
||||
"version": "4.18.2",
|
||||
"resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz",
|
||||
"integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "5.5.2",
|
||||
"babel-code-frame": "6.26.0",
|
||||
"chalk": "2.4.1",
|
||||
"concat-stream": "1.6.2",
|
||||
"cross-spawn": "5.1.0",
|
||||
"debug": "3.1.0",
|
||||
"doctrine": "2.1.0",
|
||||
"eslint-scope": "3.7.1",
|
||||
"eslint-visitor-keys": "1.0.0",
|
||||
"espree": "3.5.4",
|
||||
"esquery": "1.0.1",
|
||||
"esutils": "2.0.2",
|
||||
"file-entry-cache": "2.0.0",
|
||||
"functional-red-black-tree": "1.0.1",
|
||||
"glob": "7.1.2",
|
||||
"globals": "11.8.0",
|
||||
"ignore": "3.3.8",
|
||||
"imurmurhash": "0.1.4",
|
||||
"inquirer": "3.3.0",
|
||||
"is-resolvable": "1.1.0",
|
||||
"js-yaml": "3.12.0",
|
||||
"json-stable-stringify-without-jsonify": "1.0.1",
|
||||
"levn": "0.3.0",
|
||||
"lodash": "4.17.11",
|
||||
"minimatch": "3.0.4",
|
||||
"mkdirp": "0.5.1",
|
||||
"natural-compare": "1.4.0",
|
||||
"optionator": "0.8.2",
|
||||
"path-is-inside": "1.0.2",
|
||||
"pluralize": "7.0.0",
|
||||
"progress": "2.0.0",
|
||||
"require-uncached": "1.0.3",
|
||||
"semver": "5.4.1",
|
||||
"strip-ansi": "4.0.0",
|
||||
"strip-json-comments": "2.0.1",
|
||||
"table": "4.0.2",
|
||||
"text-table": "0.2.0"
|
||||
}
|
||||
},
|
||||
"eslint-config-standard": {
|
||||
"version": "11.0.0",
|
||||
"resolved": "http://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz",
|
||||
"integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==",
|
||||
"dev": true
|
||||
},
|
||||
"eslint-plugin-import": {
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz",
|
||||
"integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"builtin-modules": "1.1.1",
|
||||
"contains-path": "0.1.0",
|
||||
"debug": "2.6.9",
|
||||
"doctrine": "1.5.0",
|
||||
"eslint-import-resolver-node": "0.3.2",
|
||||
"eslint-module-utils": "2.2.0",
|
||||
"has": "1.0.1",
|
||||
"lodash.cond": "4.5.2",
|
||||
"minimatch": "3.0.4",
|
||||
"read-pkg-up": "2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"doctrine": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
|
||||
"integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"esutils": "2.0.2",
|
||||
"isarray": "1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-plugin-node": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz",
|
||||
"integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ignore": "3.3.8",
|
||||
"minimatch": "3.0.4",
|
||||
"resolve": "1.5.0",
|
||||
"semver": "5.4.1"
|
||||
}
|
||||
},
|
||||
"eslint-plugin-promise": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz",
|
||||
"integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==",
|
||||
"dev": true
|
||||
},
|
||||
"eslint-plugin-standard": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz",
|
||||
"integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=",
|
||||
"dev": true
|
||||
},
|
||||
"find-up": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "2.0.0"
|
||||
}
|
||||
},
|
||||
"globals": {
|
||||
"version": "11.8.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
|
||||
"integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
|
||||
"dev": true
|
||||
},
|
||||
"path-type": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
|
||||
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pify": "2.3.0"
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
|
||||
"integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"load-json-file": "2.0.0",
|
||||
"normalize-package-data": "2.4.0",
|
||||
"path-type": "2.0.0"
|
||||
}
|
||||
},
|
||||
"read-pkg-up": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
|
||||
"integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-up": "2.1.0",
|
||||
"read-pkg": "2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.4.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
|
||||
@ -8155,12 +7535,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"setimmediate": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
|
||||
"dev": true
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
@ -8430,18 +7804,6 @@
|
||||
"integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=",
|
||||
"dev": true
|
||||
},
|
||||
"standard-engine": {
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz",
|
||||
"integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"deglob": "2.1.1",
|
||||
"get-stdin": "6.0.0",
|
||||
"minimist": "1.2.0",
|
||||
"pkg-conf": "2.1.0"
|
||||
}
|
||||
},
|
||||
"static-extend": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
||||
@ -8613,20 +7975,6 @@
|
||||
"integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
|
||||
"dev": true
|
||||
},
|
||||
"table": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
|
||||
"integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "5.5.2",
|
||||
"ajv-keywords": "2.1.1",
|
||||
"chalk": "2.4.1",
|
||||
"lodash": "4.17.11",
|
||||
"slice-ansi": "1.0.0",
|
||||
"string-width": "2.1.1"
|
||||
}
|
||||
},
|
||||
"tar": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
@ -8818,18 +8166,6 @@
|
||||
"prelude-ls": "1.1.2"
|
||||
}
|
||||
},
|
||||
"typedarray": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
||||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
|
||||
"dev": true
|
||||
},
|
||||
"ua-parser-js": {
|
||||
"version": "0.7.18",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz",
|
||||
"integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==",
|
||||
"dev": true
|
||||
},
|
||||
"uc.micro": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz",
|
||||
@ -8917,12 +8253,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"uniq": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
|
||||
"integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
|
||||
"dev": true
|
||||
},
|
||||
"universalify": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
|
||||
@ -9111,12 +8441,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"whatwg-fetch": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
|
||||
"integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==",
|
||||
"dev": true
|
||||
},
|
||||
"whatwg-mimetype": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz",
|
||||
@ -9252,12 +8576,6 @@
|
||||
"integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
|
||||
"dev": true
|
||||
},
|
||||
"y18n": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
|
||||
|
||||
@ -3,72 +3,116 @@
|
||||
*/
|
||||
// Load modules
|
||||
const fs = require('fs-extra');
|
||||
const cp = require('child_process');
|
||||
const path = require('path');
|
||||
const chalk = require('chalk');
|
||||
const util = require('./util');
|
||||
if (util.isTravisCI() && util.isNotTravisCronOrAPI()) {
|
||||
console.log(
|
||||
`${chalk.green('NOBUILD')} Module build terminated, not a cron job or a custom build!`
|
||||
);
|
||||
process.exit(0);
|
||||
}
|
||||
const { rollup } = require('rollup');
|
||||
const babel = require('rollup-plugin-babel');
|
||||
const minify = require('rollup-plugin-babel-minify');
|
||||
// Set variables for paths
|
||||
const SNIPPETS_PATH = './snippets';
|
||||
const TEMP_PATH = './temp';
|
||||
const SNIPPETS_ARCHIVE_PATH = './snippets_archive';
|
||||
const IMPORTS = './imports.js';
|
||||
const TEST_PACKAGE = './test/_30s.js';
|
||||
const MODULE_NAME = '_30s';
|
||||
const DIST = './dist';
|
||||
// Regex for selecting code blocks
|
||||
const codeRE = /```\s*js([\s\S]*?)```/;
|
||||
// Start the timer of the script
|
||||
console.time('Packager');
|
||||
// Load tag data from the database and snippets from their folder
|
||||
try {
|
||||
const tagDatabase = fs.readFileSync('tag_database', 'utf8');
|
||||
const snippets = fs.readdirSync(SNIPPETS_PATH);
|
||||
// Create `temp` folder if it doesn't already exist.
|
||||
if (!fs.existsSync(TEMP_PATH)) {
|
||||
fs.mkdirSync(TEMP_PATH);
|
||||
// Read snippets, build packages
|
||||
(async () => {
|
||||
// Start the timer of the script
|
||||
console.time('Packager');
|
||||
try {
|
||||
const tagDatabase = fs.readFileSync('tag_database', 'utf8');
|
||||
const nodeSnippets = tagDatabase.split('\n').filter(v => v.search(/:.*node/g) !== -1).map(v => v.slice(0,v.indexOf(':')));
|
||||
const snippets = fs.readdirSync(SNIPPETS_PATH);
|
||||
const snippetExports = `module.exports = {${snippets.map(v => v.replace('.md', '')).join(',')}}`;
|
||||
let requires = [];
|
||||
let importData = '';
|
||||
const archivedSnippets = fs.readdirSync(SNIPPETS_ARCHIVE_PATH).filter(v => v !== 'README.md');
|
||||
const testExports = `module.exports = {${[...snippets,...archivedSnippets].map(v => v.replace('.md', '')).join(',')}}`;
|
||||
// Create `temp` and `dist` folders if they don't already exist.
|
||||
if (!fs.existsSync(DIST)) fs.mkdirSync(DIST);
|
||||
// Write `imports.js`
|
||||
fs.writeFileSync(IMPORTS, '');
|
||||
fs.writeFileSync(TEST_PACKAGE, '');
|
||||
|
||||
snippets.forEach(snippet => {
|
||||
const snippetData = fs.readFileSync(path.join(SNIPPETS_PATH, snippet), 'utf8');
|
||||
const snippetName = snippet.replace('.md', '');
|
||||
let code = snippetData.match(codeRE)[1].replace('\n', '');
|
||||
if (nodeSnippets.includes(snippetName)) {
|
||||
requires.push(code.match(/const.*=.*require\(([^\)]*)\);/g));
|
||||
code = code.replace(/const.*=.*require\(([^\)]*)\);/g,'');
|
||||
}
|
||||
importData += code;
|
||||
});
|
||||
// Write the data to the imports file
|
||||
requires = [...new Set(requires.filter(Boolean).map(v => v[0].replace('require(', 'typeof require !== "undefined" && require(')))].join('\n');
|
||||
fs.writeFileSync(IMPORTS, `${requires}\n\n${importData}\n\n${snippetExports}`);
|
||||
|
||||
archivedSnippets.forEach(snippet => {
|
||||
const snippetData = fs.readFileSync(path.join(SNIPPETS_ARCHIVE_PATH, snippet), 'utf8');
|
||||
let code = snippetData.match(codeRE)[1].replace('\n', '');
|
||||
importData += code;
|
||||
});
|
||||
fs.writeFileSync(TEST_PACKAGE, `${requires}\n\n${importData}\n\n${testExports}`);
|
||||
|
||||
// Check Travis builds - Will skip builds on Travis if not CRON/API
|
||||
if (util.isTravisCI() && util.isNotTravisCronOrAPI()) {
|
||||
fs.unlink(IMPORTS);
|
||||
console.log(
|
||||
`${chalk.green('NOBUILD')} Module build terminated, not a cron job or a custom build!`
|
||||
);
|
||||
console.timeEnd('Packager');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
// Write to the proper files and start the `rollup` script
|
||||
const es5 = babel({
|
||||
presets: ['@babel/preset-env']
|
||||
});
|
||||
const min = minify({ comments: false });
|
||||
const bundle = await rollup({ input: IMPORTS });
|
||||
// UMD ES2018
|
||||
await bundle.write({
|
||||
file: `${DIST}/${MODULE_NAME}.js`,
|
||||
name: MODULE_NAME,
|
||||
format: 'umd'
|
||||
});
|
||||
// ESM ES2018
|
||||
await bundle.write({
|
||||
file: `${DIST}/${MODULE_NAME}.esm.js`,
|
||||
name: MODULE_NAME,
|
||||
format: 'es'
|
||||
});
|
||||
// UMD ES5
|
||||
const bundleES5 = await rollup({ input: IMPORTS, plugins: [es5] });
|
||||
await bundleES5.write({
|
||||
file: `${DIST}/${MODULE_NAME}.es5.js`,
|
||||
name: MODULE_NAME,
|
||||
format: 'umd'
|
||||
});
|
||||
// UMD ES5 min
|
||||
const bundleES5Min = await rollup({
|
||||
input: IMPORTS,
|
||||
plugins: [es5, min]
|
||||
});
|
||||
await bundleES5Min.write({
|
||||
file: `${DIST}/${MODULE_NAME}.es5.min.js`,
|
||||
name: MODULE_NAME,
|
||||
format: 'umd'
|
||||
});
|
||||
|
||||
// Clean up temporary data
|
||||
fs.unlink(IMPORTS);
|
||||
// Log a success message
|
||||
console.log(`${chalk.green('SUCCESS!')} Snippet module built!`);
|
||||
// Log the time taken
|
||||
console.timeEnd('Packager');
|
||||
} catch (err) {
|
||||
// Handle errors (hopefully not!)
|
||||
console.log(`${chalk.red('ERROR!')} During module creation: ${err}`);
|
||||
process.exit(1);
|
||||
}
|
||||
// Write `imports.js`
|
||||
fs.writeFileSync(IMPORTS, '');
|
||||
// Read all snippets and store them appropriately
|
||||
for (const snippet of snippets) {
|
||||
const snippetData = fs.readFileSync(path.join(SNIPPETS_PATH, snippet), 'utf8');
|
||||
const snippetName = snippet.replace('.md', '');
|
||||
// Check if a snippet is Node-only
|
||||
const isNodeSnippet = tagDatabase
|
||||
.slice(tagDatabase.indexOf(snippetName) + snippetName.length + 1)
|
||||
.split('\n')[0]
|
||||
.includes('node');
|
||||
// Read `imports.js` and write the data
|
||||
const importData = fs.readFileSync(IMPORTS, 'utf8');
|
||||
fs.writeFileSync(
|
||||
IMPORTS,
|
||||
importData + `\nexport { ${snippetName} } from './temp/${snippetName}.js'`
|
||||
);
|
||||
// Find the code in each snippet
|
||||
const code = snippetData.match(codeRE)[1].replace('\n', '');
|
||||
// Store the data to be written
|
||||
const toWrite = isNodeSnippet
|
||||
? `${code
|
||||
.replace(`const ${snippetName}`, `export const ${snippetName}`)
|
||||
// Prevents errors from being thrown in browser environment
|
||||
.replace('require(', 'typeof require !== "undefined" && require(')}`
|
||||
: `export ${code}`;
|
||||
// Write data to the proper file
|
||||
fs.writeFileSync(`${TEMP_PATH}/${snippetName}.js`, toWrite);
|
||||
}
|
||||
// Write to the proper files and start the `rollup` script
|
||||
cp.execSync('node ./scripts/rollup.js');
|
||||
// Clean up temporary data
|
||||
fs.removeSync(TEMP_PATH);
|
||||
fs.unlink(IMPORTS);
|
||||
// Log a success message
|
||||
console.log(`${chalk.green('SUCCESS!')} Snippet module built!`);
|
||||
// Log the time taken
|
||||
console.timeEnd('Packager');
|
||||
} catch (err) {
|
||||
// Handle errors (hopefully not!)
|
||||
console.log(`${chalk.red('ERROR!')} During module creation: ${err}`);
|
||||
process.exit(1);
|
||||
}
|
||||
})();
|
||||
@ -1,56 +0,0 @@
|
||||
/*
|
||||
Part of the process for building the `_30s` module.
|
||||
*/
|
||||
// Load modules
|
||||
const fs = require('fs-extra');
|
||||
const { rollup } = require('rollup');
|
||||
const babel = require('rollup-plugin-babel');
|
||||
const minify = require('rollup-plugin-babel-minify');
|
||||
// Set variables for paths
|
||||
const INPUT_FILE = './imports.js';
|
||||
const MODULE_NAME = '_30s';
|
||||
const DIST = './dist';
|
||||
// Create `dist` folder if not existing
|
||||
if (!fs.existsSync(DIST)) fs.mkdirSync(DIST);
|
||||
// Setup babel and minification
|
||||
const es5 = babel({
|
||||
presets: ['@babel/preset-env']
|
||||
});
|
||||
const min = minify({ comments: false });
|
||||
// Create the bundles
|
||||
(async () => {
|
||||
const bundle = await rollup({ input: INPUT_FILE });
|
||||
const bundleES5 = await rollup({ input: INPUT_FILE, plugins: [es5] });
|
||||
const bundleES5Min = await rollup({
|
||||
input: INPUT_FILE,
|
||||
plugins: [es5, min]
|
||||
});
|
||||
|
||||
// UMD ES2018
|
||||
await bundle.write({
|
||||
file: `${DIST}/${MODULE_NAME}.js`,
|
||||
name: MODULE_NAME,
|
||||
format: 'umd'
|
||||
});
|
||||
|
||||
// ESM ES2018
|
||||
await bundle.write({
|
||||
file: `${DIST}/${MODULE_NAME}.esm.js`,
|
||||
name: MODULE_NAME,
|
||||
format: 'es'
|
||||
});
|
||||
|
||||
// UMD ES5
|
||||
await bundleES5.write({
|
||||
file: `${DIST}/${MODULE_NAME}.es5.js`,
|
||||
name: MODULE_NAME,
|
||||
format: 'umd'
|
||||
});
|
||||
|
||||
// UMD ES5 min
|
||||
await bundleES5Min.write({
|
||||
file: `${DIST}/${MODULE_NAME}.es5.min.js`,
|
||||
name: MODULE_NAME,
|
||||
format: 'umd'
|
||||
});
|
||||
})();
|
||||
@ -14,79 +14,38 @@ if (util.isTravisCI() && util.isNotTravisCronOrAPI()) {
|
||||
process.exit(0);
|
||||
}
|
||||
// Declare paths
|
||||
const SNIPPETS_ACTIVE = './snippets';
|
||||
const SNIPPETS_ARCHIVE = './snippets_archive';
|
||||
const SNIPPETS_PATH = './snippets';
|
||||
const SNIPPETS_ARCHIVE_PATH = './snippets_archive';
|
||||
const TEST_PATH = './test';
|
||||
|
||||
// Array of snippet names
|
||||
const snippetFiles = [];
|
||||
|
||||
const snippetFilesActive = fs
|
||||
.readdirSync(SNIPPETS_ACTIVE, 'utf8')
|
||||
.map(fileName => fileName.slice(0, -3));
|
||||
const snippetFilesArchive = fs
|
||||
.readdirSync(SNIPPETS_ARCHIVE, 'utf8')
|
||||
.filter(fileName => !fileName.includes('README')) // -> Filters out main README.md file in Archieve which isn't a snippet
|
||||
.map(fileName => fileName.slice(0, -3));
|
||||
|
||||
snippetFiles.push(...snippetFilesActive);
|
||||
snippetFiles.push(...snippetFilesArchive);
|
||||
|
||||
console.time('Tester');
|
||||
snippetFiles
|
||||
.map(fileName => {
|
||||
// Check if fileName for snippet exist in test/ dir, if doesnt create
|
||||
fs.ensureDirSync(path.join(TEST_PATH, fileName));
|
||||
|
||||
// return fileName for later use
|
||||
return fileName;
|
||||
try {
|
||||
// Read snippets, archive and tests, find which tests are not defined
|
||||
const snippets = fs.readdirSync(SNIPPETS_PATH).map(v => v.replace('.md', ''));
|
||||
const archivedSnippets = fs.readdirSync(SNIPPETS_ARCHIVE_PATH).filter(v => v !== 'README.md').map(v => v.replace('.md', ''));
|
||||
const definedTests = fs.readdirSync(TEST_PATH).map(v => v.replace('.test.js', '')).filter(v => v !== '_30s.js' && v !== 'testlog');
|
||||
const undefinedTests = [...snippets, ...archivedSnippets].filter(v => !definedTests.includes(v));
|
||||
const orphanedTests = [...definedTests.filter(v => ![...snippets, ...archivedSnippets].includes(v))];
|
||||
orphanedTests.forEach(snippet => {
|
||||
console.log(`${chalk.yellow('WARNING!')} Orphaned test: ${snippet}`);
|
||||
})
|
||||
.map(fileName => {
|
||||
const activeOrArchive = snippetFilesActive.includes(fileName)
|
||||
? SNIPPETS_ACTIVE
|
||||
: SNIPPETS_ARCHIVE;
|
||||
// Grab snippetData
|
||||
const fileData = fs.readFileSync(path.join(activeOrArchive, `${fileName}.md`), 'utf8');
|
||||
// Grab snippet Code blocks
|
||||
const fileCode = fileData.slice(fileData.search(/```\s*js/i), fileData.lastIndexOf('```') + 3);
|
||||
// Split code based on code markers
|
||||
const blockMarkers = fileCode
|
||||
.split('\n')
|
||||
.map((line, lineIndex) => (line.slice(0, 3) === '```' ? lineIndex : '//CLEAR//'))
|
||||
.filter(x => !(x === '//CLEAR//'));
|
||||
// Grab snippet function based on code markers
|
||||
const fileFunction = fileCode
|
||||
.split('\n')
|
||||
.map(line => line)
|
||||
.filter((_, i) => blockMarkers[0] < i && i < blockMarkers[1]);
|
||||
|
||||
// Export template for snippetName.js
|
||||
const exportFile = `${fileFunction.join('\n')}\nmodule.exports = ${fileName};\n`;
|
||||
|
||||
// Export template for snippetName.test.js which generates a example test & other information
|
||||
// Create files for undefined tests
|
||||
undefinedTests.forEach(snippet => {
|
||||
const exportTest = [
|
||||
`const expect = require('expect');`,
|
||||
`const ${fileName} = require('./${fileName}.js');`,
|
||||
`\ntest('${fileName} is a Function', () => {`,
|
||||
` expect(${fileName}).toBeInstanceOf(Function);`,
|
||||
`const {${snippet}} = require('._30s.js');`,
|
||||
`\ntest('${snippet} is a Function', () => {`,
|
||||
` expect(${snippet}).toBeInstanceOf(Function);`,
|
||||
`});\n`
|
||||
].join('\n');
|
||||
|
||||
// Write/Update exportFile which is snippetName.js in respective dir
|
||||
fs.writeFileSync(path.join(TEST_PATH, fileName, `${fileName}.js`), exportFile);
|
||||
|
||||
if (!fs.existsSync(path.join(TEST_PATH, fileName, `${fileName}.test.js`))) {
|
||||
// if snippetName.test.js doesn't exist inrespective dir exportTest
|
||||
fs.writeFileSync(`${TEST_PATH}/${fileName}/${fileName}.test.js`, exportTest);
|
||||
}
|
||||
|
||||
// return fileName for later use
|
||||
return fileName;
|
||||
fs.writeFileSync(path.join(TEST_PATH, `${snippet}.test.js`), exportTest);
|
||||
});
|
||||
try {
|
||||
// Run tests
|
||||
fs.writeFileSync(path.join(TEST_PATH, 'testlog'), `Test log for: ${new Date().toString()}\n`);
|
||||
childProcess.execSync('npm test');
|
||||
} catch (e) {
|
||||
fs.appendFileSync(path.join(TEST_PATH, 'testlog'));
|
||||
console.log(`${chalk.green('SUCCESS!')} All tests ran successfully!`);
|
||||
} catch (err) {
|
||||
console.log(`${chalk.red('ERROR!')} During test runs: ${err}`);
|
||||
process.exit(1);
|
||||
}
|
||||
console.timeEnd('Tester');
|
||||
console.timeEnd('Tester');
|
||||
@ -105,8 +105,9 @@ const capitalize = (str, lowerRest = false) =>
|
||||
str.slice(0, 1).toUpperCase() + (lowerRest ? str.slice(1).toLowerCase() : str.slice(1));
|
||||
// Checks if current environment is Travis CI
|
||||
const isTravisCI = () => 'TRAVIS' in process.env && 'CI' in process.env;
|
||||
const isNotTravisCronOrAPI = () =>
|
||||
process.env['TRAVIS_EVENT_TYPE'] !== 'cron' && process.env['TRAVIS_EVENT_TYPE'] !== 'api';
|
||||
const isTravisCronOrAPI = () =>
|
||||
process.env['TRAVIS_EVENT_TYPE'] === 'cron' && process.env['TRAVIS_EVENT_TYPE'] === 'api';
|
||||
const isNotTravisCronOrAPI = () => !isTravisCronOrAPI();
|
||||
// Creates a hash for a value using the SHA-256 algorithm.
|
||||
const hashData = val =>
|
||||
crypto
|
||||
@ -167,6 +168,7 @@ module.exports = {
|
||||
shuffle,
|
||||
getCodeBlocks,
|
||||
getTextualContent,
|
||||
isTravisCronOrAPI,
|
||||
isNotTravisCronOrAPI,
|
||||
prepTaggedData
|
||||
};
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const CSVToArray = require('./CSVToArray.js');
|
||||
const {CSVToArray} = require('./_30s.js');
|
||||
|
||||
test('CSVToArray is a Function', () => {
|
||||
expect(CSVToArray).toBeInstanceOf(Function);
|
||||
@ -1,6 +0,0 @@
|
||||
const CSVToArray = (data, delimiter = ',', omitFirstRow = false) =>
|
||||
data
|
||||
.slice(omitFirstRow ? data.indexOf('\n') + 1 : 0)
|
||||
.split('\n')
|
||||
.map(v => v.split(delimiter));
|
||||
module.exports = CSVToArray;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const CSVToJSON = require('./CSVToJSON.js');
|
||||
const {CSVToJSON} = require('./_30s.js');
|
||||
|
||||
test('CSVToJSON is a Function', () => {
|
||||
expect(CSVToJSON).toBeInstanceOf(Function);
|
||||
@ -1,11 +0,0 @@
|
||||
const CSVToJSON = (data, delimiter = ',') => {
|
||||
const titles = data.slice(0, data.indexOf('\n')).split(delimiter);
|
||||
return data
|
||||
.slice(data.indexOf('\n') + 1)
|
||||
.split('\n')
|
||||
.map(v => {
|
||||
const values = v.split(delimiter);
|
||||
return titles.reduce((obj, title, index) => ((obj[title] = values[index]), obj), {});
|
||||
});
|
||||
};
|
||||
module.exports = CSVToJSON;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const JSONToDate = require('./JSONToDate.js');
|
||||
const {JSONToDate} = require('./_30s.js');
|
||||
|
||||
test('JSONToDate is a Function', () => {
|
||||
expect(JSONToDate).toBeInstanceOf(Function);
|
||||
@ -1,5 +0,0 @@
|
||||
const JSONToDate = arr => {
|
||||
const dt = new Date(parseInt(arr.toString().substr(6)));
|
||||
return `${dt.getDate()}/${dt.getMonth() + 1}/${dt.getFullYear()}`;
|
||||
};
|
||||
module.exports = JSONToDate;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const JSONToFile = require('./JSONToFile.js');
|
||||
const {JSONToFile} = require('./_30s.js');
|
||||
|
||||
test('JSONToFile is a Function', () => {
|
||||
expect(JSONToFile).toBeInstanceOf(Function);
|
||||
@ -1,4 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const JSONToFile = (obj, filename) =>
|
||||
fs.writeFile(`${filename}.json`, JSON.stringify(obj, null, 2));
|
||||
module.exports = JSONToFile;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const JSONtoCSV = require('./JSONtoCSV.js');
|
||||
const {JSONtoCSV} = require('./_30s.js');
|
||||
|
||||
test('JSONtoCSV is a Function', () => {
|
||||
expect(JSONtoCSV).toBeInstanceOf(Function);
|
||||
@ -1,11 +0,0 @@
|
||||
const JSONtoCSV = (arr, columns, delimiter = ',') =>
|
||||
[
|
||||
columns.join(delimiter),
|
||||
...arr.map(obj =>
|
||||
columns.reduce(
|
||||
(acc, key) => `${acc}${!acc.length ? '' : delimiter}"${!obj[key] ? '' : obj[key]}"`,
|
||||
''
|
||||
)
|
||||
)
|
||||
].join('\n');
|
||||
module.exports = JSONtoCSV;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const RGBToHex = require('./RGBToHex.js');
|
||||
const {RGBToHex} = require('./_30s.js');
|
||||
|
||||
test('RGBToHex is a Function', () => {
|
||||
expect(RGBToHex).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
|
||||
module.exports = RGBToHex;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const URLJoin = require('./URLJoin.js');
|
||||
const {URLJoin} = require('./_30s.js');
|
||||
|
||||
test('URLJoin is a Function', () => {
|
||||
expect(URLJoin).toBeInstanceOf(Function);
|
||||
@ -1,10 +0,0 @@
|
||||
const URLJoin = (...args) =>
|
||||
args
|
||||
.join('/')
|
||||
.replace(/[\/]+/g, '/')
|
||||
.replace(/^(.+):\//, '$1://')
|
||||
.replace(/^file:/, 'file:/')
|
||||
.replace(/\/(\?|&|#[^!])/g, '$1')
|
||||
.replace(/\?/g, '&')
|
||||
.replace('&', '?');
|
||||
module.exports = URLJoin;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const UUIDGeneratorBrowser = require('./UUIDGeneratorBrowser.js');
|
||||
const {UUIDGeneratorBrowser} = require('./_30s.js');
|
||||
|
||||
test('UUIDGeneratorBrowser is a Function', () => {
|
||||
expect(UUIDGeneratorBrowser).toBeInstanceOf(Function);
|
||||
@ -1,5 +0,0 @@
|
||||
const UUIDGeneratorBrowser = () =>
|
||||
([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
|
||||
(c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)
|
||||
);
|
||||
module.exports = UUIDGeneratorBrowser;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const UUIDGeneratorNode = require('./UUIDGeneratorNode.js');
|
||||
const {UUIDGeneratorNode} = require('./_30s.js');
|
||||
|
||||
test('UUIDGeneratorNode is a Function', () => {
|
||||
expect(UUIDGeneratorNode).toBeInstanceOf(Function);
|
||||
@ -1,6 +0,0 @@
|
||||
const crypto = require('crypto');
|
||||
const UUIDGeneratorNode = () =>
|
||||
([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
|
||||
(c ^ (crypto.randomBytes(1)[0] & (15 >> (c / 4)))).toString(16)
|
||||
);
|
||||
module.exports = UUIDGeneratorNode;
|
||||
1488
test/_30s.js
Normal file
1488
test/_30s.js
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const all = require('./all.js');
|
||||
const {all} = require('./_30s.js');
|
||||
|
||||
test('all is a Function', () => {
|
||||
expect(all).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const all = (arr, fn = Boolean) => arr.every(fn);
|
||||
module.exports = all;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const allEqual = require('./allEqual.js');
|
||||
const {allEqual} = require('./_30s.js');
|
||||
|
||||
test('allEqual is a Function', () => {
|
||||
expect(allEqual).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const allEqual = arr => arr.every(val => val === arr[0]);
|
||||
module.exports = allEqual;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const any = require('./any.js');
|
||||
const {any} = require('./_30s.js');
|
||||
|
||||
test('any is a Function', () => {
|
||||
expect(any).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const any = (arr, fn = Boolean) => arr.some(fn);
|
||||
module.exports = any;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const approximatelyEqual = require('./approximatelyEqual.js');
|
||||
const {approximatelyEqual} = require('./_30s.js');
|
||||
|
||||
test('approximatelyEqual is a Function', () => {
|
||||
expect(approximatelyEqual).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const approximatelyEqual = (v1, v2, epsilon = 0.001) => Math.abs(v1 - v2) < epsilon;
|
||||
module.exports = approximatelyEqual;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const arrayToCSV = require('./arrayToCSV.js');
|
||||
const {arrayToCSV} = require('./_30s.js');
|
||||
|
||||
test('arrayToCSV is a Function', () => {
|
||||
expect(arrayToCSV).toBeInstanceOf(Function);
|
||||
@ -1,3 +0,0 @@
|
||||
const arrayToCSV = (arr, delimiter = ',') =>
|
||||
arr.map(v => v.map(x => `"${x}"`).join(delimiter)).join('\n');
|
||||
module.exports = arrayToCSV;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const arrayToHtmlList = require('./arrayToHtmlList.js');
|
||||
const {arrayToHtmlList} = require('./_30s.js');
|
||||
|
||||
test('arrayToHtmlList is a Function', () => {
|
||||
expect(arrayToHtmlList).toBeInstanceOf(Function);
|
||||
@ -1,6 +0,0 @@
|
||||
const arrayToHtmlList = (arr, listID) =>
|
||||
(el => (
|
||||
(el = document.querySelector('#' + listID)),
|
||||
(el.innerHTML += arr.map(item => `<li>${item}</li>`).join(''))
|
||||
))();
|
||||
module.exports = arrayToHtmlList;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const ary = require('./ary.js');
|
||||
const {ary} = require('./_30s.js');
|
||||
|
||||
test('ary is a Function', () => {
|
||||
expect(ary).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const ary = (fn, n) => (...args) => fn(...args.slice(0, n));
|
||||
module.exports = ary;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const atob = require('./atob.js');
|
||||
const {atob} = require('./_30s.js');
|
||||
|
||||
test('atob is a Function', () => {
|
||||
expect(atob).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const atob = str => Buffer.from(str, 'base64').toString('binary');
|
||||
module.exports = atob;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const attempt = require('./attempt.js');
|
||||
const {attempt} = require('./_30s.js');
|
||||
|
||||
test('attempt is a Function', () => {
|
||||
expect(attempt).toBeInstanceOf(Function);
|
||||
@ -1,8 +0,0 @@
|
||||
const attempt = (fn, ...args) => {
|
||||
try {
|
||||
return fn(...args);
|
||||
} catch (e) {
|
||||
return e instanceof Error ? e : new Error(e);
|
||||
}
|
||||
};
|
||||
module.exports = attempt;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const average = require('./average.js');
|
||||
const {average} = require('./_30s.js');
|
||||
|
||||
test('average is a Function', () => {
|
||||
expect(average).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const average = (...nums) => nums.reduce((acc, val) => acc + val, 0) / nums.length;
|
||||
module.exports = average;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const averageBy = require('./averageBy.js');
|
||||
const {averageBy} = require('./_30s.js');
|
||||
|
||||
test('averageBy is a Function', () => {
|
||||
expect(averageBy).toBeInstanceOf(Function);
|
||||
@ -1,4 +0,0 @@
|
||||
const averageBy = (arr, fn) =>
|
||||
arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val) => acc + val, 0) /
|
||||
arr.length;
|
||||
module.exports = averageBy;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const bifurcate = require('./bifurcate.js');
|
||||
const {bifurcate} = require('./_30s.js');
|
||||
|
||||
test('bifurcate is a Function', () => {
|
||||
expect(bifurcate).toBeInstanceOf(Function);
|
||||
@ -1,3 +0,0 @@
|
||||
const bifurcate = (arr, filter) =>
|
||||
arr.reduce((acc, val, i) => (acc[filter[i] ? 0 : 1].push(val), acc), [[], []]);
|
||||
module.exports = bifurcate;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const bifurcateBy = require('./bifurcateBy.js');
|
||||
const {bifurcateBy} = require('./_30s.js');
|
||||
|
||||
test('bifurcateBy is a Function', () => {
|
||||
expect(bifurcateBy).toBeInstanceOf(Function);
|
||||
@ -1,3 +0,0 @@
|
||||
const bifurcateBy = (arr, fn) =>
|
||||
arr.reduce((acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc), [[], []]);
|
||||
module.exports = bifurcateBy;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const binarySearch = require('./binarySearch.js');
|
||||
const {binarySearch} = require('./_30s.js');
|
||||
|
||||
test('binarySearch is a Function', () => {
|
||||
expect(binarySearch).toBeInstanceOf(Function);
|
||||
@ -1,8 +0,0 @@
|
||||
const binarySearch = (arr, val, start = 0, end = arr.length - 1) => {
|
||||
if (start > end) return -1;
|
||||
const mid = Math.floor((start + end) / 2);
|
||||
if (arr[mid] > val) return binarySearch(arr, val, start, mid - 1);
|
||||
if (arr[mid] < val) return binarySearch(arr, val, mid + 1, end);
|
||||
return mid;
|
||||
};
|
||||
module.exports = binarySearch;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const bind = require('./bind.js');
|
||||
const {bind} = require('./_30s.js');
|
||||
|
||||
test('bind is a Function', () => {
|
||||
expect(bind).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const bind = (fn, context, ...boundArgs) => (...args) => fn.apply(context, [...boundArgs, ...args]);
|
||||
module.exports = bind;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const bindAll = require('./bindAll.js');
|
||||
const {bindAll} = require('./_30s.js');
|
||||
|
||||
test('bindAll is a Function', () => {
|
||||
expect(bindAll).toBeInstanceOf(Function);
|
||||
@ -1,10 +0,0 @@
|
||||
const bindAll = (obj, ...fns) =>
|
||||
fns.forEach(
|
||||
fn => (
|
||||
(f = obj[fn]),
|
||||
(obj[fn] = function() {
|
||||
return f.apply(obj);
|
||||
})
|
||||
)
|
||||
);
|
||||
module.exports = bindAll;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const bindKey = require('./bindKey.js');
|
||||
const {bindKey} = require('./_30s.js');
|
||||
|
||||
test('bindKey is a Function', () => {
|
||||
expect(bindKey).toBeInstanceOf(Function);
|
||||
@ -1,3 +0,0 @@
|
||||
const bindKey = (context, fn, ...boundArgs) => (...args) =>
|
||||
context[fn].apply(context, [...boundArgs, ...args]);
|
||||
module.exports = bindKey;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const binomialCoefficient = require('./binomialCoefficient.js');
|
||||
const {binomialCoefficient} = require('./_30s.js');
|
||||
|
||||
test('binomialCoefficient is a Function', () => {
|
||||
expect(binomialCoefficient).toBeInstanceOf(Function);
|
||||
@ -1,11 +0,0 @@
|
||||
const binomialCoefficient = (n, k) => {
|
||||
if (Number.isNaN(n) || Number.isNaN(k)) return NaN;
|
||||
if (k < 0 || k > n) return 0;
|
||||
if (k === 0 || k === n) return 1;
|
||||
if (k === 1 || k === n - 1) return n;
|
||||
if (n - k < k) k = n - k;
|
||||
let res = n;
|
||||
for (let j = 2; j <= k; j++) res *= (n - j + 1) / j;
|
||||
return Math.round(res);
|
||||
};
|
||||
module.exports = binomialCoefficient;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const bottomVisible = require('./bottomVisible.js');
|
||||
const {bottomVisible} = require('./_30s.js');
|
||||
|
||||
test('bottomVisible is a Function', () => {
|
||||
expect(bottomVisible).toBeInstanceOf(Function);
|
||||
@ -1,4 +0,0 @@
|
||||
const bottomVisible = () =>
|
||||
document.documentElement.clientHeight + window.scrollY >=
|
||||
(document.documentElement.scrollHeight || document.documentElement.clientHeight);
|
||||
module.exports = bottomVisible;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const btoa = require('./btoa.js');
|
||||
const {btoa} = require('./_30s.js');
|
||||
|
||||
test('btoa is a Function', () => {
|
||||
expect(btoa).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const btoa = str => Buffer.from(str, 'binary').toString('base64');
|
||||
module.exports = btoa;
|
||||
@ -1,2 +0,0 @@
|
||||
const byteSize = str => new Blob([str]).size;
|
||||
module.exports = byteSize;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const call = require('./call.js');
|
||||
const {call} = require('./_30s.js');
|
||||
|
||||
test('call is a Function', () => {
|
||||
expect(call).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const call = (key, ...args) => context => context[key](...args);
|
||||
module.exports = call;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const capitalize = require('./capitalize.js');
|
||||
const {capitalize} = require('./_30s.js');
|
||||
|
||||
test('capitalize is a Function', () => {
|
||||
expect(capitalize).toBeInstanceOf(Function);
|
||||
@ -1,3 +0,0 @@
|
||||
const capitalize = ([first, ...rest], lowerRest = false) =>
|
||||
first.toUpperCase() + (lowerRest ? rest.join('').toLowerCase() : rest.join(''));
|
||||
module.exports = capitalize;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const capitalizeEveryWord = require('./capitalizeEveryWord.js');
|
||||
const {capitalizeEveryWord} = require('./_30s.js');
|
||||
|
||||
test('capitalizeEveryWord is a Function', () => {
|
||||
expect(capitalizeEveryWord).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const capitalizeEveryWord = str => str.replace(/\b[a-z]/g, char => char.toUpperCase());
|
||||
module.exports = capitalizeEveryWord;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const castArray = require('./castArray.js');
|
||||
const {castArray} = require('./_30s.js');
|
||||
|
||||
test('castArray is a Function', () => {
|
||||
expect(castArray).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const castArray = val => (Array.isArray(val) ? val : [val]);
|
||||
module.exports = castArray;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const celsiusToFahrenheit = require('./celsiusToFahrenheit.js');
|
||||
const {celsiusToFahrenheit} = require('./_30s.js');
|
||||
|
||||
test('celsiusToFahrenheit is a Function', () => {
|
||||
expect(celsiusToFahrenheit).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const celsiusToFahrenheit = degrees => 1.8 * degrees + 32;
|
||||
module.exports = celsiusToFahrenheit;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const chainAsync = require('./chainAsync.js');
|
||||
const {chainAsync} = require('./_30s.js');
|
||||
|
||||
test('chainAsync is a Function', () => {
|
||||
expect(chainAsync).toBeInstanceOf(Function);
|
||||
@ -1,6 +0,0 @@
|
||||
const chainAsync = fns => {
|
||||
let curr = 0;
|
||||
const next = () => fns[curr++](next);
|
||||
next();
|
||||
};
|
||||
module.exports = chainAsync;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const chunk = require('./chunk.js');
|
||||
const {chunk} = require('./_30s.js');
|
||||
|
||||
test('chunk is a Function', () => {
|
||||
expect(chunk).toBeInstanceOf(Function);
|
||||
@ -1,5 +0,0 @@
|
||||
const chunk = (arr, size) =>
|
||||
Array.from({ length: Math.ceil(arr.length / size) }, (v, i) =>
|
||||
arr.slice(i * size, i * size + size)
|
||||
);
|
||||
module.exports = chunk;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const clampNumber = require('./clampNumber.js');
|
||||
const {clampNumber} = require('./_30s.js');
|
||||
|
||||
test('clampNumber is a Function', () => {
|
||||
expect(clampNumber).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const clampNumber = (num, a, b) => Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));
|
||||
module.exports = clampNumber;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const cleanObj = require('./cleanObj.js');
|
||||
const {cleanObj} = require('./_30s.js');
|
||||
|
||||
test('cleanObj is a Function', () => {
|
||||
expect(cleanObj).toBeInstanceOf(Function);
|
||||
@ -1,11 +0,0 @@
|
||||
const cleanObj = (obj, keysToKeep = [], childIndicator) => {
|
||||
Object.keys(obj).forEach(key => {
|
||||
if (key === childIndicator) {
|
||||
cleanObj(obj[key], keysToKeep, childIndicator);
|
||||
} else if (!keysToKeep.includes(key)) {
|
||||
delete obj[key];
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
};
|
||||
module.exports = cleanObj;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const cloneRegExp = require('./cloneRegExp.js');
|
||||
const {cloneRegExp} = require('./_30s.js');
|
||||
|
||||
test('cloneRegExp is a Function', () => {
|
||||
expect(cloneRegExp).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const cloneRegExp = regExp => new RegExp(regExp.source, regExp.flags);
|
||||
module.exports = cloneRegExp;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const coalesce = require('./coalesce.js');
|
||||
const {coalesce} = require('./_30s.js');
|
||||
|
||||
test('coalesce is a Function', () => {
|
||||
expect(coalesce).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const coalesce = (...args) => args.find(_ => ![undefined, null].includes(_));
|
||||
module.exports = coalesce;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const coalesceFactory = require('./coalesceFactory.js');
|
||||
const {coalesceFactory} = require('./_30s.js');
|
||||
|
||||
test('coalesceFactory is a Function', () => {
|
||||
expect(coalesceFactory).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const coalesceFactory = valid => (...args) => args.find(valid);
|
||||
module.exports = coalesceFactory;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const collatz = require('./collatz.js');
|
||||
const {collatz} = require('./_30s.js');
|
||||
|
||||
test('collatz is a Function', () => {
|
||||
expect(collatz).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const collatz = n => (n % 2 === 0 ? n / 2 : 3 * n + 1);
|
||||
module.exports = collatz;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const collectInto = require('./collectInto.js');
|
||||
const {collectInto} = require('./_30s.js');
|
||||
|
||||
test('collectInto is a Function', () => {
|
||||
expect(collectInto).toBeInstanceOf(Function);
|
||||
@ -1,2 +0,0 @@
|
||||
const collectInto = fn => (...args) => fn(args);
|
||||
module.exports = collectInto;
|
||||
@ -1,5 +1,5 @@
|
||||
const expect = require('expect');
|
||||
const colorize = require('./colorize.js');
|
||||
const {colorize} = require('./_30s.js');
|
||||
|
||||
test('colorize is a Function', () => {
|
||||
expect(colorize).toBeInstanceOf(Function);
|
||||
@ -1,19 +0,0 @@
|
||||
const colorize = (...args) => ({
|
||||
black: `\x1b[30m${args.join(' ')}`,
|
||||
red: `\x1b[31m${args.join(' ')}`,
|
||||
green: `\x1b[32m${args.join(' ')}`,
|
||||
yellow: `\x1b[33m${args.join(' ')}`,
|
||||
blue: `\x1b[34m${args.join(' ')}`,
|
||||
magenta: `\x1b[35m${args.join(' ')}`,
|
||||
cyan: `\x1b[36m${args.join(' ')}`,
|
||||
white: `\x1b[37m${args.join(' ')}`,
|
||||
bgBlack: `\x1b[40m${args.join(' ')}\x1b[0m`,
|
||||
bgRed: `\x1b[41m${args.join(' ')}\x1b[0m`,
|
||||
bgGreen: `\x1b[42m${args.join(' ')}\x1b[0m`,
|
||||
bgYellow: `\x1b[43m${args.join(' ')}\x1b[0m`,
|
||||
bgBlue: `\x1b[44m${args.join(' ')}\x1b[0m`,
|
||||
bgMagenta: `\x1b[45m${args.join(' ')}\x1b[0m`,
|
||||
bgCyan: `\x1b[46m${args.join(' ')}\x1b[0m`,
|
||||
bgWhite: `\x1b[47m${args.join(' ')}\x1b[0m`
|
||||
});
|
||||
module.exports = colorize;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user