protobufjs 6.11.0 → 6.11.3

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.
Files changed (205) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/bin/pbjs +0 -0
  3. package/bin/pbts +0 -0
  4. package/index.d.ts +3 -0
  5. package/package-lock.json +7870 -0
  6. package/package.json +3 -3
  7. package/scripts/changelog.js +150 -0
  8. package/src/field.js +3 -3
  9. package/src/namespace.js +2 -1
  10. package/src/util.js +3 -0
  11. package/cli/node_modules/.package-lock.json +0 -256
  12. package/cli/node_modules/acorn/CHANGELOG.md +0 -620
  13. package/cli/node_modules/acorn/LICENSE +0 -21
  14. package/cli/node_modules/acorn/README.md +0 -269
  15. package/cli/node_modules/acorn/bin/acorn +0 -4
  16. package/cli/node_modules/acorn/dist/acorn.d.ts +0 -209
  17. package/cli/node_modules/acorn/dist/acorn.js +0 -5186
  18. package/cli/node_modules/acorn/dist/acorn.js.map +0 -1
  19. package/cli/node_modules/acorn/dist/acorn.mjs +0 -5155
  20. package/cli/node_modules/acorn/dist/acorn.mjs.d.ts +0 -2
  21. package/cli/node_modules/acorn/dist/acorn.mjs.map +0 -1
  22. package/cli/node_modules/acorn/dist/bin.js +0 -64
  23. package/cli/node_modules/acorn/package.json +0 -35
  24. package/cli/node_modules/acorn-jsx/LICENSE +0 -19
  25. package/cli/node_modules/acorn-jsx/README.md +0 -40
  26. package/cli/node_modules/acorn-jsx/index.js +0 -488
  27. package/cli/node_modules/acorn-jsx/package.json +0 -27
  28. package/cli/node_modules/acorn-jsx/xhtml.js +0 -255
  29. package/cli/node_modules/balanced-match/.npmignore +0 -5
  30. package/cli/node_modules/balanced-match/LICENSE.md +0 -21
  31. package/cli/node_modules/balanced-match/README.md +0 -91
  32. package/cli/node_modules/balanced-match/index.js +0 -59
  33. package/cli/node_modules/balanced-match/package.json +0 -49
  34. package/cli/node_modules/brace-expansion/LICENSE +0 -21
  35. package/cli/node_modules/brace-expansion/README.md +0 -129
  36. package/cli/node_modules/brace-expansion/index.js +0 -201
  37. package/cli/node_modules/brace-expansion/package.json +0 -47
  38. package/cli/node_modules/concat-map/.travis.yml +0 -4
  39. package/cli/node_modules/concat-map/LICENSE +0 -18
  40. package/cli/node_modules/concat-map/README.markdown +0 -62
  41. package/cli/node_modules/concat-map/example/map.js +0 -6
  42. package/cli/node_modules/concat-map/index.js +0 -13
  43. package/cli/node_modules/concat-map/package.json +0 -43
  44. package/cli/node_modules/concat-map/test/map.js +0 -39
  45. package/cli/node_modules/deep-is/.npmignore +0 -1
  46. package/cli/node_modules/deep-is/.travis.yml +0 -6
  47. package/cli/node_modules/deep-is/LICENSE +0 -22
  48. package/cli/node_modules/deep-is/README.markdown +0 -70
  49. package/cli/node_modules/deep-is/example/cmp.js +0 -11
  50. package/cli/node_modules/deep-is/index.js +0 -102
  51. package/cli/node_modules/deep-is/package.json +0 -61
  52. package/cli/node_modules/deep-is/test/NaN.js +0 -16
  53. package/cli/node_modules/deep-is/test/cmp.js +0 -23
  54. package/cli/node_modules/deep-is/test/neg-vs-pos-0.js +0 -15
  55. package/cli/node_modules/escodegen/LICENSE.BSD +0 -21
  56. package/cli/node_modules/escodegen/README.md +0 -84
  57. package/cli/node_modules/escodegen/bin/escodegen.js +0 -77
  58. package/cli/node_modules/escodegen/bin/esgenerate.js +0 -64
  59. package/cli/node_modules/escodegen/escodegen.js +0 -2647
  60. package/cli/node_modules/escodegen/package.json +0 -62
  61. package/cli/node_modules/eslint-visitor-keys/CHANGELOG.md +0 -25
  62. package/cli/node_modules/eslint-visitor-keys/LICENSE +0 -201
  63. package/cli/node_modules/eslint-visitor-keys/README.md +0 -98
  64. package/cli/node_modules/eslint-visitor-keys/lib/index.js +0 -81
  65. package/cli/node_modules/eslint-visitor-keys/lib/visitor-keys.json +0 -284
  66. package/cli/node_modules/eslint-visitor-keys/package.json +0 -40
  67. package/cli/node_modules/espree/CHANGELOG.md +0 -509
  68. package/cli/node_modules/espree/LICENSE +0 -25
  69. package/cli/node_modules/espree/README.md +0 -233
  70. package/cli/node_modules/espree/espree.js +0 -177
  71. package/cli/node_modules/espree/lib/ast-node-types.js +0 -96
  72. package/cli/node_modules/espree/lib/espree.js +0 -286
  73. package/cli/node_modules/espree/lib/features.js +0 -29
  74. package/cli/node_modules/espree/lib/options.js +0 -106
  75. package/cli/node_modules/espree/lib/token-translator.js +0 -263
  76. package/cli/node_modules/espree/lib/visitor-keys.js +0 -123
  77. package/cli/node_modules/espree/package.json +0 -64
  78. package/cli/node_modules/esprima/ChangeLog +0 -235
  79. package/cli/node_modules/esprima/LICENSE.BSD +0 -21
  80. package/cli/node_modules/esprima/README.md +0 -46
  81. package/cli/node_modules/esprima/bin/esparse.js +0 -139
  82. package/cli/node_modules/esprima/bin/esvalidate.js +0 -236
  83. package/cli/node_modules/esprima/dist/esprima.js +0 -6709
  84. package/cli/node_modules/esprima/package.json +0 -112
  85. package/cli/node_modules/estraverse/.jshintrc +0 -16
  86. package/cli/node_modules/estraverse/LICENSE.BSD +0 -19
  87. package/cli/node_modules/estraverse/README.md +0 -153
  88. package/cli/node_modules/estraverse/estraverse.js +0 -801
  89. package/cli/node_modules/estraverse/gulpfile.js +0 -70
  90. package/cli/node_modules/estraverse/package.json +0 -40
  91. package/cli/node_modules/esutils/LICENSE.BSD +0 -19
  92. package/cli/node_modules/esutils/README.md +0 -174
  93. package/cli/node_modules/esutils/lib/ast.js +0 -144
  94. package/cli/node_modules/esutils/lib/code.js +0 -135
  95. package/cli/node_modules/esutils/lib/keyword.js +0 -165
  96. package/cli/node_modules/esutils/lib/utils.js +0 -33
  97. package/cli/node_modules/esutils/package.json +0 -44
  98. package/cli/node_modules/fast-levenshtein/LICENSE.md +0 -25
  99. package/cli/node_modules/fast-levenshtein/README.md +0 -104
  100. package/cli/node_modules/fast-levenshtein/levenshtein.js +0 -136
  101. package/cli/node_modules/fast-levenshtein/package.json +0 -39
  102. package/cli/node_modules/fs.realpath/LICENSE +0 -43
  103. package/cli/node_modules/fs.realpath/README.md +0 -33
  104. package/cli/node_modules/fs.realpath/index.js +0 -66
  105. package/cli/node_modules/fs.realpath/old.js +0 -303
  106. package/cli/node_modules/fs.realpath/package.json +0 -26
  107. package/cli/node_modules/glob/LICENSE +0 -21
  108. package/cli/node_modules/glob/README.md +0 -375
  109. package/cli/node_modules/glob/changelog.md +0 -67
  110. package/cli/node_modules/glob/common.js +0 -240
  111. package/cli/node_modules/glob/glob.js +0 -790
  112. package/cli/node_modules/glob/package.json +0 -46
  113. package/cli/node_modules/glob/sync.js +0 -486
  114. package/cli/node_modules/inflight/LICENSE +0 -15
  115. package/cli/node_modules/inflight/README.md +0 -37
  116. package/cli/node_modules/inflight/inflight.js +0 -54
  117. package/cli/node_modules/inflight/package.json +0 -29
  118. package/cli/node_modules/inherits/LICENSE +0 -16
  119. package/cli/node_modules/inherits/README.md +0 -42
  120. package/cli/node_modules/inherits/inherits.js +0 -9
  121. package/cli/node_modules/inherits/inherits_browser.js +0 -27
  122. package/cli/node_modules/inherits/package.json +0 -29
  123. package/cli/node_modules/levn/LICENSE +0 -22
  124. package/cli/node_modules/levn/README.md +0 -196
  125. package/cli/node_modules/levn/lib/cast.js +0 -298
  126. package/cli/node_modules/levn/lib/coerce.js +0 -285
  127. package/cli/node_modules/levn/lib/index.js +0 -22
  128. package/cli/node_modules/levn/lib/parse-string.js +0 -113
  129. package/cli/node_modules/levn/lib/parse.js +0 -102
  130. package/cli/node_modules/levn/package.json +0 -47
  131. package/cli/node_modules/minimatch/LICENSE +0 -15
  132. package/cli/node_modules/minimatch/README.md +0 -209
  133. package/cli/node_modules/minimatch/minimatch.js +0 -923
  134. package/cli/node_modules/minimatch/package.json +0 -30
  135. package/cli/node_modules/once/LICENSE +0 -15
  136. package/cli/node_modules/once/README.md +0 -79
  137. package/cli/node_modules/once/once.js +0 -42
  138. package/cli/node_modules/once/package.json +0 -33
  139. package/cli/node_modules/optionator/CHANGELOG.md +0 -56
  140. package/cli/node_modules/optionator/LICENSE +0 -22
  141. package/cli/node_modules/optionator/README.md +0 -238
  142. package/cli/node_modules/optionator/lib/help.js +0 -260
  143. package/cli/node_modules/optionator/lib/index.js +0 -465
  144. package/cli/node_modules/optionator/lib/util.js +0 -54
  145. package/cli/node_modules/optionator/package.json +0 -44
  146. package/cli/node_modules/path-is-absolute/index.js +0 -20
  147. package/cli/node_modules/path-is-absolute/license +0 -21
  148. package/cli/node_modules/path-is-absolute/package.json +0 -43
  149. package/cli/node_modules/path-is-absolute/readme.md +0 -59
  150. package/cli/node_modules/prelude-ls/CHANGELOG.md +0 -99
  151. package/cli/node_modules/prelude-ls/LICENSE +0 -22
  152. package/cli/node_modules/prelude-ls/README.md +0 -15
  153. package/cli/node_modules/prelude-ls/lib/Func.js +0 -65
  154. package/cli/node_modules/prelude-ls/lib/List.js +0 -686
  155. package/cli/node_modules/prelude-ls/lib/Num.js +0 -130
  156. package/cli/node_modules/prelude-ls/lib/Obj.js +0 -154
  157. package/cli/node_modules/prelude-ls/lib/Str.js +0 -92
  158. package/cli/node_modules/prelude-ls/lib/index.js +0 -178
  159. package/cli/node_modules/prelude-ls/package.json +0 -52
  160. package/cli/node_modules/rimraf/CHANGELOG.md +0 -65
  161. package/cli/node_modules/rimraf/LICENSE +0 -15
  162. package/cli/node_modules/rimraf/README.md +0 -101
  163. package/cli/node_modules/rimraf/bin.js +0 -68
  164. package/cli/node_modules/rimraf/package.json +0 -32
  165. package/cli/node_modules/rimraf/rimraf.js +0 -360
  166. package/cli/node_modules/source-map/CHANGELOG.md +0 -301
  167. package/cli/node_modules/source-map/LICENSE +0 -28
  168. package/cli/node_modules/source-map/README.md +0 -742
  169. package/cli/node_modules/source-map/dist/source-map.debug.js +0 -3234
  170. package/cli/node_modules/source-map/dist/source-map.js +0 -3233
  171. package/cli/node_modules/source-map/dist/source-map.min.js +0 -2
  172. package/cli/node_modules/source-map/dist/source-map.min.js.map +0 -1
  173. package/cli/node_modules/source-map/lib/array-set.js +0 -121
  174. package/cli/node_modules/source-map/lib/base64-vlq.js +0 -140
  175. package/cli/node_modules/source-map/lib/base64.js +0 -67
  176. package/cli/node_modules/source-map/lib/binary-search.js +0 -111
  177. package/cli/node_modules/source-map/lib/mapping-list.js +0 -79
  178. package/cli/node_modules/source-map/lib/quick-sort.js +0 -114
  179. package/cli/node_modules/source-map/lib/source-map-consumer.js +0 -1145
  180. package/cli/node_modules/source-map/lib/source-map-generator.js +0 -425
  181. package/cli/node_modules/source-map/lib/source-node.js +0 -413
  182. package/cli/node_modules/source-map/lib/util.js +0 -488
  183. package/cli/node_modules/source-map/package.json +0 -73
  184. package/cli/node_modules/source-map/source-map.d.ts +0 -98
  185. package/cli/node_modules/source-map/source-map.js +0 -8
  186. package/cli/node_modules/tmp/CHANGELOG.md +0 -288
  187. package/cli/node_modules/tmp/LICENSE +0 -21
  188. package/cli/node_modules/tmp/README.md +0 -365
  189. package/cli/node_modules/tmp/lib/tmp.js +0 -780
  190. package/cli/node_modules/tmp/package.json +0 -58
  191. package/cli/node_modules/type-check/LICENSE +0 -22
  192. package/cli/node_modules/type-check/README.md +0 -210
  193. package/cli/node_modules/type-check/lib/check.js +0 -126
  194. package/cli/node_modules/type-check/lib/index.js +0 -16
  195. package/cli/node_modules/type-check/lib/parse-type.js +0 -196
  196. package/cli/node_modules/type-check/package.json +0 -40
  197. package/cli/node_modules/word-wrap/LICENSE +0 -21
  198. package/cli/node_modules/word-wrap/README.md +0 -182
  199. package/cli/node_modules/word-wrap/index.d.ts +0 -50
  200. package/cli/node_modules/word-wrap/index.js +0 -46
  201. package/cli/node_modules/word-wrap/package.json +0 -77
  202. package/cli/node_modules/wrappy/LICENSE +0 -15
  203. package/cli/node_modules/wrappy/README.md +0 -36
  204. package/cli/node_modules/wrappy/package.json +0 -29
  205. package/cli/node_modules/wrappy/wrappy.js +0 -33
