@fncts/schema 0.0.14 → 0.0.16

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 (45) hide show
  1. package/AST.d.ts +29 -12
  2. package/Guard.d.ts +9 -0
  3. package/ParseError.d.ts +40 -3
  4. package/Parser/api.d.ts +0 -6
  5. package/Parser/interpreter.d.ts +1 -2
  6. package/Schema/api.d.ts +1 -1
  7. package/Schema/derivations.d.ts +1 -1
  8. package/Show.d.ts +1 -1
  9. package/_cjs/AST.cjs +115 -65
  10. package/_cjs/AST.cjs.map +1 -1
  11. package/_cjs/Guard.cjs +278 -0
  12. package/_cjs/Guard.cjs.map +1 -0
  13. package/_cjs/ParseError.cjs +77 -3
  14. package/_cjs/ParseError.cjs.map +1 -1
  15. package/_cjs/Parser/api.cjs +11 -23
  16. package/_cjs/Parser/api.cjs.map +1 -1
  17. package/_cjs/Parser/interpreter.cjs +93 -141
  18. package/_cjs/Parser/interpreter.cjs.map +1 -1
  19. package/_cjs/Schema/api.cjs +28 -29
  20. package/_cjs/Schema/api.cjs.map +1 -1
  21. package/_cjs/Show.cjs +23 -12
  22. package/_cjs/Show.cjs.map +1 -1
  23. package/_mjs/AST.mjs +107 -61
  24. package/_mjs/AST.mjs.map +1 -1
  25. package/_mjs/Guard.mjs +269 -0
  26. package/_mjs/Guard.mjs.map +1 -0
  27. package/_mjs/ParseError.mjs +72 -2
  28. package/_mjs/ParseError.mjs.map +1 -1
  29. package/_mjs/Parser/api.mjs +10 -21
  30. package/_mjs/Parser/api.mjs.map +1 -1
  31. package/_mjs/Parser/interpreter.mjs +94 -142
  32. package/_mjs/Parser/interpreter.mjs.map +1 -1
  33. package/_mjs/Schema/api.mjs +28 -29
  34. package/_mjs/Schema/api.mjs.map +1 -1
  35. package/_mjs/Show.mjs +23 -12
  36. package/_mjs/Show.mjs.map +1 -1
  37. package/_src/AST.ts +96 -47
  38. package/_src/Guard.ts +268 -0
  39. package/_src/ParseError.ts +88 -4
  40. package/_src/Parser/api.ts +8 -21
  41. package/_src/Parser/interpreter.ts +87 -121
  42. package/_src/Schema/api.ts +4 -11
  43. package/_src/Schema/derivations.ts +1 -1
  44. package/_src/Show.ts +28 -15
  45. package/package.json +3 -3
@@ -2,14 +2,13 @@ const fileName_1 = "(@fncts/schema) src/Schema/api.ts";
2
2
  import * as tsplus_module_1 from "@fncts/schema/Schema/definition";
3
3
  import * as tsplus_module_2 from "@fncts/base/collection/immutable/Vector/api";
4
4
  import * as tsplus_module_3 from "@fncts/schema/AST";
5
- import * as tsplus_module_4 from "@fncts/schema/ParseResult";
6
- import * as tsplus_module_5 from "@fncts/schema/ParseError";
7
- import * as tsplus_module_6 from "@fncts/schema/ASTAnnotation";
8
- import * as tsplus_module_7 from "@fncts/schema/Parser/api";
9
- import * as tsplus_module_8 from "@fncts/base/data/Maybe/api";
10
- import * as tsplus_module_9 from "@fncts/schema/Schema/api/maybe";
11
- import * as tsplus_module_10 from "@fncts/base/data/Maybe/constructors";
12
- import * as tsplus_module_11 from "@fncts/base/data/Maybe/definition";
5
+ import * as tsplus_module_4 from "@fncts/schema/ASTAnnotation";
6
+ import * as tsplus_module_5 from "@fncts/schema/ParseResult";
7
+ import * as tsplus_module_6 from "@fncts/schema/Parser/api";
8
+ import * as tsplus_module_7 from "@fncts/base/data/Maybe/api";
9
+ import * as tsplus_module_8 from "@fncts/schema/Schema/api/maybe";
10
+ import * as tsplus_module_9 from "@fncts/base/data/Maybe/constructors";
11
+ import * as tsplus_module_10 from "@fncts/base/data/Maybe/definition";
13
12
  export const make = make_1;
14
13
  export const annotate = annotate_1;
15
14
  export const filter = filter_1;
@@ -48,7 +47,7 @@ export function declaration(typeParameters, type, decode, annotations) {
48
47
  }
