@litert/typeguard 1.0.0 → 1.2.0

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 (74) hide show
  1. package/CHANGES.md +15 -0
  2. package/lib/BuiltInTypeCompiler.d.ts +4 -4
  3. package/lib/BuiltInTypeCompiler.d.ts.map +1 -1
  4. package/lib/BuiltInTypeCompiler.js +167 -166
  5. package/lib/BuiltInTypeCompiler.js.map +1 -1
  6. package/lib/BuiltInTypes.d.ts +1 -1
  7. package/lib/BuiltInTypes.js +37 -36
  8. package/lib/BuiltInTypes.js.map +1 -1
  9. package/lib/Common.d.ts +13 -9
  10. package/lib/Common.d.ts.map +1 -1
  11. package/lib/Common.js +1 -1
  12. package/lib/Compiler.d.ts +2 -2
  13. package/lib/Compiler.d.ts.map +1 -1
  14. package/lib/Compiler.js +77 -72
  15. package/lib/Compiler.js.map +1 -1
  16. package/lib/Context.d.ts +2 -2
  17. package/lib/Context.js +3 -2
  18. package/lib/Context.js.map +1 -1
  19. package/lib/FilterCompiler.d.ts +5 -5
  20. package/lib/FilterCompiler.d.ts.map +1 -1
  21. package/lib/FilterCompiler.js +25 -24
  22. package/lib/FilterCompiler.js.map +1 -1
  23. package/lib/InlineCompiler.d.ts +12 -5
  24. package/lib/InlineCompiler.d.ts.map +1 -1
  25. package/lib/InlineCompiler.js +14 -5
  26. package/lib/InlineCompiler.js.map +1 -1
  27. package/lib/Internal.d.ts +2 -1
  28. package/lib/Internal.d.ts.map +1 -1
  29. package/lib/Internal.js +12 -10
  30. package/lib/Internal.js.map +1 -1
  31. package/lib/Modifiers.d.ts +1 -1
  32. package/lib/Modifiers.js +2 -1
  33. package/lib/Modifiers.js.map +1 -1
  34. package/lib/index.d.ts +5 -5
  35. package/lib/index.js +19 -7
  36. package/lib/index.js.map +1 -1
  37. package/lib/langs/JavaScript.d.ts +2 -2
  38. package/lib/langs/JavaScript.d.ts.map +1 -1
  39. package/lib/langs/JavaScript.js +30 -23
  40. package/lib/langs/JavaScript.js.map +1 -1
  41. package/package.json +18 -13
  42. package/src/{samples → examples}/quick-start.ts +22 -12
  43. package/src/lib/BuiltInTypeCompiler.ts +171 -171
  44. package/src/lib/BuiltInTypes.ts +36 -36
  45. package/src/lib/Common.ts +15 -10
  46. package/src/lib/Compiler.ts +213 -208
  47. package/src/lib/Context.ts +3 -3
  48. package/src/lib/FilterCompiler.ts +84 -84
  49. package/src/lib/InlineCompiler.ts +35 -14
  50. package/src/lib/Internal.ts +12 -10
  51. package/src/lib/Modifiers.ts +2 -2
  52. package/src/lib/index.ts +5 -5
  53. package/src/lib/langs/JavaScript.ts +34 -24
  54. package/src/test/00-all.ts +11 -9
  55. package/src/test/01-elemental-types.ts +1111 -1110
  56. package/src/test/02-array-and-list.ts +75 -75
  57. package/src/test/03-tuple.ts +87 -87
  58. package/src/test/04-from-string.ts +849 -848
  59. package/src/test/05-string-asserts.ts +422 -422
  60. package/src/test/06-structure.ts +107 -107
  61. package/src/test/07-modifiers.ts +151 -42
  62. package/src/test/08-map-and-dict.ts +46 -46
  63. package/src/test/09-exceptions.ts +67 -0
  64. package/src/test/abstracts.ts +52 -43
  65. package/dist/typeguard.amd.d.ts +0 -588
  66. package/dist/typeguard.amd.d.ts.map +0 -1
  67. package/dist/typeguard.amd.js +0 -2063
  68. package/dist/typeguard.amd.js.map +0 -1
  69. package/dist/typeguard.system.d.ts +0 -588
  70. package/dist/typeguard.system.d.ts.map +0 -1
  71. package/dist/typeguard.system.js +0 -2179
  72. package/dist/typeguard.system.js.map +0 -1
  73. package/tsconfig-amd.json +0 -72
  74. package/tsconfig-systemjs.json +0 -72