@@ -1,112 +0,0 @@
1
- {
2
- "name": "esprima",
3
- "description": "ECMAScript parsing infrastructure for multipurpose analysis",
4
- "homepage": "http://esprima.org",
5
- "main": "dist/esprima.js",
6
- "bin": {
7
- "esparse": "./bin/esparse.js",
8
- "esvalidate": "./bin/esvalidate.js"
9
- },
10
- "version": "4.0.1",
11
- "files": [
12
- "bin",
13
- "dist/esprima.js"
14
- ],
15
- "engines": {
16
- "node": ">=4"
17
- },
18
- "author": {
19
- "name": "Ariya Hidayat",
20
- "email": "ariya.hidayat@gmail.com"
21
- },
22
- "maintainers": [
23
- {
24
- "name": "Ariya Hidayat",
25
- "email": "ariya.hidayat@gmail.com",
26
- "web": "http://ariya.ofilabs.com"
27
- }
28
- ],
29
- "repository": {
30
- "type": "git",
31
- "url": "https://github.com/jquery/esprima.git"
32
- },
33
- "bugs": {
34
- "url": "https://github.com/jquery/esprima/issues"
35
- },
36
- "license": "BSD-2-Clause",
37
- "devDependencies": {
38
- "codecov.io": "~0.1.6",
39
- "escomplex-js": "1.2.0",
40
- "everything.js": "~1.0.3",
41
- "glob": "~7.1.0",
42
- "istanbul": "~0.4.0",
43
- "json-diff": "~0.3.1",
44
- "karma": "~1.3.0",
45
- "karma-chrome-launcher": "~2.0.0",
46
- "karma-detect-browsers": "~2.2.3",
47
- "karma-edge-launcher": "~0.2.0",
48
- "karma-firefox-launcher": "~1.0.0",
49
- "karma-ie-launcher": "~1.0.0",
50
- "karma-mocha": "~1.3.0",
51
- "karma-safari-launcher": "~1.0.0",
52
- "karma-safaritechpreview-launcher": "~0.0.4",
53
- "karma-sauce-launcher": "~1.1.0",
54
- "lodash": "~3.10.1",
55
- "mocha": "~3.2.0",
56
- "node-tick-processor": "~0.0.2",
57
- "regenerate": "~1.3.2",
58
- "temp": "~0.8.3",
59
- "tslint": "~5.1.0",
60
- "typescript": "~2.3.2",
61
- "typescript-formatter": "~5.1.3",
62
- "unicode-8.0.0": "~0.7.0",
63
- "webpack": "~1.14.0"
64
- },
65
- "keywords": [
66
- "ast",
67
- "ecmascript",
68
- "esprima",
69
- "javascript",
70
- "parser",
71
- "syntax"
72
- ],
73
- "scripts": {
74
- "check-version": "node test/check-version.js",
75
- "tslint": "tslint src/*.ts",
76
- "code-style": "tsfmt --verify src/*.ts && tsfmt --verify test/*.js",
77
- "format-code": "tsfmt -r src/*.ts && tsfmt -r test/*.js",
78
- "complexity": "node test/check-complexity.js",
79
- "static-analysis": "npm run check-version && npm run tslint && npm run code-style && npm run complexity",
80
- "hostile-env-tests": "node test/hostile-environment-tests.js",
81
- "unit-tests": "node test/unit-tests.js",
82
- "api-tests": "mocha -R dot test/api-tests.js",
83
- "grammar-tests": "node test/grammar-tests.js",
84
- "regression-tests": "node test/regression-tests.js",
85
- "all-tests": "npm run verify-line-ending && npm run generate-fixtures && npm run unit-tests && npm run api-tests && npm run grammar-tests && npm run regression-tests && npm run hostile-env-tests",
86
- "verify-line-ending": "node test/verify-line-ending.js",
87
- "generate-fixtures": "node tools/generate-fixtures.js",
88
- "browser-tests": "npm run compile && npm run generate-fixtures && cd test && karma start --single-run",
89
- "saucelabs-evergreen": "cd test && karma start saucelabs-evergreen.conf.js",
90
- "saucelabs-safari": "cd test && karma start saucelabs-safari.conf.js",
91
- "saucelabs-ie": "cd test && karma start saucelabs-ie.conf.js",
92
- "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari",
93
- "analyze-coverage": "istanbul cover test/unit-tests.js",
94
- "check-coverage": "istanbul check-coverage --statement 100 --branch 100 --function 100",
95
- "dynamic-analysis": "npm run analyze-coverage && npm run check-coverage",
96
- "compile": "tsc -p src/ && webpack && node tools/fixupbundle.js",
97
- "test": "npm run compile && npm run all-tests && npm run static-analysis && npm run dynamic-analysis",
98
- "prepublish": "npm run compile",
99
- "profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor",
100
- "benchmark-parser": "node -expose_gc test/benchmark-parser.js",
101
- "benchmark-tokenizer": "node --expose_gc test/benchmark-tokenizer.js",
102
- "benchmark": "npm run benchmark-parser && npm run benchmark-tokenizer",
103
- "codecov": "istanbul report cobertura && codecov < ./coverage/cobertura-coverage.xml",
104
- "downstream": "node test/downstream.js",
105
- "travis": "npm test",
106
- "circleci": "npm test && npm run codecov && npm run downstream",
107
- "appveyor": "npm run compile && npm run all-tests && npm run browser-tests",
108
- "droneio": "npm run compile && npm run all-tests && npm run saucelabs",
109
- "generate-regex": "node tools/generate-identifier-regex.js",
110
- "generate-xhtml-entities": "node tools/generate-xhtml-entities.js"
111
- }
112
- }
@@ -1,16 +0,0 @@
1
- {
2
- "curly": true,
3
- "eqeqeq": true,
4
- "immed": true,
5
- "eqnull": true,
6
- "latedef": true,
7
- "noarg": true,
8
- "noempty": true,
9
- "quotmark": "single",
10
- "undef": true,
11
- "unused": true,
12
- "strict": true,
13
- "trailing": true,
14
-
15
- "node": true
16
- }
@@ -1,19 +0,0 @@
1
- Redistribution and use in source and binary forms, with or without
2
- modification, are permitted provided that the following conditions are met:
3
-
4
- * Redistributions of source code must retain the above copyright
5
- notice, this list of conditions and the following disclaimer.
6
- * Redistributions in binary form must reproduce the above copyright
7
- notice, this list of conditions and the following disclaimer in the
8
- documentation and/or other materials provided with the distribution.
9
-
10
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
11
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
13
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
14
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
16
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
17
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
18
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
19
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,153 +0,0 @@
1
- ### Estraverse [![Build Status](https://secure.travis-ci.org/estools/estraverse.svg)](http://travis-ci.org/estools/estraverse)
2
-
3
- Estraverse ([estraverse](http://github.com/estools/estraverse)) is
4
- [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
5
- traversal functions from [esmangle project](http://github.com/estools/esmangle).
6
-
7
- ### Documentation
8
-
9
- You can find usage docs at [wiki page](https://github.com/estools/estraverse/wiki/Usage).
10
-
11
- ### Example Usage
12
-
13
- The following code will output all variables declared at the root of a file.
14
-
15
- ```javascript
16
- estraverse.traverse(ast, {
17
- enter: function (node, parent) {
18
- if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration')
19
- return estraverse.VisitorOption.Skip;
20
- },
21
- leave: function (node, parent) {
22
- if (node.type == 'VariableDeclarator')
23
- console.log(node.id.name);
24
- }
25
- });
26
- ```
27
-
28
- We can use `this.skip`, `this.remove` and `this.break` functions instead of using Skip, Remove and Break.
29
-
30
- ```javascript
31
- estraverse.traverse(ast, {
32
- enter: function (node) {
33
- this.break();
34
- }
35
- });
36
- ```
37
-
38
- And estraverse provides `estraverse.replace` function. When returning node from `enter`/`leave`, current node is replaced with it.
39
-
40
- ```javascript
41
- result = estraverse.replace(tree, {
42
- enter: function (node) {
43
- // Replace it with replaced.
44
- if (node.type === 'Literal')
45
- return replaced;
46
- }
47
- });
48
- ```
49
-
50
- By passing `visitor.keys` mapping, we can extend estraverse traversing functionality.
51
-
52
- ```javascript
53
- // This tree contains a user-defined `TestExpression` node.
54
- var tree = {
55
- type: 'TestExpression',
56
-
57
- // This 'argument' is the property containing the other **node**.
58
- argument: {
59
- type: 'Literal',
60
- value: 20
61
- },
62
-
63
- // This 'extended' is the property not containing the other **node**.
64
- extended: true
65
- };
66
- estraverse.traverse(tree, {
67
- enter: function (node) { },
68
-
69
- // Extending the existing traversing rules.
70
- keys: {
71
- // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ]
72
- TestExpression: ['argument']
73
- }
74
- });
75
- ```
76
-
77
- By passing `visitor.fallback` option, we can control the behavior when encountering unknown nodes.
78
-
79
- ```javascript
80
- // This tree contains a user-defined `TestExpression` node.
81
- var tree = {
82
- type: 'TestExpression',
83
-
84
- // This 'argument' is the property containing the other **node**.
85
- argument: {
86
- type: 'Literal',
87
- value: 20
88
- },
89
-
90
- // This 'extended' is the property not containing the other **node**.
91
- extended: true
92
- };
93
- estraverse.traverse(tree, {
94
- enter: function (node) { },
95
-
96
- // Iterating the child **nodes** of unknown nodes.
97
- fallback: 'iteration'
98
- });
99
- ```
100
-
101
- When `visitor.fallback` is a function, we can determine which keys to visit on each node.
102
-
103
- ```javascript
104
- // This tree contains a user-defined `TestExpression` node.
105
- var tree = {
106
- type: 'TestExpression',
107
-
108
- // This 'argument' is the property containing the other **node**.
109
- argument: {
110
- type: 'Literal',
111
- value: 20
112
- },
113
-
114
- // This 'extended' is the property not containing the other **node**.
115
- extended: true
116
- };
117
- estraverse.traverse(tree, {
118
- enter: function (node) { },
119
-
120
- // Skip the `argument` property of each node
121
- fallback: function(node) {
122
- return Object.keys(node).filter(function(key) {
123
- return key !== 'argument';
124
- });
125
- }
126
- });
127
- ```
128
-
129
- ### License
130
-
131
- Copyright (C) 2012-2016 [Yusuke Suzuki](http://github.com/Constellation)
132
- (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors.
133
-
134
- Redistribution and use in source and binary forms, with or without
135
- modification, are permitted provided that the following conditions are met:
136
-
137
- * Redistributions of source code must retain the above copyright
138
- notice, this list of conditions and the following disclaimer.
139
-
140
- * Redistributions in binary form must reproduce the above copyright
141
- notice, this list of conditions and the following disclaimer in the
142
- documentation and/or other materials provided with the distribution.
143
-
144
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
145
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
146
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
147
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
148
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
149
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
150
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
151
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
152
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
153
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.