@fncts/schema 0.0.5 → 0.0.7

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 (157) hide show
  1. package/AST.d.ts +528 -0
  2. package/ASTAnnotation.d.ts +82 -0
  3. package/ASTAnnotationMap.d.ts +14 -0
  4. package/Gen.d.ts +15 -0
  5. package/InvalidInterpretationError.d.ts +5 -0
  6. package/ParseError.d.ts +107 -0
  7. package/ParseResult.d.ts +24 -0
  8. package/Parser/api.d.ts +42 -0
  9. package/Parser/definition.d.ts +22 -0
  10. package/Parser/interpreter.d.ts +6 -0
  11. package/Parser.d.ts +3 -0
  12. package/Schema/api/conc.d.ts +18 -0
  13. package/Schema/api/either.d.ts +19 -0
  14. package/Schema/api/hashMap.d.ts +21 -0
  15. package/Schema/api/immutableArray.d.ts +23 -0
  16. package/Schema/api/list.d.ts +23 -0
  17. package/Schema/api/maybe.d.ts +21 -0
  18. package/Schema/api.d.ts +243 -0
  19. package/Schema/definition.d.ts +29 -0
  20. package/Schema/derivations.d.ts +70 -0
  21. package/Schema.d.ts +9 -144
  22. package/_cjs/AST.cjs +1172 -0
  23. package/_cjs/AST.cjs.map +1 -0
  24. package/_cjs/ASTAnnotation.cjs +111 -0
  25. package/_cjs/ASTAnnotation.cjs.map +1 -0
  26. package/_cjs/ASTAnnotationMap.cjs +35 -0
  27. package/_cjs/ASTAnnotationMap.cjs.map +1 -0
  28. package/_cjs/Gen.cjs +182 -0
  29. package/_cjs/Gen.cjs.map +1 -0
  30. package/_cjs/InvalidInterpretationError.cjs +18 -0
  31. package/_cjs/InvalidInterpretationError.cjs.map +1 -0
  32. package/_cjs/ParseError.cjs +223 -0
  33. package/_cjs/ParseError.cjs.map +1 -0
  34. package/_cjs/{Decoder.cjs → ParseResult.cjs} +25 -22
  35. package/_cjs/ParseResult.cjs.map +1 -0
  36. package/_cjs/Parser/api.cjs +80 -0
  37. package/_cjs/Parser/api.cjs.map +1 -0
  38. package/_cjs/{Guard.cjs → Parser/definition.cjs} +17 -22
  39. package/_cjs/Parser/definition.cjs.map +1 -0
  40. package/_cjs/Parser/interpreter.cjs +410 -0
  41. package/_cjs/Parser/interpreter.cjs.map +1 -0
  42. package/_cjs/Parser.cjs +39 -0
  43. package/_cjs/Parser.cjs.map +1 -0
  44. package/_cjs/Schema/api/conc.cjs +84 -0
  45. package/_cjs/Schema/api/conc.cjs.map +1 -0
  46. package/_cjs/Schema/api/either.cjs +96 -0
  47. package/_cjs/Schema/api/either.cjs.map +1 -0
  48. package/_cjs/Schema/api/hashMap.cjs +161 -0
  49. package/_cjs/Schema/api/hashMap.cjs.map +1 -0
  50. package/_cjs/Schema/api/immutableArray.cjs +90 -0
  51. package/_cjs/Schema/api/immutableArray.cjs.map +1 -0
  52. package/_cjs/Schema/api/list.cjs +98 -0
  53. package/_cjs/Schema/api/list.cjs.map +1 -0
  54. package/_cjs/Schema/api/maybe.cjs +76 -0
  55. package/_cjs/Schema/api/maybe.cjs.map +1 -0
  56. package/_cjs/Schema/api.cjs +425 -0
  57. package/_cjs/Schema/api.cjs.map +1 -0
  58. package/_cjs/Schema/definition.cjs +26 -0
  59. package/_cjs/Schema/definition.cjs.map +1 -0
  60. package/_cjs/Schema/derivations.cjs +108 -0
  61. package/_cjs/Schema/derivations.cjs.map +1 -0
  62. package/_cjs/Schema.cjs +97 -237
  63. package/_cjs/Schema.cjs.map +1 -1
  64. package/_cjs/utils.cjs +52 -0
  65. package/_cjs/utils.cjs.map +1 -0
  66. package/_mjs/AST.mjs +1061 -0
  67. package/_mjs/AST.mjs.map +1 -0
  68. package/_mjs/ASTAnnotation.mjs +80 -0
  69. package/_mjs/ASTAnnotation.mjs.map +1 -0
  70. package/_mjs/ASTAnnotationMap.mjs +27 -0
  71. package/_mjs/ASTAnnotationMap.mjs.map +1 -0
  72. package/_mjs/Gen.mjs +173 -0
  73. package/_mjs/Gen.mjs.map +1 -0
  74. package/_mjs/InvalidInterpretationError.mjs +10 -0
  75. package/_mjs/InvalidInterpretationError.mjs.map +1 -0
  76. package/_mjs/ParseError.mjs +201 -0
  77. package/_mjs/ParseError.mjs.map +1 -0
  78. package/_mjs/ParseResult.mjs +22 -0
  79. package/_mjs/ParseResult.mjs.map +1 -0
  80. package/_mjs/Parser/api.mjs +67 -0
  81. package/_mjs/Parser/api.mjs.map +1 -0
  82. package/_mjs/Parser/definition.mjs +15 -0
  83. package/_mjs/Parser/definition.mjs.map +1 -0
  84. package/_mjs/Parser/interpreter.mjs +402 -0
  85. package/_mjs/Parser/interpreter.mjs.map +1 -0
  86. package/_mjs/Parser.mjs +5 -0
  87. package/_mjs/Parser.mjs.map +1 -0
  88. package/_mjs/Schema/api/conc.mjs +72 -0
  89. package/_mjs/Schema/api/conc.mjs.map +1 -0
  90. package/_mjs/Schema/api/either.mjs +85 -0
  91. package/_mjs/Schema/api/either.mjs.map +1 -0
  92. package/_mjs/Schema/api/hashMap.mjs +150 -0
  93. package/_mjs/Schema/api/hashMap.mjs.map +1 -0
  94. package/_mjs/Schema/api/immutableArray.mjs +79 -0
  95. package/_mjs/Schema/api/immutableArray.mjs.map +1 -0
  96. package/_mjs/Schema/api/list.mjs +87 -0
  97. package/_mjs/Schema/api/list.mjs.map +1 -0
  98. package/_mjs/Schema/api/maybe.mjs +65 -0
  99. package/_mjs/Schema/api/maybe.mjs.map +1 -0
  100. package/_mjs/Schema/api.mjs +368 -0
  101. package/_mjs/Schema/api.mjs.map +1 -0
  102. package/_mjs/Schema/definition.mjs +16 -0
  103. package/_mjs/Schema/definition.mjs.map +1 -0
  104. package/_mjs/Schema/derivations.mjs +94 -0
  105. package/_mjs/Schema/derivations.mjs.map +1 -0
  106. package/_mjs/Schema.mjs +12 -212
  107. package/_mjs/Schema.mjs.map +1 -1
  108. package/_mjs/utils.mjs +41 -0
  109. package/_mjs/utils.mjs.map +1 -0
  110. package/_src/AST.ts +1353 -0
  111. package/_src/ASTAnnotation.ts +98 -0
  112. package/_src/ASTAnnotationMap.ts +38 -0
  113. package/_src/Gen.ts +168 -0
  114. package/_src/InvalidInterpretationError.ts +6 -0
  115. package/_src/ParseError.ts +237 -0
  116. package/_src/ParseResult.ts +26 -0
  117. package/_src/Parser/api.ts +71 -0
  118. package/_src/Parser/definition.ts +24 -0
  119. package/_src/Parser/interpreter.ts +442 -0
  120. package/_src/Parser.ts +5 -0
  121. package/_src/Schema/api/conc.ts +78 -0
  122. package/_src/Schema/api/either.ts +96 -0
  123. package/_src/Schema/api/hashMap.ts +184 -0
  124. package/_src/Schema/api/immutableArray.ts +88 -0
  125. package/_src/Schema/api/list.ts +96 -0
  126. package/_src/Schema/api/maybe.ts +68 -0
  127. package/_src/Schema/api.ts +530 -0
  128. package/_src/Schema/definition.ts +32 -0
  129. package/_src/Schema/derivations.ts +185 -0
  130. package/_src/Schema.ts +14 -254
  131. package/_src/global.ts +53 -0
  132. package/_src/utils.ts +48 -0
  133. package/global.d.ts +52 -0
  134. package/package.json +2 -2
  135. package/utils.d.ts +8 -0
  136. package/Decoder.d.ts +0 -3
  137. package/Encoder.d.ts +0 -4
  138. package/Guard.d.ts +0 -3
  139. package/Schemable.d.ts +0 -39
  140. package/_cjs/Decoder.cjs.map +0 -1
  141. package/_cjs/Encoder.cjs +0 -45
  142. package/_cjs/Encoder.cjs.map +0 -1
  143. package/_cjs/Guard.cjs.map +0 -1
  144. package/_cjs/Schemable.cjs +0 -6
  145. package/_cjs/Schemable.cjs.map +0 -1
  146. package/_mjs/Decoder.mjs +0 -20
  147. package/_mjs/Decoder.mjs.map +0 -1
  148. package/_mjs/Encoder.mjs +0 -36
  149. package/_mjs/Encoder.mjs.map +0 -1
  150. package/_mjs/Guard.mjs +0 -20
  151. package/_mjs/Guard.mjs.map +0 -1
  152. package/_mjs/Schemable.mjs +0 -2
  153. package/_mjs/Schemable.mjs.map +0 -1
  154. package/_src/Decoder.ts +0 -20
  155. package/_src/Encoder.ts +0 -38
  156. package/_src/Guard.ts +0 -20
  157. package/_src/Schemable.ts +0 -46
