@farukada/aws-langgraph-dynamodb-ts 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esbuild-bundle-hints.d.ts +6 -1
- package/dist/esbuild-bundle-hints.d.ts.map +1 -1
- package/dist/esbuild-bundle-hints.js +7 -15
- package/dist/esbuild-bundle-hints.js.map +1 -1
- package/node_modules/deep-is/.travis.yml +5 -0
- package/node_modules/deep-is/LICENSE +22 -0
- package/node_modules/deep-is/README.markdown +70 -0
- package/node_modules/deep-is/example/cmp.js +11 -0
- package/node_modules/deep-is/index.js +102 -0
- package/node_modules/deep-is/package.json +58 -0
- package/node_modules/deep-is/test/NaN.js +16 -0
- package/node_modules/deep-is/test/cmp.js +23 -0
- package/node_modules/deep-is/test/neg-vs-pos-0.js +15 -0
- package/node_modules/escodegen/LICENSE.BSD +21 -0
- package/node_modules/escodegen/README.md +84 -0
- package/node_modules/escodegen/bin/escodegen.js +77 -0
- package/node_modules/escodegen/bin/esgenerate.js +64 -0
- package/node_modules/escodegen/escodegen.js +2626 -0
- package/node_modules/escodegen/node_modules/estraverse/.jshintrc +16 -0
- package/node_modules/escodegen/node_modules/estraverse/LICENSE.BSD +19 -0
- package/node_modules/escodegen/node_modules/estraverse/README.md +153 -0
- package/node_modules/escodegen/node_modules/estraverse/estraverse.js +782 -0
- package/node_modules/escodegen/node_modules/estraverse/gulpfile.js +70 -0
- package/node_modules/escodegen/node_modules/estraverse/package.json +40 -0
- package/node_modules/escodegen/node_modules/levn/LICENSE +22 -0
- package/node_modules/escodegen/node_modules/levn/README.md +196 -0
- package/node_modules/escodegen/node_modules/levn/lib/cast.js +298 -0
- package/node_modules/escodegen/node_modules/levn/lib/coerce.js +285 -0
- package/node_modules/escodegen/node_modules/levn/lib/index.js +22 -0
- package/node_modules/escodegen/node_modules/levn/lib/parse-string.js +113 -0
- package/node_modules/escodegen/node_modules/levn/lib/parse.js +102 -0
- package/node_modules/escodegen/node_modules/levn/package.json +47 -0
- package/node_modules/escodegen/node_modules/optionator/CHANGELOG.md +56 -0
- package/node_modules/escodegen/node_modules/optionator/LICENSE +22 -0
- package/node_modules/escodegen/node_modules/optionator/README.md +238 -0
- package/node_modules/escodegen/node_modules/optionator/lib/help.js +260 -0
- package/node_modules/escodegen/node_modules/optionator/lib/index.js +465 -0
- package/node_modules/escodegen/node_modules/optionator/lib/util.js +54 -0
- package/node_modules/escodegen/node_modules/optionator/package.json +44 -0
- package/node_modules/escodegen/node_modules/prelude-ls/CHANGELOG.md +99 -0
- package/node_modules/escodegen/node_modules/prelude-ls/LICENSE +22 -0
- package/node_modules/escodegen/node_modules/prelude-ls/README.md +15 -0
- package/node_modules/escodegen/node_modules/prelude-ls/lib/Func.js +65 -0
- package/node_modules/escodegen/node_modules/prelude-ls/lib/List.js +686 -0
- package/node_modules/escodegen/node_modules/prelude-ls/lib/Num.js +130 -0
- package/node_modules/escodegen/node_modules/prelude-ls/lib/Obj.js +154 -0
- package/node_modules/escodegen/node_modules/prelude-ls/lib/Str.js +92 -0
- package/node_modules/escodegen/node_modules/prelude-ls/lib/index.js +178 -0
- package/node_modules/escodegen/node_modules/prelude-ls/package.json +52 -0
- package/node_modules/escodegen/node_modules/type-check/LICENSE +22 -0
- package/node_modules/escodegen/node_modules/type-check/README.md +210 -0
- package/node_modules/escodegen/node_modules/type-check/lib/check.js +126 -0
- package/node_modules/escodegen/node_modules/type-check/lib/index.js +16 -0
- package/node_modules/escodegen/node_modules/type-check/lib/parse-type.js +196 -0
- package/node_modules/escodegen/node_modules/type-check/package.json +40 -0
- package/node_modules/escodegen/package.json +61 -0
- package/node_modules/esprima/ChangeLog +235 -0
- package/node_modules/esprima/LICENSE.BSD +21 -0
- package/node_modules/esprima/README.md +46 -0
- package/node_modules/esprima/bin/esparse.js +139 -0
- package/node_modules/esprima/bin/esvalidate.js +236 -0
- package/node_modules/esprima/dist/esprima.js +6709 -0
- package/node_modules/esprima/package.json +112 -0
- package/node_modules/esutils/LICENSE.BSD +19 -0
- package/node_modules/esutils/README.md +174 -0
- package/node_modules/esutils/lib/ast.js +144 -0
- package/node_modules/esutils/lib/code.js +135 -0
- package/node_modules/esutils/lib/keyword.js +165 -0
- package/node_modules/esutils/lib/utils.js +33 -0
- package/node_modules/esutils/package.json +44 -0
- package/node_modules/fast-levenshtein/LICENSE.md +25 -0
- package/node_modules/fast-levenshtein/README.md +104 -0
- package/node_modules/fast-levenshtein/levenshtein.js +136 -0
- package/node_modules/fast-levenshtein/package.json +39 -0
- package/node_modules/jsonpath/.jscsrc +60 -0
- package/node_modules/jsonpath/.jshintrc +9 -0
- package/node_modules/jsonpath/.travis.yml +3 -0
- package/node_modules/jsonpath/Dockerfile +1 -0
- package/node_modules/jsonpath/Gruntfile.js +83 -0
- package/node_modules/jsonpath/LICENSE +7 -0
- package/node_modules/jsonpath/README.md +216 -0
- package/node_modules/jsonpath/bin/generate_parser.js +8 -0
- package/node_modules/jsonpath/fig.yml +5 -0
- package/node_modules/jsonpath/generated/parser.js +721 -0
- package/node_modules/jsonpath/include/action.js +4 -0
- package/node_modules/jsonpath/include/module.js +34 -0
- package/node_modules/jsonpath/index.js +1 -0
- package/node_modules/jsonpath/jsonpath.js +6842 -0
- package/node_modules/jsonpath/jsonpath.min.js +4 -0
- package/node_modules/jsonpath/lib/aesprim.js +18 -0
- package/node_modules/jsonpath/lib/dict.js +6 -0
- package/node_modules/jsonpath/lib/grammar.js +106 -0
- package/node_modules/jsonpath/lib/handlers.js +260 -0
- package/node_modules/jsonpath/lib/index.js +249 -0
- package/node_modules/jsonpath/lib/parser.js +21 -0
- package/node_modules/jsonpath/lib/slice.js +41 -0
- package/node_modules/jsonpath/node_modules/esprima/README.md +24 -0
- package/node_modules/jsonpath/node_modules/esprima/bin/esparse.js +127 -0
- package/node_modules/jsonpath/node_modules/esprima/bin/esvalidate.js +199 -0
- package/node_modules/jsonpath/node_modules/esprima/esprima.js +3756 -0
- package/node_modules/jsonpath/node_modules/esprima/package.json +83 -0
- package/node_modules/jsonpath/node_modules/esprima/test/compat.js +241 -0
- package/node_modules/jsonpath/node_modules/esprima/test/reflect.js +422 -0
- package/node_modules/jsonpath/node_modules/esprima/test/run.js +67 -0
- package/node_modules/jsonpath/node_modules/esprima/test/runner.js +495 -0
- package/node_modules/jsonpath/node_modules/esprima/test/test.js +25241 -0
- package/node_modules/jsonpath/package.json +45 -0
- package/node_modules/jsonpath/test/data/store.json +31 -0
- package/node_modules/jsonpath/test/lessons.js +38 -0
- package/node_modules/jsonpath/test/parse.js +164 -0
- package/node_modules/jsonpath/test/query.js +359 -0
- package/node_modules/jsonpath/test/slice.js +57 -0
- package/node_modules/jsonpath/test/stringify.js +54 -0
- package/node_modules/jsonpath/test/sugar.js +72 -0
- package/node_modules/source-map/CHANGELOG.md +301 -0
- package/node_modules/source-map/LICENSE +28 -0
- package/node_modules/source-map/README.md +742 -0
- package/node_modules/source-map/dist/source-map.debug.js +3234 -0
- package/node_modules/source-map/dist/source-map.js +3233 -0
- package/node_modules/source-map/dist/source-map.min.js +2 -0
- package/node_modules/source-map/dist/source-map.min.js.map +1 -0
- package/node_modules/source-map/lib/array-set.js +121 -0
- package/node_modules/source-map/lib/base64-vlq.js +140 -0
- package/node_modules/source-map/lib/base64.js +67 -0
- package/node_modules/source-map/lib/binary-search.js +111 -0
- package/node_modules/source-map/lib/mapping-list.js +79 -0
- package/node_modules/source-map/lib/quick-sort.js +114 -0
- package/node_modules/source-map/lib/source-map-consumer.js +1145 -0
- package/node_modules/source-map/lib/source-map-generator.js +425 -0
- package/node_modules/source-map/lib/source-node.js +413 -0
- package/node_modules/source-map/lib/util.js +488 -0
- package/node_modules/source-map/package.json +73 -0
- package/node_modules/source-map/source-map.d.ts +98 -0
- package/node_modules/source-map/source-map.js +8 -0
- package/node_modules/static-eval/.travis.yml +4 -0
- package/node_modules/static-eval/LICENSE +18 -0
- package/node_modules/static-eval/example/eval.js +7 -0
- package/node_modules/static-eval/example/vars.js +11 -0
- package/node_modules/static-eval/index.js +178 -0
- package/node_modules/static-eval/package.json +48 -0
- package/node_modules/static-eval/readme.markdown +87 -0
- package/node_modules/static-eval/test/eval.js +82 -0
- package/node_modules/static-eval/test/prop.js +16 -0
- package/node_modules/static-eval/test/template-strings.js +33 -0
- package/node_modules/underscore/LICENSE +23 -0
- package/node_modules/underscore/README.md +28 -0
- package/node_modules/underscore/amd/_apply.js +7 -0
- package/node_modules/underscore/amd/_applyProperty.js +14 -0
- package/node_modules/underscore/amd/_arrayAccessors.js +11 -0
- package/node_modules/underscore/amd/_arrayMutators.js +15 -0
- package/node_modules/underscore/amd/_baseCreate.js +21 -0
- package/node_modules/underscore/amd/_baseIteratee.js +15 -0
- package/node_modules/underscore/amd/_binarySearch.js +17 -0
- package/node_modules/underscore/amd/_bindCb.js +14 -0
- package/node_modules/underscore/amd/_bindCb4.js +17 -0
- package/node_modules/underscore/amd/_byValue.js +11 -0
- package/node_modules/underscore/amd/_cb.js +12 -0
- package/node_modules/underscore/amd/_chainResult.js +10 -0
- package/node_modules/underscore/amd/_collectNonEnumProps.js +42 -0
- package/node_modules/underscore/amd/_createAssigner.js +24 -0
- package/node_modules/underscore/amd/_createEscaper.js +21 -0
- package/node_modules/underscore/amd/_createIndexFinder.js +30 -0
- package/node_modules/underscore/amd/_createPredicateIndexFinder.js +18 -0
- package/node_modules/underscore/amd/_createReduce.js +30 -0
- package/node_modules/underscore/amd/_createSizePropertyCheck.js +13 -0
- package/node_modules/underscore/amd/_deepGet.js +15 -0
- package/node_modules/underscore/amd/_escapeMap.js +15 -0
- package/node_modules/underscore/amd/_executeBound.js +16 -0
- package/node_modules/underscore/amd/_extremum.js +35 -0
- package/node_modules/underscore/amd/_flatten.js +32 -0
- package/node_modules/underscore/amd/_forceNumericMinMax.js +16 -0
- package/node_modules/underscore/amd/_getByteLength.js +8 -0
- package/node_modules/underscore/amd/_getLength.js +8 -0
- package/node_modules/underscore/amd/_greater.js +10 -0
- package/node_modules/underscore/amd/_group.js +18 -0
- package/node_modules/underscore/amd/_has.js +10 -0
- package/node_modules/underscore/amd/_hasObjectTag.js +7 -0
- package/node_modules/underscore/amd/_isArrayLike.js +11 -0
- package/node_modules/underscore/amd/_isBufferLike.js +9 -0
- package/node_modules/underscore/amd/_keyInObj.js +11 -0
- package/node_modules/underscore/amd/_less.js +10 -0
- package/node_modules/underscore/amd/_lessEqual.js +10 -0
- package/node_modules/underscore/amd/_linearSearch.js +31 -0
- package/node_modules/underscore/amd/_mapReduce.js +5 -0
- package/node_modules/underscore/amd/_methodFingerprint.js +44 -0
- package/node_modules/underscore/amd/_optimizeCb.js +27 -0
- package/node_modules/underscore/amd/_push.js +7 -0
- package/node_modules/underscore/amd/_pusher.js +13 -0
- package/node_modules/underscore/amd/_sequence.js +18 -0
- package/node_modules/underscore/amd/_setup.js +70 -0
- package/node_modules/underscore/amd/_shallowProperty.js +12 -0
- package/node_modules/underscore/amd/_slice.js +7 -0
- package/node_modules/underscore/amd/_strictEqual.js +9 -0
- package/node_modules/underscore/amd/_stringTagBug.js +16 -0
- package/node_modules/underscore/amd/_tagTester.js +13 -0
- package/node_modules/underscore/amd/_toBufferView.js +15 -0
- package/node_modules/underscore/amd/_toPath.js +11 -0
- package/node_modules/underscore/amd/_unescapeMap.js +8 -0
- package/node_modules/underscore/amd/_unmethodize.js +9 -0
- package/node_modules/underscore/amd/_wrapArrayAccessor.js +15 -0
- package/node_modules/underscore/amd/_wrapArrayMutator.js +28 -0
- package/node_modules/underscore/amd/after.js +14 -0
- package/node_modules/underscore/amd/allKeys.js +15 -0
- package/node_modules/underscore/amd/before.js +18 -0
- package/node_modules/underscore/amd/bind.js +15 -0
- package/node_modules/underscore/amd/bindAll.js +19 -0
- package/node_modules/underscore/amd/chain.js +12 -0
- package/node_modules/underscore/amd/chunk.js +17 -0
- package/node_modules/underscore/amd/clone.js +11 -0
- package/node_modules/underscore/amd/compact.js +10 -0
- package/node_modules/underscore/amd/compose.js +18 -0
- package/node_modules/underscore/amd/concat.js +7 -0
- package/node_modules/underscore/amd/constant.js +12 -0
- package/node_modules/underscore/amd/contains.js +12 -0
- package/node_modules/underscore/amd/countBy.js +12 -0
- package/node_modules/underscore/amd/create.js +14 -0
- package/node_modules/underscore/amd/debounce.js +43 -0
- package/node_modules/underscore/amd/defaults.js +8 -0
- package/node_modules/underscore/amd/defer.js +9 -0
- package/node_modules/underscore/amd/delay.js +13 -0
- package/node_modules/underscore/amd/difference.js +14 -0
- package/node_modules/underscore/amd/each.js +25 -0
- package/node_modules/underscore/amd/escape.js +8 -0
- package/node_modules/underscore/amd/every.js +17 -0
- package/node_modules/underscore/amd/extend.js +8 -0
- package/node_modules/underscore/amd/extendOwn.js +10 -0
- package/node_modules/underscore/amd/filter.js +15 -0
- package/node_modules/underscore/amd/find.js +12 -0
- package/node_modules/underscore/amd/findIndex.js +8 -0
- package/node_modules/underscore/amd/findKey.js +15 -0
- package/node_modules/underscore/amd/findLastIndex.js +8 -0
- package/node_modules/underscore/amd/findWhere.js +11 -0
- package/node_modules/underscore/amd/first.js +13 -0
- package/node_modules/underscore/amd/flatten.js +11 -0
- package/node_modules/underscore/amd/functions.js +14 -0
- package/node_modules/underscore/amd/get.js +14 -0
- package/node_modules/underscore/amd/groupBy.js +11 -0
- package/node_modules/underscore/amd/has.js +19 -0
- package/node_modules/underscore/amd/identity.js +10 -0
- package/node_modules/underscore/amd/index-default.js +12 -0
- package/node_modules/underscore/amd/index.js +154 -0
- package/node_modules/underscore/amd/indexBy.js +11 -0
- package/node_modules/underscore/amd/indexOf.js +11 -0
- package/node_modules/underscore/amd/initial.js +12 -0
- package/node_modules/underscore/amd/intersection.js +22 -0
- package/node_modules/underscore/amd/invert.js +15 -0
- package/node_modules/underscore/amd/invoke.js +28 -0
- package/node_modules/underscore/amd/isArguments.js +19 -0
- package/node_modules/underscore/amd/isArray.js +9 -0
- package/node_modules/underscore/amd/isArrayBuffer.js +7 -0
- package/node_modules/underscore/amd/isBoolean.js +10 -0
- package/node_modules/underscore/amd/isDataView.js +15 -0
- package/node_modules/underscore/amd/isDate.js +7 -0
- package/node_modules/underscore/amd/isElement.js +10 -0
- package/node_modules/underscore/amd/isEmpty.js +18 -0
- package/node_modules/underscore/amd/isEqual.js +133 -0
- package/node_modules/underscore/amd/isError.js +7 -0
- package/node_modules/underscore/amd/isFinite.js +10 -0
- package/node_modules/underscore/amd/isFunction.js +18 -0
- package/node_modules/underscore/amd/isMap.js +7 -0
- package/node_modules/underscore/amd/isMatch.js +17 -0
- package/node_modules/underscore/amd/isNaN.js +10 -0
- package/node_modules/underscore/amd/isNull.js +10 -0
- package/node_modules/underscore/amd/isNumber.js +7 -0
- package/node_modules/underscore/amd/isObject.js +11 -0
- package/node_modules/underscore/amd/isRegExp.js +7 -0
- package/node_modules/underscore/amd/isSet.js +7 -0
- package/node_modules/underscore/amd/isString.js +7 -0
- package/node_modules/underscore/amd/isSymbol.js +7 -0
- package/node_modules/underscore/amd/isTypedArray.js +16 -0
- package/node_modules/underscore/amd/isUndefined.js +10 -0
- package/node_modules/underscore/amd/isWeakMap.js +7 -0
- package/node_modules/underscore/amd/isWeakSet.js +7 -0
- package/node_modules/underscore/amd/iteratee.js +13 -0
- package/node_modules/underscore/amd/join.js +7 -0
- package/node_modules/underscore/amd/keys.js +17 -0
- package/node_modules/underscore/amd/last.js +13 -0
- package/node_modules/underscore/amd/lastIndexOf.js +9 -0
- package/node_modules/underscore/amd/map.js +18 -0
- package/node_modules/underscore/amd/mapObject.js +19 -0
- package/node_modules/underscore/amd/matcher.js +14 -0
- package/node_modules/underscore/amd/max.js +30 -0
- package/node_modules/underscore/amd/memoize.js +17 -0
- package/node_modules/underscore/amd/min.js +30 -0
- package/node_modules/underscore/amd/mixin.js +18 -0
- package/node_modules/underscore/amd/negate.js +12 -0
- package/node_modules/underscore/amd/noop.js +8 -0
- package/node_modules/underscore/amd/now.js +10 -0
- package/node_modules/underscore/amd/object.js +20 -0
- package/node_modules/underscore/amd/omit.js +20 -0
- package/node_modules/underscore/amd/once.js +9 -0
- package/node_modules/underscore/amd/pairs.js +17 -0
- package/node_modules/underscore/amd/partial.js +25 -0
- package/node_modules/underscore/amd/partition.js +11 -0
- package/node_modules/underscore/amd/pick.js +25 -0
- package/node_modules/underscore/amd/pluck.js +10 -0
- package/node_modules/underscore/amd/pop.js +7 -0
- package/node_modules/underscore/amd/property.js +14 -0
- package/node_modules/underscore/amd/propertyOf.js +13 -0
- package/node_modules/underscore/amd/push.js +7 -0
- package/node_modules/underscore/amd/random.js +14 -0
- package/node_modules/underscore/amd/range.js +27 -0
- package/node_modules/underscore/amd/reduce.js +9 -0
- package/node_modules/underscore/amd/reduceRight.js +8 -0
- package/node_modules/underscore/amd/reject.js +10 -0
- package/node_modules/underscore/amd/rest.js +12 -0
- package/node_modules/underscore/amd/restArguments.js +33 -0
- package/node_modules/underscore/amd/result.js +25 -0
- package/node_modules/underscore/amd/reverse.js +7 -0
- package/node_modules/underscore/amd/sample.js +27 -0
- package/node_modules/underscore/amd/shift.js +7 -0
- package/node_modules/underscore/amd/shuffle.js +10 -0
- package/node_modules/underscore/amd/size.js +11 -0
- package/node_modules/underscore/amd/slice.js +7 -0
- package/node_modules/underscore/amd/some.js +17 -0
- package/node_modules/underscore/amd/sort.js +7 -0
- package/node_modules/underscore/amd/sortBy.js +26 -0
- package/node_modules/underscore/amd/sortedIndex.js +18 -0
- package/node_modules/underscore/amd/sortedLastIndex.js +11 -0
- package/node_modules/underscore/amd/splice.js +7 -0
- package/node_modules/underscore/amd/tap.js +13 -0
- package/node_modules/underscore/amd/template.js +95 -0
- package/node_modules/underscore/amd/templateSettings.js +13 -0
- package/node_modules/underscore/amd/throttle.js +51 -0
- package/node_modules/underscore/amd/times.js +13 -0
- package/node_modules/underscore/amd/toArray.js +18 -0
- package/node_modules/underscore/amd/toPath.js +12 -0
- package/node_modules/underscore/amd/toString.js +11 -0
- package/node_modules/underscore/amd/underscore-array-methods.js +30 -0
- package/node_modules/underscore/amd/underscore.js +29 -0
- package/node_modules/underscore/amd/unescape.js +8 -0
- package/node_modules/underscore/amd/union.js +11 -0
- package/node_modules/underscore/amd/uniq.js +37 -0
- package/node_modules/underscore/amd/uniqueId.js +13 -0
- package/node_modules/underscore/amd/unshift.js +7 -0
- package/node_modules/underscore/amd/unzip.js +17 -0
- package/node_modules/underscore/amd/value.js +13 -0
- package/node_modules/underscore/amd/values.js +16 -0
- package/node_modules/underscore/amd/where.js +11 -0
- package/node_modules/underscore/amd/without.js +10 -0
- package/node_modules/underscore/amd/wrap.js +12 -0
- package/node_modules/underscore/amd/zip.js +9 -0
- package/node_modules/underscore/cjs/_apply.js +6 -0
- package/node_modules/underscore/cjs/_applyProperty.js +10 -0
- package/node_modules/underscore/cjs/_arrayAccessors.js +11 -0
- package/node_modules/underscore/cjs/_arrayMutators.js +19 -0
- package/node_modules/underscore/cjs/_baseCreate.js +20 -0
- package/node_modules/underscore/cjs/_baseIteratee.js +19 -0
- package/node_modules/underscore/cjs/_binarySearch.js +15 -0
- package/node_modules/underscore/cjs/_bindCb.js +10 -0
- package/node_modules/underscore/cjs/_bindCb4.js +13 -0
- package/node_modules/underscore/cjs/_byValue.js +7 -0
- package/node_modules/underscore/cjs/_cb.js +12 -0
- package/node_modules/underscore/cjs/_chainResult.js +8 -0
- package/node_modules/underscore/cjs/_collectNonEnumProps.js +42 -0
- package/node_modules/underscore/cjs/_createAssigner.js +20 -0
- package/node_modules/underscore/cjs/_createEscaper.js +19 -0
- package/node_modules/underscore/cjs/_createIndexFinder.js +30 -0
- package/node_modules/underscore/cjs/_createPredicateIndexFinder.js +17 -0
- package/node_modules/underscore/cjs/_createReduce.js +30 -0
- package/node_modules/underscore/cjs/_createSizePropertyCheck.js +11 -0
- package/node_modules/underscore/cjs/_deepGet.js +11 -0
- package/node_modules/underscore/cjs/_escapeMap.js +11 -0
- package/node_modules/underscore/cjs/_executeBound.js +15 -0
- package/node_modules/underscore/cjs/_extremum.js +35 -0
- package/node_modules/underscore/cjs/_flatten.js +33 -0
- package/node_modules/underscore/cjs/_forceNumericMinMax.js +14 -0
- package/node_modules/underscore/cjs/_getByteLength.js +6 -0
- package/node_modules/underscore/cjs/_getLength.js +6 -0
- package/node_modules/underscore/cjs/_greater.js +6 -0
- package/node_modules/underscore/cjs/_group.js +17 -0
- package/node_modules/underscore/cjs/_has.js +8 -0
- package/node_modules/underscore/cjs/_hasObjectTag.js +5 -0
- package/node_modules/underscore/cjs/_isArrayLike.js +10 -0
- package/node_modules/underscore/cjs/_isBufferLike.js +8 -0
- package/node_modules/underscore/cjs/_keyInObj.js +7 -0
- package/node_modules/underscore/cjs/_less.js +6 -0
- package/node_modules/underscore/cjs/_lessEqual.js +6 -0
- package/node_modules/underscore/cjs/_linearSearch.js +30 -0
- package/node_modules/underscore/cjs/_mapReduce.js +1 -0
- package/node_modules/underscore/cjs/_methodFingerprint.js +44 -0
- package/node_modules/underscore/cjs/_optimizeCb.js +23 -0
- package/node_modules/underscore/cjs/_push.js +6 -0
- package/node_modules/underscore/cjs/_pusher.js +9 -0
- package/node_modules/underscore/cjs/_sequence.js +14 -0
- package/node_modules/underscore/cjs/_setup.js +66 -0
- package/node_modules/underscore/cjs/_shallowProperty.js +8 -0
- package/node_modules/underscore/cjs/_slice.js +6 -0
- package/node_modules/underscore/cjs/_strictEqual.js +5 -0
- package/node_modules/underscore/cjs/_stringTagBug.js +15 -0
- package/node_modules/underscore/cjs/_tagTester.js +11 -0
- package/node_modules/underscore/cjs/_toBufferView.js +13 -0
- package/node_modules/underscore/cjs/_toPath.js +10 -0
- package/node_modules/underscore/cjs/_unescapeMap.js +7 -0
- package/node_modules/underscore/cjs/_unmethodize.js +8 -0
- package/node_modules/underscore/cjs/_wrapArrayAccessor.js +14 -0
- package/node_modules/underscore/cjs/_wrapArrayMutator.js +29 -0
- package/node_modules/underscore/cjs/after.js +10 -0
- package/node_modules/underscore/cjs/allKeys.js +15 -0
- package/node_modules/underscore/cjs/before.js +14 -0
- package/node_modules/underscore/cjs/bind.js +15 -0
- package/node_modules/underscore/cjs/bindAll.js +19 -0
- package/node_modules/underscore/cjs/chain.js +10 -0
- package/node_modules/underscore/cjs/chunk.js +15 -0
- package/node_modules/underscore/cjs/clone.js +11 -0
- package/node_modules/underscore/cjs/compact.js +8 -0
- package/node_modules/underscore/cjs/compose.js +14 -0
- package/node_modules/underscore/cjs/concat.js +6 -0
- package/node_modules/underscore/cjs/constant.js +8 -0
- package/node_modules/underscore/cjs/contains.js +12 -0
- package/node_modules/underscore/cjs/countBy.js +11 -0
- package/node_modules/underscore/cjs/create.js +13 -0
- package/node_modules/underscore/cjs/debounce.js +42 -0
- package/node_modules/underscore/cjs/defaults.js +7 -0
- package/node_modules/underscore/cjs/defer.js +9 -0
- package/node_modules/underscore/cjs/delay.js +11 -0
- package/node_modules/underscore/cjs/difference.js +15 -0
- package/node_modules/underscore/cjs/each.js +25 -0
- package/node_modules/underscore/cjs/escape.js +7 -0
- package/node_modules/underscore/cjs/every.js +17 -0
- package/node_modules/underscore/cjs/extend.js +7 -0
- package/node_modules/underscore/cjs/extendOwn.js +9 -0
- package/node_modules/underscore/cjs/filter.js +14 -0
- package/node_modules/underscore/cjs/find.js +12 -0
- package/node_modules/underscore/cjs/findIndex.js +6 -0
- package/node_modules/underscore/cjs/findKey.js +14 -0
- package/node_modules/underscore/cjs/findLastIndex.js +6 -0
- package/node_modules/underscore/cjs/findWhere.js +10 -0
- package/node_modules/underscore/cjs/first.js +11 -0
- package/node_modules/underscore/cjs/flatten.js +9 -0
- package/node_modules/underscore/cjs/functions.js +12 -0
- package/node_modules/underscore/cjs/get.js +14 -0
- package/node_modules/underscore/cjs/groupBy.js +10 -0
- package/node_modules/underscore/cjs/has.js +18 -0
- package/node_modules/underscore/cjs/identity.js +6 -0
- package/node_modules/underscore/cjs/index-default.js +11 -0
- package/node_modules/underscore/cjs/index.js +277 -0
- package/node_modules/underscore/cjs/indexBy.js +9 -0
- package/node_modules/underscore/cjs/indexOf.js +11 -0
- package/node_modules/underscore/cjs/initial.js +10 -0
- package/node_modules/underscore/cjs/intersection.js +21 -0
- package/node_modules/underscore/cjs/invert.js +13 -0
- package/node_modules/underscore/cjs/invoke.js +30 -0
- package/node_modules/underscore/cjs/isArguments.js +18 -0
- package/node_modules/underscore/cjs/isArray.js +8 -0
- package/node_modules/underscore/cjs/isArrayBuffer.js +5 -0
- package/node_modules/underscore/cjs/isBoolean.js +8 -0
- package/node_modules/underscore/cjs/isDataView.js +16 -0
- package/node_modules/underscore/cjs/isDate.js +5 -0
- package/node_modules/underscore/cjs/isElement.js +6 -0
- package/node_modules/underscore/cjs/isEmpty.js +20 -0
- package/node_modules/underscore/cjs/isEqual.js +140 -0
- package/node_modules/underscore/cjs/isError.js +5 -0
- package/node_modules/underscore/cjs/isFinite.js +9 -0
- package/node_modules/underscore/cjs/isFunction.js +17 -0
- package/node_modules/underscore/cjs/isMap.js +7 -0
- package/node_modules/underscore/cjs/isMatch.js +15 -0
- package/node_modules/underscore/cjs/isNaN.js +9 -0
- package/node_modules/underscore/cjs/isNull.js +6 -0
- package/node_modules/underscore/cjs/isNumber.js +5 -0
- package/node_modules/underscore/cjs/isObject.js +7 -0
- package/node_modules/underscore/cjs/isRegExp.js +5 -0
- package/node_modules/underscore/cjs/isSet.js +7 -0
- package/node_modules/underscore/cjs/isString.js +5 -0
- package/node_modules/underscore/cjs/isSymbol.js +5 -0
- package/node_modules/underscore/cjs/isTypedArray.js +17 -0
- package/node_modules/underscore/cjs/isUndefined.js +6 -0
- package/node_modules/underscore/cjs/isWeakMap.js +7 -0
- package/node_modules/underscore/cjs/isWeakSet.js +5 -0
- package/node_modules/underscore/cjs/iteratee.js +12 -0
- package/node_modules/underscore/cjs/join.js +6 -0
- package/node_modules/underscore/cjs/keys.js +18 -0
- package/node_modules/underscore/cjs/last.js +11 -0
- package/node_modules/underscore/cjs/lastIndexOf.js +8 -0
- package/node_modules/underscore/cjs/map.js +18 -0
- package/node_modules/underscore/cjs/mapObject.js +18 -0
- package/node_modules/underscore/cjs/matcher.js +13 -0
- package/node_modules/underscore/cjs/max.js +31 -0
- package/node_modules/underscore/cjs/memoize.js +15 -0
- package/node_modules/underscore/cjs/min.js +31 -0
- package/node_modules/underscore/cjs/mixin.js +20 -0
- package/node_modules/underscore/cjs/negate.js +8 -0
- package/node_modules/underscore/cjs/noop.js +4 -0
- package/node_modules/underscore/cjs/now.js +6 -0
- package/node_modules/underscore/cjs/object.js +18 -0
- package/node_modules/underscore/cjs/omit.js +24 -0
- package/node_modules/underscore/cjs/once.js +8 -0
- package/node_modules/underscore/cjs/pairs.js +15 -0
- package/node_modules/underscore/cjs/partial.js +25 -0
- package/node_modules/underscore/cjs/partition.js +9 -0
- package/node_modules/underscore/cjs/pick.js +28 -0
- package/node_modules/underscore/cjs/pluck.js +9 -0
- package/node_modules/underscore/cjs/pop.js +6 -0
- package/node_modules/underscore/cjs/property.js +13 -0
- package/node_modules/underscore/cjs/propertyOf.js +12 -0
- package/node_modules/underscore/cjs/push.js +6 -0
- package/node_modules/underscore/cjs/random.js +10 -0
- package/node_modules/underscore/cjs/range.js +23 -0
- package/node_modules/underscore/cjs/reduce.js +7 -0
- package/node_modules/underscore/cjs/reduceRight.js +6 -0
- package/node_modules/underscore/cjs/reject.js +10 -0
- package/node_modules/underscore/cjs/rest.js +10 -0
- package/node_modules/underscore/cjs/restArguments.js +29 -0
- package/node_modules/underscore/cjs/result.js +24 -0
- package/node_modules/underscore/cjs/reverse.js +6 -0
- package/node_modules/underscore/cjs/sample.js +29 -0
- package/node_modules/underscore/cjs/shift.js +6 -0
- package/node_modules/underscore/cjs/shuffle.js +8 -0
- package/node_modules/underscore/cjs/size.js +10 -0
- package/node_modules/underscore/cjs/slice.js +6 -0
- package/node_modules/underscore/cjs/some.js +17 -0
- package/node_modules/underscore/cjs/sort.js +6 -0
- package/node_modules/underscore/cjs/sortBy.js +26 -0
- package/node_modules/underscore/cjs/sortedIndex.js +17 -0
- package/node_modules/underscore/cjs/sortedLastIndex.js +11 -0
- package/node_modules/underscore/cjs/splice.js +6 -0
- package/node_modules/underscore/cjs/tap.js +9 -0
- package/node_modules/underscore/cjs/template.js +95 -0
- package/node_modules/underscore/cjs/templateSettings.js +11 -0
- package/node_modules/underscore/cjs/throttle.js +49 -0
- package/node_modules/underscore/cjs/times.js +11 -0
- package/node_modules/underscore/cjs/toArray.js +22 -0
- package/node_modules/underscore/cjs/toPath.js +11 -0
- package/node_modules/underscore/cjs/toString.js +9 -0
- package/node_modules/underscore/cjs/underscore-array-methods.js +31 -0
- package/node_modules/underscore/cjs/underscore.js +27 -0
- package/node_modules/underscore/cjs/unescape.js +7 -0
- package/node_modules/underscore/cjs/union.js +11 -0
- package/node_modules/underscore/cjs/uniq.js +38 -0
- package/node_modules/underscore/cjs/uniqueId.js +9 -0
- package/node_modules/underscore/cjs/unshift.js +6 -0
- package/node_modules/underscore/cjs/unzip.js +17 -0
- package/node_modules/underscore/cjs/value.js +9 -0
- package/node_modules/underscore/cjs/values.js +14 -0
- package/node_modules/underscore/cjs/where.js +10 -0
- package/node_modules/underscore/cjs/without.js +9 -0
- package/node_modules/underscore/cjs/wrap.js +10 -0
- package/node_modules/underscore/cjs/zip.js +8 -0
- package/node_modules/underscore/modules/.eslintrc +12 -0
- package/node_modules/underscore/modules/_baseCreate.js +18 -0
- package/node_modules/underscore/modules/_baseIteratee.js +17 -0
- package/node_modules/underscore/modules/_cb.js +10 -0
- package/node_modules/underscore/modules/_chainResult.js +6 -0
- package/node_modules/underscore/modules/_collectNonEnumProps.js +40 -0
- package/node_modules/underscore/modules/_createAssigner.js +18 -0
- package/node_modules/underscore/modules/_createEscaper.js +17 -0
- package/node_modules/underscore/modules/_createIndexFinder.js +28 -0
- package/node_modules/underscore/modules/_createPredicateIndexFinder.js +15 -0
- package/node_modules/underscore/modules/_createReduce.js +28 -0
- package/node_modules/underscore/modules/_createSizePropertyCheck.js +9 -0
- package/node_modules/underscore/modules/_deepGet.js +9 -0
- package/node_modules/underscore/modules/_escapeMap.js +9 -0
- package/node_modules/underscore/modules/_executeBound.js +13 -0
- package/node_modules/underscore/modules/_flatten.js +31 -0
- package/node_modules/underscore/modules/_getByteLength.js +4 -0
- package/node_modules/underscore/modules/_getLength.js +4 -0
- package/node_modules/underscore/modules/_group.js +15 -0
- package/node_modules/underscore/modules/_has.js +6 -0
- package/node_modules/underscore/modules/_hasObjectTag.js +3 -0
- package/node_modules/underscore/modules/_isArrayLike.js +8 -0
- package/node_modules/underscore/modules/_isBufferLike.js +6 -0
- package/node_modules/underscore/modules/_keyInObj.js +5 -0
- package/node_modules/underscore/modules/_methodFingerprint.js +37 -0
- package/node_modules/underscore/modules/_optimizeCb.js +21 -0
- package/node_modules/underscore/modules/_setup.js +43 -0
- package/node_modules/underscore/modules/_shallowProperty.js +6 -0
- package/node_modules/underscore/modules/_stringTagBug.js +10 -0
- package/node_modules/underscore/modules/_tagTester.js +9 -0
- package/node_modules/underscore/modules/_toBufferView.js +11 -0
- package/node_modules/underscore/modules/_toPath.js +8 -0
- package/node_modules/underscore/modules/_unescapeMap.js +5 -0
- package/node_modules/underscore/modules/after.js +8 -0
- package/node_modules/underscore/modules/allKeys.js +13 -0
- package/node_modules/underscore/modules/before.js +12 -0
- package/node_modules/underscore/modules/bind.js +13 -0
- package/node_modules/underscore/modules/bindAll.js +17 -0
- package/node_modules/underscore/modules/chain.js +8 -0
- package/node_modules/underscore/modules/chunk.js +13 -0
- package/node_modules/underscore/modules/clone.js +9 -0
- package/node_modules/underscore/modules/compact.js +6 -0
- package/node_modules/underscore/modules/compose.js +12 -0
- package/node_modules/underscore/modules/constant.js +6 -0
- package/node_modules/underscore/modules/contains.js +10 -0
- package/node_modules/underscore/modules/countBy.js +9 -0
- package/node_modules/underscore/modules/create.js +11 -0
- package/node_modules/underscore/modules/debounce.js +40 -0
- package/node_modules/underscore/modules/defaults.js +5 -0
- package/node_modules/underscore/modules/defer.js +7 -0
- package/node_modules/underscore/modules/delay.js +9 -0
- package/node_modules/underscore/modules/difference.js +13 -0
- package/node_modules/underscore/modules/each.js +23 -0
- package/node_modules/underscore/modules/escape.js +5 -0
- package/node_modules/underscore/modules/every.js +15 -0
- package/node_modules/underscore/modules/extend.js +5 -0
- package/node_modules/underscore/modules/extendOwn.js +7 -0
- package/node_modules/underscore/modules/filter.js +12 -0
- package/node_modules/underscore/modules/find.js +10 -0
- package/node_modules/underscore/modules/findIndex.js +4 -0
- package/node_modules/underscore/modules/findKey.js +12 -0
- package/node_modules/underscore/modules/findLastIndex.js +4 -0
- package/node_modules/underscore/modules/findWhere.js +8 -0
- package/node_modules/underscore/modules/first.js +9 -0
- package/node_modules/underscore/modules/flatten.js +7 -0
- package/node_modules/underscore/modules/functions.js +10 -0
- package/node_modules/underscore/modules/get.js +12 -0
- package/node_modules/underscore/modules/groupBy.js +8 -0
- package/node_modules/underscore/modules/has.js +16 -0
- package/node_modules/underscore/modules/identity.js +4 -0
- package/node_modules/underscore/modules/index-all.js +18 -0
- package/node_modules/underscore/modules/index-default.js +27 -0
- package/node_modules/underscore/modules/index.js +200 -0
- package/node_modules/underscore/modules/indexBy.js +7 -0
- package/node_modules/underscore/modules/indexOf.js +9 -0
- package/node_modules/underscore/modules/initial.js +8 -0
- package/node_modules/underscore/modules/intersection.js +19 -0
- package/node_modules/underscore/modules/invert.js +11 -0
- package/node_modules/underscore/modules/invoke.js +28 -0
- package/node_modules/underscore/modules/isArguments.js +16 -0
- package/node_modules/underscore/modules/isArray.js +6 -0
- package/node_modules/underscore/modules/isArrayBuffer.js +3 -0
- package/node_modules/underscore/modules/isBoolean.js +6 -0
- package/node_modules/underscore/modules/isDataView.js +14 -0
- package/node_modules/underscore/modules/isDate.js +3 -0
- package/node_modules/underscore/modules/isElement.js +4 -0
- package/node_modules/underscore/modules/isEmpty.js +18 -0
- package/node_modules/underscore/modules/isEqual.js +138 -0
- package/node_modules/underscore/modules/isError.js +3 -0
- package/node_modules/underscore/modules/isFinite.js +7 -0
- package/node_modules/underscore/modules/isFunction.js +15 -0
- package/node_modules/underscore/modules/isMap.js +5 -0
- package/node_modules/underscore/modules/isMatch.js +13 -0
- package/node_modules/underscore/modules/isNaN.js +7 -0
- package/node_modules/underscore/modules/isNull.js +4 -0
- package/node_modules/underscore/modules/isNumber.js +3 -0
- package/node_modules/underscore/modules/isObject.js +5 -0
- package/node_modules/underscore/modules/isRegExp.js +3 -0
- package/node_modules/underscore/modules/isSet.js +5 -0
- package/node_modules/underscore/modules/isString.js +3 -0
- package/node_modules/underscore/modules/isSymbol.js +3 -0
- package/node_modules/underscore/modules/isTypedArray.js +15 -0
- package/node_modules/underscore/modules/isUndefined.js +4 -0
- package/node_modules/underscore/modules/isWeakMap.js +5 -0
- package/node_modules/underscore/modules/isWeakSet.js +3 -0
- package/node_modules/underscore/modules/iteratee.js +10 -0
- package/node_modules/underscore/modules/keys.js +16 -0
- package/node_modules/underscore/modules/last.js +9 -0
- package/node_modules/underscore/modules/lastIndexOf.js +6 -0
- package/node_modules/underscore/modules/map.js +16 -0
- package/node_modules/underscore/modules/mapObject.js +16 -0
- package/node_modules/underscore/modules/matcher.js +11 -0
- package/node_modules/underscore/modules/max.js +29 -0
- package/node_modules/underscore/modules/memoize.js +13 -0
- package/node_modules/underscore/modules/min.js +29 -0
- package/node_modules/underscore/modules/mixin.js +18 -0
- package/node_modules/underscore/modules/negate.js +6 -0
- package/node_modules/underscore/modules/noop.js +2 -0
- package/node_modules/underscore/modules/now.js +4 -0
- package/node_modules/underscore/modules/object.js +16 -0
- package/node_modules/underscore/modules/omit.js +22 -0
- package/node_modules/underscore/modules/once.js +6 -0
- package/node_modules/underscore/modules/pairs.js +13 -0
- package/node_modules/underscore/modules/partial.js +24 -0
- package/node_modules/underscore/modules/partition.js +7 -0
- package/node_modules/underscore/modules/pick.js +26 -0
- package/node_modules/underscore/modules/pluck.js +7 -0
- package/node_modules/underscore/modules/property.js +11 -0
- package/node_modules/underscore/modules/propertyOf.js +10 -0
- package/node_modules/underscore/modules/random.js +8 -0
- package/node_modules/underscore/modules/range.js +21 -0
- package/node_modules/underscore/modules/reduce.js +5 -0
- package/node_modules/underscore/modules/reduceRight.js +4 -0
- package/node_modules/underscore/modules/reject.js +8 -0
- package/node_modules/underscore/modules/rest.js +8 -0
- package/node_modules/underscore/modules/restArguments.js +27 -0
- package/node_modules/underscore/modules/result.js +22 -0
- package/node_modules/underscore/modules/sample.js +27 -0
- package/node_modules/underscore/modules/shuffle.js +6 -0
- package/node_modules/underscore/modules/size.js +8 -0
- package/node_modules/underscore/modules/some.js +15 -0
- package/node_modules/underscore/modules/sortBy.js +24 -0
- package/node_modules/underscore/modules/sortedIndex.js +15 -0
- package/node_modules/underscore/modules/tap.js +7 -0
- package/node_modules/underscore/modules/template.js +93 -0
- package/node_modules/underscore/modules/templateSettings.js +9 -0
- package/node_modules/underscore/modules/throttle.js +47 -0
- package/node_modules/underscore/modules/times.js +9 -0
- package/node_modules/underscore/modules/toArray.js +20 -0
- package/node_modules/underscore/modules/toPath.js +9 -0
- package/node_modules/underscore/modules/underscore-array-methods.js +31 -0
- package/node_modules/underscore/modules/underscore.js +25 -0
- package/node_modules/underscore/modules/unescape.js +5 -0
- package/node_modules/underscore/modules/union.js +9 -0
- package/node_modules/underscore/modules/uniq.js +36 -0
- package/node_modules/underscore/modules/uniqueId.js +7 -0
- package/node_modules/underscore/modules/unzip.js +15 -0
- package/node_modules/underscore/modules/values.js +12 -0
- package/node_modules/underscore/modules/where.js +8 -0
- package/node_modules/underscore/modules/without.js +7 -0
- package/node_modules/underscore/modules/wrap.js +8 -0
- package/node_modules/underscore/modules/zip.js +6 -0
- package/node_modules/underscore/package.json +76 -0
- package/node_modules/underscore/underscore-esm-min.js +5 -0
- package/node_modules/underscore/underscore-esm-min.js.map +1 -0
- package/node_modules/underscore/underscore-esm.js +2026 -0
- package/node_modules/underscore/underscore-esm.js.map +1 -0
- package/node_modules/underscore/underscore-min.js +6 -0
- package/node_modules/underscore/underscore-min.js.map +1 -0
- package/node_modules/underscore/underscore.js +2034 -0
- package/node_modules/underscore/underscore.js.map +1 -0
- package/node_modules/word-wrap/LICENSE +21 -0
- package/node_modules/word-wrap/README.md +201 -0
- package/node_modules/word-wrap/index.d.ts +50 -0
- package/node_modules/word-wrap/index.js +61 -0
- package/node_modules/word-wrap/package.json +77 -0
- package/package.json +5 -1
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
var assert = require('assert');
|
|
2
|
+
var dict = require('./dict');
|
|
3
|
+
var Parser = require('./parser');
|
|
4
|
+
var Handlers = require('./handlers');
|
|
5
|
+
|
|
6
|
+
var JSONPath = function() {
|
|
7
|
+
this.initialize.apply(this, arguments);
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
JSONPath.prototype.initialize = function() {
|
|
11
|
+
this.parser = new Parser();
|
|
12
|
+
this.handlers = new Handlers();
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
JSONPath.prototype.parse = function(string) {
|
|
16
|
+
assert.ok(_is_string(string), "we need a path");
|
|
17
|
+
return this.parser.parse(string);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
JSONPath.prototype.parent = function(obj, string) {
|
|
21
|
+
|
|
22
|
+
assert.ok(obj instanceof Object, "obj needs to be an object");
|
|
23
|
+
assert.ok(string, "we need a path");
|
|
24
|
+
|
|
25
|
+
var node = this.nodes(obj, string)[0];
|
|
26
|
+
var key = node.path.pop(); /* jshint unused:false */
|
|
27
|
+
return this.value(obj, node.path);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
JSONPath.prototype.apply = function(obj, string, fn) {
|
|
31
|
+
|
|
32
|
+
assert.ok(obj instanceof Object, "obj needs to be an object");
|
|
33
|
+
assert.ok(string, "we need a path");
|
|
34
|
+
assert.equal(typeof fn, "function", "fn needs to be function")
|
|
35
|
+
|
|
36
|
+
var nodes = this.nodes(obj, string).sort(function(a, b) {
|
|
37
|
+
// sort nodes so we apply from the bottom up
|
|
38
|
+
return b.path.length - a.path.length;
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
nodes.forEach(function(node) {
|
|
42
|
+
var key = node.path.pop();
|
|
43
|
+
var parent = this.value(obj, this.stringify(node.path));
|
|
44
|
+
var val = node.value = fn.call(obj, parent[key]);
|
|
45
|
+
parent[key] = val;
|
|
46
|
+
}, this);
|
|
47
|
+
|
|
48
|
+
return nodes;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
JSONPath.prototype.value = function(obj, path, value) {
|
|
52
|
+
|
|
53
|
+
assert.ok(obj instanceof Object, "obj needs to be an object");
|
|
54
|
+
assert.ok(path, "we need a path");
|
|
55
|
+
|
|
56
|
+
if (arguments.length >= 3) {
|
|
57
|
+
var node = this.nodes(obj, path).shift();
|
|
58
|
+
if (!node) return this._vivify(obj, path, value);
|
|
59
|
+
var key = node.path.slice(-1).shift();
|
|
60
|
+
var parent = this.parent(obj, this.stringify(node.path));
|
|
61
|
+
parent[key] = value;
|
|
62
|
+
}
|
|
63
|
+
return this.query(obj, this.stringify(path), 1).shift();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
JSONPath.prototype._vivify = function(obj, string, value) {
|
|
67
|
+
|
|
68
|
+
var self = this;
|
|
69
|
+
|
|
70
|
+
assert.ok(obj instanceof Object, "obj needs to be an object");
|
|
71
|
+
assert.ok(string, "we need a path");
|
|
72
|
+
|
|
73
|
+
var path = this.parser.parse(string)
|
|
74
|
+
.map(function(component) { return component.expression.value });
|
|
75
|
+
|
|
76
|
+
var setValue = function(path, value) {
|
|
77
|
+
var key = path.pop();
|
|
78
|
+
var node = self.value(obj, path);
|
|
79
|
+
if (!node) {
|
|
80
|
+
setValue(path.concat(), typeof key === 'string' ? {} : []);
|
|
81
|
+
node = self.value(obj, path);
|
|
82
|
+
}
|
|
83
|
+
node[key] = value;
|
|
84
|
+
}
|
|
85
|
+
setValue(path, value);
|
|
86
|
+
return this.query(obj, string)[0];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
JSONPath.prototype.query = function(obj, string, count) {
|
|
90
|
+
|
|
91
|
+
assert.ok(obj instanceof Object, "obj needs to be an object");
|
|
92
|
+
assert.ok(_is_string(string), "we need a path");
|
|
93
|
+
|
|
94
|
+
var results = this.nodes(obj, string, count)
|
|
95
|
+
.map(function(r) { return r.value });
|
|
96
|
+
|
|
97
|
+
return results;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
JSONPath.prototype.paths = function(obj, string, count) {
|
|
101
|
+
|
|
102
|
+
assert.ok(obj instanceof Object, "obj needs to be an object");
|
|
103
|
+
assert.ok(string, "we need a path");
|
|
104
|
+
|
|
105
|
+
var results = this.nodes(obj, string, count)
|
|
106
|
+
.map(function(r) { return r.path });
|
|
107
|
+
|
|
108
|
+
return results;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
JSONPath.prototype.nodes = function(obj, string, count) {
|
|
112
|
+
|
|
113
|
+
assert.ok(obj instanceof Object, "obj needs to be an object");
|
|
114
|
+
assert.ok(string, "we need a path");
|
|
115
|
+
|
|
116
|
+
if (count === 0) return [];
|
|
117
|
+
|
|
118
|
+
var path = this.parser.parse(string);
|
|
119
|
+
var handlers = this.handlers;
|
|
120
|
+
|
|
121
|
+
var partials = [ { path: ['$'], value: obj } ];
|
|
122
|
+
var matches = [];
|
|
123
|
+
|
|
124
|
+
if (path.length && path[0].expression.type == 'root') path.shift();
|
|
125
|
+
|
|
126
|
+
if (!path.length) return partials;
|
|
127
|
+
|
|
128
|
+
path.forEach(function(component, index) {
|
|
129
|
+
|
|
130
|
+
if (matches.length >= count) return;
|
|
131
|
+
var handler = handlers.resolve(component);
|
|
132
|
+
var _partials = [];
|
|
133
|
+
|
|
134
|
+
partials.forEach(function(p) {
|
|
135
|
+
|
|
136
|
+
if (matches.length >= count) return;
|
|
137
|
+
var results = handler(component, p, count);
|
|
138
|
+
|
|
139
|
+
if (index == path.length - 1) {
|
|
140
|
+
// if we're through the components we're done
|
|
141
|
+
matches = matches.concat(results || []);
|
|
142
|
+
} else {
|
|
143
|
+
// otherwise accumulate and carry on through
|
|
144
|
+
_partials = _partials.concat(results || []);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
partials = _partials;
|
|
149
|
+
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
return count ? matches.slice(0, count) : matches;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
JSONPath.prototype.stringify = function(path) {
|
|
156
|
+
|
|
157
|
+
assert.ok(path, "we need a path");
|
|
158
|
+
|
|
159
|
+
var string = '$';
|
|
160
|
+
|
|
161
|
+
var templates = {
|
|
162
|
+
'descendant-member': '..{{value}}',
|
|
163
|
+
'child-member': '.{{value}}',
|
|
164
|
+
'descendant-subscript': '..[{{value}}]',
|
|
165
|
+
'child-subscript': '[{{value}}]'
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
path = this._normalize(path);
|
|
169
|
+
|
|
170
|
+
path.forEach(function(component) {
|
|
171
|
+
|
|
172
|
+
if (component.expression.type == 'root') return;
|
|
173
|
+
|
|
174
|
+
var key = [component.scope, component.operation].join('-');
|
|
175
|
+
var template = templates[key];
|
|
176
|
+
var value;
|
|
177
|
+
|
|
178
|
+
if (component.expression.type == 'string_literal') {
|
|
179
|
+
value = JSON.stringify(component.expression.value)
|
|
180
|
+
} else {
|
|
181
|
+
value = component.expression.value;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (!template) throw new Error("couldn't find template " + key);
|
|
185
|
+
|
|
186
|
+
string += template.replace(/{{value}}/, value);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
return string;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
JSONPath.prototype._normalize = function(path) {
|
|
193
|
+
|
|
194
|
+
assert.ok(path, "we need a path");
|
|
195
|
+
|
|
196
|
+
if (typeof path == "string") {
|
|
197
|
+
|
|
198
|
+
return this.parser.parse(path);
|
|
199
|
+
|
|
200
|
+
} else if (Array.isArray(path) && typeof path[0] == "string") {
|
|
201
|
+
|
|
202
|
+
var _path = [ { expression: { type: "root", value: "$" } } ];
|
|
203
|
+
|
|
204
|
+
path.forEach(function(component, index) {
|
|
205
|
+
|
|
206
|
+
if (component == '$' && index === 0) return;
|
|
207
|
+
|
|
208
|
+
if (typeof component == "string" && component.match("^" + dict.identifier + "$")) {
|
|
209
|
+
|
|
210
|
+
_path.push({
|
|
211
|
+
operation: 'member',
|
|
212
|
+
scope: 'child',
|
|
213
|
+
expression: { value: component, type: 'identifier' }
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
} else {
|
|
217
|
+
|
|
218
|
+
var type = typeof component == "number" ?
|
|
219
|
+
'numeric_literal' : 'string_literal';
|
|
220
|
+
|
|
221
|
+
_path.push({
|
|
222
|
+
operation: 'subscript',
|
|
223
|
+
scope: 'child',
|
|
224
|
+
expression: { value: component, type: type }
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
return _path;
|
|
230
|
+
|
|
231
|
+
} else if (Array.isArray(path) && typeof path[0] == "object") {
|
|
232
|
+
|
|
233
|
+
return path
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
throw new Error("couldn't understand path " + path);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
function _is_string(obj) {
|
|
240
|
+
return Object.prototype.toString.call(obj) == '[object String]';
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
JSONPath.Handlers = Handlers;
|
|
244
|
+
JSONPath.Parser = Parser;
|
|
245
|
+
|
|
246
|
+
var instance = new JSONPath;
|
|
247
|
+
instance.JSONPath = JSONPath;
|
|
248
|
+
|
|
249
|
+
module.exports = instance;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
var grammar = require('./grammar');
|
|
2
|
+
var gparser = require('../generated/parser');
|
|
3
|
+
|
|
4
|
+
var Parser = function() {
|
|
5
|
+
|
|
6
|
+
var parser = new gparser.Parser();
|
|
7
|
+
|
|
8
|
+
var _parseError = parser.parseError;
|
|
9
|
+
parser.yy.parseError = function() {
|
|
10
|
+
if (parser.yy.ast) {
|
|
11
|
+
parser.yy.ast.initialize();
|
|
12
|
+
}
|
|
13
|
+
_parseError.apply(parser, arguments);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return parser;
|
|
17
|
+
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
Parser.grammar = grammar;
|
|
21
|
+
module.exports = Parser;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module.exports = function(arr, start, end, step) {
|
|
2
|
+
|
|
3
|
+
if (typeof start == 'string') throw new Error("start cannot be a string");
|
|
4
|
+
if (typeof end == 'string') throw new Error("end cannot be a string");
|
|
5
|
+
if (typeof step == 'string') throw new Error("step cannot be a string");
|
|
6
|
+
|
|
7
|
+
var len = arr.length;
|
|
8
|
+
|
|
9
|
+
if (step === 0) throw new Error("step cannot be zero");
|
|
10
|
+
step = step ? integer(step) : 1;
|
|
11
|
+
|
|
12
|
+
// normalize negative values
|
|
13
|
+
start = start < 0 ? len + start : start;
|
|
14
|
+
end = end < 0 ? len + end : end;
|
|
15
|
+
|
|
16
|
+
// default extents to extents
|
|
17
|
+
start = integer(start === 0 ? 0 : !start ? (step > 0 ? 0 : len - 1) : start);
|
|
18
|
+
end = integer(end === 0 ? 0 : !end ? (step > 0 ? len : -1) : end);
|
|
19
|
+
|
|
20
|
+
// clamp extents
|
|
21
|
+
start = step > 0 ? Math.max(0, start) : Math.min(len, start);
|
|
22
|
+
end = step > 0 ? Math.min(end, len) : Math.max(-1, end);
|
|
23
|
+
|
|
24
|
+
// return empty if extents are backwards
|
|
25
|
+
if (step > 0 && end <= start) return [];
|
|
26
|
+
if (step < 0 && start <= end) return [];
|
|
27
|
+
|
|
28
|
+
var result = [];
|
|
29
|
+
|
|
30
|
+
for (var i = start; i != end; i += step) {
|
|
31
|
+
if ((step < 0 && i <= end) || (step > 0 && i >= end)) break;
|
|
32
|
+
result.push(arr[i]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function integer(val) {
|
|
39
|
+
return String(val).match(/^[0-9]+$/) ? parseInt(val) :
|
|
40
|
+
Number.isFinite(val) ? parseInt(val, 10) : 0;
|
|
41
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
**Esprima** ([esprima.org](http://esprima.org), BSD license) is a high performance,
|
|
2
|
+
standard-compliant [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
|
|
3
|
+
parser written in ECMAScript (also popularly known as
|
|
4
|
+
[JavaScript](http://en.wikipedia.org/wiki/JavaScript>JavaScript)).
|
|
5
|
+
Esprima is created and maintained by [Ariya Hidayat](http://twitter.com/ariyahidayat),
|
|
6
|
+
with the help of [many contributors](https://github.com/ariya/esprima/contributors).
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- Full support for ECMAScript 5.1 ([ECMA-262](http://www.ecma-international.org/publications/standards/Ecma-262.htm))
|
|
11
|
+
- Sensible [syntax tree format](http://esprima.org/doc/index.html#ast) compatible with Mozilla
|
|
12
|
+
[Parser AST](https://developer.mozilla.org/en/SpiderMonkey/Parser_API)
|
|
13
|
+
- Optional tracking of syntax node location (index-based and line-column)
|
|
14
|
+
- Heavily tested (> 650 [unit tests](http://esprima.org/test/) with [full code coverage](http://esprima.org/test/coverage.html))
|
|
15
|
+
- [Partial support](http://esprima.org/doc/es6.html) for ECMAScript 6
|
|
16
|
+
|
|
17
|
+
Esprima serves as a **building block** for some JavaScript
|
|
18
|
+
language tools, from [code instrumentation](http://esprima.org/demo/functiontrace.html)
|
|
19
|
+
to [editor autocompletion](http://esprima.org/demo/autocomplete.html).
|
|
20
|
+
|
|
21
|
+
Esprima runs on many popular web browsers, as well as other ECMAScript platforms such as
|
|
22
|
+
[Rhino](http://www.mozilla.org/rhino), [Nashorn](http://openjdk.java.net/projects/nashorn/), and [Node.js](https://npmjs.org/package/esprima).
|
|
23
|
+
|
|
24
|
+
For more information, check the web site [esprima.org](http://esprima.org).
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/*
|
|
3
|
+
Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
|
|
4
|
+
Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
* Redistributions of source code must retain the above copyright
|
|
10
|
+
notice, this list of conditions and the following disclaimer.
|
|
11
|
+
* Redistributions in binary form must reproduce the above copyright
|
|
12
|
+
notice, this list of conditions and the following disclaimer in the
|
|
13
|
+
documentation and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
16
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
17
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
18
|
+
ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
|
19
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
20
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
21
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
22
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
23
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
24
|
+
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/*jslint sloppy:true node:true rhino:true */
|
|
28
|
+
|
|
29
|
+
var fs, esprima, fname, content, options, syntax;
|
|
30
|
+
|
|
31
|
+
if (typeof require === 'function') {
|
|
32
|
+
fs = require('fs');
|
|
33
|
+
esprima = require('esprima');
|
|
34
|
+
} else if (typeof load === 'function') {
|
|
35
|
+
try {
|
|
36
|
+
load('esprima.js');
|
|
37
|
+
} catch (e) {
|
|
38
|
+
load('../esprima.js');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Shims to Node.js objects when running under Rhino.
|
|
43
|
+
if (typeof console === 'undefined' && typeof process === 'undefined') {
|
|
44
|
+
console = { log: print };
|
|
45
|
+
fs = { readFileSync: readFile };
|
|
46
|
+
process = { argv: arguments, exit: quit };
|
|
47
|
+
process.argv.unshift('esparse.js');
|
|
48
|
+
process.argv.unshift('rhino');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function showUsage() {
|
|
52
|
+
console.log('Usage:');
|
|
53
|
+
console.log(' esparse [options] file.js');
|
|
54
|
+
console.log();
|
|
55
|
+
console.log('Available options:');
|
|
56
|
+
console.log();
|
|
57
|
+
console.log(' --comment Gather all line and block comments in an array');
|
|
58
|
+
console.log(' --loc Include line-column location info for each syntax node');
|
|
59
|
+
console.log(' --range Include index-based range for each syntax node');
|
|
60
|
+
console.log(' --raw Display the raw value of literals');
|
|
61
|
+
console.log(' --tokens List all tokens in an array');
|
|
62
|
+
console.log(' --tolerant Tolerate errors on a best-effort basis (experimental)');
|
|
63
|
+
console.log(' -v, --version Shows program version');
|
|
64
|
+
console.log();
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (process.argv.length <= 2) {
|
|
69
|
+
showUsage();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
options = {};
|
|
73
|
+
|
|
74
|
+
process.argv.splice(2).forEach(function (entry) {
|
|
75
|
+
|
|
76
|
+
if (entry === '-h' || entry === '--help') {
|
|
77
|
+
showUsage();
|
|
78
|
+
} else if (entry === '-v' || entry === '--version') {
|
|
79
|
+
console.log('ECMAScript Parser (using Esprima version', esprima.version, ')');
|
|
80
|
+
console.log();
|
|
81
|
+
process.exit(0);
|
|
82
|
+
} else if (entry === '--comment') {
|
|
83
|
+
options.comment = true;
|
|
84
|
+
} else if (entry === '--loc') {
|
|
85
|
+
options.loc = true;
|
|
86
|
+
} else if (entry === '--range') {
|
|
87
|
+
options.range = true;
|
|
88
|
+
} else if (entry === '--raw') {
|
|
89
|
+
options.raw = true;
|
|
90
|
+
} else if (entry === '--tokens') {
|
|
91
|
+
options.tokens = true;
|
|
92
|
+
} else if (entry === '--tolerant') {
|
|
93
|
+
options.tolerant = true;
|
|
94
|
+
} else if (entry.slice(0, 2) === '--') {
|
|
95
|
+
console.log('Error: unknown option ' + entry + '.');
|
|
96
|
+
process.exit(1);
|
|
97
|
+
} else if (typeof fname === 'string') {
|
|
98
|
+
console.log('Error: more than one input file.');
|
|
99
|
+
process.exit(1);
|
|
100
|
+
} else {
|
|
101
|
+
fname = entry;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
if (typeof fname !== 'string') {
|
|
106
|
+
console.log('Error: no input file.');
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Special handling for regular expression literal since we need to
|
|
111
|
+
// convert it to a string literal, otherwise it will be decoded
|
|
112
|
+
// as object "{}" and the regular expression would be lost.
|
|
113
|
+
function adjustRegexLiteral(key, value) {
|
|
114
|
+
if (key === 'value' && value instanceof RegExp) {
|
|
115
|
+
value = value.toString();
|
|
116
|
+
}
|
|
117
|
+
return value;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
try {
|
|
121
|
+
content = fs.readFileSync(fname, 'utf-8');
|
|
122
|
+
syntax = esprima.parse(content, options);
|
|
123
|
+
console.log(JSON.stringify(syntax, adjustRegexLiteral, 4));
|
|
124
|
+
} catch (e) {
|
|
125
|
+
console.log('Error: ' + e.message);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/*
|
|
3
|
+
Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
* Redistributions of source code must retain the above copyright
|
|
9
|
+
notice, this list of conditions and the following disclaimer.
|
|
10
|
+
* Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
documentation and/or other materials provided with the distribution.
|
|
13
|
+
|
|
14
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
15
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
16
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
17
|
+
ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
|
18
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
19
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
20
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
21
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
22
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
23
|
+
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/*jslint sloppy:true plusplus:true node:true rhino:true */
|
|
27
|
+
/*global phantom:true */
|
|
28
|
+
|
|
29
|
+
var fs, system, esprima, options, fnames, count;
|
|
30
|
+
|
|
31
|
+
if (typeof esprima === 'undefined') {
|
|
32
|
+
// PhantomJS can only require() relative files
|
|
33
|
+
if (typeof phantom === 'object') {
|
|
34
|
+
fs = require('fs');
|
|
35
|
+
system = require('system');
|
|
36
|
+
esprima = require('./esprima');
|
|
37
|
+
} else if (typeof require === 'function') {
|
|
38
|
+
fs = require('fs');
|
|
39
|
+
esprima = require('esprima');
|
|
40
|
+
} else if (typeof load === 'function') {
|
|
41
|
+
try {
|
|
42
|
+
load('esprima.js');
|
|
43
|
+
} catch (e) {
|
|
44
|
+
load('../esprima.js');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Shims to Node.js objects when running under PhantomJS 1.7+.
|
|
50
|
+
if (typeof phantom === 'object') {
|
|
51
|
+
fs.readFileSync = fs.read;
|
|
52
|
+
process = {
|
|
53
|
+
argv: [].slice.call(system.args),
|
|
54
|
+
exit: phantom.exit
|
|
55
|
+
};
|
|
56
|
+
process.argv.unshift('phantomjs');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Shims to Node.js objects when running under Rhino.
|
|
60
|
+
if (typeof console === 'undefined' && typeof process === 'undefined') {
|
|
61
|
+
console = { log: print };
|
|
62
|
+
fs = { readFileSync: readFile };
|
|
63
|
+
process = { argv: arguments, exit: quit };
|
|
64
|
+
process.argv.unshift('esvalidate.js');
|
|
65
|
+
process.argv.unshift('rhino');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function showUsage() {
|
|
69
|
+
console.log('Usage:');
|
|
70
|
+
console.log(' esvalidate [options] file.js');
|
|
71
|
+
console.log();
|
|
72
|
+
console.log('Available options:');
|
|
73
|
+
console.log();
|
|
74
|
+
console.log(' --format=type Set the report format, plain (default) or junit');
|
|
75
|
+
console.log(' -v, --version Print program version');
|
|
76
|
+
console.log();
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (process.argv.length <= 2) {
|
|
81
|
+
showUsage();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
options = {
|
|
85
|
+
format: 'plain'
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
fnames = [];
|
|
89
|
+
|
|
90
|
+
process.argv.splice(2).forEach(function (entry) {
|
|
91
|
+
|
|
92
|
+
if (entry === '-h' || entry === '--help') {
|
|
93
|
+
showUsage();
|
|
94
|
+
} else if (entry === '-v' || entry === '--version') {
|
|
95
|
+
console.log('ECMAScript Validator (using Esprima version', esprima.version, ')');
|
|
96
|
+
console.log();
|
|
97
|
+
process.exit(0);
|
|
98
|
+
} else if (entry.slice(0, 9) === '--format=') {
|
|
99
|
+
options.format = entry.slice(9);
|
|
100
|
+
if (options.format !== 'plain' && options.format !== 'junit') {
|
|
101
|
+
console.log('Error: unknown report format ' + options.format + '.');
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
} else if (entry.slice(0, 2) === '--') {
|
|
105
|
+
console.log('Error: unknown option ' + entry + '.');
|
|
106
|
+
process.exit(1);
|
|
107
|
+
} else {
|
|
108
|
+
fnames.push(entry);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
if (fnames.length === 0) {
|
|
113
|
+
console.log('Error: no input file.');
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (options.format === 'junit') {
|
|
118
|
+
console.log('<?xml version="1.0" encoding="UTF-8"?>');
|
|
119
|
+
console.log('<testsuites>');
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
count = 0;
|
|
123
|
+
fnames.forEach(function (fname) {
|
|
124
|
+
var content, timestamp, syntax, name;
|
|
125
|
+
try {
|
|
126
|
+
content = fs.readFileSync(fname, 'utf-8');
|
|
127
|
+
|
|
128
|
+
if (content[0] === '#' && content[1] === '!') {
|
|
129
|
+
content = '//' + content.substr(2, content.length);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
timestamp = Date.now();
|
|
133
|
+
syntax = esprima.parse(content, { tolerant: true });
|
|
134
|
+
|
|
135
|
+
if (options.format === 'junit') {
|
|
136
|
+
|
|
137
|
+
name = fname;
|
|
138
|
+
if (name.lastIndexOf('/') >= 0) {
|
|
139
|
+
name = name.slice(name.lastIndexOf('/') + 1);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
console.log('<testsuite name="' + fname + '" errors="0" ' +
|
|
143
|
+
' failures="' + syntax.errors.length + '" ' +
|
|
144
|
+
' tests="' + syntax.errors.length + '" ' +
|
|
145
|
+
' time="' + Math.round((Date.now() - timestamp) / 1000) +
|
|
146
|
+
'">');
|
|
147
|
+
|
|
148
|
+
syntax.errors.forEach(function (error) {
|
|
149
|
+
var msg = error.message;
|
|
150
|
+
msg = msg.replace(/^Line\ [0-9]*\:\ /, '');
|
|
151
|
+
console.log(' <testcase name="Line ' + error.lineNumber + ': ' + msg + '" ' +
|
|
152
|
+
' time="0">');
|
|
153
|
+
console.log(' <error type="SyntaxError" message="' + error.message + '">' +
|
|
154
|
+
error.message + '(' + name + ':' + error.lineNumber + ')' +
|
|
155
|
+
'</error>');
|
|
156
|
+
console.log(' </testcase>');
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
console.log('</testsuite>');
|
|
160
|
+
|
|
161
|
+
} else if (options.format === 'plain') {
|
|
162
|
+
|
|
163
|
+
syntax.errors.forEach(function (error) {
|
|
164
|
+
var msg = error.message;
|
|
165
|
+
msg = msg.replace(/^Line\ [0-9]*\:\ /, '');
|
|
166
|
+
msg = fname + ':' + error.lineNumber + ': ' + msg;
|
|
167
|
+
console.log(msg);
|
|
168
|
+
++count;
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
}
|
|
172
|
+
} catch (e) {
|
|
173
|
+
++count;
|
|
174
|
+
if (options.format === 'junit') {
|
|
175
|
+
console.log('<testsuite name="' + fname + '" errors="1" failures="0" tests="1" ' +
|
|
176
|
+
' time="' + Math.round((Date.now() - timestamp) / 1000) + '">');
|
|
177
|
+
console.log(' <testcase name="' + e.message + '" ' + ' time="0">');
|
|
178
|
+
console.log(' <error type="ParseError" message="' + e.message + '">' +
|
|
179
|
+
e.message + '(' + fname + ((e.lineNumber) ? ':' + e.lineNumber : '') +
|
|
180
|
+
')</error>');
|
|
181
|
+
console.log(' </testcase>');
|
|
182
|
+
console.log('</testsuite>');
|
|
183
|
+
} else {
|
|
184
|
+
console.log('Error: ' + e.message);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
if (options.format === 'junit') {
|
|
190
|
+
console.log('</testsuites>');
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (count > 0) {
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (count === 0 && typeof phantom === 'object') {
|
|
198
|
+
process.exit(0);
|
|
199
|
+
}
|