@based/schema 0.0.4 → 0.0.6

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 (72) hide show
  1. package/dist/parse.d.ts +2 -0
  2. package/dist/parse.js +9 -0
  3. package/dist/parse.js.map +1 -0
  4. package/dist/set/collections.d.ts +5 -0
  5. package/dist/set/collections.js +139 -0
  6. package/dist/set/collections.js.map +1 -0
  7. package/dist/set/error.d.ts +10 -0
  8. package/dist/set/error.js +19 -0
  9. package/dist/set/error.js.map +1 -0
  10. package/dist/set/index.js +8 -14
  11. package/dist/set/index.js.map +1 -1
  12. package/dist/set/number.d.ts +4 -0
  13. package/dist/set/number.js +57 -0
  14. package/dist/set/number.js.map +1 -0
  15. package/dist/set/parsers.d.ts +2 -5
  16. package/dist/set/parsers.js +35 -308
  17. package/dist/set/parsers.js.map +1 -1
  18. package/dist/set/references.d.ts +3 -0
  19. package/dist/set/references.js +81 -0
  20. package/dist/set/references.js.map +1 -0
  21. package/dist/set/rest.d.ts +5 -0
  22. package/dist/set/rest.js +53 -0
  23. package/dist/set/rest.js.map +1 -0
  24. package/dist/set/string.d.ts +3 -0
  25. package/dist/set/string.js +136 -0
  26. package/dist/set/string.js.map +1 -0
  27. package/dist/set/types.d.ts +5 -0
  28. package/dist/{deepPartial.js → set/types.js} +1 -1
  29. package/dist/set/types.js.map +1 -0
  30. package/dist/types.d.ts +36 -17
  31. package/package.json +3 -1
  32. package/src/set/collections.ts +246 -0
  33. package/src/set/error.ts +17 -0
  34. package/src/set/index.ts +8 -18
  35. package/src/set/number.ts +78 -0
  36. package/src/set/parsers.ts +17 -478
  37. package/src/set/references.ts +107 -0
  38. package/src/set/rest.ts +76 -0
  39. package/src/set/string.ts +159 -0
  40. package/src/set/types.ts +19 -0
  41. package/src/types.ts +105 -20
  42. package/test/setWalker.ts +16 -7
  43. package/dist/deepPartial.d.ts +0 -0
  44. package/dist/deepPartial.js.map +0 -1
  45. package/dist/set/enum.d.ts +0 -2
  46. package/dist/set/enum.js +0 -15
  47. package/dist/set/enum.js.map +0 -1
  48. package/dist/set/fieldValidator.d.ts +0 -6
  49. package/dist/set/fieldValidator.js +0 -144
  50. package/dist/set/fieldValidator.js.map +0 -1
  51. package/dist/set/handleError.d.ts +0 -1
  52. package/dist/set/handleError.js +0 -9
  53. package/dist/set/handleError.js.map +0 -1
  54. package/dist/setWalker.d.ts +0 -11
  55. package/dist/setWalker.js +0 -189
  56. package/dist/setWalker.js.map +0 -1
  57. package/dist/transformers.d.ts +0 -3
  58. package/dist/transformers.js +0 -18
  59. package/dist/transformers.js.map +0 -1
  60. package/dist/typeWalker.d.ts +0 -3
  61. package/dist/typeWalker.js +0 -18
  62. package/dist/typeWalker.js.map +0 -1
  63. package/dist/validate.d.ts +0 -4
  64. package/dist/validate.js +0 -34
  65. package/dist/validate.js.map +0 -1
  66. package/dist/validateFields.d.ts +0 -4
  67. package/dist/validateFields.js +0 -34
  68. package/dist/validateFields.js.map +0 -1
  69. package/dist/validateSchema copy.d.ts +0 -4
  70. package/dist/validateSchema copy.js +0 -34
  71. package/dist/validateSchema copy.js.map +0 -1
  72. package/src/set/handleError.ts +0 -15
