@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,11 @@
|
|
|
1
|
+
var evaluate = require('../');
|
|
2
|
+
var parse = require('esprima').parse;
|
|
3
|
+
|
|
4
|
+
var src = '[1,2,3+4*10+n,foo(3+5),obj[""+"x"].y]';
|
|
5
|
+
var ast = parse(src).body[0].expression;
|
|
6
|
+
|
|
7
|
+
console.log(evaluate(ast, {
|
|
8
|
+
n: 6,
|
|
9
|
+
foo: function (x) { return x * 100 },
|
|
10
|
+
obj: { x: { y: 555 } }
|
|
11
|
+
}));
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
var unparse = require('escodegen').generate;
|
|
2
|
+
|
|
3
|
+
module.exports = function (ast, vars) {
|
|
4
|
+
if (!vars) vars = {};
|
|
5
|
+
var FAIL = {};
|
|
6
|
+
|
|
7
|
+
var result = (function walk (node, scopeVars) {
|
|
8
|
+
if (node.type === 'Literal') {
|
|
9
|
+
return node.value;
|
|
10
|
+
}
|
|
11
|
+
else if (node.type === 'UnaryExpression'){
|
|
12
|
+
var val = walk(node.argument)
|
|
13
|
+
if (node.operator === '+') return +val
|
|
14
|
+
if (node.operator === '-') return -val
|
|
15
|
+
if (node.operator === '~') return ~val
|
|
16
|
+
if (node.operator === '!') return !val
|
|
17
|
+
return FAIL
|
|
18
|
+
}
|
|
19
|
+
else if (node.type === 'ArrayExpression') {
|
|
20
|
+
var xs = [];
|
|
21
|
+
for (var i = 0, l = node.elements.length; i < l; i++) {
|
|
22
|
+
var x = walk(node.elements[i]);
|
|
23
|
+
if (x === FAIL) return FAIL;
|
|
24
|
+
xs.push(x);
|
|
25
|
+
}
|
|
26
|
+
return xs;
|
|
27
|
+
}
|
|
28
|
+
else if (node.type === 'ObjectExpression') {
|
|
29
|
+
var obj = {};
|
|
30
|
+
for (var i = 0; i < node.properties.length; i++) {
|
|
31
|
+
var prop = node.properties[i];
|
|
32
|
+
var value = prop.value === null
|
|
33
|
+
? prop.value
|
|
34
|
+
: walk(prop.value)
|
|
35
|
+
;
|
|
36
|
+
if (value === FAIL) return FAIL;
|
|
37
|
+
obj[prop.key.value || prop.key.name] = value;
|
|
38
|
+
}
|
|
39
|
+
return obj;
|
|
40
|
+
}
|
|
41
|
+
else if (node.type === 'BinaryExpression' ||
|
|
42
|
+
node.type === 'LogicalExpression') {
|
|
43
|
+
var l = walk(node.left);
|
|
44
|
+
if (l === FAIL) return FAIL;
|
|
45
|
+
var r = walk(node.right);
|
|
46
|
+
if (r === FAIL) return FAIL;
|
|
47
|
+
|
|
48
|
+
var op = node.operator;
|
|
49
|
+
if (op === '==') return l == r;
|
|
50
|
+
if (op === '===') return l === r;
|
|
51
|
+
if (op === '!=') return l != r;
|
|
52
|
+
if (op === '!==') return l !== r;
|
|
53
|
+
if (op === '+') return l + r;
|
|
54
|
+
if (op === '-') return l - r;
|
|
55
|
+
if (op === '*') return l * r;
|
|
56
|
+
if (op === '/') return l / r;
|
|
57
|
+
if (op === '%') return l % r;
|
|
58
|
+
if (op === '<') return l < r;
|
|
59
|
+
if (op === '<=') return l <= r;
|
|
60
|
+
if (op === '>') return l > r;
|
|
61
|
+
if (op === '>=') return l >= r;
|
|
62
|
+
if (op === '|') return l | r;
|
|
63
|
+
if (op === '&') return l & r;
|
|
64
|
+
if (op === '^') return l ^ r;
|
|
65
|
+
if (op === '&&') return l && r;
|
|
66
|
+
if (op === '||') return l || r;
|
|
67
|
+
|
|
68
|
+
return FAIL;
|
|
69
|
+
}
|
|
70
|
+
else if (node.type === 'Identifier') {
|
|
71
|
+
if ({}.hasOwnProperty.call(vars, node.name)) {
|
|
72
|
+
return vars[node.name];
|
|
73
|
+
}
|
|
74
|
+
else return FAIL;
|
|
75
|
+
}
|
|
76
|
+
else if (node.type === 'ThisExpression') {
|
|
77
|
+
if ({}.hasOwnProperty.call(vars, 'this')) {
|
|
78
|
+
return vars['this'];
|
|
79
|
+
}
|
|
80
|
+
else return FAIL;
|
|
81
|
+
}
|
|
82
|
+
else if (node.type === 'CallExpression') {
|
|
83
|
+
var callee = walk(node.callee);
|
|
84
|
+
if (callee === FAIL) return FAIL;
|
|
85
|
+
if (typeof callee !== 'function') return FAIL;
|
|
86
|
+
|
|
87
|
+
var ctx = node.callee.object ? walk(node.callee.object) : FAIL;
|
|
88
|
+
if (ctx === FAIL) ctx = null;
|
|
89
|
+
|
|
90
|
+
var args = [];
|
|
91
|
+
for (var i = 0, l = node.arguments.length; i < l; i++) {
|
|
92
|
+
var x = walk(node.arguments[i]);
|
|
93
|
+
if (x === FAIL) return FAIL;
|
|
94
|
+
args.push(x);
|
|
95
|
+
}
|
|
96
|
+
return callee.apply(ctx, args);
|
|
97
|
+
}
|
|
98
|
+
else if (node.type === 'MemberExpression') {
|
|
99
|
+
var obj = walk(node.object);
|
|
100
|
+
// do not allow access to methods on Function
|
|
101
|
+
if((obj === FAIL) || (typeof obj == 'function')){
|
|
102
|
+
return FAIL;
|
|
103
|
+
}
|
|
104
|
+
if (node.property.type === 'Identifier') {
|
|
105
|
+
return obj[node.property.name];
|
|
106
|
+
}
|
|
107
|
+
var prop = walk(node.property);
|
|
108
|
+
if (prop === FAIL) return FAIL;
|
|
109
|
+
return obj[prop];
|
|
110
|
+
}
|
|
111
|
+
else if (node.type === 'ConditionalExpression') {
|
|
112
|
+
var val = walk(node.test)
|
|
113
|
+
if (val === FAIL) return FAIL;
|
|
114
|
+
return val ? walk(node.consequent) : walk(node.alternate)
|
|
115
|
+
}
|
|
116
|
+
else if (node.type === 'ExpressionStatement') {
|
|
117
|
+
var val = walk(node.expression)
|
|
118
|
+
if (val === FAIL) return FAIL;
|
|
119
|
+
return val;
|
|
120
|
+
}
|
|
121
|
+
else if (node.type === 'ReturnStatement') {
|
|
122
|
+
return walk(node.argument)
|
|
123
|
+
}
|
|
124
|
+
else if (node.type === 'FunctionExpression') {
|
|
125
|
+
|
|
126
|
+
var bodies = node.body.body;
|
|
127
|
+
|
|
128
|
+
// Create a "scope" for our arguments
|
|
129
|
+
var oldVars = {};
|
|
130
|
+
Object.keys(vars).forEach(function(element){
|
|
131
|
+
oldVars[element] = vars[element];
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
for(var i=0; i<node.params.length; i++){
|
|
135
|
+
var key = node.params[i];
|
|
136
|
+
if(key.type == 'Identifier'){
|
|
137
|
+
vars[key.name] = null;
|
|
138
|
+
}
|
|
139
|
+
else return FAIL;
|
|
140
|
+
}
|
|
141
|
+
for(var i in bodies){
|
|
142
|
+
if(walk(bodies[i]) === FAIL){
|
|
143
|
+
return FAIL;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// restore the vars and scope after we walk
|
|
147
|
+
vars = oldVars;
|
|
148
|
+
|
|
149
|
+
var keys = Object.keys(vars);
|
|
150
|
+
var vals = keys.map(function(key) {
|
|
151
|
+
return vars[key];
|
|
152
|
+
});
|
|
153
|
+
return Function(keys.join(', '), 'return ' + unparse(node)).apply(null, vals);
|
|
154
|
+
}
|
|
155
|
+
else if (node.type === 'TemplateLiteral') {
|
|
156
|
+
var str = '';
|
|
157
|
+
for (var i = 0; i < node.expressions.length; i++) {
|
|
158
|
+
str += walk(node.quasis[i]);
|
|
159
|
+
str += walk(node.expressions[i]);
|
|
160
|
+
}
|
|
161
|
+
str += walk(node.quasis[i]);
|
|
162
|
+
return str;
|
|
163
|
+
}
|
|
164
|
+
else if (node.type === 'TaggedTemplateExpression') {
|
|
165
|
+
var tag = walk(node.tag);
|
|
166
|
+
var quasi = node.quasi;
|
|
167
|
+
var strings = quasi.quasis.map(walk);
|
|
168
|
+
var values = quasi.expressions.map(walk);
|
|
169
|
+
return tag.apply(null, [strings].concat(values));
|
|
170
|
+
}
|
|
171
|
+
else if (node.type === 'TemplateElement') {
|
|
172
|
+
return node.value.cooked;
|
|
173
|
+
}
|
|
174
|
+
else return FAIL;
|
|
175
|
+
})(ast);
|
|
176
|
+
|
|
177
|
+
return result === FAIL ? undefined : result;
|
|
178
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "static-eval",
|
|
3
|
+
"version": "2.0.2",
|
|
4
|
+
"description": "evaluate statically-analyzable expressions",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"escodegen": "^1.8.1"
|
|
8
|
+
},
|
|
9
|
+
"devDependencies": {
|
|
10
|
+
"esprima": "^2.7.3",
|
|
11
|
+
"tape": "^4.6.0"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"test": "tape test/*.js"
|
|
15
|
+
},
|
|
16
|
+
"testling": {
|
|
17
|
+
"files": "test/*.js",
|
|
18
|
+
"browsers": [
|
|
19
|
+
"ie/8..latest",
|
|
20
|
+
"ff/latest",
|
|
21
|
+
"chrome/latest",
|
|
22
|
+
"opera/latest",
|
|
23
|
+
"safari/latest"
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git://github.com/substack/static-eval.git"
|
|
29
|
+
},
|
|
30
|
+
"homepage": "https://github.com/substack/static-eval",
|
|
31
|
+
"keywords": [
|
|
32
|
+
"static",
|
|
33
|
+
"eval",
|
|
34
|
+
"expression",
|
|
35
|
+
"esprima",
|
|
36
|
+
"ast",
|
|
37
|
+
"abstract",
|
|
38
|
+
"syntax",
|
|
39
|
+
"tree",
|
|
40
|
+
"analysis"
|
|
41
|
+
],
|
|
42
|
+
"author": {
|
|
43
|
+
"name": "James Halliday",
|
|
44
|
+
"email": "mail@substack.net",
|
|
45
|
+
"url": "http://substack.net"
|
|
46
|
+
},
|
|
47
|
+
"license": "MIT"
|
|
48
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# static-eval
|
|
2
|
+
|
|
3
|
+
evaluate statically-analyzable expressions
|
|
4
|
+
|
|
5
|
+
[](https://ci.testling.com/substack/static-eval)
|
|
6
|
+
|
|
7
|
+
[](http://travis-ci.org/substack/static-eval)
|
|
8
|
+
|
|
9
|
+
# security
|
|
10
|
+
|
|
11
|
+
static-eval is like `eval`. It is intended for use in build scripts and code transformations, doing some evaluation at build time—it is **NOT** suitable for handling arbitrary untrusted user input. Malicious user input _can_ execute arbitrary code.
|
|
12
|
+
|
|
13
|
+
# example
|
|
14
|
+
|
|
15
|
+
``` js
|
|
16
|
+
var evaluate = require('static-eval');
|
|
17
|
+
var parse = require('esprima').parse;
|
|
18
|
+
|
|
19
|
+
var src = process.argv[2];
|
|
20
|
+
var ast = parse(src).body[0].expression;
|
|
21
|
+
|
|
22
|
+
console.log(evaluate(ast));
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
If you stick to simple expressions, the result is statically analyzable:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
$ node '7*8+9'
|
|
29
|
+
65
|
|
30
|
+
$ node eval.js '[1,2,3+4*5-(5*11)]'
|
|
31
|
+
[ 1, 2, -32 ]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
but if you use statements, undeclared identifiers, or syntax, the result is no
|
|
35
|
+
longer statically analyzable and `evaluate()` returns `undefined`:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
$ node eval.js '1+2+3*n'
|
|
39
|
+
undefined
|
|
40
|
+
$ node eval.js 'x=5; x*2'
|
|
41
|
+
undefined
|
|
42
|
+
$ node eval.js '5-4*3'
|
|
43
|
+
-7
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
You can also declare variables and functions to use in the static evaluation:
|
|
47
|
+
|
|
48
|
+
``` js
|
|
49
|
+
var evaluate = require('static-eval');
|
|
50
|
+
var parse = require('esprima').parse;
|
|
51
|
+
|
|
52
|
+
var src = '[1,2,3+4*10+n,foo(3+5),obj[""+"x"].y]';
|
|
53
|
+
var ast = parse(src).body[0].expression;
|
|
54
|
+
|
|
55
|
+
console.log(evaluate(ast, {
|
|
56
|
+
n: 6,
|
|
57
|
+
foo: function (x) { return x * 100 },
|
|
58
|
+
obj: { x: { y: 555 } }
|
|
59
|
+
}));
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
# methods
|
|
63
|
+
|
|
64
|
+
``` js
|
|
65
|
+
var evaluate = require('static-eval');
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## evaluate(ast, vars={})
|
|
69
|
+
|
|
70
|
+
Evaluate the [esprima](https://npmjs.org/package/esprima)-parsed abstract syntax
|
|
71
|
+
tree object `ast` with an optional collection of variables `vars` to use in the
|
|
72
|
+
static expression resolution.
|
|
73
|
+
|
|
74
|
+
If the expression contained in `ast` can't be statically resolved, `evaluate()`
|
|
75
|
+
returns undefined.
|
|
76
|
+
|
|
77
|
+
# install
|
|
78
|
+
|
|
79
|
+
With [npm](https://npmjs.org) do:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
npm install static-eval
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
# license
|
|
86
|
+
|
|
87
|
+
MIT
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
var test = require('tape');
|
|
2
|
+
var evaluate = require('../');
|
|
3
|
+
var parse = require('esprima').parse;
|
|
4
|
+
|
|
5
|
+
test('resolved', function (t) {
|
|
6
|
+
t.plan(1);
|
|
7
|
+
|
|
8
|
+
var src = '[1,2,3+4*10+(n||6),foo(3+5),obj[""+"x"].y]';
|
|
9
|
+
var ast = parse(src).body[0].expression;
|
|
10
|
+
var res = evaluate(ast, {
|
|
11
|
+
n: false,
|
|
12
|
+
foo: function (x) { return x * 100 },
|
|
13
|
+
obj: { x: { y: 555 } }
|
|
14
|
+
});
|
|
15
|
+
t.deepEqual(res, [ 1, 2, 49, 800, 555 ]);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
test('unresolved', function (t) {
|
|
19
|
+
t.plan(1);
|
|
20
|
+
|
|
21
|
+
var src = '[1,2,3+4*10*z+n,foo(3+5),obj[""+"x"].y]';
|
|
22
|
+
var ast = parse(src).body[0].expression;
|
|
23
|
+
var res = evaluate(ast, {
|
|
24
|
+
n: 6,
|
|
25
|
+
foo: function (x) { return x * 100 },
|
|
26
|
+
obj: { x: { y: 555 } }
|
|
27
|
+
});
|
|
28
|
+
t.equal(res, undefined);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('boolean', function (t) {
|
|
32
|
+
t.plan(1);
|
|
33
|
+
|
|
34
|
+
var src = '[ 1===2+3-16/4, [2]==2, [2]!==2, [2]!==[2] ]';
|
|
35
|
+
var ast = parse(src).body[0].expression;
|
|
36
|
+
t.deepEqual(evaluate(ast), [ true, true, true, true ]);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test('array methods', function(t) {
|
|
40
|
+
t.plan(1);
|
|
41
|
+
|
|
42
|
+
var src = '[1, 2, 3].map(function(n) { return n * 2 })';
|
|
43
|
+
var ast = parse(src).body[0].expression;
|
|
44
|
+
t.deepEqual(evaluate(ast), [2, 4, 6]);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test('array methods with vars', function(t) {
|
|
48
|
+
t.plan(1);
|
|
49
|
+
|
|
50
|
+
var src = '[1, 2, 3].map(function(n) { return n * x })';
|
|
51
|
+
var ast = parse(src).body[0].expression;
|
|
52
|
+
t.deepEqual(evaluate(ast, {x: 2}), [2, 4, 6]);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
test('evaluate this', function(t) {
|
|
56
|
+
t.plan(1);
|
|
57
|
+
|
|
58
|
+
var src = 'this.x + this.y.z';
|
|
59
|
+
var ast = parse(src).body[0].expression;
|
|
60
|
+
var res = evaluate(ast, {
|
|
61
|
+
'this': { x: 1, y: { z: 100 } }
|
|
62
|
+
});
|
|
63
|
+
t.equal(res, 101);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
test('FunctionExpression unresolved', function(t) {
|
|
67
|
+
t.plan(1);
|
|
68
|
+
|
|
69
|
+
var src = '(function(){console.log("Not Good")})';
|
|
70
|
+
var ast = parse(src).body[0].expression;
|
|
71
|
+
var res = evaluate(ast, {});
|
|
72
|
+
t.equal(res, undefined);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
test('MemberExpressions from Functions unresolved', function(t) {
|
|
76
|
+
t.plan(1);
|
|
77
|
+
|
|
78
|
+
var src = '(function () {}).constructor';
|
|
79
|
+
var ast = parse(src).body[0].expression;
|
|
80
|
+
var res = evaluate(ast, {});
|
|
81
|
+
t.equal(res, undefined);
|
|
82
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var test = require('tape');
|
|
2
|
+
var evaluate = require('../');
|
|
3
|
+
var parse = require('esprima').parse;
|
|
4
|
+
|
|
5
|
+
test('function property', function (t) {
|
|
6
|
+
t.plan(1);
|
|
7
|
+
|
|
8
|
+
var src = '[1,2,3+4*10+n,beep.boop(3+5),obj[""+"x"].y]';
|
|
9
|
+
var ast = parse(src).body[0].expression;
|
|
10
|
+
var res = evaluate(ast, {
|
|
11
|
+
n: 6,
|
|
12
|
+
beep: { boop: function (x) { return x * 100 } },
|
|
13
|
+
obj: { x: { y: 555 } }
|
|
14
|
+
});
|
|
15
|
+
t.deepEqual(res, [ 1, 2, 49, 800, 555 ]);
|
|
16
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var test = require('tape');
|
|
2
|
+
var evaluate = require('../');
|
|
3
|
+
var parse = require('esprima').parse;
|
|
4
|
+
|
|
5
|
+
test('untagged template strings', function (t) {
|
|
6
|
+
t.plan(1);
|
|
7
|
+
|
|
8
|
+
var src = '`${1},${2 + n},${`4,5`}`';
|
|
9
|
+
var ast = parse(src).body[0].expression;
|
|
10
|
+
var res = evaluate(ast, {
|
|
11
|
+
n: 6
|
|
12
|
+
});
|
|
13
|
+
t.deepEqual(res, '1,8,4,5');
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
test('tagged template strings', function (t) {
|
|
17
|
+
t.plan(3);
|
|
18
|
+
|
|
19
|
+
var src = 'template`${1},${2 + n},${`4,5`}`';
|
|
20
|
+
var ast = parse(src).body[0].expression;
|
|
21
|
+
var res = evaluate(ast, {
|
|
22
|
+
template: function (strings) {
|
|
23
|
+
t.deepEqual(strings, ['', ',', ',', '']);
|
|
24
|
+
|
|
25
|
+
var values = [].slice.call(arguments, 1);
|
|
26
|
+
t.deepEqual(values, [1, 8, '4,5']);
|
|
27
|
+
|
|
28
|
+
return 'foo';
|
|
29
|
+
},
|
|
30
|
+
n: 6
|
|
31
|
+
});
|
|
32
|
+
t.deepEqual(res, 'foo');
|
|
33
|
+
})
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Copyright (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative
|
|
2
|
+
Reporters & Editors
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted, free of charge, to any person
|
|
5
|
+
obtaining a copy of this software and associated documentation
|
|
6
|
+
files (the "Software"), to deal in the Software without
|
|
7
|
+
restriction, including without limitation the rights to use,
|
|
8
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the
|
|
10
|
+
Software is furnished to do so, subject to the following
|
|
11
|
+
conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
18
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
20
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
21
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
22
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
23
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
__
|
|
2
|
+
/\ \ __
|
|
3
|
+
__ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____
|
|
4
|
+
/\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\
|
|
5
|
+
\ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\
|
|
6
|
+
\ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
|
|
7
|
+
\/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/
|
|
8
|
+
\ \____/
|
|
9
|
+
\/___/
|
|
10
|
+
|
|
11
|
+
Underscore.js is a utility-belt library for JavaScript that provides
|
|
12
|
+
support for the usual functional suspects (each, map, reduce, filter...)
|
|
13
|
+
without extending any core JavaScript objects.
|
|
14
|
+
|
|
15
|
+
For Docs, License, Tests, and pre-packed downloads, see:
|
|
16
|
+
https://underscorejs.org
|
|
17
|
+
|
|
18
|
+
For support and questions, please use
|
|
19
|
+
[the gitter channel](https://gitter.im/jashkenas/underscore)
|
|
20
|
+
or [stackoverflow](https://stackoverflow.com/search?q=underscore.js)
|
|
21
|
+
|
|
22
|
+
Underscore is an open-sourced component of DocumentCloud:
|
|
23
|
+
https://github.com/documentcloud
|
|
24
|
+
|
|
25
|
+
Many thanks to our contributors:
|
|
26
|
+
https://github.com/jashkenas/underscore/contributors
|
|
27
|
+
|
|
28
|
+
This project adheres to a [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
define(function () {
|
|
2
|
+
|
|
3
|
+
// Internal helper that wraps an `iteratee` to call it with the
|
|
4
|
+
// property of a closed-over `object`. Useful when iterating over
|
|
5
|
+
// an array of keys of `object`.
|
|
6
|
+
function applyProperty(iteratee, object) {
|
|
7
|
+
return function(key) {
|
|
8
|
+
return iteratee(object[key], key, object);
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return applyProperty;
|
|
13
|
+
|
|
14
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
define(['exports', './pop', './push', './reverse', './shift', './sort', './splice', './unshift'], function (exports, pop, push, reverse, shift, sort, splice, unshift) {
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
exports.pop = pop;
|
|
6
|
+
exports.push = push;
|
|
7
|
+
exports.reverse = reverse;
|
|
8
|
+
exports.shift = shift;
|
|
9
|
+
exports.sort = sort;
|
|
10
|
+
exports.splice = splice;
|
|
11
|
+
exports.unshift = unshift;
|
|
12
|
+
|
|
13
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
|
+
|
|
15
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
define(['./isObject', './_setup'], function (isObject, _setup) {
|
|
2
|
+
|
|
3
|
+
// Create a naked function reference for surrogate-prototype-swapping.
|
|
4
|
+
function ctor() {
|
|
5
|
+
return function(){};
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// An internal function for creating a new object that inherits from another.
|
|
9
|
+
function baseCreate(prototype) {
|
|
10
|
+
if (!isObject(prototype)) return {};
|
|
11
|
+
if (_setup.nativeCreate) return _setup.nativeCreate(prototype);
|
|
12
|
+
var Ctor = ctor();
|
|
13
|
+
Ctor.prototype = prototype;
|
|
14
|
+
var result = new Ctor;
|
|
15
|
+
Ctor.prototype = null;
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return baseCreate;
|
|
20
|
+
|
|
21
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
define(['./isObject', './identity', './isFunction', './isArray', './matcher', './property', './_optimizeCb'], function (isObject, identity, isFunction, isArray, matcher, property, _optimizeCb) {
|
|
2
|
+
|
|
3
|
+
// An internal function to generate callbacks that can be applied to each
|
|
4
|
+
// element in a collection, returning the desired result — either `_.identity`,
|
|
5
|
+
// an arbitrary callback, a property matcher, or a property accessor.
|
|
6
|
+
function baseIteratee(value, context, argCount) {
|
|
7
|
+
if (value == null) return identity;
|
|
8
|
+
if (isFunction(value)) return _optimizeCb(value, context, argCount);
|
|
9
|
+
if (isObject(value) && !isArray(value)) return matcher(value);
|
|
10
|
+
return property(value);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return baseIteratee;
|
|
14
|
+
|
|
15
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
define(['./_getLength'], function (_getLength) {
|
|
2
|
+
|
|
3
|
+
// Iteratively cut `array` in half to figure out the index at which `obj` should
|
|
4
|
+
// be inserted so as to maintain the order defined by `compare`.
|
|
5
|
+
function binarySearch(array, obj, iteratee, compare) {
|
|
6
|
+
var value = iteratee(obj);
|
|
7
|
+
var low = 0, high = _getLength(array);
|
|
8
|
+
while (low < high) {
|
|
9
|
+
var mid = Math.floor((low + high) / 2);
|
|
10
|
+
if (compare(iteratee(array[mid]), value)) low = mid + 1; else high = mid;
|
|
11
|
+
}
|
|
12
|
+
return low;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return binarySearch;
|
|
16
|
+
|
|
17
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
define(function () {
|
|
2
|
+
|
|
3
|
+
// Internal function that returns a bound version of the passed-in callback, to
|
|
4
|
+
// be repeatedly applied in other Underscore functions.
|
|
5
|
+
function bindCb(func, context) {
|
|
6
|
+
if (context === void 0) return func;
|
|
7
|
+
return function() {
|
|
8
|
+
return func.apply(context, arguments);
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return bindCb;
|
|
13
|
+
|
|
14
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
define(function () {
|
|
2
|
+
|
|
3
|
+
// In Firefox, `Function.prototype.call` is faster than
|
|
4
|
+
// `Function.prototype.apply`. In the optimized variant of
|
|
5
|
+
// `bindCb` below, we exploit the fact that no Underscore
|
|
6
|
+
// function passes more than four arguments to a callback.
|
|
7
|
+
// **NOT general enough for use outside of Underscore.**
|
|
8
|
+
function bindCb4(func, context) {
|
|
9
|
+
if (context === void 0) return func;
|
|
10
|
+
return function(a1, a2, a3, a4) {
|
|
11
|
+
return func.call(context, a1, a2, a3, a4);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return bindCb4;
|
|
16
|
+
|
|
17
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
define(['./underscore', './_baseIteratee', './iteratee'], function (underscore, _baseIteratee, iteratee) {
|
|
2
|
+
|
|
3
|
+
// The function we call internally to generate a callback. It invokes
|
|
4
|
+
// `_.iteratee` if overridden, otherwise `baseIteratee`.
|
|
5
|
+
function cb(value, context, argCount) {
|
|
6
|
+
if (underscore.iteratee !== iteratee) return underscore.iteratee(value, context);
|
|
7
|
+
return _baseIteratee(value, context, argCount);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return cb;
|
|
11
|
+
|
|
12
|
+
});
|