@duplojs/lang 0.0.1-beta.2 → 0.0.1-beta.3
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.
- package/dist/common/constraint/index.d.ts +1 -0
- package/dist/common/constraint/remove.cjs +6 -0
- package/dist/common/constraint/remove.d.ts +2 -0
- package/dist/common/constraint/remove.mjs +6 -0
- package/dist/common/index.cjs +3 -0
- package/dist/common/index.mjs +3 -1
- package/dist/common/types/forward.d.ts +1 -0
- package/dist/common/types/index.d.ts +1 -0
- package/dist/dataStructure/common/codec.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/email.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/even.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
- package/dist/dataStructure/constraint/defaults/integer.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/minCharacters.cjs +3 -3
- package/dist/dataStructure/constraint/defaults/minCharacters.d.ts +2 -2
- package/dist/dataStructure/constraint/defaults/minCharacters.mjs +3 -3
- package/dist/dataStructure/constraint/defaults/minElements.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/negative.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/odd.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/positive.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/refine.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/regex.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/regex.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/regex.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/safe.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/strictNegative.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/trimmed.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/url.cjs +2 -2
- package/dist/dataStructure/constraint/defaults/url.d.ts +2 -3
- package/dist/dataStructure/constraint/defaults/url.mjs +2 -2
- package/dist/dataStructure/constraint/defaults/uuid.cjs +1 -3
- package/dist/dataStructure/constraint/defaults/uuid.d.ts +1 -3
- package/dist/dataStructure/constraint/defaults/uuid.mjs +3 -4
- package/dist/dataStructure/constraint/identifier.d.ts +4 -2
- package/dist/dataStructure/constraint/types/constraints.d.ts +18 -15
- package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +1 -1
- package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +1 -1
- package/dist/dataStructure/fundamentalType/defaults/date.d.ts +1 -1
- package/dist/dataStructure/fundamentalType/defaults/null.d.ts +1 -1
- package/dist/dataStructure/fundamentalType/defaults/number.d.ts +1 -1
- package/dist/dataStructure/fundamentalType/defaults/string.d.ts +1 -1
- package/dist/dataStructure/fundamentalType/defaults/time.d.ts +1 -1
- package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +1 -1
- package/dist/dataStructure/fundamentalType/identifier.d.ts +4 -2
- package/dist/dataStructure/helpers/index.d.ts +1 -0
- package/dist/dataStructure/helpers/nullable.cjs +5 -2
- package/dist/dataStructure/helpers/nullable.mjs +5 -2
- package/dist/dataStructure/helpers/optional.cjs +5 -2
- package/dist/dataStructure/helpers/optional.mjs +5 -2
- package/dist/dataStructure/helpers/partial.cjs +5 -2
- package/dist/dataStructure/helpers/partial.mjs +5 -2
- package/dist/dataStructure/helpers/regex.cjs +7 -0
- package/dist/dataStructure/helpers/regex.d.ts +2 -0
- package/dist/dataStructure/helpers/regex.mjs +7 -0
- package/dist/dataStructure/helpers/required.cjs +6 -3
- package/dist/dataStructure/helpers/required.d.ts +2 -1
- package/dist/dataStructure/helpers/required.mjs +6 -3
- package/dist/dataStructure/helpers/url.cjs +2 -2
- package/dist/dataStructure/helpers/url.d.ts +1 -2
- package/dist/dataStructure/helpers/url.mjs +2 -2
- package/dist/dataStructure/index.cjs +12 -6
- package/dist/dataStructure/index.mjs +11 -7
- package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/lazy.cjs +6 -1
- package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/lazy.mjs +6 -1
- package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/object.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/record.cjs +7 -7
- package/dist/dataStructure/structure/defaults/record.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/record.mjs +7 -7
- package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/union.cjs +11 -5
- package/dist/dataStructure/structure/defaults/union.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/union.mjs +11 -5
- package/dist/dataStructure/structure/identifier.d.ts +4 -2
- package/dist/dataStructure/type/defaults/bigint.d.ts +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/boolean.d.ts +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/date.d.ts +1 -1
- package/dist/dataStructure/type/defaults/null.d.ts +1 -1
- package/dist/dataStructure/type/defaults/number.d.ts +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/string.d.ts +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/time.d.ts +1 -1
- package/dist/dataStructure/type/defaults/undefined.d.ts +1 -1
- package/dist/dataStructure/type/identifier.d.ts +4 -2
- package/dist/index.cjs +2 -0
- package/dist/index.mjs +2 -1
- package/dist/invocation/flow/base.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/aborter.cjs +4 -1
- package/dist/invocation/flow/controller/defaults/aborter.d.ts +6 -3
- package/dist/invocation/flow/controller/defaults/aborter.mjs +4 -1
- package/dist/invocation/flow/controller/defaults/debounce.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/retry.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/throttling.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/timeout.d.ts +1 -1
- package/dist/kind/createIdentifier.d.ts +2 -2
- package/dist/modeling/entity/base.d.ts +3 -4
- package/dist/modeling/newType/base.d.ts +1 -1
- package/dist/modeling/taggedObject/base.d.ts +3 -4
- package/dist/string/isUrl.cjs +2 -11
- package/dist/string/isUrl.d.ts +1 -5
- package/dist/string/isUrl.mjs +2 -11
- package/package.json +1 -1
|
@@ -34,6 +34,7 @@ const require_stringLengthEqual = require("./constraint/defaults/stringLengthEqu
|
|
|
34
34
|
const require_trimmed = require("./constraint/defaults/trimmed.cjs");
|
|
35
35
|
const require_url = require("./constraint/defaults/url.cjs");
|
|
36
36
|
const require_uuid = require("./constraint/defaults/uuid.cjs");
|
|
37
|
+
const require_regex = require("./constraint/defaults/regex.cjs");
|
|
37
38
|
const require_identifier = require("./constraint/identifier.cjs");
|
|
38
39
|
const require_base$1 = require("./fundamentalType/base.cjs");
|
|
39
40
|
const require_bigint = require("./fundamentalType/defaults/bigint.cjs");
|
|
@@ -48,10 +49,10 @@ const require_identifier$1 = require("./fundamentalType/identifier.cjs");
|
|
|
48
49
|
const require_allowedCharacters$1 = require("./helpers/allowedCharacters.cjs");
|
|
49
50
|
const require_base$2 = require("./structure/base.cjs");
|
|
50
51
|
const require_array = require("./structure/defaults/array.cjs");
|
|
52
|
+
const require_identifier$2 = require("./structure/identifier.cjs");
|
|
51
53
|
const require_lazy = require("./structure/defaults/lazy.cjs");
|
|
52
54
|
const require_nonEncodableString = require("./structure/defaults/nonEncodableString.cjs");
|
|
53
55
|
const require_object = require("./structure/defaults/object.cjs");
|
|
54
|
-
const require_identifier$2 = require("./structure/identifier.cjs");
|
|
55
56
|
const require_union = require("./structure/defaults/union.cjs");
|
|
56
57
|
const require_type = require("./structure/defaults/type.cjs");
|
|
57
58
|
const require_base$3 = require("./type/base.cjs");
|
|
@@ -118,6 +119,7 @@ const require_time$2 = require("./helpers/time.cjs");
|
|
|
118
119
|
const require_trimmed$1 = require("./helpers/trimmed.cjs");
|
|
119
120
|
const require_url$1 = require("./helpers/url.cjs");
|
|
120
121
|
const require_uuid$1 = require("./helpers/uuid.cjs");
|
|
122
|
+
const require_regex$1 = require("./helpers/regex.cjs");
|
|
121
123
|
//#region scripts/dataStructure/index.ts
|
|
122
124
|
var dataStructure_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
123
125
|
AllowedCharactersConstraint: () => require_allowedCharacters.AllowedCharactersConstraint,
|
|
@@ -156,6 +158,7 @@ var dataStructure_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
156
158
|
PositiveConstraint: () => require_positive.PositiveConstraint,
|
|
157
159
|
RecordStructure: () => require_record.RecordStructure,
|
|
158
160
|
RefineConstraint: () => require_refine.RefineConstraint,
|
|
161
|
+
RegexConstraint: () => require_regex.RegexConstraint,
|
|
159
162
|
SafeConstraint: () => require_safe.SafeConstraint,
|
|
160
163
|
StrictNegativeConstraint: () => require_strictNegative.StrictNegativeConstraint,
|
|
161
164
|
StrictPositiveConstraint: () => require_strictPositive.StrictPositiveConstraint,
|
|
@@ -244,6 +247,7 @@ var dataStructure_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
244
247
|
maxElements: () => require_maxElements$1.maxElements,
|
|
245
248
|
maxElementsConstraintKind: () => require_maxElements.maxElementsConstraintKind,
|
|
246
249
|
minCharacters: () => require_minCharacters$1.minCharacters,
|
|
250
|
+
minCharactersConstraintKind: () => require_minCharacters.minCharactersConstraintKind,
|
|
247
251
|
minElements: () => require_minElements$1.minElements,
|
|
248
252
|
minElementsConstraintKind: () => require_minElements.minElementsConstraintKind,
|
|
249
253
|
multipleOf: () => require_multipleOf$1.multipleOf,
|
|
@@ -275,6 +279,8 @@ var dataStructure_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
275
279
|
recordStructureKind: () => require_record.recordStructureKind,
|
|
276
280
|
refine: () => require_refine$1.refine,
|
|
277
281
|
refineConstraintKind: () => require_refine.refineConstraintKind,
|
|
282
|
+
regex: () => require_regex$1.regex,
|
|
283
|
+
regexConstraintKind: () => require_regex.regexConstraintKind,
|
|
278
284
|
required: () => require_required.required,
|
|
279
285
|
safe: () => require_safe$1.safe,
|
|
280
286
|
safeConstraintKind: () => require_safe.safeConstraintKind,
|
|
@@ -287,7 +293,6 @@ var dataStructure_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
287
293
|
stringLengthEqual: () => require_stringLengthEqual$1.stringLengthEqual,
|
|
288
294
|
stringLengthEqualConstraintKind: () => require_stringLengthEqual.stringLengthEqualConstraintKind,
|
|
289
295
|
stringLiteralTypeKind: () => require_stringLiteral.stringLiteralTypeKind,
|
|
290
|
-
stringMinConstraintKind: () => require_minCharacters.stringMinConstraintKind,
|
|
291
296
|
stringTypeKind: () => require_string$1.stringTypeKind,
|
|
292
297
|
structureIdentifier: () => require_identifier$2.structureIdentifier,
|
|
293
298
|
structureKind: () => require_base$2.structureKind,
|
|
@@ -307,8 +312,7 @@ var dataStructure_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
307
312
|
url: () => require_url$1.url,
|
|
308
313
|
urlConstraintKind: () => require_url.urlConstraintKind,
|
|
309
314
|
uuid: () => require_uuid$1.uuid,
|
|
310
|
-
uuidConstraintKind: () => require_uuid.uuidConstraintKind
|
|
311
|
-
uuidRegex: () => require_uuid.uuidRegex
|
|
315
|
+
uuidConstraintKind: () => require_uuid.uuidConstraintKind
|
|
312
316
|
});
|
|
313
317
|
//#endregion
|
|
314
318
|
exports.AllowedCharactersConstraint = require_allowedCharacters.AllowedCharactersConstraint;
|
|
@@ -347,6 +351,7 @@ exports.OddConstraint = require_odd.OddConstraint;
|
|
|
347
351
|
exports.PositiveConstraint = require_positive.PositiveConstraint;
|
|
348
352
|
exports.RecordStructure = require_record.RecordStructure;
|
|
349
353
|
exports.RefineConstraint = require_refine.RefineConstraint;
|
|
354
|
+
exports.RegexConstraint = require_regex.RegexConstraint;
|
|
350
355
|
exports.SafeConstraint = require_safe.SafeConstraint;
|
|
351
356
|
exports.StrictNegativeConstraint = require_strictNegative.StrictNegativeConstraint;
|
|
352
357
|
exports.StrictPositiveConstraint = require_strictPositive.StrictPositiveConstraint;
|
|
@@ -441,6 +446,7 @@ exports.maxCharactersConstraintKind = require_maxCharacters.maxCharactersConstra
|
|
|
441
446
|
exports.maxElements = require_maxElements$1.maxElements;
|
|
442
447
|
exports.maxElementsConstraintKind = require_maxElements.maxElementsConstraintKind;
|
|
443
448
|
exports.minCharacters = require_minCharacters$1.minCharacters;
|
|
449
|
+
exports.minCharactersConstraintKind = require_minCharacters.minCharactersConstraintKind;
|
|
444
450
|
exports.minElements = require_minElements$1.minElements;
|
|
445
451
|
exports.minElementsConstraintKind = require_minElements.minElementsConstraintKind;
|
|
446
452
|
exports.multipleOf = require_multipleOf$1.multipleOf;
|
|
@@ -472,6 +478,8 @@ exports.record = require_record$1.record;
|
|
|
472
478
|
exports.recordStructureKind = require_record.recordStructureKind;
|
|
473
479
|
exports.refine = require_refine$1.refine;
|
|
474
480
|
exports.refineConstraintKind = require_refine.refineConstraintKind;
|
|
481
|
+
exports.regex = require_regex$1.regex;
|
|
482
|
+
exports.regexConstraintKind = require_regex.regexConstraintKind;
|
|
475
483
|
exports.required = require_required.required;
|
|
476
484
|
exports.safe = require_safe$1.safe;
|
|
477
485
|
exports.safeConstraintKind = require_safe.safeConstraintKind;
|
|
@@ -484,7 +492,6 @@ exports.stringFundamentalTypeKind = require_string.stringFundamentalTypeKind;
|
|
|
484
492
|
exports.stringLengthEqual = require_stringLengthEqual$1.stringLengthEqual;
|
|
485
493
|
exports.stringLengthEqualConstraintKind = require_stringLengthEqual.stringLengthEqualConstraintKind;
|
|
486
494
|
exports.stringLiteralTypeKind = require_stringLiteral.stringLiteralTypeKind;
|
|
487
|
-
exports.stringMinConstraintKind = require_minCharacters.stringMinConstraintKind;
|
|
488
495
|
exports.stringTypeKind = require_string$1.stringTypeKind;
|
|
489
496
|
exports.structureIdentifier = require_identifier$2.structureIdentifier;
|
|
490
497
|
exports.structureKind = require_base$2.structureKind;
|
|
@@ -505,4 +512,3 @@ exports.url = require_url$1.url;
|
|
|
505
512
|
exports.urlConstraintKind = require_url.urlConstraintKind;
|
|
506
513
|
exports.uuid = require_uuid$1.uuid;
|
|
507
514
|
exports.uuidConstraintKind = require_uuid.uuidConstraintKind;
|
|
508
|
-
exports.uuidRegex = require_uuid.uuidRegex;
|
|
@@ -18,7 +18,7 @@ import { LessThanConstraint, lessThanConstraintKind } from "./constraint/default
|
|
|
18
18
|
import { LessThanOrEqualConstraint, lessThanOrEqualConstraintKind } from "./constraint/defaults/lessThanOrEqual.mjs";
|
|
19
19
|
import { MaxCharactersConstraint, maxCharactersConstraintKind } from "./constraint/defaults/maxCharacters.mjs";
|
|
20
20
|
import { MaxElementsConstraint, maxElementsConstraintKind } from "./constraint/defaults/maxElements.mjs";
|
|
21
|
-
import { MinCharactersConstraint,
|
|
21
|
+
import { MinCharactersConstraint, minCharactersConstraintKind } from "./constraint/defaults/minCharacters.mjs";
|
|
22
22
|
import { MinElementsConstraint, minElementsConstraintKind } from "./constraint/defaults/minElements.mjs";
|
|
23
23
|
import { MultipleOfConstraint, multipleOfConstraintKind } from "./constraint/defaults/multipleOf.mjs";
|
|
24
24
|
import { NegativeConstraint, negativeConstraintKind } from "./constraint/defaults/negative.mjs";
|
|
@@ -33,7 +33,8 @@ import { StrictPositiveConstraint, strictPositiveConstraintKind } from "./constr
|
|
|
33
33
|
import { StringLengthEqualConstraint, stringLengthEqualConstraintKind } from "./constraint/defaults/stringLengthEqual.mjs";
|
|
34
34
|
import { TrimmedConstraint, trimmedConstraintKind } from "./constraint/defaults/trimmed.mjs";
|
|
35
35
|
import { UrlConstraint, urlConstraintKind } from "./constraint/defaults/url.mjs";
|
|
36
|
-
import { UuidConstraint, uuidConstraintKind
|
|
36
|
+
import { UuidConstraint, uuidConstraintKind } from "./constraint/defaults/uuid.mjs";
|
|
37
|
+
import { RegexConstraint, regexConstraintKind } from "./constraint/defaults/regex.mjs";
|
|
37
38
|
import { constraintIdentifier } from "./constraint/identifier.mjs";
|
|
38
39
|
import { createFundamentalType, fundamentalTypeKind } from "./fundamentalType/base.mjs";
|
|
39
40
|
import { TheBigint, bigintFundamentalTypeKind } from "./fundamentalType/defaults/bigint.mjs";
|
|
@@ -48,10 +49,10 @@ import { fundamentalTypeIdentifier } from "./fundamentalType/identifier.mjs";
|
|
|
48
49
|
import { allowedCharacters } from "./helpers/allowedCharacters.mjs";
|
|
49
50
|
import { StructureClass, createStructure, structureKind } from "./structure/base.mjs";
|
|
50
51
|
import { ArrayStructure, arrayStructureKind } from "./structure/defaults/array.mjs";
|
|
52
|
+
import { structureIdentifier } from "./structure/identifier.mjs";
|
|
51
53
|
import { LazyStructure, lazyStructureKind } from "./structure/defaults/lazy.mjs";
|
|
52
54
|
import { NonEncodableStringStructure, nonEncodableStringStructureKind } from "./structure/defaults/nonEncodableString.mjs";
|
|
53
55
|
import { ObjectStructure, objectStructureKind } from "./structure/defaults/object.mjs";
|
|
54
|
-
import { structureIdentifier } from "./structure/identifier.mjs";
|
|
55
56
|
import { UnionStructure, unionStructureKind } from "./structure/defaults/union.mjs";
|
|
56
57
|
import { TypeStructure, typeStructureKind } from "./structure/defaults/type.mjs";
|
|
57
58
|
import { createType, typeKind } from "./type/base.mjs";
|
|
@@ -118,6 +119,7 @@ import { time } from "./helpers/time.mjs";
|
|
|
118
119
|
import { trimmed } from "./helpers/trimmed.mjs";
|
|
119
120
|
import { url } from "./helpers/url.mjs";
|
|
120
121
|
import { uuid } from "./helpers/uuid.mjs";
|
|
122
|
+
import { regex } from "./helpers/regex.mjs";
|
|
121
123
|
//#region scripts/dataStructure/index.ts
|
|
122
124
|
var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
123
125
|
AllowedCharactersConstraint: () => AllowedCharactersConstraint,
|
|
@@ -156,6 +158,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
156
158
|
PositiveConstraint: () => PositiveConstraint,
|
|
157
159
|
RecordStructure: () => RecordStructure,
|
|
158
160
|
RefineConstraint: () => RefineConstraint,
|
|
161
|
+
RegexConstraint: () => RegexConstraint,
|
|
159
162
|
SafeConstraint: () => SafeConstraint,
|
|
160
163
|
StrictNegativeConstraint: () => StrictNegativeConstraint,
|
|
161
164
|
StrictPositiveConstraint: () => StrictPositiveConstraint,
|
|
@@ -244,6 +247,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
244
247
|
maxElements: () => maxElements,
|
|
245
248
|
maxElementsConstraintKind: () => maxElementsConstraintKind,
|
|
246
249
|
minCharacters: () => minCharacters,
|
|
250
|
+
minCharactersConstraintKind: () => minCharactersConstraintKind,
|
|
247
251
|
minElements: () => minElements,
|
|
248
252
|
minElementsConstraintKind: () => minElementsConstraintKind,
|
|
249
253
|
multipleOf: () => multipleOf,
|
|
@@ -275,6 +279,8 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
275
279
|
recordStructureKind: () => recordStructureKind,
|
|
276
280
|
refine: () => refine,
|
|
277
281
|
refineConstraintKind: () => refineConstraintKind,
|
|
282
|
+
regex: () => regex,
|
|
283
|
+
regexConstraintKind: () => regexConstraintKind,
|
|
278
284
|
required: () => required,
|
|
279
285
|
safe: () => safe,
|
|
280
286
|
safeConstraintKind: () => safeConstraintKind,
|
|
@@ -287,7 +293,6 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
287
293
|
stringLengthEqual: () => stringLengthEqual,
|
|
288
294
|
stringLengthEqualConstraintKind: () => stringLengthEqualConstraintKind,
|
|
289
295
|
stringLiteralTypeKind: () => stringLiteralTypeKind,
|
|
290
|
-
stringMinConstraintKind: () => stringMinConstraintKind,
|
|
291
296
|
stringTypeKind: () => stringTypeKind,
|
|
292
297
|
structureIdentifier: () => structureIdentifier,
|
|
293
298
|
structureKind: () => structureKind,
|
|
@@ -307,8 +312,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
|
|
|
307
312
|
url: () => url,
|
|
308
313
|
urlConstraintKind: () => urlConstraintKind,
|
|
309
314
|
uuid: () => uuid,
|
|
310
|
-
uuidConstraintKind: () => uuidConstraintKind
|
|
311
|
-
uuidRegex: () => uuidRegex
|
|
315
|
+
uuidConstraintKind: () => uuidConstraintKind
|
|
312
316
|
});
|
|
313
317
|
//#endregion
|
|
314
|
-
export { AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, DateType, EmailConstraint, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NonEncodableStringStructure, NotEmptyConstraint, NotZeroConstraint, NullType, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PositiveConstraint, RecordStructure, RefineConstraint, SafeConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TrimmedConstraint, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintFundamentalTypeKind, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanFundamentalTypeKind, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsKind, constraintIdentifier, constraintKind, createCodec, createCodecs, createConstraint, createErrorHandler, createErrorInterpreter, createFundamentalType, createGetErrorHandler, createKind, createStructure, createType, dataStructure_exports, date, dateFundamentalTypeKind, dateTypeKind, decodeIssueKind, email, emailConstraintKind, encodeIssueKind, even, evenConstraintKind, extend, fundamentalTypeIdentifier, fundamentalTypeKind, greaterThan, greaterThanConstraintKind, greaterThanOrEqual, greaterThanOrEqualConstraintKind, integer, integerConstraintKind, isNullStructure, isUndefinedStructure, issueKind, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, nonEncodableStringStructureKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullFundamentalTypeKind, nullTypeKind, nullable, number, numberFundamentalTypeKind, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, required, safe, safeConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringFundamentalTypeKind, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind,
|
|
318
|
+
export { AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, DateType, EmailConstraint, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NonEncodableStringStructure, NotEmptyConstraint, NotZeroConstraint, NullType, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PositiveConstraint, RecordStructure, RefineConstraint, RegexConstraint, SafeConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TrimmedConstraint, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintFundamentalTypeKind, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanFundamentalTypeKind, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsKind, constraintIdentifier, constraintKind, createCodec, createCodecs, createConstraint, createErrorHandler, createErrorInterpreter, createFundamentalType, createGetErrorHandler, createKind, createStructure, createType, dataStructure_exports, date, dateFundamentalTypeKind, dateTypeKind, decodeIssueKind, email, emailConstraintKind, encodeIssueKind, even, evenConstraintKind, extend, fundamentalTypeIdentifier, fundamentalTypeKind, greaterThan, greaterThanConstraintKind, greaterThanOrEqual, greaterThanOrEqualConstraintKind, integer, integerConstraintKind, isNullStructure, isUndefinedStructure, issueKind, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minCharactersConstraintKind, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, nonEncodableStringStructureKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullFundamentalTypeKind, nullTypeKind, nullable, number, numberFundamentalTypeKind, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, regex, regexConstraintKind, required, safe, safeConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringFundamentalTypeKind, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringTypeKind, structureIdentifier, structureKind, time, timeFundamentalTypeKind, timeTypeKind, trimmed, trimmedConstraintKind, typeIdentifier, typeKind, typeStructureKind, undefinedHelper as undefined, undefinedFundamentalTypeKind, undefinedTypeKind, union, unionStructureKind, url, urlConstraintKind, uuid, uuidConstraintKind };
|
|
@@ -13,6 +13,6 @@ export declare const arrayStructureKind: DKind.Handler<DKind.Definition<"@Duploj
|
|
|
13
13
|
export interface ArrayStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
14
14
|
readonly element: Structure;
|
|
15
15
|
}
|
|
16
|
-
export interface ArrayStructure<GenericValue extends readonly unknown[] = readonly unknown[], GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
16
|
+
export interface ArrayStructure<GenericValue extends readonly unknown[] = readonly unknown[], GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, ArrayStructureDefinition<GenericConstraints>> & DKind.Kind<typeof arrayStructureKind>> {
|
|
17
17
|
}
|
|
18
18
|
export declare const ArrayStructure: <GenericElement extends Structure, const GenericConstraints extends readonly Constraint<readonly StructureValue<GenericElement>[]>[]>(element: GenericElement, constraints: GenericConstraints) => NoInfer<ArrayStructure<readonly StructureValue<GenericElement>[], readonly [...GenericConstraints]>>;
|
|
@@ -3,10 +3,15 @@ const require_memo = require("../../../common/memo.cjs");
|
|
|
3
3
|
const require_kind = require("../../kind.cjs");
|
|
4
4
|
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
5
5
|
const require_base = require("../base.cjs");
|
|
6
|
+
const require_identifier = require("../identifier.cjs");
|
|
6
7
|
//#region scripts/dataStructure/structure/defaults/lazy.ts
|
|
7
8
|
const lazyStructureKind = require_kind.createKind("lazy-structure");
|
|
8
9
|
const LazyStructure = require_base.createStructure(lazyStructureKind, ({ init }) => (getStructure, constraints) => init({
|
|
9
|
-
getter: require_memo.memo(
|
|
10
|
+
getter: require_memo.memo(() => {
|
|
11
|
+
const dataStructure = getStructure();
|
|
12
|
+
if (require_identifier.structureIdentifier(dataStructure, lazyStructureKind)) return dataStructure.definition.getter.value;
|
|
13
|
+
return dataStructure;
|
|
14
|
+
}),
|
|
10
15
|
constraints
|
|
11
16
|
}, {
|
|
12
17
|
executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
|
|
@@ -7,6 +7,6 @@ export declare const lazyStructureKind: DKind.Handler<DKind.Definition<"@Duplojs
|
|
|
7
7
|
export interface LazyStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
8
8
|
readonly getter: DCommon.Memoized<Structure>;
|
|
9
9
|
}
|
|
10
|
-
export interface LazyStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
10
|
+
export interface LazyStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, LazyStructureDefinition<GenericConstraints>> & DKind.Kind<typeof lazyStructureKind>> {
|
|
11
11
|
}
|
|
12
12
|
export declare const LazyStructure: <GenericStructure extends Structure, const GenericConstraints extends readonly Constraint<StructureValue<GenericStructure>>[]>(getStructure: () => GenericStructure, constraints: GenericConstraints) => NoInfer<LazyStructure<StructureValue<GenericStructure>, readonly [...GenericConstraints]>>;
|
|
@@ -3,10 +3,15 @@ import { memo } from "../../../common/memo.mjs";
|
|
|
3
3
|
import { createKind } from "../../kind.mjs";
|
|
4
4
|
import { ErrorSymbol } from "../../common/resultSymbol.mjs";
|
|
5
5
|
import { createStructure } from "../base.mjs";
|
|
6
|
+
import { structureIdentifier } from "../identifier.mjs";
|
|
6
7
|
//#region scripts/dataStructure/structure/defaults/lazy.ts
|
|
7
8
|
const lazyStructureKind = createKind("lazy-structure");
|
|
8
9
|
const LazyStructure = createStructure(lazyStructureKind, ({ init }) => (getStructure, constraints) => init({
|
|
9
|
-
getter: memo(
|
|
10
|
+
getter: memo(() => {
|
|
11
|
+
const dataStructure = getStructure();
|
|
12
|
+
if (structureIdentifier(dataStructure, lazyStructureKind)) return dataStructure.definition.getter.value;
|
|
13
|
+
return dataStructure;
|
|
14
|
+
}),
|
|
10
15
|
constraints
|
|
11
16
|
}, {
|
|
12
17
|
executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
|
|
@@ -5,6 +5,6 @@ export declare const nonEncodableStringStructureKind: DKind.Handler<DKind.Defini
|
|
|
5
5
|
export interface NonEncodableStringStructureDefinition extends StructureDefinition<readonly []> {
|
|
6
6
|
readonly value: string;
|
|
7
7
|
}
|
|
8
|
-
export interface NonEncodableStringStructure extends DCommon.
|
|
8
|
+
export interface NonEncodableStringStructure extends DCommon.Forward<Structure<String, NonEncodableStringStructureDefinition> & DKind.Kind<typeof nonEncodableStringStructureKind>> {
|
|
9
9
|
}
|
|
10
10
|
export declare const NonEncodableStringStructure: (value: string) => NoInfer<NonEncodableStringStructure>;
|
|
@@ -25,6 +25,6 @@ export interface ObjectStructureDefinition<GenericConstraints extends readonly C
|
|
|
25
25
|
readonly shape: DCommon.Memoized<readonly EntryShapeObjectStructure[]>;
|
|
26
26
|
readonly keys: readonly string[];
|
|
27
27
|
}
|
|
28
|
-
export interface ObjectStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
28
|
+
export interface ObjectStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, ObjectStructureDefinition<GenericConstraints>> & DKind.Kind<typeof objectStructureKind>> {
|
|
29
29
|
}
|
|
30
30
|
export declare const ObjectStructure: <GenericShape extends ShapeObjectStructure, const GenericConstraints extends readonly Constraint<ShapeObjectStructureValue<GenericShape>>[]>(shape: GenericShape, constraints: GenericConstraints) => NoInfer<ObjectStructure<ShapeObjectStructureValue<GenericShape>, readonly [...GenericConstraints]>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
2
|
const require_isType = require("../../../common/isType.cjs");
|
|
3
|
-
const
|
|
3
|
+
const require_memo = require("../../../common/memo.cjs");
|
|
4
4
|
const require_kind = require("../../kind.cjs");
|
|
5
5
|
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
6
6
|
const require_base = require("../base.cjs");
|
|
@@ -16,10 +16,10 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
16
16
|
key,
|
|
17
17
|
value,
|
|
18
18
|
constraints,
|
|
19
|
-
requiredKeys:
|
|
19
|
+
requiredKeys: require_memo.memo(() => {
|
|
20
20
|
if (require_identifier.structureIdentifier(key, require_union.unionStructureKind)) {
|
|
21
|
-
if (key.definition.values.some((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_string.stringTypeKind))) return null;
|
|
22
|
-
return key.definition.values.map((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_stringLiteral.stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(require_isType.isType("string"));
|
|
21
|
+
if (key.definition.values.value.some((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_string.stringTypeKind))) return null;
|
|
22
|
+
return key.definition.values.value.map((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_stringLiteral.stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(require_isType.isType("string"));
|
|
23
23
|
}
|
|
24
24
|
if (require_identifier.structureIdentifier(key, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(key.definition.type, require_stringLiteral.stringLiteralTypeKind)) return [key.definition.type.definition.value];
|
|
25
25
|
return null;
|
|
@@ -28,7 +28,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
28
28
|
executeCheck: (self, data, errorHandler) => {
|
|
29
29
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
30
30
|
const keyData = Object.keys(data);
|
|
31
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
31
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
32
32
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
33
33
|
const pathStage = errorHandler?.().createPathStage();
|
|
34
34
|
const result = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === require_resultSymbol.ErrorSymbol || resultKey === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol))), require_resultSymbol.SuccessSymbol);
|
|
@@ -40,7 +40,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
40
40
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
41
41
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
42
42
|
const keyData = Object.keys(data);
|
|
43
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
43
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
44
44
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
45
45
|
const pathStage = errorHandler?.().createPathStage();
|
|
46
46
|
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
|
|
@@ -53,7 +53,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
53
53
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
54
54
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
55
55
|
const keyData = Object.keys(data);
|
|
56
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
56
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
57
57
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
58
58
|
const pathStage = errorHandler?.().createPathStage();
|
|
59
59
|
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
|
|
@@ -12,8 +12,8 @@ export declare const recordStructureKind: DKind.Handler<DKind.Definition<"@Duplo
|
|
|
12
12
|
export interface RecordStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
13
13
|
readonly key: UnionStructure<string> | TypeStructure<string>;
|
|
14
14
|
readonly value: Structure;
|
|
15
|
-
readonly requiredKeys: string[] | null
|
|
15
|
+
readonly requiredKeys: DCommon.Memoized<string[] | null>;
|
|
16
16
|
}
|
|
17
|
-
export interface RecordStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
17
|
+
export interface RecordStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, RecordStructureDefinition<GenericConstraints>> & DKind.Kind<typeof recordStructureKind>> {
|
|
18
18
|
}
|
|
19
19
|
export declare const RecordStructure: <GenericKey extends (UnionStructure<string> | TypeStructure<string>), GenericValueStructure extends Structure, const GenericConstraints extends readonly Constraint<RecordStructureValue<GenericKey, GenericValueStructure>>[]>(key: GenericKey, value: GenericValueStructure, constraints: GenericConstraints) => NoInfer<RecordStructure<RecordStructureValue<GenericKey, GenericValueStructure>, readonly [...GenericConstraints]>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
2
|
import { isType } from "../../../common/isType.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { memo } from "../../../common/memo.mjs";
|
|
4
4
|
import { createKind } from "../../kind.mjs";
|
|
5
5
|
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
6
6
|
import { createStructure } from "../base.mjs";
|
|
@@ -16,10 +16,10 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
16
16
|
key,
|
|
17
17
|
value,
|
|
18
18
|
constraints,
|
|
19
|
-
requiredKeys:
|
|
19
|
+
requiredKeys: memo(() => {
|
|
20
20
|
if (structureIdentifier(key, unionStructureKind)) {
|
|
21
|
-
if (key.definition.values.some((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringTypeKind))) return null;
|
|
22
|
-
return key.definition.values.map((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(isType("string"));
|
|
21
|
+
if (key.definition.values.value.some((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringTypeKind))) return null;
|
|
22
|
+
return key.definition.values.value.map((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(isType("string"));
|
|
23
23
|
}
|
|
24
24
|
if (structureIdentifier(key, typeStructureKind) && typeIdentifier(key.definition.type, stringLiteralTypeKind)) return [key.definition.type.definition.value];
|
|
25
25
|
return null;
|
|
@@ -28,7 +28,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
28
28
|
executeCheck: (self, data, errorHandler) => {
|
|
29
29
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
30
30
|
const keyData = Object.keys(data);
|
|
31
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
31
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
32
32
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
33
33
|
const pathStage = errorHandler?.().createPathStage();
|
|
34
34
|
const result = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === ErrorSymbol || resultKey === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol))), SuccessSymbol);
|
|
@@ -40,7 +40,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
40
40
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
41
41
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
42
42
|
const keyData = Object.keys(data);
|
|
43
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
43
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
44
44
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
45
45
|
const pathStage = errorHandler?.().createPathStage();
|
|
46
46
|
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
|
|
@@ -53,7 +53,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
53
53
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
54
54
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
55
55
|
const keyData = Object.keys(data);
|
|
56
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
56
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
57
57
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
58
58
|
const pathStage = errorHandler?.().createPathStage();
|
|
59
59
|
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
|
|
@@ -7,6 +7,6 @@ export declare const typeStructureKind: DKind.Handler<DKind.Definition<"@Duplojs
|
|
|
7
7
|
export interface TypeStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
8
8
|
readonly type: Type;
|
|
9
9
|
}
|
|
10
|
-
export interface TypeStructure<GenericType extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.
|
|
10
|
+
export interface TypeStructure<GenericType extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.Forward<Structure<GenericType, TypeStructureDefinition<GenericConstraints>> & DKind.Kind<typeof typeStructureKind>> {
|
|
11
11
|
}
|
|
12
12
|
export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => NoInfer<TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]>>;
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
|
+
const require_memo = require("../../../common/memo.cjs");
|
|
2
3
|
const require_kind = require("../../kind.cjs");
|
|
3
4
|
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
4
5
|
const require_error = require("../../common/error.cjs");
|
|
5
6
|
const require_base = require("../base.cjs");
|
|
6
7
|
const require_identifier = require("../identifier.cjs");
|
|
8
|
+
const require_lazy = require("./lazy.cjs");
|
|
7
9
|
//#region scripts/dataStructure/structure/defaults/union.ts
|
|
8
10
|
const unionStructureKind = require_kind.createKind("union-structure");
|
|
9
11
|
const UnionStructure = require_base.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
10
|
-
values:
|
|
12
|
+
values: require_memo.memo(() => values.flatMap((value) => (function flatUnion(structure) {
|
|
13
|
+
if (require_identifier.structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
|
|
14
|
+
if (require_identifier.structureIdentifier(structure, require_lazy.lazyStructureKind)) return flatUnion(structure.definition.getter.value);
|
|
15
|
+
return structure;
|
|
16
|
+
})(value))),
|
|
11
17
|
constraints
|
|
12
18
|
}, {
|
|
13
19
|
executeCheck: (self, data, errorHandler) => {
|
|
14
20
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
15
|
-
const result = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
21
|
+
const result = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
16
22
|
if (awaitedAccumulator === require_resultSymbol.SuccessSymbol) return awaitedAccumulator;
|
|
17
23
|
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
|
|
18
24
|
if (errorHandlers && subErrorHandler) {
|
|
@@ -32,7 +38,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
32
38
|
},
|
|
33
39
|
executeEncode: (self, codec, data, errorHandler) => {
|
|
34
40
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
35
|
-
const encodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
41
|
+
const encodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
36
42
|
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
37
43
|
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
|
|
38
44
|
if (errorHandlers && subErrorHandler) {
|
|
@@ -52,7 +58,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
52
58
|
},
|
|
53
59
|
executeDecode: (self, codec, data, errorHandler) => {
|
|
54
60
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
55
|
-
const decodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
61
|
+
const decodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
56
62
|
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
57
63
|
const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
|
|
58
64
|
if (errorHandlers && subErrorHandler) {
|
|
@@ -70,7 +76,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
70
76
|
return require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData);
|
|
71
77
|
});
|
|
72
78
|
},
|
|
73
|
-
isAsynchronous: (self) => self.definition.values.some((value) => value.isAsynchronous())
|
|
79
|
+
isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
|
|
74
80
|
}));
|
|
75
81
|
//#endregion
|
|
76
82
|
exports.UnionStructure = UnionStructure;
|
|
@@ -5,8 +5,8 @@ import type * as DKind from '../../../kind';
|
|
|
5
5
|
import * as DCommon from '../../../common';
|
|
6
6
|
export declare const unionStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/union-structure", unknown>>;
|
|
7
7
|
export interface UnionStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
8
|
-
readonly values: DCommon.AnyTuple<Structure
|
|
8
|
+
readonly values: DCommon.Memoized<DCommon.AnyTuple<Structure>>;
|
|
9
9
|
}
|
|
10
|
-
export interface UnionStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
10
|
+
export interface UnionStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, UnionStructureDefinition<GenericConstraints>> & DKind.Kind<typeof unionStructureKind>> {
|
|
11
11
|
}
|
|
12
12
|
export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => NoInfer<UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]>>;
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
|
+
import { memo } from "../../../common/memo.mjs";
|
|
2
3
|
import { createKind } from "../../kind.mjs";
|
|
3
4
|
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
4
5
|
import { createGetErrorHandler } from "../../common/error.mjs";
|
|
5
6
|
import { createStructure } from "../base.mjs";
|
|
6
7
|
import { structureIdentifier } from "../identifier.mjs";
|
|
8
|
+
import { lazyStructureKind } from "./lazy.mjs";
|
|
7
9
|
//#region scripts/dataStructure/structure/defaults/union.ts
|
|
8
10
|
const unionStructureKind = createKind("union-structure");
|
|
9
11
|
const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
10
|
-
values: values.flatMap((value) =>
|
|
12
|
+
values: memo(() => values.flatMap((value) => (function flatUnion(structure) {
|
|
13
|
+
if (structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
|
|
14
|
+
if (structureIdentifier(structure, lazyStructureKind)) return flatUnion(structure.definition.getter.value);
|
|
15
|
+
return structure;
|
|
16
|
+
})(value))),
|
|
11
17
|
constraints
|
|
12
18
|
}, {
|
|
13
19
|
executeCheck: (self, data, errorHandler) => {
|
|
14
20
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
15
|
-
const result = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
21
|
+
const result = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
16
22
|
if (awaitedAccumulator === SuccessSymbol) return awaitedAccumulator;
|
|
17
23
|
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
18
24
|
if (errorHandlers && subErrorHandler) {
|
|
@@ -32,7 +38,7 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
32
38
|
},
|
|
33
39
|
executeEncode: (self, codec, data, errorHandler) => {
|
|
34
40
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
35
|
-
const encodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
41
|
+
const encodedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
36
42
|
if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
|
|
37
43
|
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
38
44
|
if (errorHandlers && subErrorHandler) {
|
|
@@ -52,7 +58,7 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
52
58
|
},
|
|
53
59
|
executeDecode: (self, codec, data, errorHandler) => {
|
|
54
60
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
55
|
-
const decodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
61
|
+
const decodedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
56
62
|
if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
|
|
57
63
|
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
58
64
|
if (errorHandlers && subErrorHandler) {
|
|
@@ -70,7 +76,7 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
70
76
|
return callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData);
|
|
71
77
|
});
|
|
72
78
|
},
|
|
73
|
-
isAsynchronous: (self) => self.definition.values.some((value) => value.isAsynchronous())
|
|
79
|
+
isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
|
|
74
80
|
}));
|
|
75
81
|
//#endregion
|
|
76
82
|
export { UnionStructure, unionStructureKind };
|