49
48
  function filter_1(predicate) {
50
49
  return self => {
51
- const ast = tsplus_module_3.createRefinement(self.ast, a => predicate(a) ? tsplus_module_4.succeed(a) : tsplus_module_4.fail(tsplus_module_5.typeError(ast, a)), false);
50
+ const ast = tsplus_module_3.createRefinement(self.ast, predicate);
52
51
  return make_1(ast);
53
52
  };
54
53
  }
@@ -57,7 +56,7 @@ function filter_1(predicate) {
57
56
  */
58
57
  export function brand(validation) {
59
58
  return self => {
60
- const ast = tsplus_module_3.createRefinement(self.ast, a => validation.validate(a) ? tsplus_module_4.succeed(a) : tsplus_module_4.fail(tsplus_module_5.typeError(ast, a)), false, self.ast.annotations.annotate(tsplus_module_6.Brand, tsplus_module_2.vector(validation)));
59
+ const ast = tsplus_module_3.createRefinement(self.ast, validation.validate, self.ast.annotations.annotate(tsplus_module_4.Brand, tsplus_module_2.vector(validation)));
61
60
  return make_1(ast);
62
61
  };
63
62
  }
@@ -147,14 +146,14 @@ export const date = date_1;
147
146
  */
148
147
  export const implicitDate = /*#__PURE__*/transformOrFail_1(date_1, (input, options) => {
149
148
  if (typeof input === "string" || typeof input === "number") {
150
- return tsplus_module_4.succeed(new Date(input));
149
+ return tsplus_module_5.succeed(new Date(input));
151
150
  } else {
152
- return tsplus_module_7.decode(date_1)(input, options);
151
+ return tsplus_module_6.decode(date_1)(input, options);
153
152
  }
154
- }, input => tsplus_module_4.succeed(input))(unknown_1);
153
+ }, input => tsplus_module_5.succeed(input))(unknown_1);
155
154
  /**
156
- * @tsplus static fncts.schema.SchemaOps union
157
155
  * @tsplus derive fncts.schema.Schema<|> 30
156
+ * @tsplus static fncts.schema.SchemaOps union
158
157
  */
159
158
  function union_1(...members) {
160
159
  return make_1(tsplus_module_3.createUnion(tsplus_module_2.from(members.map(m => m.ast))));
@@ -176,28 +175,28 @@ export function uniqueSymbol(symbol, annotations) {
176
175
  */
177
176
  export function optional(self) {
178
177
  return make_1(self.ast.clone({
179
- annotations: self.ast.annotations.annotate(tsplus_module_6.Optional, true)
178
+ annotations: self.ast.annotations.annotate(tsplus_module_4.Optional, true)
180
179
  }));
181
180
  }
182
181
  /**
183
182
  * @tsplus fluent fncts.schema.Schema isOptional
184
183
  */
185
184
  function isOptional_1(self) {
186
- return tsplus_module_8.getOrElse(() => false)(self.ast.annotations.get(tsplus_module_6.Optional));
185
+ return tsplus_module_7.getOrElse(() => false)(self.ast.annotations.get(tsplus_module_4.Optional));
187
186
  }
188
187
  /**
189
188
  * @tsplus getter fncts.schema.Schema parseOptional
190
189
  */
191
190
  export function parseOptional(self) {
192
191
  return make_1(self.ast.clone({
193
- annotations: self.ast.annotations.annotate(tsplus_module_6.ParseOptional, true)
192
+ annotations: self.ast.annotations.annotate(tsplus_module_4.ParseOptional, true)
194
193
  }));
195
194
  }
196
195
  /**
197
196
  * @tsplus fluent fncts.schema.Schema isParseOptional
198
197
  */
199
198
  function isParseOptional_1(self) {
200
- return tsplus_module_8.getOrElse(() => false)(self.ast.annotations.get(tsplus_module_6.ParseOptional));
199
+ return tsplus_module_7.getOrElse(() => false)(self.ast.annotations.get(tsplus_module_4.ParseOptional));
201
200
  }
202
201
  /**
203
202
  * @tsplus static fncts.schema.SchemaOps struct
@@ -213,9 +212,9 @@ export function struct(fields) {
213
212
  const to = make_1(tsplus_module_3.createTypeLiteral(tsplus_module_2.map(p => {
214
213
  if (tsplus_module_2.includes(p.name)(parseOptionalKeys)) {
215
214
  if (tsplus_module_3.isLazy(fields[p.name].ast)) {
216
- return tsplus_module_3.createPropertySignature(p.name, tsplus_module_3.createLazy(() => tsplus_module_9.maybe(fields[p.name]).ast), true, p.isReadonly);
215
+ return tsplus_module_3.createPropertySignature(p.name, tsplus_module_3.createLazy(() => tsplus_module_8.maybe(fields[p.name]).ast), true, p.isReadonly);
217
216
  }
218
- return tsplus_module_3.createPropertySignature(p.name, tsplus_module_9.maybe(fields[p.name]).ast, true, p.isReadonly);
217
+ return tsplus_module_3.createPropertySignature(p.name, tsplus_module_8.maybe(fields[p.name]).ast, true, p.isReadonly);
219
218
  }
220
219
  return p;
221
220
  })(propertySignatures), tsplus_module_2.empty()));
@@ -224,7 +223,7 @@ export function struct(fields) {
224
223
  ...input
225
224
  };
226
225
  for (const key of parseOptionalKeys) {
227
- output[key] = tsplus_module_10.fromNullable(input[key]);
226
+ output[key] = tsplus_module_9.fromNullable(input[key]);
228
227
  }
229
228
  return output;
230
229
  }, input => {
@@ -233,11 +232,11 @@ export function struct(fields) {
233
232
  };
234
233
  for (const key of parseOptionalKeys) {
235
234
  const value = input[key];
236
- if (tsplus_module_11.isNothing(value)) {
235
+ if (tsplus_module_10.isNothing(value)) {
237
236
  delete output[key];
238
237
  continue;
239
238
  }
240
- output[key] = tsplus_module_8.toUndefined(value);
239
+ output[key] = tsplus_module_7.toUndefined(value);
241
240
  }
242
241
  return output;
243
242
  })(from);
@@ -246,7 +245,7 @@ export function struct(fields) {
246
245
  * @tsplus static fncts.schema.SchemaOps tuple
247
246
  */
248
247
  export function tuple(...elements) {
249
- return make_1(tsplus_module_3.createTuple(tsplus_module_2.from(elements.map(schema => tsplus_module_3.createElement(schema.ast, false))), tsplus_module_10.nothing(fileName_1 + ":340:105"), true));
248
+ return make_1(tsplus_module_3.createTuple(tsplus_module_2.from(elements.map(schema => tsplus_module_3.createElement(schema.ast, false))), tsplus_module_9.nothing(fileName_1 + ":333:105"), true));
250
249
  }
251
250
  /**
252
251
  * @tsplus static fncts.schema.SchemaOps lazy
@@ -259,14 +258,14 @@ export function lazy(f, annotations) {
259
258
  * @tsplus getter fncts.schema.Schema array
260
259
  */
261
260
  export function array(item) {
262
- return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(), tsplus_module_10.just(tsplus_module_2.vector(item.ast), fileName_1 + ":356:61"), true));
261
+ return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(), tsplus_module_9.just(tsplus_module_2.vector(item.ast), fileName_1 + ":349:61"), true));
263
262
  }