package/lib/Compiler.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
3
+ * Copyright 2022 Angus Fenying <fenying@litert.org>
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.createCompiler = void 0;
18
19
  const I = require("./Internal");
19
20
  const M = require("./Modifiers");
20
21
  const Context_1 = require("./Context");
@@ -36,17 +37,17 @@ class Compiler {
36
37
  }
37
38
  compile(options) {
38
39
  const referredTypes = {};
39
- const ctx = new Context_1.Context(this._lang.varName("entry"), this._lang.varName("types"), referredTypes);
40
+ const ctx = new Context_1.Context(this._lang.varName('entry'), this._lang.varName('types'), referredTypes);
40
41
  if (options.name) {
41
42
  this._compile(ctx, [M.TYPE, options.name, options.rule]);
42
43
  return this._defTypes[options.name];
43
44
  }
44
45
  else {
45
46
  const ret = {
46
- source: "",
47
+ source: '',
47
48
  arguments: [{
48
- "name": ctx.vName,
49
- "type": "unknown"
49
+ 'name': ctx.vName,
50
+ 'type': 'unknown'
50
51
  }],
51
52
  typeSlotName: ctx.typeSlotName,
52
53
  referredTypes: []
@@ -58,9 +59,9 @@ class Compiler {
58
59
  }
59
60
  _compile(ctx, rules) {
60
61
  switch (typeof rules) {
61
- case "string":
62
+ case 'string':
62
63
  return this._compileStringRule(ctx, rules);
63
- case "boolean":
64
+ case 'boolean':
64
65
  if (ctx.flags[I.EFlags.FROM_STRING]) {
65
66
  return this._lang.or([
66
67
  this._lang.eq(ctx.vName, this._lang.literal(rules)),
@@ -68,7 +69,7 @@ class Compiler {
68
69
  ]);
69
70
  }
70
71
  return this._lang.eq(ctx.vName, this._lang.literal(rules));
71
- case "number":
72
+ case 'number':
72
73
  if (ctx.flags[I.EFlags.FROM_STRING]) {
73
74
  return this._lang.or([
74
75
  this._lang.eq(ctx.vName, this._lang.literal(rules)),
@@ -76,7 +77,7 @@ class Compiler {
76
77
  ]);
77
78
  }
78
79
  return this._lang.eq(ctx.vName, this._lang.literal(rules));
79
- case "object":
80
+ case 'object':
80
81
  if (Array.isArray(rules)) {
81
82
  return this._compileModifiedRule(ctx, rules);
82
83
  }
@@ -84,16 +85,18 @@ class Compiler {
84
85
  if (ctx.flags[I.EFlags.FROM_STRING]) {
85
86
  return this._lang.or([
86
87
  this._lang.isNull(ctx.vName, true),
87
- this._lang.eq(ctx.vName, this._lang.literal("null"))
88
+ this._lang.eq(ctx.vName, this._lang.literal('null'))
88
89
  ]);
89
90
  }
90
91
  return this._lang.isNull(ctx.vName, true);
91
92
  }
92
93
  return this._compileStructuredRule(ctx, rules);
93
- case "undefined":
94
+ case 'undefined':
94
95
  return this._lang.isUndefined(ctx.vName, true);
96
+ default:
97
+ break;
95
98
  }
96
- throw new TypeError("Unknwn rules.");
99
+ throw new TypeError('Unknwn rules.');
97
100
  }
98
101
  _compileStringRule(ctx, rule) {
99
102
  const strAssert = this._useStringAssert(ctx, rule);
@@ -103,22 +106,22 @@ class Compiler {
103
106
  strAssert
104
107
  ]);
105
108
  }
106
- if (rule[0] === I.IMPLICIT_SYMBOL) {
109
+ if (rule.startsWith(I.IMPLICIT_SYMBOL)) {
107
110
  return this._lang.or([
108
111
  this._builtInTypes.compile(B.VOID, ctx, []),
109
112
  this._compileStringRule(ctx, rule.slice(1))
110
113
  ]);
111
114
  }
112
- if (rule[0] === I.NEGATIVE_SYMBOL) {
115
+ if (rule.startsWith(I.NEGATIVE_SYMBOL)) {
113
116
  return this._lang.not(this._compileStringRule(ctx, rule.slice(1)));
114
117
  }
115
- let regResult;
118
+ let regResult = /\[\s*(\d*|\d+\s*,\s*\d*)\s*\]$/.exec(rule);
116
119
  /**
117
120
  * For rules like `xxx[123]` or `xxx[1,5]`.
118
121
  */
119
- if (regResult = rule.match(/\[\s*(\d*|\d+\s*,\s*\d*)\s*\]$/)) {
122
+ if (regResult) {
120
123
  if (regResult[1]) {
121
- let range = regResult[1].split(",").map((x) => parseInt(x.trim()));
124
+ const range = regResult[1].split(',').map((x) => parseInt(x.trim()));
122
125
  if (range.length === 1) {
123
126
  return this._compileModifiedRule(ctx, [
124
127
  M.ARRAY,
@@ -159,9 +162,10 @@ class Compiler {
159
162
  ])
160
163
  ]);
161
164
  }
162
- if (rule[0] === I.PREDEF_TYPE_SYMBOL) {
165
+ if (rule.startsWith(I.PREDEF_TYPE_SYMBOL)) {
163
166
  return this._usePredefinedType(ctx, rule.slice(1));
164
167
  }
168
+ regResult = /^(\w+)(\(\s*(-?\d+(\.\d+)?)?\s*,?\s*(-?\d+(\.\d+)?)?\s*\))?$/.exec(rule);
165
169
  /**
166
170
  * For built-in-type rules like:
167
171
  *
@@ -170,14 +174,14 @@ class Compiler {
170
174
  * - `string`
171
175
  * - `int(12, 34)`
172
176
  */
173
- if (regResult = rule.match(/^(\w+)(\(\s*(-?\d+(\.\d+)?)?\s*,?\s*(-?\d+(\.\d+)?)?\s*\))?$/)) {
177
+ if (regResult) {
174
178
  if (regResult[2]) {
175
- const args = regResult[2].slice(1, -1).trim().split(",").map((x) => parseFloat(x.trim()));
179
+ const args = regResult[2].slice(1, -1).trim().split(',').map((x) => parseFloat(x.trim()));
176
180
  return this._builtInTypes.compile(regResult[1], ctx, args);
177
181
  }
178
182
  return this._builtInTypes.compile(regResult[1], ctx, []);
179
183
  }
180
- if (rule[0] === I.FILTER_PREFIX) {
184
+ if (rule.startsWith(I.FILTER_PREFIX)) {
181
185
  return this._filters.compile(rule, ctx);
182
186
  }
183
187
  throw new TypeError(`Unknown type "${rule}".`);
@@ -188,64 +192,65 @@ class Compiler {
188
192
  return this._lang.call(this._lang.fieldIndex(ctx.typeSlotName, this._lang.literal(typeName)), ctx.vName);
189
193
  }
190
194
  _useStringAssert(ctx, rule) {
191
- const assertRule = rule.match(/^:([-\w]+):/);
195
+ var _a;
196
+ const assertRule = /^:([-\w]+):/.exec(rule);
192
197
  const offset = assertRule ? assertRule[1].length + 2 : 2;
193
- switch ((assertRule && assertRule[1]) || rule.substr(0, 2)) {
194
- case "==":
195
- case "equal":
198
+ switch ((_a = (assertRule === null || assertRule === void 0 ? void 0 : assertRule[1])) !== null && _a !== void 0 ? _a : rule.substr(0, 2)) {
199
+ case '==':
200
+ case 'equal':
196
201
  return this._lang.eq(ctx.vName, this._lang.literal(rule.slice(offset)));
197
- case "%=":
198
- case "equal-i":
202
+ case '%=':
203
+ case 'equal-i':
199
204
  return this._lang.eq(this._lang.lowerCase(ctx.vName), this._lang.literal(rule.slice(offset).toLowerCase()));
200
- case "!=":
201
- case "not-equal":
205
+ case '!=':
206
+ case 'not-equal':
202
207
  return this._lang.ne(ctx.vName, this._lang.literal(rule.slice(offset)));
203
- case "%!":
204
- case "not-equal-i":
208
+ case '%!':
209
+ case 'not-equal-i':
205
210
  return this._lang.ne(this._lang.lowerCase(ctx.vName), this._lang.literal(rule.slice(offset).toLowerCase()));
206
- case "~=":
207
- case "match":
211
+ case '~=':
212
+ case 'match':
208
213
  return this._lang.matchRegExp(ctx.vName, rule.slice(offset));
209
- case "~!":
210
- case "not-match":
214
+ case '~!':
215
+ case 'not-match':
211
216
  return this._lang.not(this._lang.matchRegExp(ctx.vName, rule.slice(offset)));
212
- case "?=":
213
- case "include":
217
+ case '?=':
218
+ case 'include':
214
219
  return this._lang.instr(ctx.vName, this._lang.literal(rule.slice(offset)));
215
- case "?!":
216
- case "not-include":
220
+ case '?!':
221
+ case 'not-include':
217
222
  return this._lang.not(this._lang.instr(ctx.vName, this._lang.literal(rule.slice(offset))));
218
- case "*=":
219
- case "include-i":
223
+ case '*=':
224
+ case 'include-i':
220
225
  return this._lang.instr(this._lang.lowerCase(ctx.vName), this._lang.literal(rule.slice(offset).toLowerCase()));
221
- case "*!":
222
- case "not-include-i":
226
+ case '*!':
227
+ case 'not-include-i':
223
228
  return this._lang.not(this._lang.instr(this._lang.lowerCase(ctx.vName), this._lang.literal(rule.slice(offset).toLowerCase())));
224
- case "^=":
225
- case "start-with":
229
+ case '^=':
230
+ case 'start-with':
226
231
  return this._lang.startsWith(ctx.vName, this._lang.literal(rule.slice(offset)));
227
- case "start-with-i":
232
+ case 'start-with-i':
228
233
  return this._lang.startsWith(this._lang.lowerCase(ctx.vName), this._lang.literal(rule.slice(offset).toLowerCase()));
229
- case "^!":
230
- case "not-start-with":
234
+ case '^!':
235
+ case 'not-start-with':
231
236
  return this._lang.not(this._lang.startsWith(ctx.vName, this._lang.literal(rule.slice(offset))));
232
- case "not-start-with-i":
237
+ case 'not-start-with-i':
233
238
  return this._lang.not(this._lang.startsWith(this._lang.lowerCase(ctx.vName), this._lang.literal(rule.slice(offset).toLowerCase())));
234
- case "$=":
235
- case "end-with":
239
+ case '$=':
240
+ case 'end-with':
236
241
  return this._lang.endsWith(ctx.vName, this._lang.literal(rule.slice(offset)));
237
- case "end-with-i":
242
+ case 'end-with-i':
238
243
  return this._lang.endsWith(this._lang.lowerCase(ctx.vName), this._lang.literal(rule.slice(offset).toLowerCase()));
239
- case "$!":
240
- case "not-end-with":
244
+ case '$!':
245
+ case 'not-end-with':
241
246
  return this._lang.not(this._lang.endsWith(ctx.vName, this._lang.literal(rule.slice(offset))));
242
- case "not-end-with-i":
247
+ case 'not-end-with-i':
243
248
  return this._lang.not(this._lang.endsWith(this._lang.lowerCase(ctx.vName), this._lang.literal(rule.slice(offset).toLowerCase())));
244
249
  default:
245
- if (rule.startsWith("=")) {
250
+ if (rule.startsWith('=')) {
246
251
  return this._lang.eq(ctx.vName, this._lang.literal(rule.slice(1)));
247
252
  }
248
- if (rule.startsWith("~")) {
253
+ if (rule.startsWith('~')) {
249
254
  return this._lang.matchRegExp(ctx.vName, rule.slice(1));
250
255
  }
251
256
  }
@@ -253,12 +258,12 @@ class Compiler {
253
258
  }
254
259
  _compileModifiedRule(ctx, rules) {
255
260
  if (!rules.length) {
256
- throw new TypeError(`Unknwon type "[]".`);
261
+ throw new TypeError('Unknwon type "[]".');
257
262
  }
258
263
  /**
259
264
  * By default, use OR modifier.
260
265
  */
261
- if (typeof rules[0] !== "string" ||
266
+ if (typeof rules[0] !== 'string' ||
262
267
  !rules[0].startsWith(I.MODIFIER_PREFIX)) {
263
268
  if (rules.length === 1) {
264
269
  return this._compile(ctx, rules[0]);
@@ -313,7 +318,7 @@ class Compiler {
313
318
  return result;
314
319
  }
315
320
  _compileModifierOR(ctx, rules) {
316
- let result = [];
321
+ const result = [];
317
322
  for (const r of rules) {
318
323
  ctx.trap();
319
324
  result.push(this._compile(ctx, r));
@@ -428,13 +433,13 @@ class Compiler {
428
433
  if (type === undefined) {
429
434
  break;
430
435
  }
431
- if (typeof type === "string" && type.startsWith("...")) {
436
+ if (typeof type === 'string' && type.startsWith('...')) {
432
437
  throw new TypeError(`Invalid syntax for tuple: ${JSON.stringify(rules)}`);
433
438
  }
434
- if (typeof types[0] === "string" && types[0].startsWith("...")) {
439
+ if (typeof types[0] === 'string' && types[0].startsWith('...')) {
435
440
  ctx.trap();
436
441
  dots = types.shift();
437
- if (dots === "...") {
442
+ if (dots === '...') {
438
443
  /**
439
444
  * No more elements because "..." means all rest elements.
440
445
  */
@@ -442,7 +447,7 @@ class Compiler {
442
447
  throw new TypeError(`Invalid syntax for tuple: ${JSON.stringify(rules)}`);
443
448
  }
444
449
  ctx.vName = this._lang.arraySlice(ctx.vName, i);
445
- if (type !== "any") {
450
+ if (type !== 'any') {
446
451
  result.push(this._compileModifierLIST(ctx, type));
447
452
  }
448
453
  tupleLength = -1;
@@ -481,7 +486,7 @@ class Compiler {
481
486
  return this._lang.and(result);
482
487
  }
483
488
  _validateTypeName(name) {
484
- if (typeof name !== "string" || !/^\w+$/.test(name)) {
489
+ if (typeof name !== 'string' || !I.RE_VALID_CUSTOM_TYPE_NAME.test(name)) {
485
490
  throw new TypeError(`Invalid name ${JSON.stringify(name)} for a pre-defined type.`);
486
491
  }
487
492
  }
@@ -538,15 +543,15 @@ class Compiler {
538
543
  if (rules.length < 2 || !Array.isArray(rules[0])) {
539
544
  throw new SyntaxError(`Invalid dict ${JSON.stringify(rules)}.`);
540
545
  }
541
- let tmp = {};
546
+ const tmp = {};
542
547
  const id = `${Date.now()}${Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)}`;
543
548
  this._compileModifierTYPE(ctx, [
544
549
  this._lang.varName(id),
545
550
  rules.slice(1)
546
551
  ]);
547
552
  const type = `${I.PREDEF_TYPE_SYMBOL}${this._lang.varName(id)}`;
548
- for (let key of rules[0]) {
549
- if (typeof key !== "string") {
553
+ for (const key of rules[0]) {
554
+ if (typeof key !== 'string') {
550
555
  throw new SyntaxError(`Invalid key ${JSON.stringify(key)} for dict.`);
551
556
  }
552
557
  tmp[key] = type;
@@ -584,7 +589,7 @@ class Compiler {
584
589
  rule = [M.EQUAL, rule];
585
590
  }
586
591
  else {
587
- const matchResult = k.match(I.KEY_ARRAY_SUFFIX);
592
+ const matchResult = I.KEY_ARRAY_SUFFIX.exec(k);
588
593
  if (matchResult) {
589
594
  k = k.slice(0, matchResult.index);
590
595
  if (matchResult[3]) {
@@ -626,7 +631,7 @@ class Compiler {
626
631
  _compileStructuredRule(ctx, rules) {
627
632
  const mapSymbol = Object.keys(rules).filter((x) => x.startsWith(M.MAP));
628
633
  if (mapSymbol.length > 1) {
629
- throw new SyntaxError("Only one '$.map' is allowed as rest-mapping.");
634
+ throw new SyntaxError('Only one \'$.map\' is allowed as rest-mapping.');
630
635
  }
631
636
  else if (mapSymbol.length === 0) {
632
637
  return this._compileSimpleStructure(ctx, rules);
@@ -666,7 +671,7 @@ class Compiler {
666
671
  rule = [M.EQUAL, rule];
667
672
  }
668
673
  else {
669
- const matchResult = k.match(I.KEY_ARRAY_SUFFIX);
674
+ const matchResult = I.KEY_ARRAY_SUFFIX.exec(k);
670
675
  if (matchResult) {
671
676
  k = k.slice(0, matchResult.index);
672
677
  if (matchResult[3]) {
@@ -718,7 +723,7 @@ class Compiler {
718
723
  }
719
724
  _isOrRule(rule) {
720
725
  return Array.isArray(rule) && (rule[0] === M.OR ||
721
- typeof rule[0] !== "string" ||
726
+ typeof rule[0] !== 'string' ||
722
727
  !rule[0].startsWith(I.MODIFIER_PREFIX));
723
728
  }
724
729
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Compiler.js","sourceRoot":"","sources":["../src/lib/Compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Compiler.js","sourceRoot":"","sources":["../src/lib/Compiler.ts"],"names":[],"mappings":"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"}
package/lib/Context.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
2
+ * Copyright 2022 Angus Fenying <fenying@litert.org>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import * as i from "./Internal";
16
+ import * as i from './Internal';
17
17
  export declare class Context implements i.IContext {
18
18
  vName: string;
19
19
  readonly typeSlotName: string;
package/lib/Context.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
3
+ * Copyright 2022 Angus Fenying <fenying@litert.org>
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.Context = void 0;
18
19
  const i = require("./Internal");
19
20
  class Context {
20
21
  constructor(vName, typeSlotName, referredTypes) {
@@ -49,7 +50,7 @@ class Context {
49
50
  untrap() {
50
51
  const prev = this.stack.pop();
51
52
  if (!prev) {
52
- throw new Error("Failed to pop stack.");
53
+ throw new Error('Failed to pop stack.');
53
54
  }
54
55
  this.vName = prev.vName;
55
56
  this.flags = prev.flags;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../src/lib/Context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAEH,gCAAgC;AAEhC,MAAa,OAAO;IAYhB,YACW,KAAa,EACJ,YAAoB,EACpB,aAAsC;QAF/C,UAAK,GAAL,KAAK,CAAQ;QACJ,iBAAY,GAAZ,YAAY,CAAQ;QACpB,kBAAa,GAAb,aAAa,CAAyB;QAEtD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAEjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,IAAI,CAAC,cAAuB,KAAK;QAEpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAEzB,IAAI,WAAW,EAAE;gBAEb,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE;oBAEjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;iBACpC;aACJ;iBACI,IACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO;gBACvC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EACjD;gBAEE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;IACL,CAAC;IAEM,MAAM;QAET,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,EAAE;YAEP,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,CAAC;CACJ;AAtED,0BAsEC"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../src/lib/Context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,gCAAgC;AAEhC,MAAa,OAAO;IAYhB,YACW,KAAa,EACJ,YAAoB,EACpB,aAAsC;QAF/C,UAAK,GAAL,KAAK,CAAQ;QACJ,iBAAY,GAAZ,YAAY,CAAQ;QACpB,kBAAa,GAAb,aAAa,CAAyB;QAEtD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAEjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,IAAI,CAAC,cAAuB,KAAK;QAEpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAEzB,IAAI,WAAW,EAAE;gBAEb,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE;oBAEjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;iBACpC;aACJ;iBACI,IACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO;gBACvC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EACjD;gBAEE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;IACL,CAAC;IAEM,MAAM;QAET,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,EAAE;YAEP,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,CAAC;CACJ;AAtED,0BAsEC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
2
+ * Copyright 2022 Angus Fenying <fenying@litert.org>
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -13,11 +13,11 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import * as C from "./Common";
17
- import * as I from "./Internal";
16
+ import * as C from './Common';
17
+ import * as I from './Internal';
18
18
  export declare class FilterCompiler implements I.IFilterCompiler {
19
- private _lang;
20
- private _bitc;
19
+ private readonly _lang;
20
+ private readonly _bitc;
21
21
  constructor(_lang: C.ILanguageBuilder, _bitc: I.IBuiltInTypeCompiler);
22
22
  compile(rule: string, ctx: I.IContext): string;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCompiler.d.ts","sourceRoot":"","sources":["../src/lib/FilterCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,qBAAa,cACb,YAAW,CAAC,CAAC,eAAe;IAGpB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;gBADL,KAAK,EAAE,CAAC,CAAC,gBAAgB,EACzB,KAAK,EAAE,CAAC,CAAC,oBAAoB;IAGlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM;CAkIxD"}
1
+ {"version":3,"file":"FilterCompiler.d.ts","sourceRoot":"","sources":["../src/lib/FilterCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,qBAAa,cACb,YAAW,CAAC,CAAC,eAAe;IAGpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,KAAK,EAAE,CAAC,CAAC,gBAAgB,EACzB,KAAK,EAAE,CAAC,CAAC,oBAAoB;IAG3C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM;CAkIxD"}