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.
- package/CHANGELOG.md +28 -0
- package/bin/pbjs +0 -0
- package/bin/pbts +0 -0
- package/cli/README.md +163 -0
- package/cli/node_modules/.package-lock.json +256 -0
- package/cli/node_modules/acorn/CHANGELOG.md +620 -0
- package/cli/node_modules/acorn/LICENSE +21 -0
- package/cli/node_modules/acorn/README.md +269 -0
- package/cli/node_modules/acorn/bin/acorn +4 -0
- package/cli/node_modules/acorn/dist/acorn.d.ts +209 -0
- package/cli/node_modules/acorn/dist/acorn.js +5186 -0
- package/cli/node_modules/acorn/dist/acorn.js.map +1 -0
- package/cli/node_modules/acorn/dist/acorn.mjs +5155 -0
- package/cli/node_modules/acorn/dist/acorn.mjs.d.ts +2 -0
- package/cli/node_modules/acorn/dist/acorn.mjs.map +1 -0
- package/cli/node_modules/acorn/dist/bin.js +64 -0
- package/cli/node_modules/acorn/package.json +35 -0
- package/cli/node_modules/acorn-jsx/LICENSE +19 -0
- package/cli/node_modules/acorn-jsx/README.md +40 -0
- package/cli/node_modules/acorn-jsx/index.js +488 -0
- package/cli/node_modules/acorn-jsx/package.json +27 -0
- package/cli/node_modules/acorn-jsx/xhtml.js +255 -0
- package/cli/node_modules/balanced-match/.npmignore +5 -0
- package/cli/node_modules/balanced-match/LICENSE.md +21 -0
- package/cli/node_modules/balanced-match/README.md +91 -0
- package/cli/node_modules/balanced-match/index.js +59 -0
- package/cli/node_modules/balanced-match/package.json +49 -0
- package/cli/node_modules/brace-expansion/LICENSE +21 -0
- package/cli/node_modules/brace-expansion/README.md +129 -0
- package/cli/node_modules/brace-expansion/index.js +201 -0
- package/cli/node_modules/brace-expansion/package.json +47 -0
- package/cli/node_modules/concat-map/.travis.yml +4 -0
- package/cli/node_modules/concat-map/LICENSE +18 -0
- package/cli/node_modules/concat-map/README.markdown +62 -0
- package/cli/node_modules/concat-map/example/map.js +6 -0
- package/cli/node_modules/concat-map/index.js +13 -0
- package/cli/node_modules/concat-map/package.json +43 -0
- package/cli/node_modules/concat-map/test/map.js +39 -0
- package/cli/node_modules/deep-is/.npmignore +1 -0
- package/cli/node_modules/deep-is/.travis.yml +6 -0
- package/cli/node_modules/deep-is/LICENSE +22 -0
- package/cli/node_modules/deep-is/README.markdown +70 -0
- package/cli/node_modules/deep-is/example/cmp.js +11 -0
- package/cli/node_modules/deep-is/index.js +102 -0
- package/cli/node_modules/deep-is/package.json +61 -0
- package/cli/node_modules/deep-is/test/NaN.js +16 -0
- package/cli/node_modules/deep-is/test/cmp.js +23 -0
- package/cli/node_modules/deep-is/test/neg-vs-pos-0.js +15 -0
- package/cli/node_modules/escodegen/LICENSE.BSD +21 -0
- package/cli/node_modules/escodegen/README.md +84 -0
- package/cli/node_modules/escodegen/bin/escodegen.js +77 -0
- package/cli/node_modules/escodegen/bin/esgenerate.js +64 -0
- package/cli/node_modules/escodegen/escodegen.js +2647 -0
- package/cli/node_modules/escodegen/package.json +62 -0
- package/cli/node_modules/eslint-visitor-keys/CHANGELOG.md +25 -0
- package/cli/node_modules/eslint-visitor-keys/LICENSE +201 -0
- package/cli/node_modules/eslint-visitor-keys/README.md +98 -0
- package/cli/node_modules/eslint-visitor-keys/lib/index.js +81 -0
- package/cli/node_modules/eslint-visitor-keys/lib/visitor-keys.json +284 -0
- package/cli/node_modules/eslint-visitor-keys/package.json +40 -0
- package/cli/node_modules/espree/CHANGELOG.md +509 -0
- package/cli/node_modules/espree/LICENSE +25 -0
- package/cli/node_modules/espree/README.md +233 -0
- package/cli/node_modules/espree/espree.js +177 -0
- package/cli/node_modules/espree/lib/ast-node-types.js +96 -0
- package/cli/node_modules/espree/lib/espree.js +286 -0
- package/cli/node_modules/espree/lib/features.js +29 -0
- package/cli/node_modules/espree/lib/options.js +106 -0
- package/cli/node_modules/espree/lib/token-translator.js +263 -0
- package/cli/node_modules/espree/lib/visitor-keys.js +123 -0
- package/cli/node_modules/espree/package.json +64 -0
- package/cli/node_modules/esprima/ChangeLog +235 -0
- package/cli/node_modules/esprima/LICENSE.BSD +21 -0
- package/cli/node_modules/esprima/README.md +46 -0
- package/cli/node_modules/esprima/bin/esparse.js +139 -0
- package/cli/node_modules/esprima/bin/esvalidate.js +236 -0
- package/cli/node_modules/esprima/dist/esprima.js +6709 -0
- package/cli/node_modules/esprima/package.json +112 -0
- package/cli/node_modules/estraverse/.jshintrc +16 -0
- package/cli/node_modules/estraverse/LICENSE.BSD +19 -0
- package/cli/node_modules/estraverse/README.md +153 -0
- package/cli/node_modules/estraverse/estraverse.js +801 -0
- package/cli/node_modules/estraverse/gulpfile.js +70 -0
- package/cli/node_modules/estraverse/package.json +40 -0
- package/cli/node_modules/esutils/LICENSE.BSD +19 -0
- package/cli/node_modules/esutils/README.md +174 -0
- package/cli/node_modules/esutils/lib/ast.js +144 -0
- package/cli/node_modules/esutils/lib/code.js +135 -0
- package/cli/node_modules/esutils/lib/keyword.js +165 -0
- package/cli/node_modules/esutils/lib/utils.js +33 -0
- package/cli/node_modules/esutils/package.json +44 -0
- package/cli/node_modules/fast-levenshtein/LICENSE.md +25 -0
- package/cli/node_modules/fast-levenshtein/README.md +104 -0
- package/cli/node_modules/fast-levenshtein/levenshtein.js +136 -0
- package/cli/node_modules/fast-levenshtein/package.json +39 -0
- package/cli/node_modules/fs.realpath/LICENSE +43 -0
- package/cli/node_modules/fs.realpath/README.md +33 -0
- package/cli/node_modules/fs.realpath/index.js +66 -0
- package/cli/node_modules/fs.realpath/old.js +303 -0
- package/cli/node_modules/fs.realpath/package.json +26 -0
- package/cli/node_modules/glob/LICENSE +21 -0
- package/cli/node_modules/glob/README.md +375 -0
- package/cli/node_modules/glob/changelog.md +67 -0
- package/cli/node_modules/glob/common.js +240 -0
- package/cli/node_modules/glob/glob.js +790 -0
- package/cli/node_modules/glob/package.json +46 -0
- package/cli/node_modules/glob/sync.js +486 -0
- package/cli/node_modules/inflight/LICENSE +15 -0
- package/cli/node_modules/inflight/README.md +37 -0
- package/cli/node_modules/inflight/inflight.js +54 -0
- package/cli/node_modules/inflight/package.json +29 -0
- package/cli/node_modules/inherits/LICENSE +16 -0
- package/cli/node_modules/inherits/README.md +42 -0
- package/cli/node_modules/inherits/inherits.js +9 -0
- package/cli/node_modules/inherits/inherits_browser.js +27 -0
- package/cli/node_modules/inherits/package.json +29 -0
- package/cli/node_modules/levn/LICENSE +22 -0
- package/cli/node_modules/levn/README.md +196 -0
- package/cli/node_modules/levn/lib/cast.js +298 -0
- package/cli/node_modules/levn/lib/coerce.js +285 -0
- package/cli/node_modules/levn/lib/index.js +22 -0
- package/cli/node_modules/levn/lib/parse-string.js +113 -0
- package/cli/node_modules/levn/lib/parse.js +102 -0
- package/cli/node_modules/levn/package.json +47 -0
- package/cli/node_modules/minimatch/LICENSE +15 -0
- package/cli/node_modules/minimatch/README.md +209 -0
- package/cli/node_modules/minimatch/minimatch.js +923 -0
- package/cli/node_modules/minimatch/package.json +30 -0
- package/cli/node_modules/once/LICENSE +15 -0
- package/cli/node_modules/once/README.md +79 -0
- package/cli/node_modules/once/once.js +42 -0
- package/cli/node_modules/once/package.json +33 -0
- package/cli/node_modules/optionator/CHANGELOG.md +56 -0
- package/cli/node_modules/optionator/LICENSE +22 -0
- package/cli/node_modules/optionator/README.md +238 -0
- package/cli/node_modules/optionator/lib/help.js +260 -0
- package/cli/node_modules/optionator/lib/index.js +465 -0
- package/cli/node_modules/optionator/lib/util.js +54 -0
- package/cli/node_modules/optionator/package.json +44 -0
- package/cli/node_modules/path-is-absolute/index.js +20 -0
- package/cli/node_modules/path-is-absolute/license +21 -0
- package/cli/node_modules/path-is-absolute/package.json +43 -0
- package/cli/node_modules/path-is-absolute/readme.md +59 -0
- package/cli/node_modules/prelude-ls/CHANGELOG.md +99 -0
- package/cli/node_modules/prelude-ls/LICENSE +22 -0
- package/cli/node_modules/prelude-ls/README.md +15 -0
- package/cli/node_modules/prelude-ls/lib/Func.js +65 -0
- package/cli/node_modules/prelude-ls/lib/List.js +686 -0
- package/cli/node_modules/prelude-ls/lib/Num.js +130 -0
- package/cli/node_modules/prelude-ls/lib/Obj.js +154 -0
- package/cli/node_modules/prelude-ls/lib/Str.js +92 -0
- package/cli/node_modules/prelude-ls/lib/index.js +178 -0
- package/cli/node_modules/prelude-ls/package.json +52 -0
- package/cli/node_modules/rimraf/CHANGELOG.md +65 -0
- package/cli/node_modules/rimraf/LICENSE +15 -0
- package/cli/node_modules/rimraf/README.md +101 -0
- package/cli/node_modules/rimraf/bin.js +68 -0
- package/cli/node_modules/rimraf/package.json +32 -0
- package/cli/node_modules/rimraf/rimraf.js +360 -0
- package/cli/node_modules/source-map/CHANGELOG.md +301 -0
- package/cli/node_modules/source-map/LICENSE +28 -0
- package/cli/node_modules/source-map/README.md +742 -0
- package/cli/node_modules/source-map/dist/source-map.debug.js +3234 -0
- package/cli/node_modules/source-map/dist/source-map.js +3233 -0
- package/cli/node_modules/source-map/dist/source-map.min.js +2 -0
- package/cli/node_modules/source-map/dist/source-map.min.js.map +1 -0
- package/cli/node_modules/source-map/lib/array-set.js +121 -0
- package/cli/node_modules/source-map/lib/base64-vlq.js +140 -0
- package/cli/node_modules/source-map/lib/base64.js +67 -0
- package/cli/node_modules/source-map/lib/binary-search.js +111 -0
- package/cli/node_modules/source-map/lib/mapping-list.js +79 -0
- package/cli/node_modules/source-map/lib/quick-sort.js +114 -0
- package/cli/node_modules/source-map/lib/source-map-consumer.js +1145 -0
- package/cli/node_modules/source-map/lib/source-map-generator.js +425 -0
- package/cli/node_modules/source-map/lib/source-node.js +413 -0
- package/cli/node_modules/source-map/lib/util.js +488 -0
- package/cli/node_modules/source-map/package.json +73 -0
- package/cli/node_modules/source-map/source-map.d.ts +98 -0
- package/cli/node_modules/source-map/source-map.js +8 -0
- package/cli/node_modules/tmp/CHANGELOG.md +288 -0
- package/cli/node_modules/tmp/LICENSE +21 -0
- package/cli/node_modules/tmp/README.md +365 -0
- package/cli/node_modules/tmp/lib/tmp.js +780 -0
- package/cli/node_modules/tmp/package.json +58 -0
- package/cli/node_modules/type-check/LICENSE +22 -0
- package/cli/node_modules/type-check/README.md +210 -0
- package/cli/node_modules/type-check/lib/check.js +126 -0
- package/cli/node_modules/type-check/lib/index.js +16 -0
- package/cli/node_modules/type-check/lib/parse-type.js +196 -0
- package/cli/node_modules/type-check/package.json +40 -0
- package/cli/node_modules/word-wrap/LICENSE +21 -0
- package/cli/node_modules/word-wrap/README.md +182 -0
- package/cli/node_modules/word-wrap/index.d.ts +50 -0
- package/cli/node_modules/word-wrap/index.js +46 -0
- package/cli/node_modules/word-wrap/package.json +77 -0
- package/cli/node_modules/wrappy/LICENSE +15 -0
- package/cli/node_modules/wrappy/README.md +36 -0
- package/cli/node_modules/wrappy/package.json +29 -0
- package/cli/node_modules/wrappy/wrappy.js +33 -0
- package/cli/package.json +1 -0
- package/cli/pbjs.js +3 -1
- package/cli/targets/static.js +7 -1
- package/dist/light/protobuf.js +17 -5
- package/dist/light/protobuf.js.map +1 -1
- package/dist/light/protobuf.min.js +3 -3
- package/dist/light/protobuf.min.js.map +1 -1
- package/dist/minimal/protobuf.js +2 -2
- package/dist/minimal/protobuf.min.js +3 -3
- package/dist/minimal/protobuf.min.js.map +1 -1
- package/dist/protobuf.js +54 -9
- package/dist/protobuf.js.map +1 -1
- package/dist/protobuf.min.js +3 -3
- package/dist/protobuf.min.js.map +1 -1
- package/index.d.ts +11 -1
- package/package.json +2 -2
- package/src/field.js +3 -0
- package/src/namespace.js +2 -1
- package/src/parse.js +37 -4
- package/package-lock.json +0 -8922
- 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.
|