@@ -1,315 +1,42 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("@saulx/utils");
4
- const handleError_1 = require("./handleError");
5
- const _1 = require(".");
6
- const reference = async (path, value, fieldSchema, typeSchema, target, handlers) => {
7
- // $no root
8
- // prob pass these as options
9
- // value .default
10
- // $value
11
- if (typeof value !== 'string') {
12
- throw (0, handleError_1.createError)(path, target.type, 'reference', value);
13
- }
14
- if ('allowedTypes' in fieldSchema) {
15
- const prefix = value.slice(0, 2);
16
- const targetType = target.schema.prefixToTypeMapping[prefix];
17
- if (!targetType) {
18
- throw (0, handleError_1.createError)(path, target.type, 'reference', value, '', `${prefix} does not exist in database`);
19
- }
20
- let typeMatches = false;
21
- for (const t of fieldSchema.allowedTypes) {
22
- if (typeof t === 'string') {
23
- if (t === targetType) {
24
- typeMatches = true;
25
- break;
26
- }
27
- }
28
- else {
29
- if (t.type && t.type === targetType) {
30
- typeMatches = true;
31
- if (t.$filter) {
32
- if (!(await handlers.referenceFilterCondition(value, t.$filter))) {
33
- throw (0, handleError_1.createError)(path, target.type, 'reference', value, '', `${targetType} does not match allowedReferences`);
34
- }
35
- }
36
- }
37
- else if (!t.type && t.$filter) {
38
- if (!(await handlers.referenceFilterCondition(value, t.$filter))) {
39
- throw (0, handleError_1.createError)(path, target.type, 'reference', value, '', `${targetType} does not match allowedReferences`);
40
- }
41
- }
42
- }
43
- }
44
- if (typeMatches === false) {
45
- throw (0, handleError_1.createError)(path, target.type, 'reference', value, '', `${targetType} does not match allowedReferences`);
46
- }
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
47
7
  }
48
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
49
24
  };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const references = __importStar(require("./references"));