package/_mjs/Schema.mjs CHANGED
@@ -1,213 +1,13 @@
1
- var _a;
2
- import * as tsplus_module_1 from "@fncts/base/collection/immutable/Dictionary/definition";
3
- import * as tsplus_module_2 from "@fncts/base/collection/immutable/Dictionary/api";
4
- export const SchemaVariance = /*#__PURE__*/Symbol.for("fncts.schema.Schema.Variance");
5
- export const SchemaTypeId = /*#__PURE__*/Symbol.for("fncts.schema.Schema");
6
- export class Schema {
7
- constructor() {
8
- this[_a] = SchemaTypeId;
9
- }
10
- }
11
- _a = SchemaTypeId;
12
- export class UnknownSchema extends Schema {
13
- constructor() {
14
- super(...arguments);
15
- this._tag = 0 /* SchemaTag.Unknown */;
16
- }
17
- }
18
-
19
- export class StringSchema extends Schema {
20
- constructor() {
21
- super(...arguments);
22
- this._tag = 1 /* SchemaTag.String */;
23
- }
24
- }
25
-
26
- export class NumberSchema extends Schema {
27
- constructor() {
28
- super(...arguments);
29
- this._tag = 2 /* SchemaTag.Number */;
30
- }
31
- }
32
-
33
- export class BooleanSchema extends Schema {
34
- constructor() {
35
- super(...arguments);
36
- this._tag = 3 /* SchemaTag.Boolean */;
37
- }
38
- }
39
-
40
- export class BigIntSchema extends Schema {
41
- constructor() {
42
- super(...arguments);
43
- this._tag = 4 /* SchemaTag.BigInt */;
44
- }
45
- }
46
-
47
- export class LiteralSchema extends Schema {
48
- constructor(value) {
49
- super();
50
- this.value = value;
51
- this._tag = 5 /* SchemaTag.Literal */;
52
- }
53
- }
54
-
55
- export class NullableSchema extends Schema {
56
- constructor(base) {
57
- super();
58
- this.base = base;
59
- this._tag = 6 /* SchemaTag.Nullable */;
60
- }
61
- }
62
-
63
- export class StructSchema extends Schema {
64
- constructor(fields) {
65
- super();
66
- this.fields = fields;
67
- this._tag = 7 /* SchemaTag.Struct */;
68
- }
69
- }
70
-
71
- export class PartialSchema extends Schema {
72
- constructor(fields) {
73
- super();
74
- this.fields = fields;
75
- this._tag = 8 /* SchemaTag.Partial */;
76
- }
77
- }
78
-
79
- export class ArraySchema extends Schema {
80
- constructor(base) {
81
- super();
82
- this.base = base;
83
- this._tag = 9 /* SchemaTag.Array */;
84
- }
85
- }
86
-
87
- export class RecordSchema extends Schema {
88
- constructor(base) {
89
- super();
90
- this.base = base;
91
- this._tag = 10 /* SchemaTag.Record */;
92
- }
93
- }
94
-
95
- export class TupleSchema extends Schema {
96
- constructor(components) {
97
- super();
98
- this.components = components;
99
- this._tag = 11 /* SchemaTag.Tuple */;
100
- }
101
- }
102
-
103
- export class LazySchema extends Schema {
104
- constructor(make) {
105
- super();
106
- this.make = make;
107
- this._tag = 12 /* SchemaTag.Lazy */;
108
- }
109
- }
110
-
111
- export class ValidationSchema extends Schema {
112
- constructor(base, validations) {
113
- super();
114
- this.base = base;
115
- this.validations = validations;
116
- this._tag = 13 /* SchemaTag.Validation */;
117
- }
118
- }
119
-
120
- export class UnionSchema extends Schema {
121
- constructor(members) {
122
- super();
123
- this.members = members;
124
- this._tag = 14 /* SchemaTag.Union */;
125
- }
126
- }
127
-
128
- export const unknown = /*#__PURE__*/new UnknownSchema();
129
- export const string = /*#__PURE__*/new StringSchema();
130
- export const number = /*#__PURE__*/new NumberSchema();
131
- export const boolean = /*#__PURE__*/new BooleanSchema();
132
- export const bigint = /*#__PURE__*/new BigIntSchema();
133
- export function literal(value) {
134
- return new LiteralSchema(value);
135
- }
136
- export function nullable(base) {
137
- return new NullableSchema(base);
138
- }
139
- export function struct(fields) {
140
- return new StructSchema(fields);
141
- }
142
- export function partial(fields) {
143
- return new PartialSchema(fields);
144
- }
145
- export function array(base) {
146
- return new ArraySchema(base);
147
- }
148
- export function record(base) {
149
- return new RecordSchema(base);
150
- }
151
- export function tuple(...components) {
152
- return new TupleSchema(components).unsafeCoerce();
153
- }
154
- export function lazy(make) {
155
- return new LazySchema(make);
156
- }
157
- export function validation(...validations) {
158
- return base => new ValidationSchema(base, validations).unsafeCoerce();
159
- }
160
- export function union(...members) {
161
- return new UnionSchema(members);
162
- }
163
- export function concrete(_) {
164
- //
165
- }
166
- function cacheThunk(f) {
167
- let cached;
168
- return () => {
169
- if (!cached) {
170
- cached = f();
171
- }
172
- return cached;
173
- };
174
- }
175
- export function interpret(S) {
176
- return schema => {
177
- concrete(schema);
178
- switch (schema._tag) {
179
- case 0 /* SchemaTag.Unknown */:
180
- return S.unknown;
181
- case 1 /* SchemaTag.String */:
182
- return S.string;
183
- case 2 /* SchemaTag.Number */:
184
- return S.number;
185
- case 3 /* SchemaTag.Boolean */:
186
- return S.boolean;
187
- case 4 /* SchemaTag.BigInt */:
188
- return S.bigint;
189
- case 5 /* SchemaTag.Literal */:
190
- return S.literal(schema.value);
191
- case 12 /* SchemaTag.Lazy */:
192
- const cached = cacheThunk(schema.make);
193
- return S.lazy(() => interpret(S)(cached()));
194
- case 6 /* SchemaTag.Nullable */:
195
- return S.nullable(interpret(S)(schema.base));
196
- case 7 /* SchemaTag.Struct */:
197
- return S.struct(tsplus_module_1.Dictionary.reverseGet(tsplus_module_2.map(interpret(S))(tsplus_module_1.Dictionary.get(schema.fields))));
198
- case 8 /* SchemaTag.Partial */:
199
- return S.partial(tsplus_module_1.Dictionary.reverseGet(tsplus_module_2.map(interpret(S))(tsplus_module_1.Dictionary.get(schema.fields))));
200
- case 9 /* SchemaTag.Array */:
201
- return S.array(interpret(S)(schema.base));
202
- case 10 /* SchemaTag.Record */:
203
- return S.record(interpret(S)(schema.base));
204
- case 11 /* SchemaTag.Tuple */:
205
- return S.tuple(...schema.components.map(interpret(S)));
206
- case 13 /* SchemaTag.Validation */:
207
- return S.validation(...schema.validations)(interpret(S)(schema.base));
208
- case 14 /* SchemaTag.Union */:
209
- return S.union(schema.members.map(interpret(S)), schema);
210
- }
211
- };
212
- }
1
+ // codegen:start { preset: barrel, include: ./Schema/*.ts }
2
+ export * from "./Schema/api.mjs";
3
+ export * from "./Schema/definition.mjs";
4
+ export * from "./Schema/derivations.mjs";
5
+ // codegen:end
6
+ // codegen:start { preset: barrel, include: ./Schema/api/*.ts }
7
+ export * from "./Schema/api/conc.mjs";
8
+ export * from "./Schema/api/either.mjs";
9
+ export * from "./Schema/api/hashMap.mjs";
10
+ export * from "./Schema/api/immutableArray.mjs";
11
+ export * from "./Schema/api/list.mjs";
12
+ export * from "./Schema/api/maybe.mjs";
213
13
  //# sourceMappingURL=Schema.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.mjs","mappings":"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","names":["SchemaVariance","Symbol","for","SchemaTypeId","Schema","constructor","UnknownSchema","StringSchema","NumberSchema","BooleanSchema","BigIntSchema","LiteralSchema","value","NullableSchema","base","StructSchema","fields","PartialSchema","ArraySchema","RecordSchema","TupleSchema","components","LazySchema","make","ValidationSchema","validations","UnionSchema","members","unknown","string","number","boolean","bigint","literal","nullable","struct","partial","array","record","tuple","unsafeCoerce","lazy","validation","union","concrete","_","cacheThunk","f","cached","interpret","S","schema","_tag","tsplus_module_1","reverseGet","tsplus_module_2","get","map"],"sourceRoot":"","sources":["../_src/Schema.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"Schema.mjs","mappings":"AAAA;AACA,cAAc,kBAAiB;AAC/B,cAAc,yBAAwB;AACtC,cAAc,0BAAyB;AACvC;AAEA;AACA,cAAc,uBAAsB;AACpC,cAAc,yBAAwB;AACtC,cAAc,0BAAyB;AACvC,cAAc,iCAAgC;AAC9C,cAAc,uBAAsB;AACpC,cAAc,wBAAuB","names":[],"sourceRoot":"","sources":["../_src/Schema.ts"],"sourcesContent":[null]}
