@litert/typeguard 1.0.1 → 1.3.0-dev.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 (76) hide show
  1. package/CHANGES.md +16 -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 +27 -10
  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 +159 -102
  15. package/lib/Compiler.js.map +1 -1
  16. package/lib/Context.d.ts +6 -5
  17. package/lib/Context.d.ts.map +1 -1
  18. package/lib/Context.js +11 -7
  19. package/lib/Context.js.map +1 -1
  20. package/lib/FilterCompiler.d.ts +5 -5
  21. package/lib/FilterCompiler.d.ts.map +1 -1
  22. package/lib/FilterCompiler.js +25 -24
  23. package/lib/FilterCompiler.js.map +1 -1
  24. package/lib/InlineCompiler.d.ts +12 -5
  25. package/lib/InlineCompiler.d.ts.map +1 -1
  26. package/lib/InlineCompiler.js +18 -6
  27. package/lib/InlineCompiler.js.map +1 -1
  28. package/lib/Internal.d.ts +6 -4
  29. package/lib/Internal.d.ts.map +1 -1
  30. package/lib/Internal.js +12 -10
  31. package/lib/Internal.js.map +1 -1
  32. package/lib/Modifiers.d.ts +1 -1
  33. package/lib/Modifiers.js +2 -1
  34. package/lib/Modifiers.js.map +1 -1
  35. package/lib/index.d.ts +5 -5
  36. package/lib/index.js +19 -7
  37. package/lib/index.js.map +1 -1
  38. package/lib/langs/JavaScript.d.ts +2 -2
  39. package/lib/langs/JavaScript.d.ts.map +1 -1
  40. package/lib/langs/JavaScript.js +55 -29
  41. package/lib/langs/JavaScript.js.map +1 -1
  42. package/package.json +17 -13
  43. package/src/examples/quick-start.ts +172 -0
  44. package/src/lib/BuiltInTypeCompiler.ts +171 -171
  45. package/src/lib/BuiltInTypes.ts +36 -36
  46. package/src/lib/Common.ts +49 -10
  47. package/src/lib/Compiler.ts +354 -247
  48. package/src/lib/Context.ts +11 -13
  49. package/src/lib/FilterCompiler.ts +84 -84
  50. package/src/lib/InlineCompiler.ts +41 -15
  51. package/src/lib/Internal.ts +17 -13
  52. package/src/lib/Modifiers.ts +2 -2
  53. package/src/lib/index.ts +5 -5
  54. package/src/lib/langs/JavaScript.ts +84 -31
  55. package/src/test/00-all.ts +10 -10
  56. package/src/test/01-elemental-types.ts +1111 -1110
  57. package/src/test/02-array-and-list.ts +75 -75
  58. package/src/test/03-tuple.ts +87 -87
  59. package/src/test/04-from-string.ts +849 -848
  60. package/src/test/05-string-asserts.ts +422 -422
  61. package/src/test/06-structure.ts +107 -107
  62. package/src/test/07-modifiers.ts +151 -42
  63. package/src/test/08-map-and-dict.ts +46 -46
  64. package/src/test/09-exceptions.ts +30 -9
  65. package/src/test/abstracts.ts +83 -45
  66. package/dist/typeguard.amd.d.ts +0 -588
  67. package/dist/typeguard.amd.d.ts.map +0 -1
  68. package/dist/typeguard.amd.js +0 -2069
  69. package/dist/typeguard.amd.js.map +0 -1
  70. package/dist/typeguard.system.d.ts +0 -588
  71. package/dist/typeguard.system.d.ts.map +0 -1
  72. package/dist/typeguard.system.js +0 -2185
  73. package/dist/typeguard.system.js.map +0 -1
  74. package/src/samples/quick-start.ts +0 -52
  75. package/tsconfig-amd.json +0 -72
  76. package/tsconfig-systemjs.json +0 -72