264
263
  /**
265
264
  * @tsplus static fncts.schema.SchemaOps mutableArray
266
265
  * @tsplus getter fncts.schema.Schema mutableArray
267
266
  */
268
267
  export function mutableArray(item) {
269
- return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(), tsplus_module_10.just(tsplus_module_2.vector(item.ast), fileName_1 + ":364:61"), false));
268
+ return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(), tsplus_module_9.just(tsplus_module_2.vector(item.ast), fileName_1 + ":357:61"), false));
270
269
  }
271
270
  /**
272
271
  * @tsplus static fncts.schema.SchemaOps record
@@ -365,7 +364,7 @@ export function extend(that) {
365
364
  */
366
365
  function instanceOf_1(constructor) {
367
366
  return self => {
368
- return annotate_1(tsplus_module_6.Description, `an instance of ${constructor.name}`)(filter_1(value => value instanceof constructor)(self));
367
+ return annotate_1(tsplus_module_4.Description, `an instance of ${constructor.name}`)(filter_1(value => value instanceof constructor)(self));
369
368
  };
370
369
  }
371
370
  /**
@@ -373,7 +372,7 @@ function instanceOf_1(constructor) {
373
372
  */
374
373
  function transformOrFail_1(to, decode, encode) {
375
374
  return from => {
376
- return make_1(tsplus_module_3.createTransform(from.ast, to.ast, decode, encode, false));
375
+ return make_1(tsplus_module_3.createTransform(from.ast, to.ast, decode, encode));
377
376
  };
378
377
  }
379
378
  /**
@@ -381,7 +380,7 @@ function transformOrFail_1(to, decode, encode) {
381
380
  */
382
381
  function transform_1(to, decode, encode) {
383
382
  return from => {
384
- return transformOrFail_1(to, (input, options) => tsplus_module_4.succeed(decode(input, options)), (input, options) => tsplus_module_4.succeed(encode(input, options)))(from);
383
+ return transformOrFail_1(to, (input, options) => tsplus_module_5.succeed(decode(input, options)), (input, options) => tsplus_module_5.succeed(encode(input, options)))(from);
385
384
  };
386
385
  }