27
+ const collections = __importStar(require("./collections"));
28
+ const number = __importStar(require("./number"));
29
+ const string = __importStar(require("./string"));
30
+ const rest_1 = require("./rest");
50
31
  const parsers = {
51
- enum: async (path, value, fieldSchema, typeSchema, target, handlers) => {
52
- // value .default
53
- // @ts-ignore
54
- const enumValues = fieldSchema.enum;
55
- for (let i = 0; i < enumValues.length; i++) {
56
- if ((0, utils_1.deepEqual)(enumValues[i], value)) {
57
- handlers.collect({ path, value: i, typeSchema, fieldSchema, target });
58
- return;
59
- }
60
- }
61
- throw (0, handleError_1.createError)(path, target.type, 'enum', value);
62
- },
63
- array: async (path, value, fieldSchema, typeSchema, target, handlers) => {
64
- // value .default
65
- // TODO: ADD ARRAY OPERATORS
66
- const isArray = Array.isArray(value);
67
- if (typeof value === 'object' && !isArray) {
68
- const q = [];
69
- if (value.$insert) {
70
- }
71
- if (value.$remove) {
72
- }
73
- if (value.$push) {
74
- }
75
- if (value.$assign) {
76
- }
77
- // value.$value :/
78
- // fix
79
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
80
- return;
81
- }
82
- if (!isArray) {
83
- throw (0, handleError_1.createError)(path, target.type, 'array', value);
84
- }
85
- const q = [];
86
- for (let i = 0; i < value.length; i++) {
87
- q.push((0, _1.fieldWalker)([...path, i], value[i],
88
- // @ts-ignore
89
- fieldSchema.values, typeSchema, target, handlers));
90
- }
91
- await Promise.all(q);
92
- },
93
- object: async (path, value, fieldSchema, typeSchema, target, handlers) => {
94
- // value .default
95
- if (typeof value !== 'object') {
96
- throw (0, handleError_1.createError)(path, target.type, 'object', value);
97
- }
98
- const isArray = Array.isArray(value);
99
- if (isArray) {
100
- throw (0, handleError_1.createError)(path, target.type, 'object', value);
101
- }
102
- const q = [];
103
- for (const key in value) {
104
- // @ts-ignore
105
- const propDef = fieldSchema.properties[key];
106
- if (!propDef) {
107
- throw (0, handleError_1.createError)([...path, key], target.type, 'object', value[key], key);
108
- }
109
- q.push((0, _1.fieldWalker)([...path, key], value[key], propDef, typeSchema, target, handlers));
110
- }
111
- await Promise.all(q);
112
- },
113
- set: async (path, value, fieldSchema, typeSchema, target, handlers) => {
114
- // value .default
115
- const q = [];
116
- // @ts-ignore
117
- const fieldDef = fieldSchema.items;
118
- if (Array.isArray(value)) {
119
- const handlerNest = {
120
- ...handlers,
121
- collect: ({ path, value }) => {
122
- parsedArray.push(value);
123
- },
124
- };
125
- const parsedArray = [];
126
- for (let i = 0; i < value.length; i++) {
127
- q.push((0, _1.fieldWalker)([...path, i], value[i], fieldDef, typeSchema, target, handlerNest));
128
- }
129
- await Promise.all(q);
130
- handlers.collect({
131
- path,
132
- value: { $value: parsedArray },
133
- typeSchema,
134
- fieldSchema,
135
- target,
136
- });
137
- }
138
- else {
139
- const handlerNest = {
140
- ...handlers,
141
- collect: ({ path, value }) => { },
142
- };
143
- if (value.$add) {
144
- for (let i = 0; i < value.$add.length; i++) {
145
- q.push((0, _1.fieldWalker)([...path, '$add', i], value.$add[i], fieldDef, typeSchema, target, handlerNest));
146
- }
147
- }
148
- if (value.$delete) {
149
- for (let i = 0; i < value.$add.length; i++) {
150
- q.push((0, _1.fieldWalker)([...path, '$delete', i], value.$delete[i], fieldDef, typeSchema, target, handlerNest));
151
- }
152
- }
153
- await Promise.all(q);
154
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
155
- }
156
- },
157
- json: async (path, value, fieldSchema, typeSchema, target, handlers) => {
158
- // value .default
159
- try {
160
- const parsedValue = JSON.stringify(value);
161
- handlers.collect({
162
- path,
163
- value: parsedValue,
164
- typeSchema,
165
- fieldSchema,
166
- target,
167
- });
168
- }
169
- catch (err) {
170
- throw (0, handleError_1.createError)(path, target.type, 'json', value);
171
- }
172
- },
173
- timestamp: async (path, value, fieldSchema, typeSchema, target, handlers) => {
174
- if (typeof value === 'string') {
175
- if (value === 'now') {
176
- value = Date.now();
177
- }
178
- else {
179
- const d = new Date(value);
180
- value = d.valueOf();
181
- if (isNaN(value)) {
182
- throw (0, handleError_1.createError)(path, target.type, 'timestamp', value);
183
- }
184
- }
185
- }
186
- // smaller then / larger then steps
187
- if (typeof value !== 'number') {
188
- throw (0, handleError_1.createError)(path, target.type, 'timestamp', value);
189
- }
190
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
191
- },
192
- boolean: async (path, value, fieldSchema, typeSchema, target, handlers) => {
193
- // value .default
194
- // $increment / $decrement
195
- if (typeof value !== 'boolean') {
196
- throw (0, handleError_1.createError)(path, target.type, 'boolean', value);
197
- }
198
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
199
- },
200
- number: async (path, value, fieldSchema, typeSchema, target, handlers) => {
201
- // value .default
202
- // $increment / $decrement
203
- if (typeof value !== 'number') {
204
- throw (0, handleError_1.createError)(path, target.type, 'number', value);
205
- }
206
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
207
- },
208
- integer: async (path, value, fieldSchema, typeSchema, target, handlers) => {
209
- // value .default
210
- // $increment / $decrement
211
- // smaller then / larger then steps
212
- if (typeof value !== 'number' || value - Math.floor(value) !== 0) {
213
- throw (0, handleError_1.createError)(path, target.type, 'integer', value);
214
- }
215
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
216
- },
217
- string: async (path, value, fieldSchema, typeSchema, target, handlers) => {
218
- // default
219
- if (typeof value !== 'string') {
220
- throw (0, handleError_1.createError)(path, target.type, 'string', value);
221
- }
222
- // @ts-ignore
223
- if (fieldSchema.minLength && value.length < fieldSchema.minLength) {
224
- throw (0, handleError_1.createError)(path, target.type, 'string', value);
225
- }
226
- // @ts-ignore
227
- if (fieldSchema.maxLength && value.length > fieldSchema.maxLength) {
228
- throw (0, handleError_1.createError)(path, target.type, 'string', value);
229
- }
230
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
231
- },
232
- text: async (path, value, fieldSchema, typeSchema, target, handlers) => {
233
- // default
234
- const valueType = typeof value;
235
- if (target.$language && valueType === 'string') {
236
- // @ts-ignore
237
- if (fieldSchema.minLength && value.length < fieldSchema.minLength) {
238
- throw (0, handleError_1.createError)(path, target.type, 'text', value);
239
- }
240
- // @ts-ignore
241
- if (fieldSchema.maxLength && value.length > fieldSchema.maxLength) {
242
- throw (0, handleError_1.createError)(path, target.type, 'text', value);
243
- }
244
- handlers.collect({
245
- path,
246
- value: { [target.$language]: value },
247
- typeSchema,
248
- fieldSchema,
249
- target,
250
- });
251
- return;
252
- }
253
- if (valueType !== 'object') {
254
- throw (0, handleError_1.createError)(path, target.type, 'text', value);
255
- }
256
- for (const key in value) {
257
- // @ts-ignore
258
- if (fieldSchema.minLength && value[key].length < fieldSchema.minLength) {
259
- throw (0, handleError_1.createError)([...path, key], target.type, 'text', value);
260
- }
261
- // @ts-ignore
262
- if (fieldSchema.maxLength && value[key].length > fieldSchema.maxLength) {
263
- throw (0, handleError_1.createError)([...path, key], target.type, 'text', value);
264
- }
265
- if (typeof value[key] === 'object' && value[key].$delete === true) {
266
- handlers.collect({
267
- path: [...path, key],
268
- value: null,
269
- typeSchema,
270
- fieldSchema,
271
- target,
272
- });
273
- continue;
274
- }
275
- if (typeof value[key] !== 'string') {
276
- throw (0, handleError_1.createError)([...path, key], target.type, 'text', value);
277
- }
278
- handlers.collect({
279
- path: [...path, key],
280
- value: value[key],
281
- typeSchema,
282
- fieldSchema,
283
- target,
284
- });
285
- }
286
- },
287
- reference,
288
- references: async (path, value, fieldSchema, typeSchema, target, handlers) => {
289
- // default
290
- // $no root
291
- if (Array.isArray(value)) {
292
- const handler = {
293
- ...handlers,
294
- collect: () => { },
295
- };
296
- await Promise.all(value.map((v, i) => {
297
- return reference([...path, i], v, fieldSchema, typeSchema, target, handler);
298
- }));
299
- }
300
- else if (typeof value === 'object') {
301
- if (value.$add) {
302
- const handler = {
303
- ...handlers,
304
- collect: () => { },
305
- };
306
- await Promise.all(value.$add.map((v, i) => {
307
- return reference([...path, '$add', i], v, fieldSchema, typeSchema, target, handler);
308
- }));
309
- }
310
- }
311
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
312
- },
32
+ ...string,
33
+ ...references,
34
+ ...collections,
35
+ ...number,
36
+ enum: rest_1.enumParser,
37
+ boolean: rest_1.boolean,
38
+ cardinality: rest_1.cardinality,
39
+ json: rest_1.json,
313
40
  };