@@ -1,588 +0,0 @@
1
- declare module "Common" {
2
- export type TypeChecker<T> = (v: unknown) => v is T;
3
- export interface ICompileOutputArgument {
4
- /**
5
- * The name of argument.
6
- */
7
- "name": string;
8
- /**
9
- * The type of argument.
10
- */
11
- "type": string;
12
- }
13
- export interface ICompileResult {
14
- /**
15
- * The arguments of checker.
16
- */
17
- "arguments": ICompileOutputArgument[];
18
- /**
19
- * The variable name of pre-defined type checkers.
20
- */
21
- "typeSlotName": string;
22
- /**
23
- * The source code of checker.
24
- */
25
- "source": string;
26
- /**
27
- * The predefined types used by this type.
28
- */
29
- "referredTypes": string[];
30
- }
31
- export interface ICompileOptions {
32
- /**
33
- * The rules to be compiled.
34
- */
35
- "rule": any;
36
- /**
37
- * Give this type a name, so it could be used as a pre-defined type.
38
- */
39
- "name"?: string;
40
- }
41
- export interface ILanguageBuilder {
42
- /**
43
- * Produce a switch-case statement.
44
- *
45
- * @param expr The switch base value
46
- * @param cases The cases
47
- */
48
- switchCase(expr: string, cases: string[]): string;
49
- /**
50
- * Produce a `case "x": {}` statement.
51
- *
52
- * @param cond The conditions
53
- * @param expr The statements
54
- */
55
- caseIf(cond: string[], expr: string): string;
56
- caseDefault(expr: string): string;
57
- array(v: any[]): string;
58
- /**
59
- * Check if an array is belong to a set.
60
- *
61
- * @param a The array
62
- * @param b The set.
63
- */
64
- arrayInSet(a: string, b: string): string;
65
- /**
66
- * Get the statement of calling a function.
67
- *
68
- * @param fnName The name of function to be called.
69
- * @param args The arguments for function.
70
- */
71
- call(fnName: string, ...args: string[]): string;
72
- varName(index: number | string): string;
73
- or(conditions: string[]): string;
74
- and(conditions: string[]): string;
75
- eq(a: string, b: string | number): string;
76
- ifElseOp(cond: string, a: string | number, b: string | number): string;
77
- ne(a: string, b: string | number): string;
78
- gt(a: string, b: string | number): string;
79
- gte(a: string, b: string | number): string;
80
- lt(a: string, b: string | number): string;
81
- lte(a: string, b: string | number): string;
82
- not(a: string): string;
83
- lowerCase(a: string): string;
84
- /**
85
- * a % b
86
- * @param a
87
- * @param b
88
- */
89
- modOf(a: string, b: string): string;
90
- literal(val: string | boolean | number): string;
91
- /**
92
- * Get the statement checking if a string expression includes a given
93
- * string expression.
94
- *
95
- * @param varName The name of string variable to be searched.
96
- * @param match The given string to match.
97
- */
98
- instr(expr: string, match: string): string;
99
- /**
100
- * Get the statement checking if a string expression starts with a given
101
- * string expression.
102
- *
103
- * @param varName The name of string variable to be searched.
104
- * @param match The given string to match.
105
- */
106
- startsWith(expr: string, match: string): string;
107
- /**
108
- * Get the statement checking if a string expression ends with a given
109
- * string expression.
110
- *
111
- * @param varName The name of string variable to be searched.
112
- * @param match The given string to match.
113
- */
114
- endsWith(expr: string, match: string): string;
115
- /**
116
- * Get the statement checking if a string expression matches a given regular
117
- * expression.
118
- *
119
- * @param expr The expression to be checked.
120
- * @param regExp The regular expression.
121
- */
122
- matchRegExp(expr: string, regExp: string): string;
123
- /**
124
- * Get the statement checking if an expression is a null value.
125
- *
126
- * @param expr The expression to be checked.
127
- * @param positive Assert positive or negative.
128
- */
129
- isNull(expr: string, positive: boolean): string;
130
- /**
131
- * Get the statement checking if an expression is a undefined value.
132
- *
133
- * @param expr The expression to be checked.
134
- * @param positive Assert positive or negative.
135
- */
136
- isUndefined(expr: string, positive: boolean): string;
137
- /**
138
- * Get the statement checking if an expression is a string value.
139
- *
140
- * @param expr The expression to be checked.
141
- * @param positive Assert positive or negative.
142
- */
143
- isString(expr: string, positive: boolean): string;
144
- /**
145
- * Get the statement checking if an expression is a structure.
146
- *
147
- * > All `map`, `dict`, `object` should be of this type.
148
- *
149
- * @param expr The expression to be checked.
150
- * @param positive Assert positive or negative.
151
- */
152
- isStrucutre(expr: string, positive: boolean): string;
153
- /**
154
- * Get the statement checking if an expression is an integer value.
155
- *
156
- * @param expr The expression to be checked.
157
- * @param positive Assert positive or negative.
158
- */
159
- isInteger(expr: string, positive: boolean): string;
160
- /**
161
- * Get the statement checking if an expression is a boolean value.
162
- *
163
- * @param expr The expression to be checked.
164
- * @param positive Assert positive or negative.
165
- */
166
- isBoolean(expr: string, positive: boolean): string;
167
- /**
168
- * Get the statement checking if an expression is a numeric value.
169
- *
170
- * @param expr The expression to be checked.
171
- * @param positive Assert positive or negative.
172
- */
173
- isNumeric(expr: string, positive: boolean): string;
174
- /**
175
- * Get the statement checking if an expression is a number.
176
- *
177
- * @param expr The expression to be checked.
178
- * @param positive Assert positive or negative.
179
- */
180
- isNumber(expr: string, positive: boolean): string;
181
- /**
182
- * Get the statement checking if an expression is an array.
183
- *
184
- * @param expr The expression to be checked.
185
- * @param positive Assert positive or negative.
186
- */
187
- isArray(expr: string, positive: boolean): string;
188
- /**
189
- * Get the statement of the length of an array.
190
- *
191
- * @param expr The expression of an array.
192
- */
193
- arrayLength(expr: string): string;
194
- /**
195
- * Get the statement of the length of a string.
196
- *
197
- * @param expr The expression of a string.
198
- */
199
- stringLength(expr: string): string;
200
- /**
201
- * Get the statement of the keys list of an dicitionary.
202
- *
203
- * @param expr The expression of dictionary.
204
- */
205
- keys(expr: string): string;
206
- forEach(arrayName: string, itemName: string, forBody: string): string;
207
- ifThen(condition: string, ifBody: string, elseBody?: string): string;
208
- forIn(objectName: string, keyName: string, itemName: string, forBody: string): string;
209
- fieldIndex(objectName: string, key: string): string;
210
- arrayIndex(arrayName: string, index: string | number): string;
211
- arraySlice(arrayName: string, start: string | number, end?: string | number): string;
212
- closure(params: string[], args: string[], body: string): string;
213
- readonly literalFalse: string;
214
- readonly literalTrue: string;
215
- readonly maxSafeInteger: string;
216
- readonly minSafeInteger: string;
217
- /**
218
- * Check if a expression is a true-equal value.
219
- *
220
- * @param expr The expression to be checked.
221
- */
222
- isTrueValue(expr: string): string;
223
- /**
224
- * Check if a expression is a false-equal value.
225
- *
226
- * @param expr The expression to be checked.
227
- */
228
- isFalseValue(expr: string): string;
229
- str2Int(expr: string): string;
230
- str2Float(expr: string): string;
231
- str2Bool(expr: string): string;
232
- returnValue(expr: string): string;
233
- series(statements: string[]): string;
234
- }
235
- export interface ICompiler {
236
- /**
237
- * Get the pre-defined type compilation result.
238
- *
239
- * @param name The name of type.
240
- */
241
- getPredefinedType(name: string): ICompileResult | null;
242
- /**
243
- * Compile the rule.
244
- *
245
- * @param options The compile options.
246
- */
247
- compile(options: ICompileOptions): ICompileResult;
248
- }
249
- }
250
- declare module "Internal" {
251
- /**
252
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
253
- *
254
- * Licensed under the Apache License, Version 2.0 (the "License");
255
- * you may not use this file except in compliance with the License.
256
- * You may obtain a copy of the License at
257
- *
258
- * https://www.apache.org/licenses/LICENSE-2.0
259
- *
260
- * Unless required by applicable law or agreed to in writing, software
261
- * distributed under the License is distributed on an "AS IS" BASIS,
262
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
263
- * See the License for the specific language governing permissions and
264
- * limitations under the License.
265
- */
266
- export const MAP_SUFFIX = "{}";
267
- export const LIST_SUFFIX = "[]";
268
- export const MODIFIER_PREFIX = "$.";
269
- export const FILTER_PREFIX = "|";
270
- export const IMPLICIT_SYMBOL = "?";
271
- export const PREDEF_TYPE_SYMBOL = "@";
272
- export const NEGATIVE_SYMBOL = "!";
273
- export const KEY_MAP_SUFFIX: string;
274
- export const KEY_LIST_SUFFIX: string;
275
- export const KEY_ARRAY_SUFFIX: RegExp;
276
- export const KEY_STRICT_SUFFIX = "->()";
277
- export const KEY_EQUAL_SUFFIX = "->(=)";
278
- export enum EFlags {
279
- FROM_STRING = 0,
280
- STRICT = 1,
281
- OPTIONAL = 2,
282
- REQUIRED = 3,
283
- ARRAY = 4
284
- }
285
- export enum EFlagValue {
286
- /**
287
- * Disabled.
288
- */
289
- NO = 0,
290
- /**
291
- * Enabled but not inheritable.
292
- */
293
- YES = 1,
294
- /**
295
- * Enabled and inheritable if not deep into sub element.
296
- */
297
- INHERIT = 2,
298
- /**
299
- * Enabled and inheritable even deep into sub element.
300
- */
301
- ELEMENT_INHERIT = 3
302
- }
303
- export interface IContextData {
304
- vName: string;
305
- flags: Record<string, EFlagValue>;
306
- }
307
- export interface IContext extends IContextData {
308
- trace: boolean;
309
- tracePoint: number;
310
- vCursor: number;
311
- readonly stack: IContextData[];
312
- readonly typeSlotName: string;
313
- readonly referredTypes: Record<string, boolean>;
314
- trap(subjChanged?: boolean): void;
315
- untrap(): void;
316
- }
317
- export interface IFilterCompiler {
318
- compile(rule: string, ctx: IContext): string;
319
- }
320
- export interface IBuiltInTypeCompiler {
321
- /**
322
- * Check if a type is a built-in type.
323
- *
324
- * @param type The type to be checked.
325
- */
326
- isBuiltInType(type: string): boolean;
327
- compile(type: string, ctx: IContext, args: number[]): string;
328
- /**
329
- * Check if a type is string type.
330
- *
331
- * @param type The type to be checked.
332
- */
333
- isStringType(type: string): boolean;
334
- isConstructed(type: string): boolean;
335
- isElemental(type: string): boolean;
336
- }
337
- }
338
- declare module "BuiltInTypes" {
339
- /**
340
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
341
- *
342
- * Licensed under the Apache License, Version 2.0 (the "License");
343
- * you may not use this file except in compliance with the License.
344
- * You may obtain a copy of the License at
345
- *
346
- * https://www.apache.org/licenses/LICENSE-2.0
347
- *
348
- * Unless required by applicable law or agreed to in writing, software
349
- * distributed under the License is distributed on an "AS IS" BASIS,
350
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
351
- * See the License for the specific language governing permissions and
352
- * limitations under the License.
353
- */
354
- export const STRING = "string";
355
- export const ASCII_STRING = "ascii_string";
356
- export const HEX_STRING = "hex_string";
357
- export const LATIN_STRING = "latin_string";
358
- export const NUMERIC = "numeric";
359
- export const SAFE_INT = "safe_int";
360
- export const INT = "int";
361
- export const INT8 = "int8";
362
- export const INT16 = "int16";
363
- export const INT32 = "int32";
364
- export const INT64 = "int64";
365
- export const SAFE_UINT = "safe_uint";
366
- export const UINT = "uint";
367
- export const UINT8 = "uint8";
368
- export const UINT16 = "uint16";
369
- export const UINT32 = "uint32";
370
- export const UINT64 = "uint64";
371
- export const BOOLEAN = "boolean";
372
- export const ARRAY = "array";
373
- export const ANY = "any";
374
- export const STRUCT = "struct";
375
- export const NULL = "null";
376
- export const UNDEFINED = "undefined";
377
- export const VOID = "void";
378
- export const FALSE = "false";
379
- export const TRUE = "true";
380
- export const FALSE_VALUE = "false_value";
381
- export const TRUE_VALUE = "true_value";
382
- export const OPTIONAL = "optional";
383
- export const REQUIRED = "required";
384
- export const DECIMAL = "decimal";
385
- export const NUMBER = "number";
386
- export const FLOAT = "float";
387
- export const UDECIMAL = "udecimal";
388
- export const UFLOAT = "ufloat";
389
- }
390
- declare module "BuiltInTypeCompiler" {
391
- /**
392
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
393
- *
394
- * Licensed under the Apache License, Version 2.0 (the "License");
395
- * you may not use this file except in compliance with the License.
396
- * You may obtain a copy of the License at
397
- *
398
- * https://www.apache.org/licenses/LICENSE-2.0
399
- *
400
- * Unless required by applicable law or agreed to in writing, software
401
- * distributed under the License is distributed on an "AS IS" BASIS,
402
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
403
- * See the License for the specific language governing permissions and
404
- * limitations under the License.
405
- */
406
- import * as C from "Common";
407
- import * as I from "Internal";
408
- export class BuiltInTypeCompiler implements I.IBuiltInTypeCompiler {
409
- private _lang;
410
- constructor(_lang: C.ILanguageBuilder);
411
- isStringType(type: string): boolean;
412
- isConstructed(type: string): boolean;
413
- isElemental(type: string): boolean;
414
- isBuiltInType(type: string): boolean;
415
- compile(type: string, ctx: I.IContext, args: number[]): string;
416
- private _isDecimal;
417
- private _isArray;
418
- private _isNumber;
419
- private _checkValidNumber;
420
- private _checkValidInteger;
421
- private _checkValidUInteger;
422
- private _isInteger;
423
- private _isString;
424
- }
425
- }
426
- declare module "Modifiers" {
427
- export const PREFIX: string;
428
- export const NOT: string;
429
- export const OR: string;
430
- export const AND: string;
431
- export const MAP: string;
432
- export const LIST: string;
433
- export const ARRAY: string;
434
- export const DICT: string;
435
- export const STRICT: string;
436
- export const STRING: string;
437
- export const TUPLE: string;
438
- export const EQUAL: string;
439
- export const TAG: string;
440
- export const TYPE: string;
441
- }
442
- declare module "Context" {
443
- /**
444
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
445
- *
446
- * Licensed under the Apache License, Version 2.0 (the "License");
447
- * you may not use this file except in compliance with the License.
448
- * You may obtain a copy of the License at
449
- *
450
- * https://www.apache.org/licenses/LICENSE-2.0
451
- *
452
- * Unless required by applicable law or agreed to in writing, software
453
- * distributed under the License is distributed on an "AS IS" BASIS,
454
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
455
- * See the License for the specific language governing permissions and
456
- * limitations under the License.
457
- */
458
- import * as i from "Internal";
459
- export class Context implements i.IContext {
460
- vName: string;
461
- readonly typeSlotName: string;
462
- readonly referredTypes: Record<string, boolean>;
463
- trace: boolean;
464
- tracePoint: number;
465
- vCursor: number;
466
- stack: i.IContextData[];
467
- flags: Record<string, i.EFlagValue>;
468
- constructor(vName: string, typeSlotName: string, referredTypes: Record<string, boolean>);
469
- trap(subjChanged?: boolean): void;
470
- untrap(): void;
471
- }
472
- }
473
- declare module "FilterCompiler" {
474
- /**
475
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
476
- *
477
- * Licensed under the Apache License, Version 2.0 (the "License");
478
- * you may not use this file except in compliance with the License.
479
- * You may obtain a copy of the License at
480
- *
481
- * https://www.apache.org/licenses/LICENSE-2.0
482
- *
483
- * Unless required by applicable law or agreed to in writing, software
484
- * distributed under the License is distributed on an "AS IS" BASIS,
485
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
486
- * See the License for the specific language governing permissions and
487
- * limitations under the License.
488
- */
489
- import * as C from "Common";
490
- import * as I from "Internal";
491
- export class FilterCompiler implements I.IFilterCompiler {
492
- private _lang;
493
- private _bitc;
494
- constructor(_lang: C.ILanguageBuilder, _bitc: I.IBuiltInTypeCompiler);
495
- compile(rule: string, ctx: I.IContext): string;
496
- }
497
- }
498
- declare module "Compiler" {
499
- import * as C from "Common";
500
- /**
501
- * Create a compiler object.
502
- *
503
- * @param lang The language builder.
504
- */
505
- export function createCompiler(lang: C.ILanguageBuilder): C.ICompiler;
506
- }
507
- declare module "langs/JavaScript" {
508
- /**
509
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
510
- *
511
- * Licensed under the Apache License, Version 2.0 (the "License");
512
- * you may not use this file except in compliance with the License.
513
- * You may obtain a copy of the License at
514
- *
515
- * https://www.apache.org/licenses/LICENSE-2.0
516
- *
517
- * Unless required by applicable law or agreed to in writing, software
518
- * distributed under the License is distributed on an "AS IS" BASIS,
519
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
520
- * See the License for the specific language governing permissions and
521
- * limitations under the License.
522
- */
523
- import * as C from "Common";
524
- /**
525
- * Create a language builder object for JavaScript.
526
- */
527
- export function createJavaScriptLanguageBuilder(): C.ILanguageBuilder;
528
- }
529
- declare module "InlineCompiler" {
530
- import * as C from "Common";
531
- export interface IInlineCompileOptions extends C.ICompileOptions {
532
- /**
533
- * Added `debugger` statement before executing checking code.
534
- */
535
- "stopOnEntry"?: boolean;
536
- }
537
- export interface IInlineCompiler {
538
- /**
539
- * Compile the rule and wrap the result into a JavaScript function, so that
540
- * it could be invoked directly.
541
- *
542
- * @param options The options of compilation.
543
- */
544
- compile<T>(options: IInlineCompileOptions): C.TypeChecker<T>;
545
- /**
546
- * Get the type-checker of a pre-defined type.
547
- *
548
- * @param name The name of the pre-defined type.
549
- */
550
- getPredefinedType<T>(name: string): C.TypeChecker<T>;
551
- /**
552
- * Check if a pre-defined type is compiled.
553
- *
554
- * @param name The name of the pre-defined type.
555
- */
556
- hasPredefinedType(name: string): boolean;
557
- /**
558
- * Get the names list of undefined but referred pre-defined types.
559
- */
560
- detectUndefinedTypes(): string[];
561
- }
562
- /**
563
- * Create a compiler object that compiles the rule into JavaScript lambda code.
564
- */
565
- export function createInlineCompiler(): IInlineCompiler;
566
- }
567
- declare module "index" {
568
- /**
569
- * Copyright 2019 Angus.Fenying <fenying@litert.org>
570
- *
571
- * Licensed under the Apache License, Version 2.0 (the "License");
572
- * you may not use this file except in compliance with the License.
573
- * You may obtain a copy of the License at
574
- *
575
- * https://www.apache.org/licenses/LICENSE-2.0
576
- *
577
- * Unless required by applicable law or agreed to in writing, software
578
- * distributed under the License is distributed on an "AS IS" BASIS,
579
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
580
- * See the License for the specific language governing permissions and
581
- * limitations under the License.
582
- */
583
- export * from "InlineCompiler";
584
- export * from "langs/JavaScript";
585
- export * from "Compiler";
586
- export * from "Common";
587
- }
588
- //# sourceMappingURL=typeguard.system.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeguard.system.d.ts","sourceRoot":"","sources":["../src/lib/Common.ts","../src/lib/Internal.ts","../src/lib/BuiltInTypes.ts","../src/lib/BuiltInTypeCompiler.ts","../src/lib/Modifiers.ts","../src/lib/Context.ts","../src/lib/FilterCompiler.ts","../src/lib/Compiler.ts","../src/lib/langs/JavaScript.ts","../src/lib/InlineCompiler.ts","../src/lib/index.ts"],"names":[],"mappings":"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"}