387
386
  //# sourceMappingURL=api.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","names":["make","make_1","annotate","annotate_1","filter","filter_1","union","union_1","isOptional","isOptional_1","isParseOptional","isParseOptional_1","enum_","enum_1","instanceOf","instanceOf_1","transformOrFail","transformOrFail_1","transform","transform_1","show","getParameter","concrete","TemplateLiteralSpan","ownKeys","ast","tsplus_module_1","Schema","annotation","value","self","clone","annotations","declaration","typeParameters","type","decode","tsplus_module_3","createDeclaration","tsplus_module_2","map","tp","predicate","createRefinement","a","tsplus_module_4","succeed","fail","tsplus_module_5","typeError","brand","validation","validate","tsplus_module_6","Brand","vector","makeLiteral","createLiteral","literal","literals","never","neverKeyword","unknown_1","unknownKeyword","unknown","any","anyKeyword","_undefined_1","undefinedKeyword","_undefined","undefined","_null_1","_null","null","_void_1","voidKeyword","_void","void","string","stringKeyword","number","numberKeyword","boolean","booleanKeyword","bigint","bigIntKeyword","symbol","symbolKeyword","object_1","objectKeyword","object","date_1","Date","date","implicitDate","input","options","tsplus_module_7","members","createUnion","from","m","nullable","uniqueSymbol","createUniqueSymbol","optional","Optional","tsplus_module_8","getOrElse","get","parseOptional","ParseOptional","struct","fields","parseOptionalKeys","key","createTypeLiteral","createPropertySignature","empty","isEmpty","propertySignatures","p","includes","name","isReadonly","to","isLazy","createLazy","tsplus_module_9","maybe","output","tsplus_module_10","fromNullable","tsplus_module_11","isNothing","toUndefined","tuple","elements","createTuple","schema","createElement","nothing","fileName_1","lazy","f","array","item","just","mutableArray","record","createRecord","enums","createEnum","Object","keys","enum","getTemplateLiterals","_tag","createTemplateLiteral","flatMap","types","Error","combineTemplateLiterals","b","isLiteral","String","head","spans","isNonEmpty","last","unsafeLast","append","slice","concat","templateLiteral","tail","span","keyof","isOverlappingPropertySignatures","x","y","some","px","py","isOverlappingIndexSignatures","ix","iy","bx","parameter","by","isStringKeyword","isSymbolKeyword","indexSignatures","extend","that","selfTypes","isUnion","thatTypes","every","isTypeLiteral","constructor","Description","encode","createTransform"],"sources":["../../_src/Schema/api.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"api.mjs","names":["make","make_1","annotate","annotate_1","filter","filter_1","union","union_1","isOptional","isOptional_1","isParseOptional","isParseOptional_1","enum_","enum_1","instanceOf","instanceOf_1","transformOrFail","transformOrFail_1","transform","transform_1","show","getParameter","concrete","TemplateLiteralSpan","ownKeys","ast","tsplus_module_1","Schema","annotation","value","self","clone","annotations","declaration","typeParameters","type","decode","tsplus_module_3","createDeclaration","tsplus_module_2","map","tp","predicate","createRefinement","brand","validation","validate","tsplus_module_4","Brand","vector","makeLiteral","createLiteral","literal","literals","never","neverKeyword","unknown_1","unknownKeyword","unknown","any","anyKeyword","_undefined_1","undefinedKeyword","_undefined","undefined","_null_1","_null","null","_void_1","voidKeyword","_void","void","string","stringKeyword","number","numberKeyword","boolean","booleanKeyword","bigint","bigIntKeyword","symbol","symbolKeyword","object_1","objectKeyword","object","date_1","Date","date","implicitDate","input","options","tsplus_module_5","succeed","tsplus_module_6","members","createUnion","from","m","nullable","uniqueSymbol","createUniqueSymbol","optional","Optional","tsplus_module_7","getOrElse","get","parseOptional","ParseOptional","struct","fields","parseOptionalKeys","key","createTypeLiteral","createPropertySignature","empty","isEmpty","propertySignatures","p","includes","name","isReadonly","to","isLazy","createLazy","tsplus_module_8","maybe","output","tsplus_module_9","fromNullable","tsplus_module_10","isNothing","toUndefined","tuple","elements","createTuple","schema","createElement","nothing","fileName_1","lazy","f","array","item","just","mutableArray","record","createRecord","enums","createEnum","Object","keys","enum","getTemplateLiterals","_tag","createTemplateLiteral","flatMap","types","Error","combineTemplateLiterals","a","b","isLiteral","String","head","spans","isNonEmpty","last","unsafeLast","append","slice","concat","templateLiteral","tail","span","keyof","isOverlappingPropertySignatures","x","y","some","px","py","isOverlappingIndexSignatures","ix","iy","bx","parameter","by","isStringKeyword","isSymbolKeyword","indexSignatures","extend","that","selfTypes","isUnion","thatTypes","every","isTypeLiteral","constructor","Description","encode","createTransform"],"sources":["../../_src/Schema/api.ts"],"sourcesContent":[null],"mappings":"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"}
