diff --git a/README.md b/README.md
index e23bcee..1e954d6 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,6 @@
[](https://travis-ci.org/freestrings/jsonpath)

-


@@ -12,7 +11,6 @@ It is JsonPath [JsonPath](https://goessner.net/articles/JsonPath/) engine writte
- [Webassembly Demo](https://freestrings.github.io/jsonpath/)
- [NPM jsonpath-wasm - webassembly](https://www.npmjs.com/package/jsonpath-wasm)
-- [NPM jsonpath-rs - native addon](https://www.npmjs.com/package/jsonpath-rs)
## Rust API
@@ -388,18 +386,6 @@ import * as jsonpath from "jsonpath-wasm";
const jsonpath = require('jsonpath-wasm');
```
-##### jsonpath-rs (NodeJS only)
-
-Goto [`jsonpath-rs` npmjs.org](https://www.npmjs.com/package/jsonpath-rs)
-
-```javascript
-const jsonpath = require('jsonpath-rs');
-```
-
-
-
-Javascript - jsonpath.Selector class
-
##### jsonpath-wasm
`wasm-bindgen` 리턴 타입 제약 때문에 빌더 패턴은 지원하지 않는다.
@@ -435,42 +421,6 @@ console.log(JSON.stringify(ret) == JSON.stringify(retObj));
// => true
```
-##### jsonpath-rs
-
-```javascript
-let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
-};
-
-let ret = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
-];
-
-let selector = new jsonpath.Selector()
- .path('$..friends[0]')
- .value(jsonObj);
-
-let retObj = selector.select();
-
-console.log(JSON.stringify(ret) == JSON.stringify(retObj));
-
-// => true
-```
-
-
-
-Javascript - jsonpath.SelectorMut class
-
빌더 패턴 제약은 `Selector class`와 동일하다.
```javascript
diff --git a/benchmark/bench_native.sh b/benchmark/bench_native.sh
deleted file mode 100755
index c9346c0..0000000
--- a/benchmark/bench_native.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-set -e
-DIR="$(pwd)"
-
-cd "${DIR}"/bench_bin && cargo build --release
-
-ITER=100000
-
-printf "\n\n$..book[?(@.price<30 && @.category=="fiction")] (loop ${ITER})"
-printf "\n\n"
-
-__default () {
- echo "Rust - select: " && time ./bench.sh select ${ITER}
- printf "\n"
- sleep 1
- cd "${DIR}"/javascript && echo "NodeJs - jsonpath - query: " && time ./bench.sh jsonpath ${ITER}
- printf "\n"
- sleep 1
- cd "${DIR}"/javascript && echo "NodeJs - jsonpath-rs - select:" && time ./bench.sh nativeSelect ${ITER}
-}
-
-__extra () {
- echo "Rust - selector: " && time ./bench.sh selector ${ITER}
- printf "\n"
- sleep 1
- echo "Rust - compile: " && time ./bench.sh compile ${ITER}
- printf "\n"
- sleep 1
- cd "${DIR}"/javascript && echo "NodeJs - jsonpath - query: " && time ./bench.sh jsonpath ${ITER}
- printf "\n"
- sleep 1
- cd "${DIR}"/javascript && echo "NodeJs - jsonpath-rs - selector: " && time ./bench.sh nativeSelector ${ITER}
- printf "\n"
- sleep 1
- cd "${DIR}"/javascript && echo "NodeJs - jsonpath-rs - compile: " && time ./bench.sh nativeCompile ${ITER}
- printf "\n"
-}
-
-if [ "$1" = "extra" ]; then
- __extra
-else
- __default
-fi
\ No newline at end of file
diff --git a/benchmark/javascript/bench.js b/benchmark/javascript/bench.js
index 6856b3d..035314e 100644
--- a/benchmark/javascript/bench.js
+++ b/benchmark/javascript/bench.js
@@ -43,7 +43,6 @@ function getJson() {
const path = '$..book[?(@.price<30 && @.category=="fiction")]';
const jp = require('jsonpath');
const jpw = require('jsonpath-wasm');
-const jpwRs = require('jsonpath-rs');
function jsonpath() {
for (var i = 0; i < iter; i++) {
@@ -51,26 +50,6 @@ function jsonpath() {
}
}
-function nativeCompile() {
- let template = jpwRs.compile(path);
- for (var i = 0; i < iter; i++) {
- let _ = template(JSON.stringify(json));
- }
-}
-
-function nativeSelector() {
- let selector = jpwRs.selector(getJson());
- for (var i = 0; i < iter; i++) {
- let _ = selector(path);
- }
-}
-
-function nativeSelect() {
- for (var i = 0; i < iter; i++) {
- let _ = jpwRs.select(JSON.stringify(json), path);
- }
-}
-
function wasmSelector() {
let selector = jpw.selector(getJson());
for (var i = 0; i < iter; i++) {
diff --git a/build.sh b/build.sh
index cbb9198..0847fa9 100755
--- a/build.sh
+++ b/build.sh
@@ -106,8 +106,7 @@ cd "${WASM_WWW_BENCH}" && \
npm link jsonpath-wasm
cd "${BENCHES_JS}" && \
- npm link jsonpath-wasm && \
- npm link jsonpath-rs
+ npm link jsonpath-wasm
cd "${WASM_TEST}" && \
npm link jsonpath-wasm
diff --git a/examples/nodejs-rs/.gitignore b/examples/nodejs-rs/.gitignore
deleted file mode 100644
index f06235c..0000000
--- a/examples/nodejs-rs/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-dist
diff --git a/examples/nodejs-rs/index.js b/examples/nodejs-rs/index.js
deleted file mode 100644
index 368fc3f..0000000
--- a/examples/nodejs-rs/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-const jsonpath = require('jsonpath-rs');
-
-let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
-};
-
-let ret = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
-];
-
-const path = '$..friends[0]';
-
-let ret1 = jsonpath.select(jsonObj, path);
-let ret2 = jsonpath.compile(path)(jsonObj);
-let ret3 = jsonpath.selector(jsonObj)(path);
-
-let selector = new jsonpath.Selector();
-selector.path(path);
-selector.value(jsonObj);
-let ret4 = selector.select();
-
-console.log(
- JSON.stringify(ret) == JSON.stringify(ret1),
- JSON.stringify(ret) == JSON.stringify(ret2),
- JSON.stringify(ret) == JSON.stringify(ret3),
- JSON.stringify(ret) == JSON.stringify(ret4)
-);
\ No newline at end of file
diff --git a/examples/nodejs-rs/package-lock.json b/examples/nodejs-rs/package-lock.json
deleted file mode 100644
index adeddff..0000000
--- a/examples/nodejs-rs/package-lock.json
+++ /dev/null
@@ -1,719 +0,0 @@
-{
- "name": "jsonpath-rs-example",
- "requires": true,
- "lockfileVersion": 1,
- "dependencies": {
- "ansi-escape-sequences": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz",
- "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==",
- "requires": {
- "array-back": "^3.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="
- }
- }
- },
- "ansi-escapes": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
- "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "requires": {
- "typical": "^2.6.1"
- }
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "builtins": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
- "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og="
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "chardet": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
- "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
- },
- "check-node-version": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.0.1.tgz",
- "integrity": "sha512-pWV+uuJJoOGbODDC6+DPUYeprv1CUg/jr1SGKpgkANstGN22f9T0Vn40mdv6hvRZ25KMH/IjkVc0LZH5ms+qEg==",
- "requires": {
- "chalk": "^2.3.0",
- "map-values": "^1.0.1",
- "minimist": "^1.2.0",
- "object-filter": "^1.0.2",
- "run-parallel": "^1.1.4",
- "semver": "^5.7.0"
- }
- },
- "cli-cursor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
- "requires": {
- "restore-cursor": "^2.0.0"
- }
- },
- "cli-width": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
- "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "command-line-args": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz",
- "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==",
- "requires": {
- "array-back": "^2.0.0",
- "find-replace": "^1.0.3",
- "typical": "^2.6.1"
- }
- },
- "command-line-commands": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz",
- "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==",
- "requires": {
- "array-back": "^2.0.0"
- }
- },
- "command-line-usage": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
- "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==",
- "requires": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "table-layout": "^0.4.2",
- "typical": "^2.6.1"
- }
- },
- "commander": {
- "version": "2.20.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
- "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
- "optional": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "external-editor": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
- "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
- "requires": {
- "chardet": "^0.4.0",
- "iconv-lite": "^0.4.17",
- "tmp": "^0.0.33"
- }
- },
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "find-replace": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz",
- "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=",
- "requires": {
- "array-back": "^1.0.4",
- "test-value": "^2.1.0"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
- "requires": {
- "typical": "^2.6.0"
- }
- }
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "git-config": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz",
- "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=",
- "requires": {
- "iniparser": "~1.0.5"
- }
- },
- "glob": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
- "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "handlebars": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz",
- "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==",
- "requires": {
- "neo-async": "^2.6.0",
- "optimist": "^0.6.1",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "iniparser": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz",
- "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0="
- },
- "inquirer": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
- "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
- "requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.0",
- "cli-cursor": "^2.1.0",
- "cli-width": "^2.0.0",
- "external-editor": "^2.0.4",
- "figures": "^2.0.0",
- "lodash": "^4.3.0",
- "mute-stream": "0.0.7",
- "run-async": "^2.2.0",
- "rx-lite": "^4.0.8",
- "rx-lite-aggregates": "^4.0.8",
- "string-width": "^2.1.0",
- "strip-ansi": "^4.0.0",
- "through": "^2.3.6"
- }
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
- "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
- },
- "jsonpath-rs": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/jsonpath-rs/-/jsonpath-rs-0.2.2.tgz",
- "integrity": "sha512-mKthE5svt4A1LO6cn7RRSexOM5RuKvPhBRRLsi95rTFQsHWhWpqkgmBzNGPuDEiGDyW3ED8c/zp/YtTHTBUFzA==",
- "requires": {
- "check-node-version": "*",
- "neon-cli": "^0.2.0"
- }
- },
- "lodash": {
- "version": "4.17.14",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
- "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
- },
- "lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="
- },
- "map-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz",
- "integrity": "sha1-douOecAJvytk/ugG4ip7HEGQyZA="
- },
- "mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
- "minimist": "0.0.8"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- }
- }
- },
- "mute-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
- },
- "neo-async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
- "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
- },
- "neon-cli": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.2.0.tgz",
- "integrity": "sha512-IsrxCyUcuAyWiq4Z+JnTXrjurj2SAL2VtWnCXS8iBYGJeIs1NIhFuLaM6fe7+rOyFfDcqUUTWGxZmkvUqwweRA==",
- "requires": {
- "chalk": "~2.1.0",
- "command-line-args": "^4.0.2",
- "command-line-commands": "^2.0.0",
- "command-line-usage": "^4.0.0",
- "git-config": "0.0.7",
- "handlebars": "^4.0.3",
- "inquirer": "^3.0.6",
- "mkdirp": "^0.5.1",
- "quickly-copy-file": "^1.0.0",
- "rimraf": "^2.6.1",
- "rsvp": "^4.6.1",
- "semver": "^5.1.0",
- "toml": "^2.3.0",
- "ts-typed-json": "^0.2.2",
- "validate-npm-package-license": "^3.0.1",
- "validate-npm-package-name": "^3.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
- "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
- "requires": {
- "ansi-styles": "^3.1.0",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^4.0.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "^2.0.0"
- }
- }
- }
- },
- "object-filter": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
- "integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "requires": {
- "mimic-fn": "^1.0.0"
- }
- },
- "optimist": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
- "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
- "requires": {
- "minimist": "~0.0.1",
- "wordwrap": "~0.0.2"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
- "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
- }
- }
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "quickly-copy-file": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz",
- "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=",
- "requires": {
- "mkdirp": "~0.5.0"
- }
- },
- "reduce-flatten": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
- "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc="
- },
- "restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "requires": {
- "onetime": "^2.0.0",
- "signal-exit": "^3.0.2"
- }
- },
- "rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "rsvp": {
- "version": "4.8.5",
- "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
- "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="
- },
- "run-async": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
- "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
- "requires": {
- "is-promise": "^2.1.0"
- }
- },
- "run-parallel": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
- "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q=="
- },
- "rx-lite": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
- "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="
- },
- "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=",
- "requires": {
- "rx-lite": "*"
- }
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
- },
- "signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "spdx-correct": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
- },
- "spdx-expression-parse": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
- "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA=="
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "table-layout": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.4.tgz",
- "integrity": "sha512-uNaR3SRMJwfdp9OUr36eyEi6LLsbcTqTO/hfTsNviKsNeyMBPICJCC7QXRF3+07bAP6FRwA8rczJPBqXDc0CkQ==",
- "requires": {
- "array-back": "^2.0.0",
- "deep-extend": "~0.6.0",
- "lodash.padend": "^4.6.1",
- "typical": "^2.6.1",
- "wordwrapjs": "^3.0.0"
- }
- },
- "test-value": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
- "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=",
- "requires": {
- "array-back": "^1.0.3",
- "typical": "^2.6.0"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
- "requires": {
- "typical": "^2.6.0"
- }
- }
- }
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
- },
- "tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "requires": {
- "os-tmpdir": "~1.0.2"
- }
- },
- "toml": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz",
- "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ=="
- },
- "ts-typed-json": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz",
- "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=",
- "requires": {
- "rsvp": "^3.5.0"
- },
- "dependencies": {
- "rsvp": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
- "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw=="
- }
- }
- },
- "typical": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
- "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0="
- },
- "uglify-js": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
- "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
- "optional": true,
- "requires": {
- "commander": "~2.20.0",
- "source-map": "~0.6.1"
- }
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "validate-npm-package-name": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
- "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
- "requires": {
- "builtins": "^1.0.3"
- }
- },
- "wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
- },
- "wordwrapjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
- "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
- "requires": {
- "reduce-flatten": "^1.0.1",
- "typical": "^2.6.1"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- }
- }
-}
diff --git a/examples/nodejs-rs/package.json b/examples/nodejs-rs/package.json
deleted file mode 100644
index da42b19..0000000
--- a/examples/nodejs-rs/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "jsonpath-rs-example",
- "scripts": {
- "start": "node index.js"
- },
- "dependencies": {
- "jsonpath-rs": "^0.2.2"
- }
-}
diff --git a/nodejs/.gitignore b/nodejs/.gitignore
deleted file mode 100644
index ebbb0db..0000000
--- a/nodejs/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-native/target
-native/index.node
-native/artifacts.json
-**/*~
-**/node_modules
-.idea
-build
\ No newline at end of file
diff --git a/nodejs/README.md b/nodejs/README.md
deleted file mode 100644
index f4be3b4..0000000
--- a/nodejs/README.md
+++ /dev/null
@@ -1,334 +0,0 @@
-# jsonpath-rs
-
-[](https://travis-ci.org/freestrings/jsonpath)
-
-It is native-addon of [jsonpath_lib](https://github.com/freestrings/jsonpath) that is [JsonPath](https://goessner.net/articles/JsonPath/) engine written in Rust.
-
-## Notice
-
-Pre-built 바이너리는 제공하진 않고 소스를 컴파일해서 설치한다. 만약 Rust가 설치되지 않았다면 자동으로 설치된다.
-
-Build from source instead of using pre-built binary, and if Rust is not installed, the latest version is automatically installed.
-
-> Not yet tested in Windows.
-
-> Supported node version is under v12.0.
-
-## APIs
-
-npm package
-
-```javascript
-const jsonpath = require('jsonpath-rs');
-```
-
-
-
-Javascript - jsonpath.Selector class
-
-```javascript
-let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
-};
-
-let ret = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
-];
-
-let selector = new jsonpath.Selector()
- .path('$..friends[0]')
- .value(jsonObj);
-
-let retObj = selector.select();
-
-console.log(JSON.stringify(ret) == JSON.stringify(retObj));
-
-// => true
-```
-
-
-
-Javascript - jsonpath.SelectorMut class
-
-빌더 패턴 제약은 `Selector class`와 동일하다.
-
-```javascript
-let jsonObj = {
- 'school': {
- 'friends': [
- {'name': '친구1', 'age': 20},
- {'name': '친구2', 'age': 20},
- ],
- },
- 'friends': [
- {'name': '친구3', 'age': 30},
- {'name': '친구4'},
- ],
-};
-
-let selector = new jsonpath.SelectorMut();
-selector.path('$..[?(@.age == 20)]');
-
-{
- selector.value(jsonObj);
- selector.deleteValue();
-
- let resultObj = {
- 'school': {'friends': [null, null]},
- 'friends': [
- {'name': '친구3', 'age': 30},
- {'name': '친구4'},
- ],
- };
- console.log(JSON.stringify(selector.take()) !== JSON.stringify(resultObj));
-
- // => true
-}
-
-{
- selector.value(jsonObj);
- selector.replaceWith((v) => {
- v.age = v.age * 2;
- return v;
- });
-
- let resultObj = {
- 'school': {
- 'friends': [
- {'name': '친구1', 'age': 40},
- {'name': '친구2', 'age': 40},
- ],
- },
- 'friends': [
- {'name': '친구3', 'age': 30},
- {'name': '친구4'},
- ],
- };
- console.log(JSON.stringify(selector.take()) !== JSON.stringify(resultObj));
-
- // => true
-}
-```
-
-
-
-Javascript - jsonpath.select(json: string|object, jsonpath: string)
-
-```javascript
-let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
-};
-
-let ret = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
-];
-
-
-let selectAsString = jsonpath.select(JSON.stringify(jsonObj), '$..friends[0]');
-let selectAsObj = jsonpath.select(jsonObj, '$..friends[0]');
-
-console.log(
- JSON.stringify(ret) == JSON.stringify(selectAsString),
- JSON.stringify(ret) == JSON.stringify(selectAsObj)
-);
-
-// => true, true
-```
-
-
-
-Javascript - jsonpath.compile(jsonpath: string)
-
-```javascript
-let template = jsonpath.compile('$..friends[0]');
-
-let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
-};
-
-let ret = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
-];
-
-let selectAsString = template(JSON.stringify(jsonObj));
-let selectAsObj = template(jsonObj);
-
-console.log(
- JSON.stringify(ret) == JSON.stringify(selectAsString),
- JSON.stringify(ret) == JSON.stringify(selectAsObj)
-);
-
-// => true, true
-
-let jsonObj2 = {
- "school": {
- "friends": [
- {"name": "Millicent Norman"},
- {"name": "Vincent Cannon"}
- ]
- },
- "friends": [ {"age": 30}, {"age": 40} ]
-};
-
-let ret2 = [
- {"age": 30},
- {"name": "Millicent Norman"}
-];
-
-let selectAsString2 = template(JSON.stringify(jsonObj2));
-let selectAsObj2 = template(jsonObj2);
-
-console.log(
- JSON.stringify(ret2) == JSON.stringify(selectAsString2),
- JSON.stringify(ret2) == JSON.stringify(selectAsObj2)
-);
-
-// => true, true
-```
-
-
-
-Javascript - jsonpath.selector(json: string|object)
-
-```javascript
-let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
-};
-
-let ret1 = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
-];
-
-let ret2 = [
- {"name": "친구4"},
- {"name": "친구2", "age": 20}
-];
-
-let selector = jsonpath.selector(jsonObj);
-// or as json string
-// let selector = jsonpath.selector(JSON.stringify(jsonObj));
-
-let select1 = selector('$..friends[0]');
-let select2 = selector('$..friends[1]');
-
-console.log(
- JSON.stringify(ret1) == JSON.stringify(select1),
- JSON.stringify(ret2) == JSON.stringify(select2)
-);
-
-// => true, true
-```
-
-
-
-Javascript - jsonpath.deleteValue(json: string|object, path: string)
-
-```javascript
-let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
-};
-
-let _1 = jsonpath.deleteValue(jsonObj, '$..friends[0]');
-let result = jsonpath.deleteValue(_1, '$..friends[1]');
-
-console.log(JSON.stringify(result) !== JSON.stringify({
- "school": { "friends": [null, null]},
- "friends": [null, null]
-}));
-
-// => true
-
-```
-
-
-
-Javascript - jsonpath.replaceWith(json: string|object, path: string, fun: function(json: object) => json: object
-
-```javascript
-let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
-};
-
-let result = jsonpath.replaceWith(jsonObj, '$..friends[0]', (v) => {
- v.age = v.age * 2;
- return v;
-});
-
-console.log(JSON.stringify(result) === JSON.stringify({
- "school": {
- "friends": [
- {"name": "친구1", "age": 40},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 60},
- {"name": "친구4"}
- ]
-}));
-
-// => true
-
-```
-
-
-
-[Javascript - Other Examples](https://github.com/freestrings/jsonpath/wiki/Javascript-examples)
\ No newline at end of file
diff --git a/nodejs/build.sh b/nodejs/build.sh
deleted file mode 100755
index 236d890..0000000
--- a/nodejs/build.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-if ! [ -x "$(command -v rustc)" ]; then
- echo "install rust"
- curl https://sh.rustup.rs -sSf > /tmp/rustup.sh
- sh /tmp/rustup.sh -y
- export PATH="$HOME/.cargo/bin:$PATH"
- source "$HOME/.cargo/env"
-fi
-check-node-version --node '<12.0' && neon build --release
\ No newline at end of file
diff --git a/nodejs/lib/index.js b/nodejs/lib/index.js
deleted file mode 100644
index bf962f7..0000000
--- a/nodejs/lib/index.js
+++ /dev/null
@@ -1,149 +0,0 @@
-const {
- CompileFn,
- SelectorFn,
- selectStr,
- deleteValue: _deleteValue,
- replaceWith: _replaceWith,
- Selector: _Selector,
- SelectorMut: _SelectorMut
-} = require('../native');
-
-function compile(path) {
- let compile = new CompileFn(path);
- return (json) => {
- if(typeof json != 'string') {
- json = JSON.stringify(json)
- }
- return JSON.parse(compile.template(json));
- };
-}
-
-function selector(json) {
- if(typeof json != 'string') {
- json = JSON.stringify(json)
- }
- let selector = new SelectorFn(json);
- return (path) => {
- return JSON.parse(selector.select(path));
- }
-}
-
-function select(json, path) {
- if(typeof json != 'string') {
- json = JSON.stringify(json)
- }
- return JSON.parse(selectStr(json, path));
-}
-
-function deleteValue(json, path) {
- if(typeof json != 'string') {
- json = JSON.stringify(json)
- }
- return JSON.parse(_deleteValue(json, path));
-}
-
-function replaceWith(json, path, fun) {
- if(typeof json != 'string') {
- json = JSON.stringify(json)
- }
- let result = _replaceWith(json, path, (v) => {
- let result = fun(JSON.parse(v));
- if(typeof result != 'string') {
- result = JSON.stringify(result)
- }
- return result;
- });
- if(typeof result == 'string') {
- result = JSON.parse(result);
- }
- return result;
-}
-
-class Selector {
- constructor() {
- this._selector = new _Selector();
- return this;
- }
-
- path(path) {
- this._selector.path(path);
- return this;
- }
-
- value(json) {
- if(typeof json != 'string') {
- json = JSON.stringify(json)
- }
- this._selector.value(json);
- return this;
- }
-
- select() {
- return JSON.parse(this._selector.select());
- }
-}
-
-class SelectorMut {
- constructor() {
- return this;
- }
-
- path(path) {
- this._path = path;
- return this;
- }
-
- value(json) {
- if(typeof json != 'string') {
- json = JSON.stringify(json)
- }
- this._json = json;
- return this;
- }
-
- deleteValue() {
- let selector = new _SelectorMut();
- if(!this._path) {
- selector.emptyPathError();
- return;
- }
-
- if(!this._json) {
- selector.emptyValueError();
- return;
- }
-
- this._json = deleteValue(this._json, this._path);
- return this;
- }
-
- replaceWith(fun) {
- let selector = new _SelectorMut();
- if(!this._path) {
- selector.emptyPathError();
- return;
- }
- if(!this._json) {
- selector.emptyValueError();
- return;
- }
- this._json = replaceWith(this._json, this._path, fun);
- return this;
- }
-
- take() {
- let json = this._json;
- delete this._json;
- return json;
- }
-}
-
-module.exports = {
- compile,
- selector,
- select,
- deleteValue,
- replaceWith,
- Selector,
- SelectorMut
-};
\ No newline at end of file
diff --git a/nodejs/native/.gitignore b/nodejs/native/.gitignore
deleted file mode 100644
index 8647db2..0000000
--- a/nodejs/native/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-.idea/*
-.vscode
-!.idea/runConfigurations/
-/target/
-Cargo.lock
\ No newline at end of file
diff --git a/nodejs/native/Cargo.toml b/nodejs/native/Cargo.toml
deleted file mode 100644
index 7051fd5..0000000
--- a/nodejs/native/Cargo.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[package]
-name = "jsonpath4nodejs"
-version = "0.2.4"
-authors = ["Changseok Han "]
-description = "jsonpath_lib bindings for nodejs"
-keywords = ["library", "jsonpath", "json", "nodejs"]
-repository = "https://github.com/freestrings/jsonpath"
-license = "MIT"
-
-build = "build.rs"
-exclude = ["artifacts.json", "index.node"]
-
-[build-dependencies]
-neon-build = "0.2.0"
-
-[dependencies]
-jsonpath_lib = "0.2.3"
-#jsonpath_lib = { path = "../../" }
-neon = "0.2.0"
-serde_json = { version = "1.0", features = ["preserve_order"] }
-
-[lib]
-name = "jsonpath4nodejs"
-crate-type = ["dylib"]
\ No newline at end of file
diff --git a/nodejs/native/build.rs b/nodejs/native/build.rs
deleted file mode 100644
index 687a661..0000000
--- a/nodejs/native/build.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-extern crate neon_build;
-
-fn main() {
- neon_build::setup(); // must be called in build.rs
-
- // add project-specific build logic here...
-}
diff --git a/nodejs/native/src/lib.rs b/nodejs/native/src/lib.rs
deleted file mode 100644
index 0fa84f3..0000000
--- a/nodejs/native/src/lib.rs
+++ /dev/null
@@ -1,268 +0,0 @@
-extern crate jsonpath_lib as jsonpath;
-#[macro_use]
-extern crate neon;
-extern crate serde_json;
-
-use jsonpath::{JsonPathError, Node, Parser, Selector};
-use neon::prelude::*;
-use serde_json::Value;
-
-fn select_str(mut ctx: FunctionContext) -> JsResult {
- let json_val = ctx.argument::(0)?.value();
- let path = ctx.argument::(1)?.value();
- match jsonpath::select_as_str(&json_val, path.as_str()) {
- Ok(value) => Ok(JsString::new(&mut ctx, &value).upcast()),
- Err(e) => panic!("{:?}", e),
- }
-}
-
-fn delete(mut ctx: FunctionContext) -> JsResult {
- let json_val = ctx.argument::(0)?.value();
- let json: Value = match serde_json::from_str(&json_val) {
- Ok(value) => value,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string())),
- };
- let path = ctx.argument::(1)?.value();
- match jsonpath::delete(json, &path) {
- Ok(value) => Ok(JsString::new(
- &mut ctx,
- match serde_json::to_string(&value) {
- Ok(value) => value,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string())),
- },
- )
- .upcast()),
- Err(e) => panic!("{:?}", e),
- }
-}
-
-fn replace_with(mut ctx: FunctionContext) -> JsResult {
- let json_val = ctx.argument::(0)?.value();
- let json: Value = match serde_json::from_str(&json_val) {
- Ok(value) => value,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string())),
- };
- let path = ctx.argument::(1)?.value();
- let fun = ctx.argument::(2)?;
- match jsonpath::replace_with(json, &path, &mut |v| {
- let json_str = JsString::new(
- &mut ctx,
- match serde_json::to_string(v) {
- Ok(value) => value,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string())),
- },
- );
-
- let null = ctx.null();
- let args = vec![ctx.string(json_str.value())];
- let result = match fun.call(&mut ctx, null, args) {
- Ok(result) => result,
- Err(e) => panic!("{:?}", e),
- };
- let json_str = match result.downcast::() {
- Ok(v) => v.value(),
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string())),
- };
- match serde_json::from_str(&json_str) {
- Ok(v) => v,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string())),
- }
- }) {
- Ok(value) => Ok(JsString::new(
- &mut ctx,
- match serde_json::to_string(&value) {
- Ok(value) => value,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string())),
- },
- )
- .upcast()),
- Err(e) => panic!("{:?}", e),
- }
-}
-
-pub struct SelectorCls {
- node: Option,
- value: Option,
-}
-
-impl SelectorCls {
- fn path(&mut self, path: &str) {
- let node = match Parser::compile(path) {
- Ok(node) => node,
- Err(e) => panic!("{:?}", e),
- };
-
- self.node = Some(node);
- }
-
- fn value(&mut self, json_str: &str) {
- let value: Value = match serde_json::from_str(&json_str) {
- Ok(value) => value,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string())),
- };
-
- self.value = Some(value);
- }
-
- fn select(&self) -> String {
- let node = match &self.node {
- Some(node) => node,
- None => panic!("{:?}", JsonPathError::EmptyPath),
- };
-
- let value = match &self.value {
- Some(value) => value,
- None => panic!("{:?}", JsonPathError::EmptyValue),
- };
-
- let mut selector = Selector::new();
- selector.compiled_path(node);
- selector.value(&value);
- match selector.select_as_str() {
- Ok(ret) => ret,
- Err(e) => panic!("{:?}", e),
- }
- }
-}
-
-pub struct SelectorMutCls {}
-
-declare_types! {
- pub class JsCompileFn for SelectorCls {
- init(mut ctx) {
- let path = ctx.argument::(0)?.value();
- let node = match Parser::compile(path.as_str()) {
- Ok(node) => node,
- Err(e) => panic!("{:?}", e)
- };
-
- Ok(SelectorCls { node: Some(node), value: None })
- }
-
- method template(mut ctx) {
- let mut this = ctx.this();
-
- let json_str = ctx.argument::(0)?.value();
- {
- let guard = ctx.lock();
- let mut this = this.borrow_mut(&guard);
- let value: Value = match serde_json::from_str(&json_str) {
- Ok(value) => value,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string()))
- };
- this.value = Some(value);
- };
-
- let result_str = {
- let guard = ctx.lock();
- let this = this.borrow(&guard);
- this.select()
- };
-
- Ok(JsString::new(&mut ctx, &result_str).upcast())
- }
- }
-
- pub class JsSelectorFn for SelectorCls {
- init(mut ctx) {
- let json_str = ctx.argument::(0)?.value();
- let value: Value = match serde_json::from_str(&json_str) {
- Ok(value) => value,
- Err(e) => panic!("{:?}", JsonPathError::Serde(e.to_string()))
- };
-
- Ok(SelectorCls { node: None, value: Some(value) })
- }
-
- method select(mut ctx) {
- let mut this = ctx.this();
-
- let path = ctx.argument::(0)?.value();
- {
- let guard = ctx.lock();
- let mut this = this.borrow_mut(&guard);
- this.path(&path);
- }
-
- let result_str = {
- let guard = ctx.lock();
- let this = this.borrow(&guard);
- this.select()
- };
-
- Ok(JsString::new(&mut ctx, &result_str).upcast())
- }
- }
-
- pub class JsSelector for SelectorCls {
- init(mut _ctx) {
- Ok(SelectorCls { node: None, value: None })
- }
-
- method path(mut ctx) {
- let mut this = ctx.this();
-
- let path = ctx.argument::(0)?.value();
- {
- let guard = ctx.lock();
- let mut this = this.borrow_mut(&guard);
- this.path(&path);
- }
-
- Ok(JsUndefined::new().upcast())
- }
-
- method value(mut ctx) {
- let mut this = ctx.this();
-
- let json_str = ctx.argument::(0)?.value();
- {
- let guard = ctx.lock();
- let mut this = this.borrow_mut(&guard);
- this.value(&json_str);
- }
-
- Ok(JsUndefined::new().upcast())
- }
-
- method select(mut ctx) {
- let this = ctx.this();
-
- let result_str = {
- let guard = ctx.lock();
- let this = this.borrow(&guard);
- this.select()
- };
-
- Ok(JsString::new(&mut ctx, &result_str).upcast())
- }
- }
-
- pub class JsSelectorMut for SelectorMutCls {
- init(mut _ctx) {
- Ok(SelectorMutCls {})
- }
-
- method emptyPathError(mut _ctx) {
- panic!("{:?}", JsonPathError::EmptyPath);
- }
-
- method emptyValueError(mut _ctx) {
- panic!("{:?}", JsonPathError::EmptyValue);
- }
- }
-}
-register_module!(mut m, {
- m.export_class::("CompileFn")
- .expect("CompileFn class error");
- m.export_class::("SelectorFn")
- .expect("SelectorFn class error");
- m.export_class::("Selector")
- .expect("Selector class error");
- m.export_class::("SelectorMut")
- .expect("SelectorMut class error");
- m.export_function("deleteValue", delete)?;
- m.export_function("replaceWith", replace_with)?;
- m.export_function("selectStr", select_str)?;
- Ok(())
-});
diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json
deleted file mode 100644
index 8d313ce..0000000
--- a/nodejs/package-lock.json
+++ /dev/null
@@ -1,1484 +0,0 @@
-{
- "name": "jsonpath-rs",
- "version": "0.2.4",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "ansi-colors": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
- "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
- "dev": true
- },
- "ansi-escape-sequences": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz",
- "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==",
- "requires": {
- "array-back": "^3.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.0.1.tgz",
- "integrity": "sha512-nzD+aqgQPTZlUGH6tE8JEjYPpnuBUFghPbq6zEWBHUmCHGQKWD9pf1PIuc2bMBtzi2OoIaoTJwgBV3h0ztdrFg=="
- }
- }
- },
- "ansi-escapes": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
- "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "requires": {
- "typical": "^2.6.1"
- }
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
- },
- "builtins": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
- "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og="
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
- "chalk": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
- "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
- "requires": {
- "ansi-styles": "^3.1.0",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^4.0.0"
- }
- },
- "chardet": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
- "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
- },
- "check-node-version": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.0.1.tgz",
- "integrity": "sha512-pWV+uuJJoOGbODDC6+DPUYeprv1CUg/jr1SGKpgkANstGN22f9T0Vn40mdv6hvRZ25KMH/IjkVc0LZH5ms+qEg==",
- "requires": {
- "chalk": "^2.3.0",
- "map-values": "^1.0.1",
- "minimist": "^1.2.0",
- "object-filter": "^1.0.2",
- "run-parallel": "^1.1.4",
- "semver": "^5.7.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- },
- "semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "cli-cursor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
- "requires": {
- "restore-cursor": "^2.0.0"
- }
- },
- "cli-width": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
- "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
- },
- "cliui": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
- "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
- "dev": true,
- "requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
- }
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "dev": true
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "command-line-args": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz",
- "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==",
- "requires": {
- "array-back": "^2.0.0",
- "find-replace": "^1.0.3",
- "typical": "^2.6.1"
- }
- },
- "command-line-commands": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz",
- "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==",
- "requires": {
- "array-back": "^2.0.0"
- }
- },
- "command-line-usage": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
- "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==",
- "requires": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "table-layout": "^0.4.2",
- "typical": "^2.6.1"
- }
- },
- "commander": {
- "version": "2.17.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
- "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
- "optional": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "dev": true,
- "requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
- "debug": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
- "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
- },
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
- },
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
- "requires": {
- "object-keys": "^1.0.12"
- }
- },
- "diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "end-of-stream": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
- "dev": true,
- "requires": {
- "once": "^1.4.0"
- }
- },
- "es-abstract": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
- "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.0",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "is-callable": "^1.1.4",
- "is-regex": "^1.0.4",
- "object-keys": "^1.0.12"
- }
- },
- "es-to-primitive": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
- "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
- "dev": true,
- "requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- }
- },
- "external-editor": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
- "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
- "requires": {
- "chardet": "^0.4.0",
- "iconv-lite": "^0.4.17",
- "tmp": "^0.0.33"
- }
- },
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "find-replace": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz",
- "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=",
- "requires": {
- "array-back": "^1.0.4",
- "test-value": "^2.1.0"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
- "requires": {
- "typical": "^2.6.0"
- }
- }
- }
- },
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "flat": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
- "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
- "dev": true,
- "requires": {
- "is-buffer": "~2.0.3"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "dev": true,
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "git-config": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz",
- "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=",
- "requires": {
- "iniparser": "~1.0.5"
- }
- },
- "glob": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "dev": true
- },
- "handlebars": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz",
- "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==",
- "requires": {
- "neo-async": "^2.6.0",
- "optimist": "^0.6.1",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4"
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
- },
- "he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "iniparser": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz",
- "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0="
- },
- "inquirer": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
- "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
- "requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.0",
- "cli-cursor": "^2.1.0",
- "cli-width": "^2.0.0",
- "external-editor": "^2.0.4",
- "figures": "^2.0.0",
- "lodash": "^4.3.0",
- "mute-stream": "0.0.7",
- "run-async": "^2.2.0",
- "rx-lite": "^4.0.8",
- "rx-lite-aggregates": "^4.0.8",
- "string-width": "^2.1.0",
- "strip-ansi": "^4.0.0",
- "through": "^2.3.6"
- }
- },
- "invert-kv": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
- "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
- "dev": true
- },
- "is-buffer": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
- "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
- "dev": true
- },
- "is-callable": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
- "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
- "dev": true
- },
- "is-date-object": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
- "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
- "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
- },
- "is-regex": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
- "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
- "dev": true,
- "requires": {
- "has": "^1.0.1"
- }
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "dev": true
- },
- "is-symbol": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
- "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.0"
- }
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
- },
- "js-yaml": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
- "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "lcid": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
- "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
- "dev": true,
- "requires": {
- "invert-kv": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "lodash": {
- "version": "4.17.14",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
- "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
- },
- "lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="
- },
- "log-symbols": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
- "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
- "dev": true,
- "requires": {
- "chalk": "^2.0.1"
- }
- },
- "map-age-cleaner": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
- "dev": true,
- "requires": {
- "p-defer": "^1.0.0"
- }
- },
- "map-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz",
- "integrity": "sha1-douOecAJvytk/ugG4ip7HEGQyZA="
- },
- "mem": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
- "dev": true,
- "requires": {
- "map-age-cleaner": "^0.1.1",
- "mimic-fn": "^2.0.0",
- "p-is-promise": "^2.0.0"
- },
- "dependencies": {
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- }
- }
- },
- "mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
- "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
- "minimist": "0.0.8"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- }
- }
- },
- "mocha": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz",
- "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==",
- "dev": true,
- "requires": {
- "ansi-colors": "3.2.3",
- "browser-stdout": "1.3.1",
- "debug": "3.2.6",
- "diff": "3.5.0",
- "escape-string-regexp": "1.0.5",
- "find-up": "3.0.0",
- "glob": "7.1.3",
- "growl": "1.10.5",
- "he": "1.2.0",
- "js-yaml": "3.13.1",
- "log-symbols": "2.2.0",
- "minimatch": "3.0.4",
- "mkdirp": "0.5.1",
- "ms": "2.1.1",
- "node-environment-flags": "1.0.5",
- "object.assign": "4.1.0",
- "strip-json-comments": "2.0.1",
- "supports-color": "6.0.0",
- "which": "1.3.1",
- "wide-align": "1.1.3",
- "yargs": "13.2.2",
- "yargs-parser": "13.0.0",
- "yargs-unparser": "1.5.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
- },
- "supports-color": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
- "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
- },
- "mute-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
- },
- "neo-async": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
- "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA=="
- },
- "neon-cli": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.2.0.tgz",
- "integrity": "sha512-IsrxCyUcuAyWiq4Z+JnTXrjurj2SAL2VtWnCXS8iBYGJeIs1NIhFuLaM6fe7+rOyFfDcqUUTWGxZmkvUqwweRA==",
- "requires": {
- "chalk": "~2.1.0",
- "command-line-args": "^4.0.2",
- "command-line-commands": "^2.0.0",
- "command-line-usage": "^4.0.0",
- "git-config": "0.0.7",
- "handlebars": "^4.0.3",
- "inquirer": "^3.0.6",
- "mkdirp": "^0.5.1",
- "quickly-copy-file": "^1.0.0",
- "rimraf": "^2.6.1",
- "rsvp": "^4.6.1",
- "semver": "^5.1.0",
- "toml": "^2.3.0",
- "ts-typed-json": "^0.2.2",
- "validate-npm-package-license": "^3.0.1",
- "validate-npm-package-name": "^3.0.0"
- }
- },
- "nice-try": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
- "dev": true
- },
- "node-environment-flags": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
- "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
- "dev": true,
- "requires": {
- "object.getownpropertydescriptors": "^2.0.3",
- "semver": "^5.7.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
- "dev": true
- }
- }
- },
- "npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "dev": true,
- "requires": {
- "path-key": "^2.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
- },
- "object-filter": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
- "integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g="
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
- "object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
- }
- },
- "object.getownpropertydescriptors": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
- "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.5.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "requires": {
- "mimic-fn": "^1.0.0"
- }
- },
- "optimist": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
- "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
- "requires": {
- "minimist": "~0.0.1",
- "wordwrap": "~0.0.2"
- }
- },
- "os-locale": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
- "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
- "dev": true,
- "requires": {
- "execa": "^1.0.0",
- "lcid": "^2.0.0",
- "mem": "^4.0.0"
- }
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
- },
- "p-defer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
- "dev": true
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
- "dev": true
- },
- "p-is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
- "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
- "dev": true
- },
- "p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "dev": true
- },
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "dev": true,
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "quickly-copy-file": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz",
- "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=",
- "requires": {
- "mkdirp": "~0.5.0"
- }
- },
- "reduce-flatten": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
- "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc="
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
- },
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "requires": {
- "onetime": "^2.0.0",
- "signal-exit": "^3.0.2"
- }
- },
- "rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "rsvp": {
- "version": "4.8.4",
- "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.4.tgz",
- "integrity": "sha512-6FomvYPfs+Jy9TfXmBpBuMWNH94SgCsZmJKcanySzgNNP6LjWxBvyLTa9KaMfDDM5oxRfrKDB0r/qeRsLwnBfA=="
- },
- "run-async": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
- "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
- "requires": {
- "is-promise": "^2.1.0"
- }
- },
- "run-parallel": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
- "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q=="
- },
- "rx-lite": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
- "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="
- },
- "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=",
- "requires": {
- "rx-lite": "*"
- }
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "semver": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
- "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
- },
- "shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "dev": true,
- "requires": {
- "shebang-regex": "^1.0.0"
- }
- },
- "shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "dev": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "spdx-correct": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
- },
- "spdx-expression-parse": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz",
- "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g=="
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- },
- "strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
- "dev": true
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "^2.0.0"
- }
- },
- "table-layout": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.4.tgz",
- "integrity": "sha512-uNaR3SRMJwfdp9OUr36eyEi6LLsbcTqTO/hfTsNviKsNeyMBPICJCC7QXRF3+07bAP6FRwA8rczJPBqXDc0CkQ==",
- "requires": {
- "array-back": "^2.0.0",
- "deep-extend": "~0.6.0",
- "lodash.padend": "^4.6.1",
- "typical": "^2.6.1",
- "wordwrapjs": "^3.0.0"
- }
- },
- "test-value": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
- "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=",
- "requires": {
- "array-back": "^1.0.3",
- "typical": "^2.6.0"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
- "requires": {
- "typical": "^2.6.0"
- }
- }
- }
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
- },
- "tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "requires": {
- "os-tmpdir": "~1.0.2"
- }
- },
- "toml": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz",
- "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ=="
- },
- "ts-typed-json": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz",
- "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=",
- "requires": {
- "rsvp": "^3.5.0"
- },
- "dependencies": {
- "rsvp": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
- "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw=="
- }
- }
- },
- "typical": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
- "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0="
- },
- "uglify-js": {
- "version": "3.4.9",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz",
- "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
- "optional": true,
- "requires": {
- "commander": "~2.17.1",
- "source-map": "~0.6.1"
- }
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "validate-npm-package-name": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
- "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
- "requires": {
- "builtins": "^1.0.3"
- }
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
- "dev": true
- },
- "wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
- "dev": true,
- "requires": {
- "string-width": "^1.0.2 || 2"
- }
- },
- "wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
- },
- "wordwrapjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
- "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
- "requires": {
- "reduce-flatten": "^1.0.1",
- "typical": "^2.6.1"
- }
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dev": true,
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
- "dev": true
- },
- "yargs": {
- "version": "13.2.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz",
- "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==",
- "dev": true,
- "requires": {
- "cliui": "^4.0.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
- "os-locale": "^3.1.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^13.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
- }
- },
- "yargs-parser": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
- "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- },
- "yargs-unparser": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz",
- "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==",
- "dev": true,
- "requires": {
- "flat": "^4.1.0",
- "lodash": "^4.17.11",
- "yargs": "^12.0.5"
- },
- "dependencies": {
- "get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
- "dev": true
- },
- "require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
- "dev": true
- },
- "yargs": {
- "version": "12.0.5",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
- "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
- "dev": true,
- "requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^3.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1 || ^4.0.0",
- "yargs-parser": "^11.1.1"
- }
- },
- "yargs-parser": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
- "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- }
- }
- }
- }
-}
diff --git a/nodejs/package.json b/nodejs/package.json
deleted file mode 100644
index c5bd9e3..0000000
--- a/nodejs/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "jsonpath-rs",
- "version": "0.2.4",
- "description": "It is JsonPath implementation. The core implementation is written in Rust",
- "author": "Changseok Han ",
- "license": "MIT",
- "keywords": [
- "jsonpath",
- "native-addon",
- "rust-binding",
- "rust",
- "json",
- "parsing"
- ],
- "main": "lib/index.js",
- "dependencies": {
- "check-node-version": "*",
- "neon-cli": "^0.2.0"
- },
- "scripts": {
- "install": "./build.sh",
- "test": "mocha"
- },
- "devDependencies": {
- "mocha": "^6.1.4"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/freestrings/jsonpath.git"
- },
- "engineStrict": true,
- "engines": {
- "node": ">=8.0 <12.0"
- }
-}
diff --git a/nodejs/test/index.spec.js b/nodejs/test/index.spec.js
deleted file mode 100644
index 9d4721d..0000000
--- a/nodejs/test/index.spec.js
+++ /dev/null
@@ -1,928 +0,0 @@
-const jsonpath = require('../lib/index.js');
-
-let jsonObj = {
- "store": {
- "book": [
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Evelyn Waugh",
- "title": "Sword of Honour",
- "price": 12.99
- },
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- },
- {
- "category": "fiction",
- "author": "J. R. R. Tolkien",
- "title": "The Lord of the Rings",
- "isbn": "0-395-19395-8",
- "price": 22.99
- }
- ],
- "bicycle": {
- "color": "red",
- "price": 19.95
- }
- },
- "expensive": 10
-};
-
-let list = {
- '$.store.book[*].author': [
- "Nigel Rees",
- "Evelyn Waugh",
- "Herman Melville",
- "J. R. R. Tolkien"
- ],
-
- '$..author':[
- "Nigel Rees",
- "Evelyn Waugh",
- "Herman Melville",
- "J. R. R. Tolkien"
- ],
-
- '$.store.*': [
- [
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Evelyn Waugh",
- "title": "Sword of Honour",
- "price": 12.99
- },
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- },
- {
- "category": "fiction",
- "author": "J. R. R. Tolkien",
- "title": "The Lord of the Rings",
- "isbn": "0-395-19395-8",
- "price": 22.99
- }
- ],
- {
- "color": "red",
- "price": 19.95
- }
- ],
-
- '$.store..price':[
- 8.95,
- 12.99,
- 8.99,
- 22.99,
- 19.95
- ],
-
- '$..book[2]': [
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- }
- ],
-
- '$..book[-2]': [
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- }
- ],
-
- '$..book[0,1]': [
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Evelyn Waugh",
- "title": "Sword of Honour",
- "price": 12.99
- }
- ],
-
- '$..book[:2]': [
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Evelyn Waugh",
- "title": "Sword of Honour",
- "price": 12.99
- }
- ],
-
- '$..book[1:2]': [
- {
- "category": "fiction",
- "author": "Evelyn Waugh",
- "title": "Sword of Honour",
- "price": 12.99
- }
- ],
-
- '$..book[-2:]': [
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- },
- {
- "category": "fiction",
- "author": "J. R. R. Tolkien",
- "title": "The Lord of the Rings",
- "isbn": "0-395-19395-8",
- "price": 22.99
- }
- ],
-
- '$..book[2:]': [
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- },
- {
- "category": "fiction",
- "author": "J. R. R. Tolkien",
- "title": "The Lord of the Rings",
- "isbn": "0-395-19395-8",
- "price": 22.99
- }
- ],
-
- '$..book[?(@.isbn)]': [
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- },
- {
- "category": "fiction",
- "author": "J. R. R. Tolkien",
- "title": "The Lord of the Rings",
- "isbn": "0-395-19395-8",
- "price": 22.99
- }
- ],
-
- '$.store.book[?(@.price < 10)]': [
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- }
- ],
-
- '$..*': [
- {
- "book": [
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Evelyn Waugh",
- "title": "Sword of Honour",
- "price": 12.99
- },
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- },
- {
- "category": "fiction",
- "author": "J. R. R. Tolkien",
- "title": "The Lord of the Rings",
- "isbn": "0-395-19395-8",
- "price": 22.99
- }
- ],
- "bicycle": {
- "color": "red",
- "price": 19.95
- }
- },
- 10,
- [
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Evelyn Waugh",
- "title": "Sword of Honour",
- "price": 12.99
- },
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- },
- {
- "category": "fiction",
- "author": "J. R. R. Tolkien",
- "title": "The Lord of the Rings",
- "isbn": "0-395-19395-8",
- "price": 22.99
- }
- ],
- {
- "color": "red",
- "price": 19.95
- },
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Evelyn Waugh",
- "title": "Sword of Honour",
- "price": 12.99
- },
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- },
- {
- "category": "fiction",
- "author": "J. R. R. Tolkien",
- "title": "The Lord of the Rings",
- "isbn": "0-395-19395-8",
- "price": 22.99
- },
- "reference",
- "Nigel Rees",
- "Sayings of the Century",
- 8.95,
- "fiction",
- "Evelyn Waugh",
- "Sword of Honour",
- 12.99,
- "fiction",
- "Herman Melville",
- "Moby Dick",
- "0-553-21311-3",
- 8.99,
- "fiction",
- "J. R. R. Tolkien",
- "The Lord of the Rings",
- "0-395-19395-8",
- 22.99,
- "red",
- 19.95
- ],
-
- '$..book[ ?( (@.price < 13 || $.store.bicycle.price < @.price) && @.price <=10 ) ]': [
- {
- "category": "reference",
- "author": "Nigel Rees",
- "title": "Sayings of the Century",
- "price": 8.95
- },
- {
- "category": "fiction",
- "author": "Herman Melville",
- "title": "Moby Dick",
- "isbn": "0-553-21311-3",
- "price": 8.99
- }
- ]
-};
-
-describe('compile test', () => {
- it('basic', (done) => {
- let template = jsonpath.compile('$.a');
- let result = template({'a': 1});
- if (result[0] === 1) {
- done();
- }
- });
-});
-
-describe('selector test', () => {
- it('basic', (done) => {
- let selector = jsonpath.selector({'a': 1});
- let result = selector('$.a');
- if (result[0] === 1) {
- done();
- }
- });
-});
-
-describe('select test', () => {
- it('basic', (done) => {
- let result = jsonpath.select({'a': 1}, '$.a');
- if (result[0] === 1) {
- done();
- }
- });
-});
-
-describe('filter test', () => {
-
- function run(done, path, expected) {
- let result = jsonpath.select(jsonObj, path);
- if (JSON.stringify(result) === JSON.stringify(expected)) {
- done();
- }
- }
-
- for( var i in list ) {
- it(i, (done) => {
- run (done, i, list[i]);
- })
- }
-
- it('object equal', (done) => {
- let selector = new jsonpath.Selector();
- selector.path('$..[?(@.a == 1)]');
- selector.value({
- 'a': 1,
- 'b': {'a': 1},
- 'c': {'a': 1},
- });
- let result = selector.select();
- if (JSON.stringify(result) === JSON.stringify([{'a': 1}, {'a': 1}])) {
- done();
- }
- });
-
- it('escaped single quote notation', (done) => {
- let result = jsonpath.select({"single'quote":"value"}, "$['single\\'quote']");
- if (JSON.stringify(result) === JSON.stringify(["value"])) {
- done();
- }
- });
-
- it('escaped double quote notation', (done) => {
- let result = jsonpath.select({"single\"quote":"value"}, "$['single\"quote']");
- if (JSON.stringify(result) === JSON.stringify(["value"])) {
- done();
- }
- });
-
- it('array range with step - $[::]', (done) => {
- let result = jsonpath.select(["first", "second", "third", "forth", "fifth"], "$[::]");
- if (JSON.stringify(result) === JSON.stringify(["first", "second", "third", "forth", "fifth"])) {
- done();
- }
- });
-
- it('array range with step - $[::2]', (done) => {
- let result = jsonpath.select(["first", "second", "third", "forth", "fifth"], "$[::2]");
- if (JSON.stringify(result) === JSON.stringify(["first", "third", "fifth"])) {
- done();
- }
- });
-
- it('array range with step - $[1: :]', (done) => {
- let result = jsonpath.select(["first", "second", "third", "forth", "fifth"], "$[1: :]");
- if (JSON.stringify(result) === JSON.stringify(["second", "third", "forth", "fifth"])) {
- done();
- }
- });
-
- it('array range with step - $[1:2:]', (done) => {
- let result = jsonpath.select(["first", "second", "third", "forth", "fifth"], "$[1:2:]");
- if (JSON.stringify(result) === JSON.stringify(["second"])) {
- done();
- }
- });
-
- it('array range with step - $[1::2]', (done) => {
- let result = jsonpath.select(["first", "second", "third", "forth", "fifth"], "$[1::2]");
- if (JSON.stringify(result) === JSON.stringify(["second", "forth"])) {
- done();
- }
- });
-
- it('array range with step - $[0:3:1]', (done) => {
- let result = jsonpath.select(["first", "second", "third", "forth", "fifth"], "$[0:3:1]");
- if (JSON.stringify(result) === JSON.stringify(["first", "second", "third"])) {
- done();
- }
- });
-
- it('array range with step - $[0:3:2]', (done) => {
- let result = jsonpath.select(["first", "second", "third", "forth", "fifth"], "$[0:3:2]");
- if (JSON.stringify(result) === JSON.stringify(["first", "third"])) {
- done();
- }
- });
-
- it('array keys', (done) => {
- let result = jsonpath.select({
- "key1": "value1",
- "key2": 2
- }, "$['key1', 'key2']");
- if (JSON.stringify(result) === JSON.stringify(["value1", 2])) {
- done();
- }
- });
-});
-
-describe('SelectorMut test', () => {
- it('delete', (done) => {
- let jsonObjNew = JSON.parse(JSON.stringify(jsonObj));
- let result = jsonpath.deleteValue(jsonObjNew, '$.store.book');
- if (JSON.stringify(result) === JSON.stringify({
- 'store': {
- 'book': null,
- 'bicycle': {
- 'color': 'red',
- 'price': 19.95,
- },
- },
- 'expensive': 10,
- })) {
- done();
- }
- });
-
- it('replaceWith', (done) => {
- let jsonObjNew = JSON.parse(JSON.stringify(jsonObj));
- let result = jsonpath.replaceWith(jsonObjNew, '$.store.book', (v) => {
- let ret = v[0];
- ret.price = 9;
- return ret;
- });
- if (JSON.stringify(result) === JSON.stringify({
- 'store': {
- 'book': {
- 'category': 'reference',
- 'author': 'Nigel Rees',
- 'title': 'Sayings of the Century',
- 'price': 9,
- },
- 'bicycle': {
- 'color': 'red',
- 'price': 19.95,
- },
- },
- 'expensive': 10,
- })) {
- done();
- }
- });
-
- it('SeletorMut delete', (done) => {
- let jsonObjNew = JSON.parse(JSON.stringify(jsonObj));
- let selector = new jsonpath.SelectorMut();
- selector.path('$.store.book').value(jsonObjNew).deleteValue();
-
- let result = selector.take();
- if (JSON.stringify(result) === JSON.stringify({
- 'store': {
- 'book': null,
- 'bicycle': {
- 'color': 'red',
- 'price': 19.95,
- },
- },
- 'expensive': 10,
- })) {
- done();
- }
- });
-
- it('SeletorMut replaceWith', (done) => {
- let jsonObjNew = JSON.parse(JSON.stringify(jsonObj));
- let selector = new jsonpath.SelectorMut();
- selector.path('$.store.book').value(jsonObjNew).replaceWith((v) => {
- let ret = v[0];
- ret.price = 9;
- return ret;
- });
-
- let result = selector.take();
- if (JSON.stringify(result) === JSON.stringify({
- 'store': {
- 'book': {
- 'category': 'reference',
- 'author': 'Nigel Rees',
- 'title': 'Sayings of the Century',
- 'price': 9,
- },
- 'bicycle': {
- 'color': 'red',
- 'price': 19.95,
- },
- },
- 'expensive': 10,
- })) {
- done();
- }
- });
-});
-
-describe('Selector test', () => {
- it('select', (done) => {
- let selector = new jsonpath.Selector().value(jsonObj);
- for(var i in list) {
- if(JSON.stringify(list[i]) !== JSON.stringify(selector.path(i).select())) {
- throw `fail: ${i}`;
- }
- }
- done();
- });
-});
-
-describe('README test', () => {
- it('jsonpath.Selector', (done) => {
- let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
- };
-
- let selector = new jsonpath.Selector().value(jsonObj);
-
- {
- let jsonObj = selector.path('$..[?(@.age >= 30)]').select();
- let resultObj = [{"name": "친구3", "age": 30}];
- if(JSON.stringify(jsonObj) !== JSON.stringify(resultObj)) {
- throw 'jsonpath.Selector: $..[?(@.age >= 30)]';
- }
- }
-
- {
- let jsonObj = selector.path('$..[?(@.age == 20)]').select();
- let resultObj = [{"name": "친구1", "age": 20}, {"name": "친구2", "age": 20}];
- if(JSON.stringify(jsonObj) !== JSON.stringify(resultObj)) {
- throw 'jsonpath.Selector: $..[?(@.age >= 20)]';
- }
- }
-
- {
- let jsonObj = selector.value({"friends": [ {"name": "친구5", "age": 20} ]}).select();
- let resultObj = [{"name": "친구5", "age": 20}];
- if(JSON.stringify(jsonObj) !== JSON.stringify(resultObj)) {
- throw 'jsonpath.Selector: change value';
- }
- }
-
- done();
- });
-
- it('jsonpath.SelectorMut', (done) => {
- let jsonObj = {
- 'school': {
- 'friends': [
- {'name': '친구1', 'age': 20},
- {'name': '친구2', 'age': 20},
- ],
- },
- 'friends': [
- {'name': '친구3', 'age': 30},
- {'name': '친구4'},
- ],
- };
-
- let selector = new jsonpath.SelectorMut();
- selector.path('$..[?(@.age == 20)]');
-
- {
- selector.value(jsonObj).deleteValue();
-
- let resultObj = {
- 'school': {'friends': [null, null]},
- 'friends': [
- {'name': '친구3', 'age': 30},
- {'name': '친구4'},
- ],
- };
- if (JSON.stringify(selector.take()) !== JSON.stringify(resultObj)) {
- throw 'jsonpath.SelectorMut.deleteValue';
- }
- }
-
- {
- selector.value(jsonObj).replaceWith((v) => {
- v.age = v.age * 2;
- return v;
- });
-
- let resultObj = {
- 'school': {
- 'friends': [
- {'name': '친구1', 'age': 40},
- {'name': '친구2', 'age': 40},
- ],
- },
- 'friends': [
- {'name': '친구3', 'age': 30},
- {'name': '친구4'},
- ],
- };
- if (JSON.stringify(selector.take()) !== JSON.stringify(resultObj)) {
- throw 'jsonpath.SelectorMut.replaceWith';
- }
- }
-
- done();
- });
-
- it('jsonpath.select(json: string|object, jsonpath: string)', (done) => {
- let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
- };
-
- let ret = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
- ];
-
-
- let selectAsString = jsonpath.select(JSON.stringify(jsonObj), '$..friends[0]');
- let selectAsObj = jsonpath.select(jsonObj, '$..friends[0]');
-
- if(
- JSON.stringify(ret) !== JSON.stringify(selectAsString) ||
- JSON.stringify(ret) !== JSON.stringify(selectAsObj)
- ) {
- throw 'jsonpath.select(json: string|object, jsonpath: string)';
- }
-
- done();
- });
-
- it('jsonpath.compile(jsonpath: string)', (done) => {
- let template = jsonpath.compile('$..friends[0]');
-
- let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
- };
-
- let ret = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
- ];
-
- let selectAsString = template(JSON.stringify(jsonObj));
- let selectAsObj = template(jsonObj);
-
- if(
- JSON.stringify(ret) !== JSON.stringify(selectAsString) ||
- JSON.stringify(ret) !== JSON.stringify(selectAsObj)
- ) {
- throw 'jsonpath.compile(jsonpath: string) 1';
- }
-
- let jsonObj2 = {
- "school": {
- "friends": [
- {"name": "Millicent Norman"},
- {"name": "Vincent Cannon"}
- ]
- },
- "friends": [ {"age": 30}, {"age": 40} ]
- };
-
- let ret2 = [
- {"age": 30},
- {"name": "Millicent Norman"}
- ];
-
- let selectAsString2 = template(JSON.stringify(jsonObj2));
- let selectAsObj2 = template(jsonObj2);
-
- if(
- JSON.stringify(ret2) !== JSON.stringify(selectAsString2) ||
- JSON.stringify(ret2) !== JSON.stringify(selectAsObj2)
- ) {
- throw 'jsonpath.compile(jsonpath: string) 2';
- }
-
- done();
- });
-
- it('jsonpath.selector(json: string|object)', (done) => {
- let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
- };
-
- let ret1 = [
- {"name": "친구3", "age": 30},
- {"name": "친구1", "age": 20}
- ];
-
- let ret2 = [
- {"name": "친구4"},
- {"name": "친구2", "age": 20}
- ];
-
- let selector = jsonpath.selector(jsonObj);
- let select1 = selector('$..friends[0]');
- let select2 = selector('$..friends[1]');
-
- if(
- JSON.stringify(ret1) !== JSON.stringify(select1) ||
- JSON.stringify(ret2) !== JSON.stringify(select2)
- ) {
- throw 'jsonpath.selector(json: string|object)';
- }
-
- done();
- });
-
- it('jsonpath.deleteValue(json: string|object, path: string)', (done) => {
- let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
- };
-
- let _1 = jsonpath.deleteValue(jsonObj, '$..friends[0]');
- let result = jsonpath.deleteValue(_1, '$..friends[1]');
-
- if(JSON.stringify(result) === JSON.stringify({
- "school": { "friends": [null, null]},
- "friends": [null, null]
- })) {
- done();
- }
- });
-
- it('jsonpath.replaceWith(json: string|object, path: string, fun: function(json: object) => json: object', (done) => {
- let jsonObj = {
- "school": {
- "friends": [
- {"name": "친구1", "age": 20},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 30},
- {"name": "친구4"}
- ]
- };
-
- let result = jsonpath.replaceWith(jsonObj, '$..friends[0]', (v) => {
- v.age = v.age * 2;
- return v;
- });
-
- if(JSON.stringify(result) === JSON.stringify({
- "school": {
- "friends": [
- {"name": "친구1", "age": 40},
- {"name": "친구2", "age": 20}
- ]
- },
- "friends": [
- {"name": "친구3", "age": 60},
- {"name": "친구4"}
- ]
- })) {
- done();
- }
- });
-});
-
-describe('ISSUE test', () => {
- it('Results do not match other implementations #6', (done) => {
- let result = jsonpath.select(["first", "second"], "$[:]");
- if (JSON.stringify(result) === JSON.stringify(["first", "second"])) {
- done();
- }
- });
-
- it('Invalid wildcard filter results #7', (done) => {
-
- function select(json, expected, paths) {
- for (var i = 0 ; i < paths.length ; i++) {
- let result = jsonpath.select(json, paths[i]);
- if (JSON.stringify(result) !== JSON.stringify(expected)) {
- throw Error("Error: " + paths[i]);
- }
- }
- }
-
- select(
- ["string", 42, { "key": "value" }, [0, 1]],
- ["string", 42, { "key": "value" }, [0, 1]],
- ["$.*", "$[*]"]
- );
-
- select(
- ["string", 42, { "key": "value" }, [0, 1]],
- [ "string", 42, { "key" : "value" }, [ 0, 1 ], "value", 0, 1 ],
- ["$..*", "$..[*]"]
- );
-
- select(
- ["string", 42, { "key": "value" }, [0, 1]],
- ["value", 0, 1],
- ["$.*.*", "$[*].*", "$.*[*]", "$[*][*]"]
- );
-
- done();
- });
-});
\ No newline at end of file
diff --git a/src/lib.rs b/src/lib.rs
index 355a1a6..cb2e9ef 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -132,7 +132,7 @@ extern crate serde_json;
use serde_json::Value;
-pub use parser::Parser;
+pub use parser::Parser; // TODO private
pub use select::JsonPathError;
pub use select::{Selector, SelectorMut};