314
41
  exports.default = parsers;
315
42
  //# sourceMappingURL=parsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/set/parsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/set/parsers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,yDAA0C;AAC1C,2DAA4C;AAC5C,iDAAkC;AAClC,iDAAkC;AAElC,iCAA+D;AAE/D,MAAM,OAAO,GAAY;IACvB,GAAG,MAAM;IACT,GAAG,UAAU;IACb,GAAG,WAAW;IACd,GAAG,MAAM;IACT,IAAI,EAAE,iBAAU;IAChB,OAAO,EAAP,cAAO;IACP,WAAW,EAAX,kBAAW;IACX,IAAI,EAAJ,WAAI;CACL,CAAA;AAED,kBAAe,OAAO,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Parser } from './types';
2
+ export declare const reference: Parser<'reference'>;
3
+ export declare const references: Parser<'references'>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.references = exports.reference = void 0;
4
+ const error_1 = require("./error");
5
+ const reference = async (path, value, fieldSchema, typeSchema, target, handlers) => {
6
+ // $no root
7
+ // prob pass these as options
8
+ // value .default
9
+ // $value
10
+ if (typeof value !== 'string') {
11
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
12
+ }
13
+ if ('allowedTypes' in fieldSchema) {
14
+ const prefix = value.slice(0, 2);
15
+ const targetType = target.schema.prefixToTypeMapping[prefix];
16
+ if (!targetType) {
17
+ (0, error_1.error)(path, error_1.ParseError.referenceIsIncorrectType);
18
+ }
19
+ let typeMatches = false;
20
+ for (const t of fieldSchema.allowedTypes) {
21
+ if (typeof t === 'string') {
22
+ if (t === targetType) {
23
+ typeMatches = true;
24
+ break;
25
+ }
26
+ }
27
+ else {
28
+ if (t.type && t.type === targetType) {
29
+ typeMatches = true;
30
+ if (t.$filter) {
31
+ if (!(await handlers.referenceFilterCondition(value, t.$filter))) {
32
+ (0, error_1.error)(path, error_1.ParseError.referenceIsIncorrectType);
33
+ }
34
+ }
35
+ }
36
+ else if (!t.type && t.$filter) {
37
+ if (!(await handlers.referenceFilterCondition(value, t.$filter))) {
38
+ (0, error_1.error)(path, error_1.ParseError.referenceIsIncorrectType);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ if (typeMatches === false) {
44
+ (0, error_1.error)(path, error_1.ParseError.referenceIsIncorrectType);
45
+ }
46
+ }
47
+ handlers.collect({ path, value, typeSchema, fieldSchema, target });
48
+ };
49
+ exports.reference = reference;
50
+ const references = async (path, value, fieldSchema, typeSchema, target, handlers) => {
51
+ // default
52
+ // $no root
53
+ if (Array.isArray(value)) {
54
+ const handler = {
55
+ ...handlers,
56
+ collect: () => { },
57
+ };
58
+ await Promise.all(value.map((v, i) => {
59
+ return (0, exports.reference)([...path, i], v,
60
+ // not nice slow
61
+ { ...fieldSchema, type: 'reference' }, typeSchema, target, handler);
62
+ }));
63
+ value = { $value: value };
64
+ }
65
+ else if (typeof value === 'object') {
66
+ if (value.$add) {
67
+ const handler = {
68
+ ...handlers,
69
+ collect: () => { },
70
+ };
71
+ await Promise.all(value.$add.map((v, i) => {
72
+ return (0, exports.reference)([...path, '$add', i], v,
73
+ // not nice slow
74
+ { ...fieldSchema, type: 'reference' }, typeSchema, target, handler);
75
+ }));
76
+ }
77
+ }
78
+ handlers.collect({ path, value, typeSchema, fieldSchema, target });
79
+ };
80
+ exports.references = references;
81
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/set/references.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Parser } from './types';
2
+ export declare const cardinality: Parser<'cardinality'>;
3
+ export declare const boolean: Parser<'boolean'>;
4
+ export declare const enumParser: Parser<'enum'>;
5
+ export declare const json: Parser<'json'>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.json = exports.enumParser = exports.boolean = exports.cardinality = void 0;
4
+ const utils_1 = require("@saulx/utils");
5
+ const hash_1 = require("@saulx/hash");
6
+ const error_1 = require("./error");
7
+ const cardinality = async (path, value, fieldSchema, typeSchema, target, handlers) => {
8
+ if (value && typeof value === 'object') {
9
+ value = (0, hash_1.hashObjectIgnoreKeyOrder)(value).toString(16);
10
+ }
11
+ else {
12
+ value = (0, hash_1.hash)(value).toString(16);
13
+ }
14
+ handlers.collect({ path, value, typeSchema, fieldSchema, target });
15
+ };
16
+ exports.cardinality = cardinality;
17
+ const boolean = async (path, value, fieldSchema, typeSchema, target, handlers) => {
18
+ // value .default
19
+ // $increment / $decrement
20
+ if (typeof value !== 'boolean') {
21
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
22
+ }
23
+ handlers.collect({ path, value, typeSchema, fieldSchema, target });
24
+ };
25
+ exports.boolean = boolean;
26
+ const enumParser = async (path, value, fieldSchema, typeSchema, target, handlers) => {
27
+ const enumValues = fieldSchema.enum;
28
+ for (let i = 0; i < enumValues.length; i++) {
29
+ if ((0, utils_1.deepEqual)(enumValues[i], value)) {
30
+ handlers.collect({ path, value: i, typeSchema, fieldSchema, target });
31
+ return;
32
+ }
33
+ }
34
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
35
+ };
36
+ exports.enumParser = enumParser;
37
+ const json = async (path, value, fieldSchema, typeSchema, target, handlers) => {
38
+ try {
39
+ const parsedValue = JSON.stringify(value);
40
+ handlers.collect({
41
+ path,
42
+ value: parsedValue,
43
+ typeSchema,
44
+ fieldSchema,
45
+ target,
46
+ });
47
+ }
48
+ catch (err) {
49
+ throw err(path, error_1.ParseError.incorrectFormat);
50
+ }
51
+ };
52
+ exports.json = json;
53
+ //# sourceMappingURL=rest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/set/rest.ts"],"names":[],"mappings":";;;AACA,wCAAwC;AACxC,sCAA4D;AAC5D,mCAA2C;AAEpC,MAAM,WAAW,GAA0B,KAAK,EACrD,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,EAAE;IACF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACtC,KAAK,GAAG,IAAA,+BAAwB,EAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;KACrD;SAAM;QACL,KAAK,GAAG,IAAA,WAAI,EAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;KACjC;IACD,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;AACpE,CAAC,CAAA;AAdY,QAAA,WAAW,eAcvB;AAEM,MAAM,OAAO,GAAsB,KAAK,EAC7C,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,EAAE;IACF,iBAAiB;IACjB,0BAA0B;IAC1B,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;QAC9B,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;KACxC;IACD,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;AACpE,CAAC,CAAA;AAdY,QAAA,OAAO,WAcnB;AAEM,MAAM,UAAU,GAAmB,KAAK,EAC7C,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,EAAE;IACF,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAA;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAI,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;YACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;YACrE,OAAM;SACP;KACF;IACD,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;AACzC,CAAC,CAAA;AAhBY,QAAA,UAAU,cAgBtB;AAEM,MAAM,IAAI,GAAmB,KAAK,EACvC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,EAAE;IACF,IAAI;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACzC,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI;YACJ,KAAK,EAAE,WAAW;YAClB,UAAU;YACV,WAAW;YACX,MAAM;SACP,CAAC,CAAA;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,GAAG,CAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;KAC5C;AACH,CAAC,CAAA;AApBY,QAAA,IAAI,QAoBhB"}
@@ -0,0 +1,3 @@
1
+ import { Parser } from './types';
2
+ export declare const string: Parser<'string'>;
3
+ export declare const text: Parser<'text'>;