package/_mjs/Show.mjs CHANGED
@@ -5,15 +5,26 @@ import * as tsplus_module_4 from "@fncts/base/control/Eval/instance";
5
5
  import * as tsplus_module_5 from "@fncts/base/control/Eval/api";
6
6
  import * as tsplus_module_6 from "@fncts/schema/ASTAnnotation";
7
7
  import * as tsplus_module_7 from "@fncts/base/data/Maybe/destructors";
8
+ import { globalValue } from "@fncts/base/data/Global";
8
9
  import { memoize } from "@fncts/schema/utils";
10
+ const showMemoMap = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("fncts.schema.Guard.showMemoMap"), () => new WeakMap());
11
+ function goMemo(ast) {
12
+ const memo = showMemoMap.get(ast);
13
+ if (memo) {
14
+ return memo;
15
+ }
16
+ const s = go(ast);
17
+ showMemoMap.set(ast, s);
18
+ return s;
19
+ }
9
20
  /**
10
21
  * @tsplus getter fncts.schema.Schema show
11
22
  */
12
23
  export function show(self) {
13
- const ev = go(self.ast);
24
+ const ev = goMemo(self.ast);
14
25
  return tsplus_module_1.run(ev);
15
26
  }
16
- const go = /*#__PURE__*/memoize(function go(ast) {
27
+ function go(ast) {
17
28
  void 0;
18
29
  switch (ast._tag) {
19
30
  case 0 /* ASTTag.Declaration */:
@@ -25,7 +36,7 @@ const go = /*#__PURE__*/memoize(function go(ast) {
25
36
  } else {
26
37
  return `${id}<${tsplus_module_3.join(", ")(ts)}>`;
27
38
  }
28
- })(tsplus_module_3._traverse(ast.typeParameters)(tsplus_module_4.Applicative)(go));
39
+ })(tsplus_module_3._traverse(ast.typeParameters)(tsplus_module_4.Applicative)(goMemo));
29
40
  })(ast.annotations.get(tsplus_module_6.Identifier));
30
41
  }
31
42
  case 1 /* ASTTag.Literal */:
@@ -75,7 +86,7 @@ const go = /*#__PURE__*/memoize(function go(ast) {
75
86
  const middle = restElements.length > 0 ? ", " : "";
76
87
  const suffix = tsplus_module_3.join(", ")(tsplus_module_3.map(s => `...${s}`)(restElements)) + "]";
77
88
  return prefix + middle + suffix;
78
- }))(tsplus_module_7.match(() => tsplus_module_2.now(tsplus_module_3.empty()), rest => tsplus_module_3._traverse(rest)(tsplus_module_4.Applicative)(go))(ast.rest)))(tsplus_module_3._traverse(tsplus_module_3.map(element => element.type)(ast.elements))(tsplus_module_4.Applicative)(go));
89
+ }))(tsplus_module_7.match(() => tsplus_module_2.now(tsplus_module_3.empty()), rest => tsplus_module_3._traverse(rest)(tsplus_module_4.Applicative)(goMemo))(ast.rest)))(tsplus_module_3._traverse(ast.elements)(tsplus_module_4.Applicative)(element => goMemo(element.type)));
79
90
  case 17 /* ASTTag.TypeLiteral */:
80
91
  return tsplus_module_5.flatMap(propertySignatures => tsplus_module_5.map(indexSignatures => {
81
92
  const required = [];
@@ -93,14 +104,14 @@ const go = /*#__PURE__*/memoize(function go(ast) {
93
104
  const index = tsplus_module_3.join(", ")(tsplus_module_3.map(([param, type]) => `[x: ${param}]: ${type}`)(indexSignatures));
94
105
  const suffix = "}";
95
106
  return prefix + " " + properties + (index.length === 0 ? "" : ", ") + index + " " + suffix;
96
- })(tsplus_module_3._traverse(ast.indexSignatures)(tsplus_module_4.Applicative)(is => tsplus_module_5.zip(go(is.type))(go(is.parameter)))))(tsplus_module_3._traverse(ast.propertySignatures)(tsplus_module_4.Applicative)(ps => go(ps.type)));
107
+ })(tsplus_module_3._traverse(ast.indexSignatures)(tsplus_module_4.Applicative)(is => tsplus_module_5.zip(goMemo(is.type))(goMemo(is.parameter)))))(tsplus_module_3._traverse(ast.propertySignatures)(tsplus_module_4.Applicative)(ps => goMemo(ps.type)));
97
108
  case 18 /* ASTTag.Union */:
