protobufjs 6.10.2 → 6.11.2

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 (220) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/bin/pbjs +0 -0
  3. package/bin/pbts +0 -0
  4. package/cli/README.md +163 -0
  5. package/cli/node_modules/.package-lock.json +256 -0
  6. package/cli/node_modules/acorn/CHANGELOG.md +620 -0
  7. package/cli/node_modules/acorn/LICENSE +21 -0
  8. package/cli/node_modules/acorn/README.md +269 -0
  9. package/cli/node_modules/acorn/bin/acorn +4 -0
  10. package/cli/node_modules/acorn/dist/acorn.d.ts +209 -0
  11. package/cli/node_modules/acorn/dist/acorn.js +5186 -0
  12. package/cli/node_modules/acorn/dist/acorn.js.map +1 -0
  13. package/cli/node_modules/acorn/dist/acorn.mjs +5155 -0
  14. package/cli/node_modules/acorn/dist/acorn.mjs.d.ts +2 -0
  15. package/cli/node_modules/acorn/dist/acorn.mjs.map +1 -0
  16. package/cli/node_modules/acorn/dist/bin.js +64 -0
  17. package/cli/node_modules/acorn/package.json +35 -0
  18. package/cli/node_modules/acorn-jsx/LICENSE +19 -0
  19. package/cli/node_modules/acorn-jsx/README.md +40 -0
  20. package/cli/node_modules/acorn-jsx/index.js +488 -0
  21. package/cli/node_modules/acorn-jsx/package.json +27 -0
  22. package/cli/node_modules/acorn-jsx/xhtml.js +255 -0
  23. package/cli/node_modules/balanced-match/.npmignore +5 -0
  24. package/cli/node_modules/balanced-match/LICENSE.md +21 -0
  25. package/cli/node_modules/balanced-match/README.md +91 -0
  26. package/cli/node_modules/balanced-match/index.js +59 -0
  27. package/cli/node_modules/balanced-match/package.json +49 -0
  28. package/cli/node_modules/brace-expansion/LICENSE +21 -0
  29. package/cli/node_modules/brace-expansion/README.md +129 -0
  30. package/cli/node_modules/brace-expansion/index.js +201 -0
  31. package/cli/node_modules/brace-expansion/package.json +47 -0
  32. package/cli/node_modules/concat-map/.travis.yml +4 -0
  33. package/cli/node_modules/concat-map/LICENSE +18 -0
  34. package/cli/node_modules/concat-map/README.markdown +62 -0
  35. package/cli/node_modules/concat-map/example/map.js +6 -0
  36. package/cli/node_modules/concat-map/index.js +13 -0
  37. package/cli/node_modules/concat-map/package.json +43 -0
  38. package/cli/node_modules/concat-map/test/map.js +39 -0
  39. package/cli/node_modules/deep-is/.npmignore +1 -0
  40. package/cli/node_modules/deep-is/.travis.yml +6 -0
  41. package/cli/node_modules/deep-is/LICENSE +22 -0
  42. package/cli/node_modules/deep-is/README.markdown +70 -0
  43. package/cli/node_modules/deep-is/example/cmp.js +11 -0
  44. package/cli/node_modules/deep-is/index.js +102 -0
  45. package/cli/node_modules/deep-is/package.json +61 -0
  46. package/cli/node_modules/deep-is/test/NaN.js +16 -0
  47. package/cli/node_modules/deep-is/test/cmp.js +23 -0
  48. package/cli/node_modules/deep-is/test/neg-vs-pos-0.js +15 -0
  49. package/cli/node_modules/escodegen/LICENSE.BSD +21 -0
  50. package/cli/node_modules/escodegen/README.md +84 -0
  51. package/cli/node_modules/escodegen/bin/escodegen.js +77 -0
  52. package/cli/node_modules/escodegen/bin/esgenerate.js +64 -0
  53. package/cli/node_modules/escodegen/escodegen.js +2647 -0
  54. package/cli/node_modules/escodegen/package.json +62 -0
  55. package/cli/node_modules/eslint-visitor-keys/CHANGELOG.md +25 -0
  56. package/cli/node_modules/eslint-visitor-keys/LICENSE +201 -0
  57. package/cli/node_modules/eslint-visitor-keys/README.md +98 -0
  58. package/cli/node_modules/eslint-visitor-keys/lib/index.js +81 -0
  59. package/cli/node_modules/eslint-visitor-keys/lib/visitor-keys.json +284 -0
  60. package/cli/node_modules/eslint-visitor-keys/package.json +40 -0
  61. package/cli/node_modules/espree/CHANGELOG.md +509 -0
  62. package/cli/node_modules/espree/LICENSE +25 -0
  63. package/cli/node_modules/espree/README.md +233 -0
  64. package/cli/node_modules/espree/espree.js +177 -0
  65. package/cli/node_modules/espree/lib/ast-node-types.js +96 -0
  66. package/cli/node_modules/espree/lib/espree.js +286 -0
  67. package/cli/node_modules/espree/lib/features.js +29 -0
  68. package/cli/node_modules/espree/lib/options.js +106 -0
  69. package/cli/node_modules/espree/lib/token-translator.js +263 -0
  70. package/cli/node_modules/espree/lib/visitor-keys.js +123 -0
  71. package/cli/node_modules/espree/package.json +64 -0
  72. package/cli/node_modules/esprima/ChangeLog +235 -0
  73. package/cli/node_modules/esprima/LICENSE.BSD +21 -0
  74. package/cli/node_modules/esprima/README.md +46 -0
  75. package/cli/node_modules/esprima/bin/esparse.js +139 -0
  76. package/cli/node_modules/esprima/bin/esvalidate.js +236 -0
  77. package/cli/node_modules/esprima/dist/esprima.js +6709 -0
  78. package/cli/node_modules/esprima/package.json +112 -0
  79. package/cli/node_modules/estraverse/.jshintrc +16 -0
  80. package/cli/node_modules/estraverse/LICENSE.BSD +19 -0
  81. package/cli/node_modules/estraverse/README.md +153 -0
  82. package/cli/node_modules/estraverse/estraverse.js +801 -0
  83. package/cli/node_modules/estraverse/gulpfile.js +70 -0
  84. package/cli/node_modules/estraverse/package.json +40 -0
  85. package/cli/node_modules/esutils/LICENSE.BSD +19 -0
  86. package/cli/node_modules/esutils/README.md +174 -0
  87. package/cli/node_modules/esutils/lib/ast.js +144 -0
  88. package/cli/node_modules/esutils/lib/code.js +135 -0
  89. package/cli/node_modules/esutils/lib/keyword.js +165 -0
  90. package/cli/node_modules/esutils/lib/utils.js +33 -0
  91. package/cli/node_modules/esutils/package.json +44 -0
  92. package/cli/node_modules/fast-levenshtein/LICENSE.md +25 -0
  93. package/cli/node_modules/fast-levenshtein/README.md +104 -0
  94. package/cli/node_modules/fast-levenshtein/levenshtein.js +136 -0
  95. package/cli/node_modules/fast-levenshtein/package.json +39 -0
  96. package/cli/node_modules/fs.realpath/LICENSE +43 -0
  97. package/cli/node_modules/fs.realpath/README.md +33 -0
  98. package/cli/node_modules/fs.realpath/index.js +66 -0
  99. package/cli/node_modules/fs.realpath/old.js +303 -0
  100. package/cli/node_modules/fs.realpath/package.json +26 -0
  101. package/cli/node_modules/glob/LICENSE +21 -0
  102. package/cli/node_modules/glob/README.md +375 -0
  103. package/cli/node_modules/glob/changelog.md +67 -0
  104. package/cli/node_modules/glob/common.js +240 -0
  105. package/cli/node_modules/glob/glob.js +790 -0
  106. package/cli/node_modules/glob/package.json +46 -0
  107. package/cli/node_modules/glob/sync.js +486 -0
  108. package/cli/node_modules/inflight/LICENSE +15 -0
  109. package/cli/node_modules/inflight/README.md +37 -0
  110. package/cli/node_modules/inflight/inflight.js +54 -0
  111. package/cli/node_modules/inflight/package.json +29 -0
  112. package/cli/node_modules/inherits/LICENSE +16 -0
  113. package/cli/node_modules/inherits/README.md +42 -0
  114. package/cli/node_modules/inherits/inherits.js +9 -0
  115. package/cli/node_modules/inherits/inherits_browser.js +27 -0
  116. package/cli/node_modules/inherits/package.json +29 -0
  117. package/cli/node_modules/levn/LICENSE +22 -0
  118. package/cli/node_modules/levn/README.md +196 -0
  119. package/cli/node_modules/levn/lib/cast.js +298 -0
  120. package/cli/node_modules/levn/lib/coerce.js +285 -0
  121. package/cli/node_modules/levn/lib/index.js +22 -0
  122. package/cli/node_modules/levn/lib/parse-string.js +113 -0
  123. package/cli/node_modules/levn/lib/parse.js +102 -0
  124. package/cli/node_modules/levn/package.json +47 -0
  125. package/cli/node_modules/minimatch/LICENSE +15 -0
  126. package/cli/node_modules/minimatch/README.md +209 -0
  127. package/cli/node_modules/minimatch/minimatch.js +923 -0
  128. package/cli/node_modules/minimatch/package.json +30 -0
  129. package/cli/node_modules/once/LICENSE +15 -0
  130. package/cli/node_modules/once/README.md +79 -0
  131. package/cli/node_modules/once/once.js +42 -0
  132. package/cli/node_modules/once/package.json +33 -0
  133. package/cli/node_modules/optionator/CHANGELOG.md +56 -0
  134. package/cli/node_modules/optionator/LICENSE +22 -0
  135. package/cli/node_modules/optionator/README.md +238 -0
  136. package/cli/node_modules/optionator/lib/help.js +260 -0
  137. package/cli/node_modules/optionator/lib/index.js +465 -0
  138. package/cli/node_modules/optionator/lib/util.js +54 -0
  139. package/cli/node_modules/optionator/package.json +44 -0
  140. package/cli/node_modules/path-is-absolute/index.js +20 -0
  141. package/cli/node_modules/path-is-absolute/license +21 -0
  142. package/cli/node_modules/path-is-absolute/package.json +43 -0
  143. package/cli/node_modules/path-is-absolute/readme.md +59 -0
  144. package/cli/node_modules/prelude-ls/CHANGELOG.md +99 -0
  145. package/cli/node_modules/prelude-ls/LICENSE +22 -0
  146. package/cli/node_modules/prelude-ls/README.md +15 -0
  147. package/cli/node_modules/prelude-ls/lib/Func.js +65 -0
  148. package/cli/node_modules/prelude-ls/lib/List.js +686 -0
  149. package/cli/node_modules/prelude-ls/lib/Num.js +130 -0
  150. package/cli/node_modules/prelude-ls/lib/Obj.js +154 -0
  151. package/cli/node_modules/prelude-ls/lib/Str.js +92 -0
  152. package/cli/node_modules/prelude-ls/lib/index.js +178 -0
  153. package/cli/node_modules/prelude-ls/package.json +52 -0
  154. package/cli/node_modules/rimraf/CHANGELOG.md +65 -0
  155. package/cli/node_modules/rimraf/LICENSE +15 -0
  156. package/cli/node_modules/rimraf/README.md +101 -0
  157. package/cli/node_modules/rimraf/bin.js +68 -0
  158. package/cli/node_modules/rimraf/package.json +32 -0
  159. package/cli/node_modules/rimraf/rimraf.js +360 -0
  160. package/cli/node_modules/source-map/CHANGELOG.md +301 -0
  161. package/cli/node_modules/source-map/LICENSE +28 -0
  162. package/cli/node_modules/source-map/README.md +742 -0
  163. package/cli/node_modules/source-map/dist/source-map.debug.js +3234 -0
  164. package/cli/node_modules/source-map/dist/source-map.js +3233 -0
  165. package/cli/node_modules/source-map/dist/source-map.min.js +2 -0
  166. package/cli/node_modules/source-map/dist/source-map.min.js.map +1 -0
  167. package/cli/node_modules/source-map/lib/array-set.js +121 -0
  168. package/cli/node_modules/source-map/lib/base64-vlq.js +140 -0
  169. package/cli/node_modules/source-map/lib/base64.js +67 -0
  170. package/cli/node_modules/source-map/lib/binary-search.js +111 -0
  171. package/cli/node_modules/source-map/lib/mapping-list.js +79 -0
  172. package/cli/node_modules/source-map/lib/quick-sort.js +114 -0
  173. package/cli/node_modules/source-map/lib/source-map-consumer.js +1145 -0
  174. package/cli/node_modules/source-map/lib/source-map-generator.js +425 -0
  175. package/cli/node_modules/source-map/lib/source-node.js +413 -0
  176. package/cli/node_modules/source-map/lib/util.js +488 -0
  177. package/cli/node_modules/source-map/package.json +73 -0
  178. package/cli/node_modules/source-map/source-map.d.ts +98 -0
  179. package/cli/node_modules/source-map/source-map.js +8 -0
  180. package/cli/node_modules/tmp/CHANGELOG.md +288 -0
  181. package/cli/node_modules/tmp/LICENSE +21 -0
  182. package/cli/node_modules/tmp/README.md +365 -0
  183. package/cli/node_modules/tmp/lib/tmp.js +780 -0
  184. package/cli/node_modules/tmp/package.json +58 -0
  185. package/cli/node_modules/type-check/LICENSE +22 -0
  186. package/cli/node_modules/type-check/README.md +210 -0
  187. package/cli/node_modules/type-check/lib/check.js +126 -0
  188. package/cli/node_modules/type-check/lib/index.js +16 -0
  189. package/cli/node_modules/type-check/lib/parse-type.js +196 -0
  190. package/cli/node_modules/type-check/package.json +40 -0
  191. package/cli/node_modules/word-wrap/LICENSE +21 -0
  192. package/cli/node_modules/word-wrap/README.md +182 -0
  193. package/cli/node_modules/word-wrap/index.d.ts +50 -0
  194. package/cli/node_modules/word-wrap/index.js +46 -0
  195. package/cli/node_modules/word-wrap/package.json +77 -0
  196. package/cli/node_modules/wrappy/LICENSE +15 -0
  197. package/cli/node_modules/wrappy/README.md +36 -0
  198. package/cli/node_modules/wrappy/package.json +29 -0
  199. package/cli/node_modules/wrappy/wrappy.js +33 -0
  200. package/cli/package.json +1 -0
  201. package/cli/pbjs.js +3 -1
  202. package/cli/targets/static.js +7 -1
  203. package/dist/light/protobuf.js +17 -5
  204. package/dist/light/protobuf.js.map +1 -1
  205. package/dist/light/protobuf.min.js +3 -3
  206. package/dist/light/protobuf.min.js.map +1 -1
  207. package/dist/minimal/protobuf.js +2 -2
  208. package/dist/minimal/protobuf.min.js +3 -3
  209. package/dist/minimal/protobuf.min.js.map +1 -1
  210. package/dist/protobuf.js +54 -9
  211. package/dist/protobuf.js.map +1 -1
  212. package/dist/protobuf.min.js +3 -3
  213. package/dist/protobuf.min.js.map +1 -1
  214. package/index.d.ts +11 -1
  215. package/package.json +2 -2
  216. package/src/field.js +3 -0
  217. package/src/namespace.js +2 -1
  218. package/src/parse.js +37 -4
  219. package/package-lock.json +0 -8922
  220. package/scripts/changelog.js +0 -150