package/_mjs/utils.mjs ADDED
@@ -0,0 +1,41 @@
1
+ import * as tsplus_module_1 from "@fncts/base/collection/immutable/Vector/api";
2
+ import * as tsplus_module_2 from "@fncts/schema/AST";
3
+ export function memoize(f) {
4
+ const cache = new Map();
5
+ return a => {
6
+ if (!cache.has(a)) {
7
+ const b = f(a);
8
+ cache.set(a, b);
9
+ return b;
10
+ }
11
+ return cache.get(a);
12
+ };
13
+ }
14
+ export function ownKeys(o) {
15
+ return o ? tsplus_module_1.from(Reflect.ownKeys(o)) : tsplus_module_1.empty();
16
+ }
17
+ export function getTemplateLiteralRegex(ast) {
18
+ let pattern = `^${ast.head}`;
19
+ for (const span of ast.spans) {
20
+ if (tsplus_module_2.isStringKeyword(span.type)) {
21
+ pattern += ".*";
22
+ } else if (tsplus_module_2.isNumberKeyword(span.type)) {
23
+ pattern += "-?\\d+(\\.\\d+)?";
24
+ }
25
+ pattern += span.literal;
26
+ }
27
+ pattern += "$";
28
+ return new RegExp(pattern);
29
+ }
30
+ export function getKeysForIndexSignature(input, parameter) {
31
+ switch (parameter._tag) {
32
+ case 8 /* ASTTag.StringKeyword */:
33
+ case 15 /* ASTTag.TemplateLiteral */:
34
+ return tsplus_module_1.from(Object.keys(input));
35
+ case 12 /* ASTTag.SymbolKeyword */:
36
+ return tsplus_module_1.from(Object.getOwnPropertySymbols(input));
37
+ case 20 /* ASTTag.Refinement */:
38
+ return getKeysForIndexSignature(input, parameter.from);
39
+ }
40
+ }
41
+ //# sourceMappingURL=utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.mjs","mappings":";;AAIA,OAAM,SAAUA,OAAO,CAAOC,CAAc;EAC1C,MAAMC,KAAK,GAAG,IAAIC,GAAG,EAAE;EACvB,OAAQC,CAAC,IAAI;IACX,IAAI,CAACF,KAAK,CAACG,GAAG,CAACD,CAAC,CAAC,EAAE;MACjB,MAAME,CAAC,GAAGL,CAAC,CAACG,CAAC,CAAC;MACdF,KAAK,CAACK,GAAG,CAACH,CAAC,EAAEE,CAAC,CAAC;MACf,OAAOA,CAAC;;IAEV,OAAOJ,KAAK,CAACM,GAAG,CAACJ,CAAC,CAAC;EACrB,CAAC;AACH;AAEA,OAAM,SAAUK,OAAO,CAACC,CAAqB;EAC3C,OAAOA,CAAC,GAAGC,qBAAYC,OAAO,CAACH,OAAO,CAACC,CAAC,CAAC,CAAC,GAAGC,uBAAc;AAC7D;AAEA,OAAM,SAAUE,uBAAuB,CAACC,GAAoB;EAC1D,IAAIC,OAAO,GAAG,IAAID,GAAG,CAACE,IAAI,EAAE;EAC5B,KAAK,MAAMC,IAAI,IAAIH,GAAG,CAACI,KAAK,EAAE;IAC5B,IAAIC,oCAAI,CAACC,IAAI,CAAkB,EAAE;MAC/BL,OAAO,IAAI,IAAI;KAChB,MAAM,IAAII,oCAAI,CAACC,IAAI,CAAkB,EAAE;MACtCL,OAAO,IAAI,kBAAkB;;IAE/BA,OAAO,IAAIE,IAAI,CAACI,OAAO;;EAEzBN,OAAO,IAAI,GAAG;EACd,OAAO,IAAIO,MAAM,CAACP,OAAO,CAAC;AAC5B;AAEA,OAAM,SAAUQ,wBAAwB,CACtCC,KAA6C,EAC7CC,SAAsC;EAEtC,QAAQA,SAAS,CAACC,IAAI;IACpB;IACA;MACE,OAAOf,qBAAYgB,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAAC;IACxC;MACE,OAAOb,qBAAYgB,MAAM,CAACE,qBAAqB,CAACL,KAAK,CAAC,CAAC;IACzD;MACE,OAAOD,wBAAwB,CAACC,KAAK,EAAEC,SAAS,CAACK,IAAW,CAAC;EAAC;AAEpE","names":["memoize","f","cache","Map","a","has","b","set","get","ownKeys","o","tsplus_module_1","Reflect","getTemplateLiteralRegex","ast","pattern","head","span","spans","tsplus_module_2","type","literal","RegExp","getKeysForIndexSignature","input","parameter","_tag","Object","keys","getOwnPropertySymbols","from"],"sourceRoot":"","sources":["../_src/utils.ts"],"sourcesContent":[null]}