98
- return tsplus_module_5.map(ts => tsplus_module_3.join(" | ")(ts))(tsplus_module_3._traverse(ast.types)(tsplus_module_4.Applicative)(go));
109
+ return tsplus_module_5.map(ts => tsplus_module_3.join(" | ")(ts))(tsplus_module_3._traverse(ast.types)(tsplus_module_4.Applicative)(goMemo));
99
110
  case 19 /* ASTTag.Lazy */:
100
111
  {
101
- const f = () => go(ast.getAST());
112
+ const f = () => goMemo(ast.getAST());
102
113
  const get = memoize(f);
103
- return tsplus_module_2.defer(() => get(f));
114
+ return tsplus_module_2.defer(() => get());
104
115
  }
105
116
  case 14 /* ASTTag.Enum */:
106
117
  {
@@ -108,10 +119,10 @@ const go = /*#__PURE__*/memoize(function go(ast) {
108
119
  }
109
120
  case 20 /* ASTTag.Refinement */:
110
121
  {
111
- return tsplus_module_7.match(() => tsplus_module_5.map(from => `Refined<${from}>`)(go(ast.from)), id => tsplus_module_2.now(id))(ast.annotations.get(tsplus_module_6.Identifier));
122
+ return tsplus_module_7.match(() => tsplus_module_5.map(from => `Refined<${from}>`)(goMemo(ast.from)), id => tsplus_module_2.now(id))(ast.annotations.get(tsplus_module_6.Identifier));
112
123
  }
113
124
  case 21 /* ASTTag.Transform */:
114
- return go(ast.to);
125
+ return goMemo(ast.to);
115
126
  case 22 /* ASTTag.Validation */:
116
127
  {
117
128
  return tsplus_module_5.map(from => {
@@ -120,10 +131,10 @@ const go = /*#__PURE__*/memoize(function go(ast) {
120
131
  return from;
121
132
  }
122
133
  return `${from} & ${validationNames}`;
123
- })(go(ast.from));
134
+ })(goMemo(ast.from));
124
135
  }
125
136
  }