@@ -0,0 +1,285 @@
1
+ // Generated by LiveScript 1.2.0
2
+ (function(){
3
+ var parsedTypeCheck, types, toString$ = {}.toString;
4
+ parsedTypeCheck = require('type-check').parsedTypeCheck;
5
+ types = {
6
+ '*': function(it){
7
+ switch (toString$.call(it).slice(8, -1)) {
8
+ case 'Array':
9
+ return coerceType(it, {
10
+ type: 'Array'
11
+ });
12
+ case 'Object':
13
+ return coerceType(it, {
14
+ type: 'Object'
15
+ });
16
+ default:
17
+ return {
18
+ type: 'Just',
19
+ value: coerceTypes(it, [
20
+ {
21
+ type: 'Undefined'
22
+ }, {
23
+ type: 'Null'
24
+ }, {
25
+ type: 'NaN'
26
+ }, {
27
+ type: 'Boolean'
28
+ }, {
29
+ type: 'Number'
30
+ }, {
31
+ type: 'Date'
32
+ }, {
33
+ type: 'RegExp'
34
+ }, {
35
+ type: 'Array'
36
+ }, {
37
+ type: 'Object'
38
+ }, {
39
+ type: 'String'
40
+ }
41
+ ], {
42
+ explicit: true
43
+ })
44
+ };
45
+ }
46
+ },
47
+ Undefined: function(it){
48
+ if (it === 'undefined' || it === void 8) {
49
+ return {
50
+ type: 'Just',
51
+ value: void 8
52
+ };
53
+ } else {
54
+ return {
55
+ type: 'Nothing'
56
+ };
57
+ }
58
+ },
59
+ Null: function(it){
60
+ if (it === 'null') {
61
+ return {
62
+ type: 'Just',
63
+ value: null
64
+ };
65
+ } else {
66
+ return {
67
+ type: 'Nothing'
68
+ };
69
+ }
70
+ },
71
+ NaN: function(it){
72
+ if (it === 'NaN') {
73
+ return {
74
+ type: 'Just',
75
+ value: NaN
76
+ };
77
+ } else {
78
+ return {
79
+ type: 'Nothing'
80
+ };
81
+ }
82
+ },
83
+ Boolean: function(it){
84
+ if (it === 'true') {
85
+ return {
86
+ type: 'Just',
87
+ value: true
88
+ };
89
+ } else if (it === 'false') {
90
+ return {
91
+ type: 'Just',
92
+ value: false
93
+ };
94
+ } else {
95
+ return {
96
+ type: 'Nothing'
97
+ };
98
+ }
99
+ },
100
+ Number: function(it){
101
+ return {
102
+ type: 'Just',
103
+ value: +it
104
+ };
105
+ },
106
+ Int: function(it){
107
+ return {
108
+ type: 'Just',
109
+ value: parseInt(it)
110
+ };
111
+ },
112
+ Float: function(it){
113
+ return {
114
+ type: 'Just',
115
+ value: parseFloat(it)
116
+ };
117
+ },
118
+ Date: function(value, options){
119
+ var that;
120
+ if (that = /^\#(.*)\#$/.exec(value)) {
121
+ return {
122
+ type: 'Just',
123
+ value: new Date(+that[1] || that[1])
124
+ };
125
+ } else if (options.explicit) {
126
+ return {
127
+ type: 'Nothing'
128
+ };
129
+ } else {
130
+ return {
131
+ type: 'Just',
132
+ value: new Date(+value || value)
133
+ };
134
+ }
135
+ },
136
+ RegExp: function(value, options){
137
+ var that;
138
+ if (that = /^\/(.*)\/([gimy]*)$/.exec(value)) {
139
+ return {
140
+ type: 'Just',
141
+ value: new RegExp(that[1], that[2])
142
+ };
143
+ } else if (options.explicit) {
144
+ return {
145
+ type: 'Nothing'
146
+ };
147
+ } else {
148
+ return {
149
+ type: 'Just',
150
+ value: new RegExp(value)
151
+ };
152
+ }
153
+ },
154
+ Array: function(it){
155
+ return coerceArray(it, {
156
+ of: [{
157
+ type: '*'
158
+ }]
159
+ });
160
+ },
161
+ Object: function(it){
162
+ return coerceFields(it, {
163
+ of: {}
164
+ });
165
+ },
166
+ String: function(it){
167
+ var that;
168
+ if (toString$.call(it).slice(8, -1) !== 'String') {
169
+ return {
170
+ type: 'Nothing'
171
+ };
172
+ }
173
+ if (that = it.match(/^'(.*)'$/)) {
174
+ return {
175
+ type: 'Just',
176
+ value: that[1]
177
+ };
178
+ } else if (that = it.match(/^"(.*)"$/)) {
179
+ return {
180
+ type: 'Just',
181
+ value: that[1]
182
+ };
183
+ } else {
184
+ return {
185
+ type: 'Just',
186
+ value: it
187
+ };
188
+ }
189
+ }
190
+ };
191
+ function coerceArray(node, type){
192
+ var typeOf, element;
193
+ if (toString$.call(node).slice(8, -1) !== 'Array') {
194
+ return {
195
+ type: 'Nothing'
196
+ };
197
+ }
198
+ typeOf = type.of;
199
+ return {
200
+ type: 'Just',
201
+ value: (function(){
202
+ var i$, ref$, len$, results$ = [];
203
+ for (i$ = 0, len$ = (ref$ = node).length; i$ < len$; ++i$) {
204
+ element = ref$[i$];
205
+ results$.push(coerceTypes(element, typeOf));
206
+ }
207
+ return results$;
208
+ }())
209
+ };
210
+ }
211
+ function coerceTuple(node, type){
212
+ var result, i$, ref$, len$, i, types, that;
213
+ if (toString$.call(node).slice(8, -1) !== 'Array') {
214
+ return {
215
+ type: 'Nothing'
216
+ };
217
+ }
218
+ result = [];
219
+ for (i$ = 0, len$ = (ref$ = type.of).length; i$ < len$; ++i$) {
220
+ i = i$;
221
+ types = ref$[i$];
222
+ if (that = coerceTypes(node[i], types)) {
223
+ result.push(that);
224
+ }
225
+ }
226
+ return {
227
+ type: 'Just',
228
+ value: result
229
+ };
230
+ }
231
+ function coerceFields(node, type){
232
+ var typeOf, key, value;
233
+ if (toString$.call(node).slice(8, -1) !== 'Object') {
234
+ return {
235
+ type: 'Nothing'
236
+ };
237
+ }
238
+ typeOf = type.of;
239
+ return {
240
+ type: 'Just',
241
+ value: (function(){
242
+ var ref$, results$ = {};
243
+ for (key in ref$ = node) {
244
+ value = ref$[key];
245
+ results$[key] = coerceTypes(value, typeOf[key] || [{
246
+ type: '*'
247
+ }]);
248
+ }
249
+ return results$;
250
+ }())
251
+ };
252
+ }
253
+ function coerceType(node, typeObj, options){
254
+ var type, structure, coerceFunc;
255
+ type = typeObj.type, structure = typeObj.structure;
256
+ if (type) {
257
+ coerceFunc = types[type];
258
+ return coerceFunc(node, options);
259
+ } else {
260
+ switch (structure) {
261
+ case 'array':
262
+ return coerceArray(node, typeObj);
263
+ case 'tuple':
264
+ return coerceTuple(node, typeObj);
265
+ case 'fields':
266
+ return coerceFields(node, typeObj);
267
+ }
268
+ }
269
+ }
270
+ function coerceTypes(node, types, options){
271
+ var i$, len$, type, ref$, valueType, value;
272
+ for (i$ = 0, len$ = types.length; i$ < len$; ++i$) {
273
+ type = types[i$];
274
+ ref$ = coerceType(node, type, options), valueType = ref$.type, value = ref$.value;
275
+ if (valueType === 'Nothing') {
276
+ continue;
277
+ }
278
+ if (parsedTypeCheck([type], value)) {
279
+ return value;
280
+ }
281
+ }
282
+ throw new Error("Value " + JSON.stringify(node) + " does not type check against " + JSON.stringify(types) + ".");
283
+ }
284
+ module.exports = coerceTypes;
285
+ }).call(this);
@@ -0,0 +1,22 @@
1
+ // Generated by LiveScript 1.4.0
2
+ (function(){
3
+ var parseString, cast, parseType, VERSION, parsedTypeParse, parse;
4
+ parseString = require('./parse-string');
5
+ cast = require('./cast');
6
+ parseType = require('type-check').parseType;
7
+ VERSION = '0.3.0';
8
+ parsedTypeParse = function(parsedType, string, options){
9
+ options == null && (options = {});
10
+ options.explicit == null && (options.explicit = false);
11
+ options.customTypes == null && (options.customTypes = {});
12
+ return cast(parseString(parsedType, string, options), parsedType, options);
13
+ };
14
+ parse = function(type, string, options){
15
+ return parsedTypeParse(parseType(type), string, options);
16
+ };
17
+ module.exports = {
18
+ VERSION: VERSION,
19
+ parse: parse,
20
+ parsedTypeParse: parsedTypeParse
21
+ };
22
+ }).call(this);
@@ -0,0 +1,113 @@
1
+ // Generated by LiveScript 1.4.0
2
+ (function(){
3
+ var reject, special, tokenRegex;
4
+ reject = require('prelude-ls').reject;
5
+ function consumeOp(tokens, op){
6
+ if (tokens[0] === op) {
7
+ return tokens.shift();
8
+ } else {
9
+ throw new Error("Expected '" + op + "', but got '" + tokens[0] + "' instead in " + JSON.stringify(tokens) + ".");
10
+ }
11
+ }
12
+ function maybeConsumeOp(tokens, op){
13
+ if (tokens[0] === op) {
14
+ return tokens.shift();
15
+ }
16
+ }
17
+ function consumeList(tokens, arg$, hasDelimiters){
18
+ var open, close, result, untilTest;
19
+ open = arg$[0], close = arg$[1];
20
+ if (hasDelimiters) {
21
+ consumeOp(tokens, open);
22
+ }
23
+ result = [];
24
+ untilTest = "," + (hasDelimiters ? close : '');
25
+ while (tokens.length && (hasDelimiters && tokens[0] !== close)) {
26
+ result.push(consumeElement(tokens, untilTest));
27
+ maybeConsumeOp(tokens, ',');
28
+ }
29
+ if (hasDelimiters) {
30
+ consumeOp(tokens, close);
31
+ }
32
+ return result;
33
+ }
34
+ function consumeArray(tokens, hasDelimiters){
35
+ return consumeList(tokens, ['[', ']'], hasDelimiters);
36
+ }
37
+ function consumeTuple(tokens, hasDelimiters){
38
+ return consumeList(tokens, ['(', ')'], hasDelimiters);
39
+ }
40
+ function consumeFields(tokens, hasDelimiters){
41
+ var result, untilTest, key;
42
+ if (hasDelimiters) {
43
+ consumeOp(tokens, '{');
44
+ }
45
+ result = {};
46
+ untilTest = "," + (hasDelimiters ? '}' : '');
47
+ while (tokens.length && (!hasDelimiters || tokens[0] !== '}')) {
48
+ key = consumeValue(tokens, ':');
49
+ consumeOp(tokens, ':');
50
+ result[key] = consumeElement(tokens, untilTest);
51
+ maybeConsumeOp(tokens, ',');
52
+ }
53
+ if (hasDelimiters) {
54
+ consumeOp(tokens, '}');
55
+ }
56
+ return result;
57
+ }
58
+ function consumeValue(tokens, untilTest){
59
+ var out;
60
+ untilTest == null && (untilTest = '');
61
+ out = '';
62
+ while (tokens.length && -1 === untilTest.indexOf(tokens[0])) {
63
+ out += tokens.shift();
64
+ }
65
+ return out;
66
+ }
67
+ function consumeElement(tokens, untilTest){
68
+ switch (tokens[0]) {
69
+ case '[':
70
+ return consumeArray(tokens, true);
71
+ case '(':
72
+ return consumeTuple(tokens, true);
73
+ case '{':
74
+ return consumeFields(tokens, true);
75
+ default:
76
+ return consumeValue(tokens, untilTest);
77
+ }
78
+ }
79
+ function consumeTopLevel(tokens, types, options){
80
+ var ref$, type, structure, origTokens, result, finalResult, x$, y$;
81
+ ref$ = types[0], type = ref$.type, structure = ref$.structure;
82
+ origTokens = tokens.concat();
83
+ if (!options.explicit && types.length === 1 && ((!type && structure) || (type === 'Array' || type === 'Object'))) {
84
+ result = structure === 'array' || type === 'Array'
85
+ ? consumeArray(tokens, tokens[0] === '[')
86
+ : structure === 'tuple'
87
+ ? consumeTuple(tokens, tokens[0] === '(')
88
+ : consumeFields(tokens, tokens[0] === '{');
89
+ finalResult = tokens.length ? consumeElement(structure === 'array' || type === 'Array'
90
+ ? (x$ = origTokens, x$.unshift('['), x$.push(']'), x$)
91
+ : (y$ = origTokens, y$.unshift('('), y$.push(')'), y$)) : result;
92
+ } else {
93
+ finalResult = consumeElement(tokens);
94
+ }
95
+ return finalResult;
96
+ }
97
+ special = /\[\]\(\)}{:,/.source;
98
+ tokenRegex = RegExp('("(?:\\\\"|[^"])*")|(\'(?:\\\\\'|[^\'])*\')|(/(?:\\\\/|[^/])*/[a-zA-Z]*)|(#.*#)|([' + special + '])|([^\\s' + special + '](?:\\s*[^\\s' + special + ']+)*)|\\s*');
99
+ module.exports = function(types, string, options){
100
+ var tokens, node;
101
+ options == null && (options = {});
102
+ if (!options.explicit && types.length === 1 && types[0].type === 'String') {
103
+ return "'" + string.replace(/\\'/g, "\\\\'") + "'";
104
+ }
105
+ tokens = reject(not$, string.split(tokenRegex));
106
+ node = consumeTopLevel(tokens, types, options);
107
+ if (!node) {
108
+ throw new Error("Error parsing '" + string + "'.");
109
+ }
110
+ return node;
111
+ };
112
+ function not$(x){ return !x; }
113
+ }).call(this);
@@ -0,0 +1,102 @@
1
+ // Generated by LiveScript 1.2.0
2
+ (function(){
3
+ var reject, special, tokenRegex;
4
+ reject = require('prelude-ls').reject;
5
+ function consumeOp(tokens, op){
6
+ if (tokens[0] === op) {
7
+ return tokens.shift();
8
+ } else {
9
+ throw new Error("Expected '" + op + "', but got '" + tokens[0] + "' instead in " + JSON.stringify(tokens) + ".");
10
+ }
11
+ }
12
+ function maybeConsumeOp(tokens, op){
13
+ if (tokens[0] === op) {
14
+ return tokens.shift();
15
+ }
16
+ }
17
+ function consumeList(tokens, delimiters, hasDelimiters){
18
+ var result;
19
+ if (hasDelimiters) {
20
+ consumeOp(tokens, delimiters[0]);
21
+ }
22
+ result = [];
23
+ while (tokens.length && tokens[0] !== delimiters[1]) {
24
+ result.push(consumeElement(tokens));
25
+ maybeConsumeOp(tokens, ',');
26
+ }
27
+ if (hasDelimiters) {
28
+ consumeOp(tokens, delimiters[1]);
29
+ }
30
+ return result;
31
+ }
32
+ function consumeArray(tokens, hasDelimiters){
33
+ return consumeList(tokens, ['[', ']'], hasDelimiters);
34
+ }
35
+ function consumeTuple(tokens, hasDelimiters){
36
+ return consumeList(tokens, ['(', ')'], hasDelimiters);
37
+ }
38
+ function consumeFields(tokens, hasDelimiters){
39
+ var result, key;
40
+ if (hasDelimiters) {
41
+ consumeOp(tokens, '{');
42
+ }
43
+ result = {};
44
+ while (tokens.length && (!hasDelimiters || tokens[0] !== '}')) {
45
+ key = tokens.shift();
46
+ consumeOp(tokens, ':');
47
+ result[key] = consumeElement(tokens);
48
+ maybeConsumeOp(tokens, ',');
49
+ }
50
+ if (hasDelimiters) {
51
+ consumeOp(tokens, '}');
52
+ }
53
+ return result;
54
+ }
55
+ function consumeElement(tokens){
56
+ switch (tokens[0]) {
57
+ case '[':
58
+ return consumeArray(tokens, true);
59
+ case '(':
60
+ return consumeTuple(tokens, true);
61
+ case '{':
62
+ return consumeFields(tokens, true);
63
+ default:
64
+ return tokens.shift();
65
+ }
66
+ }
67
+ function consumeTopLevel(tokens, types){
68
+ var ref$, type, structure, origTokens, result, finalResult, x$, y$;
69
+ ref$ = types[0], type = ref$.type, structure = ref$.structure;
70
+ origTokens = tokens.concat();
71
+ if (types.length === 1 && (structure || (type === 'Array' || type === 'Object'))) {
72
+ result = structure === 'array' || type === 'Array'
73
+ ? consumeArray(tokens, tokens[0] === '[')
74
+ : structure === 'tuple'
75
+ ? consumeTuple(tokens, tokens[0] === '(')
76
+ : consumeFields(tokens, tokens[0] === '{');
77
+ finalResult = tokens.length ? consumeElement(structure === 'array' || type === 'Array'
78
+ ? (x$ = origTokens, x$.unshift('['), x$.push(']'), x$)
79
+ : (y$ = origTokens, y$.unshift('('), y$.push(')'), y$)) : result;
80
+ } else {
81
+ finalResult = consumeElement(tokens);
82
+ }
83
+ if (tokens.length && origTokens.length) {
84
+ throw new Error("Unable to parse " + JSON.stringify(origTokens) + " of type " + JSON.stringify(types) + ".");
85
+ } else {
86
+ return finalResult;
87
+ }
88
+ }
89
+ special = /\[\]\(\)}{:,/.source;
90
+ tokenRegex = RegExp('("(?:[^"]|\\\\")*")|(\'(?:[^\']|\\\\\')*\')|(#.*#)|(/(?:\\\\/|[^/])*/[gimy]*)|([' + special + '])|([^\\s' + special + ']+)|\\s*');
91
+ module.exports = function(string, types){
92
+ var tokens, node;
93
+ tokens = reject(function(it){
94
+ return !it || /^\s+$/.test(it);
95
+ }, string.split(tokenRegex));
96
+ node = consumeTopLevel(tokens, types);
97
+ if (!node) {
98
+ throw new Error("Error parsing '" + string + "'.");
99
+ }
100
+ return node;
101
+ };
102
+ }).call(this);
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "levn",
3
+ "version": "0.3.0",
4
+ "author": "George Zahariev <z@georgezahariev.com>",
5
+ "description": "Light ECMAScript (JavaScript) Value Notation - human written, concise, typed, flexible",
6
+ "homepage": "https://github.com/gkz/levn",
7
+ "keywords": [
8
+ "levn",
9
+ "light",
10
+ "ecmascript",
11
+ "value",
12
+ "notation",
13
+ "json",
14
+ "typed",
15
+ "human",
16
+ "concise",
17
+ "typed",
18
+ "flexible"
19
+ ],
20
+ "files": [
21
+ "lib",
22
+ "README.md",
23
+ "LICENSE"
24
+ ],
25
+ "main": "./lib/",
26
+ "bugs": "https://github.com/gkz/levn/issues",
27
+ "license": "MIT",
28
+ "engines": {
29
+ "node": ">= 0.8.0"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git://github.com/gkz/levn.git"
34
+ },
35
+ "scripts": {
36
+ "test": "make test"
37
+ },
38
+ "dependencies": {
39
+ "prelude-ls": "~1.1.2",
40
+ "type-check": "~0.3.2"
41
+ },
42
+ "devDependencies": {
43
+ "livescript": "~1.4.0",
44
+ "mocha": "~2.3.4",
45
+ "istanbul": "~0.4.1"
46
+ }
47
+ }
@@ -0,0 +1,15 @@
1
+ The ISC License
2
+
3
+ Copyright (c) Isaac Z. Schlueter and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
+ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.