126
- });
137
+ }
127
138
  function formatTemplateLiteralSpan(span) {
128
139
  switch (span.type._tag) {
129
140
  case 8 /* ASTTag.StringKeyword */:
package/_mjs/Show.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Show.mjs","names":["memoize","show","self","ev","go","ast","tsplus_module_1","run","_tag","tsplus_module_7","match","tsplus_module_2","now","id","tsplus_module_5","map","ts","length","tsplus_module_3","join","_traverse","typeParameters","tsplus_module_4","Applicative","annotations","get","tsplus_module_6","Identifier","literal","toString","symbol","formatTemplateLiteral","flatMap","elements","restElements","always","isReadonly","unsafeGet","prefix","middle","suffix","s","empty","rest","element","type","propertySignatures","indexSignatures","required","optional","forEachWithIndex","i","ps","name","isOptional","push","properties","concat","sort","k1","k2","toLocaleString","localeCompare","propertyKey","String","index","param","is","zip","parameter","types","f","getAST","defer","enums","from","to","validationNames","v","validation","formatTemplateLiteralSpan","span","head","spans"],"sources":["../_src/Show.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"Show.mjs","names":["globalValue","memoize","showMemoMap","Symbol","for","WeakMap","goMemo","ast","memo","get","s","go","set","show","self","ev","tsplus_module_1","run","_tag","tsplus_module_7","match","tsplus_module_2","now","id","tsplus_module_5","map","ts","length","tsplus_module_3","join","_traverse","typeParameters","tsplus_module_4","Applicative","annotations","tsplus_module_6","Identifier","literal","toString","symbol","formatTemplateLiteral","flatMap","elements","restElements","always","isReadonly","unsafeGet","prefix","middle","suffix","empty","rest","element","type","propertySignatures","indexSignatures","required","optional","forEachWithIndex","i","ps","name","isOptional","push","properties","concat","sort","k1","k2","toLocaleString","localeCompare","propertyKey","String","index","param","is","zip","parameter","types","f","getAST","defer","enums","from","to","validationNames","v","validation","formatTemplateLiteralSpan","span","head","spans"],"sources":["../_src/Show.ts"],"sourcesContent":[null],"mappings":"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"}
package/_src/AST.ts CHANGED
@@ -623,6 +623,11 @@ export function createTuple(
623
623
  return new Tuple(elements, rest, isReadonly, annotations);
624
624
  }
625
625
 
626
+ /**
627
+ * @tsplus static fncts.schema.ASTOps unknownArray
628
+ */
629
+ export const unknownArray = AST.createTuple(Vector.empty(), Just(Vector(AST.unknownKeyword)), true);
630
+
626
631
  /*
627
632
  * PropertySignature
628
633
  */
@@ -732,6 +737,17 @@ export function createTypeLiteral(
732
737
  return new TypeLiteral(propertySignatures, indexSignatures, annotations);
733
738
  }
734
739
 
740
+ /**
741
+ * @tsplus static fncts.schema.ASTOps unknownRecord
742
+ */
743
+ export const unknownRecord = AST.createTypeLiteral(
744
+ Vector.empty(),
745
+ Vector(
746
+ AST.createIndexSignature(AST.stringKeyword, AST.unknownKeyword, true),
747
+ AST.createIndexSignature(AST.symbolKeyword, AST.unknownKeyword, true),
748
+ ),
749
+ );
750
+
735
751
  /*
736
752
  * Union
737
753
  */
@@ -814,18 +830,20 @@ export class Refinement extends AST {
814
830
  readonly _tag = ASTTag.Refinement;
815
831
  constructor(
816
832
  readonly from: AST,
817
- readonly decode: (input: any, options?: ParseOptions) => ParseResult<any>,
818
- readonly isReversed: boolean,
833
+ readonly predicate: (input: any) => boolean,
819
834
  readonly annotations: ASTAnnotationMap = ASTAnnotationMap.empty,
820
835
  ) {
821
836
  super();
822
837
  }
823
838
 
839
+ decode(input: any, options?: ParseOptions): ParseResult<any> {
840
+ return this.predicate(input) ? ParseResult.succeed(input) : ParseResult.fail(ParseError.TypeError(this, input));
841
+ }
842
+
824
843
  clone(newProperties: Partial<this>): AST {
825
844
  return new Refinement(
826
845
  newProperties.from ?? this.from,
827
- newProperties.decode ?? this.decode,
828
- newProperties.isReversed ?? this.isReversed,
846
+ newProperties.predicate ?? this.predicate,
829
847
  newProperties.annotations ?? this.annotations,
830
848
  );
831
849
  }
@@ -836,11 +854,10 @@ export class Refinement extends AST {
836
854
  */
837
855
  export function createRefinement(
838
856
  from: AST,
839
- decode: (input: any, options?: ParseOptions) => ParseResult<any>,
840
- isReversed: boolean,
857
+ predicate: (input: any) => boolean,
841
858
  annotations?: ASTAnnotationMap,
842
859
  ): Refinement {
843
- return new Refinement(from, decode, isReversed, annotations);
860
+ return new Refinement(from, predicate, annotations);
844
861
  }
845
862
 
846
863
  export function isRefinement(self: AST): self is Refinement {
@@ -864,7 +881,6 @@ export class Transform extends AST {
864
881
  readonly to: AST,
865
882
  readonly decode: (input: any, options?: ParseOptions) => ParseResult<any>,
866
883
  readonly encode: (input: any, options?: ParseOptions) => ParseResult<any>,
867
- readonly isReversed: boolean,
868
884
  readonly annotations: ASTAnnotationMap = ASTAnnotationMap.empty,
869
885
  ) {
870
886
  super();
@@ -876,7 +892,6 @@ export class Transform extends AST {
876
892
  newProperties.to ?? this.to,
877
893
  newProperties.decode ?? this.decode,
878
894
  newProperties.encode ?? this.encode,
879
- newProperties.isReversed ?? this.isReversed,
880
895
  newProperties.annotations ?? this.annotations,
881
896
  );
882
897
  }
@@ -890,10 +905,9 @@ export function createTransform(
890
905
  to: AST,
891
906
  decode: (input: any, options?: ParseOptions) => ParseResult<any>,
892
907
  encode: (input: any, options?: ParseOptions) => ParseResult<any>,
893
- isReversed: boolean,
894
908
  annotations?: ASTAnnotationMap,
895
909
  ): Transform {
896
- return new Transform(from, getTo(to), decode, encode, isReversed, annotations);
910
+ return new Transform(from, getTo(to), decode, encode, annotations);
897
911
  }
898
912
 
899
913
  /*
@@ -1317,48 +1331,13 @@ export function getTo(ast: AST): AST {
1317
1331
  case ASTTag.Lazy:
1318
1332
  return AST.createLazy(() => getTo(ast.getAST()), ast.annotations);
1319
1333
  case ASTTag.Refinement:
1320
- return AST.createRefinement(getTo(ast.from), ast.decode, false, ast.annotations);
1334
+ return AST.createRefinement(getTo(ast.from), ast.predicate, ast.annotations);
1321
1335
  case ASTTag.Transform:
1322
1336
  return getTo(ast.to);
1323
1337
  }
1324
1338
  return ast;
1325
1339
  }
1326
1340
 
1327
- /**
1328
- * @tsplus getter fncts.schema.AST reverse
1329
- */
1330
- export function reverse(ast: AST): AST {
1331
- AST.concrete(ast);
1332
- switch (ast._tag) {
1333
- case ASTTag.Declaration:
1334
- return AST.createDeclaration(ast.typeParameters.map(reverse), ast.type, ast.decode, ast.annotations);
1335
- case ASTTag.Tuple:
1336
- return AST.createTuple(
1337
- ast.elements.map((element) => AST.createElement(reverse(element.type), element.isOptional)),
1338
- ast.rest.map((restElement) => restElement.map(reverse)),
1339
- ast.isReadonly,
1340
- ast.annotations,
1341
- );
1342
- case ASTTag.TypeLiteral:
1343
- return AST.createTypeLiteral(
1344
- ast.propertySignatures.map((ps) =>
1345
- AST.createPropertySignature(ps.name, reverse(ps.type), ps.isOptional, ps.isReadonly, ps.annotations),
1346
- ),
1347
- ast.indexSignatures.map((is) => AST.createIndexSignature(is.parameter, reverse(is.type), is.isReadonly)),
1348
- ast.annotations,
1349
- );
1350
- case ASTTag.Union:
1351
- return AST.createUnion(ast.types.map(reverse), ast.annotations);
1352
- case ASTTag.Lazy:
1353
- return AST.createLazy(() => reverse(ast.getAST()), ast.annotations);
1354
- case ASTTag.Refinement:
1355
- return AST.createRefinement(ast.from, ast.decode, !ast.isReversed, ast.annotations);
1356
- case ASTTag.Transform:
1357
- return AST.createTransform(reverse(ast.from), ast.to, ast.decode, ast.encode, !ast.isReversed, ast.annotations);
1358
- }
1359
- return ast;
1360
- }
1361
-
1362
1341
  /**
1363
1342
  * @tsplus static fncts.schema.AST getCompiler
1364
1343
  */
@@ -1369,3 +1348,73 @@ export function getCompiler<A>(match: AST.Match<A>): AST.Compiler<A> {
1369
1348
  });
1370
1349
  return compile;
1371
1350
  }
1351
+
1352
+ export function getLiterals(ast: AST, isDecoding: boolean): ReadonlyArray<[PropertyKey, Literal]> {
1353
+ AST.concrete(ast);
1354
+ switch (ast._tag) {
1355
+ case ASTTag.Declaration:
1356
+ return getLiterals(ast.type, isDecoding);
1357
+ case ASTTag.TypeLiteral: {
1358
+ const out: Array<[PropertyKey, Literal]> = [];
1359
+ for (let i = 0; i < ast.propertySignatures.length; i++) {
1360
+ const propertySignature = ast.propertySignatures[i]!;
1361
+ if (propertySignature.type.isLiteral() && !propertySignature.isOptional) {
1362
+ out.push([propertySignature.name, propertySignature.type]);
1363
+ }
1364
+ }
1365
+ return out;
1366
+ }
1367
+ case ASTTag.Refinement:
1368
+ return getLiterals(ast.from, isDecoding);
1369
+ case ASTTag.Transform:
1370
+ return getLiterals(isDecoding ? ast.from : ast.to, isDecoding);
1371
+ }
1372
+ return [];
1373
+ }
1374
+
1375
+ export function getSearchTree(
1376
+ members: Vector<AST>,
1377
+ isDecoding: boolean,
1378
+ ): {
1379
+ keys: {
1380
+ readonly [key: PropertyKey]: {
1381
+ buckets: { [literal: string]: ReadonlyArray<AST> };
1382
+ ast: AST;
1383
+ };
1384
+ };
1385
+ otherwise: ReadonlyArray<AST>;
1386
+ } {
1387
+ const keys: {
1388
+ [key: PropertyKey]: {
1389
+ buckets: { [literal: string]: Array<AST> };
1390
+ ast: AST;
1391
+ };
1392
+ } = {};
1393
+ const otherwise: Array<AST> = [];
1394
+ for (let i = 0; i < members.length; i++) {
1395
+ const member = members[i]!;
1396
+ const tags = getLiterals(member, isDecoding);
1397
+ if (tags.length > 0) {
1398
+ for (let j = 0; j < tags.length; j++) {
1399
+ const [key, literal] = tags[j]!;
1400
+ const hash = String(literal.literal);
1401
+ keys[key]! ||= { buckets: {}, ast: AST.neverKeyword };
1402
+ const buckets = keys[key]!.buckets;
1403
+ if (Object.prototype.hasOwnProperty.call(buckets, hash)) {
1404
+ if (j < tags.length - 1) {
1405
+ continue;
1406
+ }
1407
+ buckets[hash]!.push(member);
1408
+ keys[key]!.ast = AST.createUnion(Vector(keys[key]!.ast, literal));
1409
+ } else {
1410
+ buckets[hash]! = [member];
1411
+ keys[key]!.ast = AST.createUnion(Vector(keys[key]!.ast, literal));
1412
+ break;
1413
+ }
1414
+ }
1415
+ } else {
1416
+ otherwise.push(member);
1417
+ }
1418
+ }
1419
+ return { keys, otherwise };
1420
+ }