@maroonedog/luq 2.4.2 → 2.4.4
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/README.md +158 -6
- package/dist/chain/field-chain.types.d.ts +11 -1
- package/dist/chain/index.d.ts +2 -0
- package/dist/chain/plugin-not-imported.types.d.ts +40 -0
- package/dist/chain/plugin-not-imported.types.js +2 -0
- package/dist/chain/plugin-not-imported.types.mjs +1 -0
- package/dist/chain/slot-catalog.generated.d.ts +265 -0
- package/dist/chain/slot-catalog.generated.js +4 -0
- package/dist/chain/slot-catalog.generated.mjs +3 -0
- package/dist/core/type-erasure.d.ts +20 -0
- package/dist/core/type-erasure.js +23 -0
- package/dist/core/type-erasure.mjs +22 -0
- package/dist/field-rule/use-field.d.ts +2 -1
- package/dist/field-rule/use-field.js +9 -2
- package/dist/field-rule/use-field.mjs +9 -2
- package/dist/plugins/manifest.generated.d.ts +18 -0
- package/dist/plugins/manifest.generated.js +77 -77
- package/dist/plugins/manifest.generated.mjs +77 -77
- package/dist/runtime/index-stack.d.ts +10 -1
- package/dist/runtime/index-stack.js +19 -3
- package/dist/runtime/index-stack.mjs +19 -3
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +1 -2
- package/dist/runtime/index.mjs +1 -1
- package/dist/runtime/run-branch.js +8 -3
- package/dist/runtime/run-branch.mjs +9 -4
- package/dist/runtime/run-plan.d.ts +5 -11
- package/dist/runtime/run-plan.js +5 -21
- package/dist/runtime/run-plan.mjs +5 -20
- package/dist/runtime/run-recursion.js +9 -7
- package/dist/runtime/run-recursion.mjs +10 -8
- package/dist/schema-tooling/index.d.ts +11 -0
- package/dist/schema-tooling/index.js +12 -1
- package/dist/schema-tooling/index.mjs +10 -0
- package/package.json +6 -4
|
@@ -1,81 +1,81 @@
|
|
|
1
1
|
// GENERATED FILE - do not edit by hand.
|
|
2
2
|
// Generated by scripts/catalog/build-plugin-catalog.ts out of the plugin directory structure.
|
|
3
3
|
export const PLUGIN_MANIFEST = [
|
|
4
|
-
{ directoryName: "array-contains", subpathName: "arrayContains", tier: "isolated", entryFile: "src/plugins/array-contains/index.ts", exportedSymbols: ["arrayContainsPlugin"] },
|
|
5
|
-
{ directoryName: "array-each", subpathName: "arrayEach", tier: "isolated", entryFile: "src/plugins/array-each/index.ts", exportedSymbols: ["arrayEachPlugin"] },
|
|
6
|
-
{ directoryName: "array-includes", subpathName: "arrayIncludes", tier: "isolated", entryFile: "src/plugins/array-includes/index.ts", exportedSymbols: ["arrayIncludesPlugin"] },
|
|
7
|
-
{ directoryName: "array-max-length", subpathName: "arrayMaxLength", tier: "isolated", entryFile: "src/plugins/array-max-length/index.ts", exportedSymbols: ["arrayMaxLengthPlugin"] },
|
|
8
|
-
{ directoryName: "array-min-length", subpathName: "arrayMinLength", tier: "isolated", entryFile: "src/plugins/array-min-length/index.ts", exportedSymbols: ["arrayMinLengthPlugin"] },
|
|
9
|
-
{ directoryName: "array-unique", subpathName: "arrayUnique", tier: "isolated", entryFile: "src/plugins/array-unique/index.ts", exportedSymbols: ["arrayUniquePlugin"] },
|
|
10
|
-
{ directoryName: "boolean-falsy", subpathName: "booleanFalsy", tier: "isolated", entryFile: "src/plugins/boolean-falsy/index.ts", exportedSymbols: ["booleanFalsyPlugin"] },
|
|
11
|
-
{ directoryName: "boolean-truthy", subpathName: "booleanTruthy", tier: "isolated", entryFile: "src/plugins/boolean-truthy/index.ts", exportedSymbols: ["booleanTruthyPlugin"] },
|
|
12
|
-
{ directoryName: "compare-field", subpathName: "compareField", tier: "isolated", entryFile: "src/plugins/compare-field/index.ts", exportedSymbols: ["compareFieldPlugin"] },
|
|
13
|
-
{ directoryName: "conditional-schema", subpathName: "conditionalSchema", tier: "isolated", entryFile: "src/plugins/conditional-schema/index.ts", exportedSymbols: ["conditionalSchemaPlugin"] },
|
|
14
|
-
{ directoryName: "custom", subpathName: "custom", tier: "isolated", entryFile: "src/plugins/custom/index.ts", exportedSymbols: ["customPlugin"] },
|
|
15
|
-
{ directoryName: "from-context", subpathName: "fromContext", tier: "isolated", entryFile: "src/plugins/from-context/index.ts", exportedSymbols: ["fromContextPlugin"] },
|
|
16
|
-
{ directoryName: "json-schema", subpathName: "jsonSchema", tier: "extension", entryFile: "src/json-schema/extensions/json-schema/index.ts", exportedSymbols: ["jsonSchemaPlugin"] },
|
|
17
|
-
{ directoryName: "json-schema-full-feature", subpathName: "jsonSchemaFullFeature", tier: "extension", entryFile: "src/json-schema/extensions/json-schema-full-feature/index.ts", exportedSymbols: ["jsonSchemaFullFeaturePlugin"] },
|
|
18
|
-
{ directoryName: "literal", subpathName: "literal", tier: "isolated", entryFile: "src/plugins/literal/index.ts", exportedSymbols: ["literalPlugin"] },
|
|
19
|
-
{ directoryName: "nullable", subpathName: "nullable", tier: "isolated", entryFile: "src/plugins/nullable/index.ts", exportedSymbols: ["nullablePlugin"] },
|
|
20
|
-
{ directoryName: "number-finite", subpathName: "numberFinite", tier: "isolated", entryFile: "src/plugins/number-finite/index.ts", exportedSymbols: ["numberFinitePlugin"] },
|
|
21
|
-
{ directoryName: "number-integer", subpathName: "numberInteger", tier: "isolated", entryFile: "src/plugins/number-integer/index.ts", exportedSymbols: ["numberIntegerPlugin"] },
|
|
22
|
-
{ directoryName: "number-max", subpathName: "numberMax", tier: "isolated", entryFile: "src/plugins/number-max/index.ts", exportedSymbols: ["numberMaxPlugin"] },
|
|
23
|
-
{ directoryName: "number-min", subpathName: "numberMin", tier: "isolated", entryFile: "src/plugins/number-min/index.ts", exportedSymbols: ["numberMinPlugin"] },
|
|
24
|
-
{ directoryName: "number-multiple-of", subpathName: "numberMultipleOf", tier: "isolated", entryFile: "src/plugins/number-multiple-of/index.ts", exportedSymbols: ["numberMultipleOfPlugin"] },
|
|
25
|
-
{ directoryName: "number-negative", subpathName: "numberNegative", tier: "isolated", entryFile: "src/plugins/number-negative/index.ts", exportedSymbols: ["numberNegativePlugin"] },
|
|
26
|
-
{ directoryName: "number-positive", subpathName: "numberPositive", tier: "isolated", entryFile: "src/plugins/number-positive/index.ts", exportedSymbols: ["numberPositivePlugin"] },
|
|
27
|
-
{ directoryName: "number-range", subpathName: "numberRange", tier: "isolated", entryFile: "src/plugins/number-range/index.ts", exportedSymbols: ["numberRangePlugin"] },
|
|
28
|
-
{ directoryName: "object", subpathName: "object", tier: "isolated", entryFile: "src/plugins/object/index.ts", exportedSymbols: ["objectPlugin"] },
|
|
29
|
-
{ directoryName: "object-additional-properties", subpathName: "objectAdditionalProperties", tier: "isolated", entryFile: "src/plugins/object-additional-properties/index.ts", exportedSymbols: ["objectAdditionalPropertiesPlugin", "objectAdditionalPropertiesSchemaPlugin"] },
|
|
30
|
-
{ directoryName: "object-dependent-required", subpathName: "objectDependentRequired", tier: "isolated", entryFile: "src/plugins/object-dependent-required/index.ts", exportedSymbols: ["objectDependentRequiredPlugin"] },
|
|
31
|
-
{ directoryName: "object-dependent-schemas", subpathName: "objectDependentSchemas", tier: "isolated", entryFile: "src/plugins/object-dependent-schemas/index.ts", exportedSymbols: ["objectDependentSchemasPlugin"] },
|
|
32
|
-
{ directoryName: "object-max-properties", subpathName: "objectMaxProperties", tier: "isolated", entryFile: "src/plugins/object-max-properties/index.ts", exportedSymbols: ["objectMaxPropertiesPlugin"] },
|
|
33
|
-
{ directoryName: "object-min-properties", subpathName: "objectMinProperties", tier: "isolated", entryFile: "src/plugins/object-min-properties/index.ts", exportedSymbols: ["objectMinPropertiesPlugin"] },
|
|
34
|
-
{ directoryName: "object-pattern-properties", subpathName: "objectPatternProperties", tier: "isolated", entryFile: "src/plugins/object-pattern-properties/index.ts", exportedSymbols: ["objectPatternPropertiesPlugin"] },
|
|
35
|
-
{ directoryName: "object-property-names", subpathName: "objectPropertyNames", tier: "isolated", entryFile: "src/plugins/object-property-names/index.ts", exportedSymbols: ["objectPropertyNamesPlugin"] },
|
|
36
|
-
{ directoryName: "object-recursively", subpathName: "objectRecursively", tier: "isolated", entryFile: "src/plugins/object-recursively/index.ts", exportedSymbols: ["objectRecursivelyPlugin"] },
|
|
37
|
-
{ directoryName: "one-of", subpathName: "oneOf", tier: "isolated", entryFile: "src/plugins/one-of/index.ts", exportedSymbols: ["oneOfPlugin"] },
|
|
38
|
-
{ directoryName: "optional", subpathName: "optional", tier: "isolated", entryFile: "src/plugins/optional/index.ts", exportedSymbols: ["optionalPlugin"] },
|
|
39
|
-
{ directoryName: "optional-if", subpathName: "optionalIf", tier: "isolated", entryFile: "src/plugins/optional-if/index.ts", exportedSymbols: ["optionalIfPlugin"] },
|
|
40
|
-
{ directoryName: "or-fail", subpathName: "orFail", tier: "isolated", entryFile: "src/plugins/or-fail/index.ts", exportedSymbols: ["orFailPlugin"] },
|
|
41
|
-
{ directoryName: "read-only", subpathName: "readOnly", tier: "isolated", entryFile: "src/plugins/read-only/index.ts", exportedSymbols: ["readOnlyPlugin"] },
|
|
42
|
-
{ directoryName: "required", subpathName: "required", tier: "isolated", entryFile: "src/plugins/required/index.ts", exportedSymbols: ["requiredPlugin"] },
|
|
43
|
-
{ directoryName: "required-if", subpathName: "requiredIf", tier: "isolated", entryFile: "src/plugins/required-if/index.ts", exportedSymbols: ["requiredIfPlugin"] },
|
|
44
|
-
{ directoryName: "skip", subpathName: "skip", tier: "isolated", entryFile: "src/plugins/skip/index.ts", exportedSymbols: ["skipPlugin"] },
|
|
45
|
-
{ directoryName: "stitch", subpathName: "stitch", tier: "isolated", entryFile: "src/plugins/stitch/index.ts", exportedSymbols: ["stitchPlugin"] },
|
|
46
|
-
{ directoryName: "stitch-with", subpathName: "stitchWith", tier: "isolated", entryFile: "src/plugins/stitch-with/index.ts", exportedSymbols: ["stitchWithPlugin"] },
|
|
47
|
-
{ directoryName: "string-alphanumeric", subpathName: "stringAlphanumeric", tier: "isolated", entryFile: "src/plugins/string-alphanumeric/index.ts", exportedSymbols: ["stringAlphanumericPlugin"] },
|
|
48
|
-
{ directoryName: "string-base64", subpathName: "stringBase64", tier: "isolated", entryFile: "src/plugins/string-base64/index.ts", exportedSymbols: ["stringBase64Plugin"] },
|
|
49
|
-
{ directoryName: "string-content-encoding", subpathName: "stringContentEncoding", tier: "isolated", entryFile: "src/plugins/string-content-encoding/index.ts", exportedSymbols: ["stringContentEncodingPlugin"] },
|
|
50
|
-
{ directoryName: "string-content-media-type", subpathName: "stringContentMediaType", tier: "isolated", entryFile: "src/plugins/string-content-media-type/index.ts", exportedSymbols: ["stringContentMediaTypePlugin"] },
|
|
51
|
-
{ directoryName: "string-date", subpathName: "stringDate", tier: "isolated", entryFile: "src/plugins/string-date/index.ts", exportedSymbols: ["stringDatePlugin"] },
|
|
52
|
-
{ directoryName: "string-datetime", subpathName: "stringDatetime", tier: "isolated", entryFile: "src/plugins/string-datetime/index.ts", exportedSymbols: ["stringDatetimePlugin"] },
|
|
53
|
-
{ directoryName: "string-duration", subpathName: "stringDuration", tier: "isolated", entryFile: "src/plugins/string-duration/index.ts", exportedSymbols: ["stringDurationPlugin"] },
|
|
54
|
-
{ directoryName: "string-email", subpathName: "stringEmail", tier: "isolated", entryFile: "src/plugins/string-email/index.ts", exportedSymbols: ["stringEmailPlugin"] },
|
|
55
|
-
{ directoryName: "string-ends-with", subpathName: "stringEndsWith", tier: "isolated", entryFile: "src/plugins/string-ends-with/index.ts", exportedSymbols: ["stringEndsWithPlugin"] },
|
|
56
|
-
{ directoryName: "string-exact-length", subpathName: "stringExactLength", tier: "isolated", entryFile: "src/plugins/string-exact-length/index.ts", exportedSymbols: ["stringExactLengthPlugin"] },
|
|
57
|
-
{ directoryName: "string-hostname", subpathName: "stringHostname", tier: "isolated", entryFile: "src/plugins/string-hostname/index.ts", exportedSymbols: ["stringHostnamePlugin"] },
|
|
58
|
-
{ directoryName: "string-idn-email", subpathName: "stringIdnEmail", tier: "isolated", entryFile: "src/plugins/string-idn-email/index.ts", exportedSymbols: ["stringIdnEmailPlugin"] },
|
|
59
|
-
{ directoryName: "string-idn-hostname", subpathName: "stringIdnHostname", tier: "isolated", entryFile: "src/plugins/string-idn-hostname/index.ts", exportedSymbols: ["stringIdnHostnamePlugin"] },
|
|
60
|
-
{ directoryName: "string-ipv4", subpathName: "stringIpv4", tier: "isolated", entryFile: "src/plugins/string-ipv4/index.ts", exportedSymbols: ["stringIpv4Plugin"] },
|
|
61
|
-
{ directoryName: "string-ipv6", subpathName: "stringIpv6", tier: "isolated", entryFile: "src/plugins/string-ipv6/index.ts", exportedSymbols: ["stringIpv6Plugin"] },
|
|
62
|
-
{ directoryName: "string-iri", subpathName: "stringIri", tier: "isolated", entryFile: "src/plugins/string-iri/index.ts", exportedSymbols: ["stringIriPlugin"] },
|
|
63
|
-
{ directoryName: "string-iri-reference", subpathName: "stringIriReference", tier: "isolated", entryFile: "src/plugins/string-iri-reference/index.ts", exportedSymbols: ["stringIriReferencePlugin"] },
|
|
64
|
-
{ directoryName: "string-json-pointer", subpathName: "stringJsonPointer", tier: "isolated", entryFile: "src/plugins/string-json-pointer/index.ts", exportedSymbols: ["stringJsonPointerPlugin"] },
|
|
65
|
-
{ directoryName: "string-max", subpathName: "stringMax", tier: "isolated", entryFile: "src/plugins/string-max/index.ts", exportedSymbols: ["stringMaxPlugin"] },
|
|
66
|
-
{ directoryName: "string-min", subpathName: "stringMin", tier: "isolated", entryFile: "src/plugins/string-min/index.ts", exportedSymbols: ["stringMinPlugin"] },
|
|
67
|
-
{ directoryName: "string-pattern", subpathName: "stringPattern", tier: "isolated", entryFile: "src/plugins/string-pattern/index.ts", exportedSymbols: ["stringPatternPlugin"] },
|
|
68
|
-
{ directoryName: "string-regex", subpathName: "stringRegex", tier: "isolated", entryFile: "src/plugins/string-regex/index.ts", exportedSymbols: ["stringRegexPlugin"] },
|
|
69
|
-
{ directoryName: "string-relative-json-pointer", subpathName: "stringRelativeJsonPointer", tier: "isolated", entryFile: "src/plugins/string-relative-json-pointer/index.ts", exportedSymbols: ["stringRelativeJsonPointerPlugin"] },
|
|
70
|
-
{ directoryName: "string-starts-with", subpathName: "stringStartsWith", tier: "isolated", entryFile: "src/plugins/string-starts-with/index.ts", exportedSymbols: ["stringStartsWithPlugin"] },
|
|
71
|
-
{ directoryName: "string-time", subpathName: "stringTime", tier: "isolated", entryFile: "src/plugins/string-time/index.ts", exportedSymbols: ["stringTimePlugin"] },
|
|
72
|
-
{ directoryName: "string-uri-reference", subpathName: "stringUriReference", tier: "isolated", entryFile: "src/plugins/string-uri-reference/index.ts", exportedSymbols: ["stringUriReferencePlugin"] },
|
|
73
|
-
{ directoryName: "string-uri-template", subpathName: "stringUriTemplate", tier: "isolated", entryFile: "src/plugins/string-uri-template/index.ts", exportedSymbols: ["stringUriTemplatePlugin"] },
|
|
74
|
-
{ directoryName: "string-url", subpathName: "stringUrl", tier: "isolated", entryFile: "src/plugins/string-url/index.ts", exportedSymbols: ["stringUrlPlugin"] },
|
|
75
|
-
{ directoryName: "transform", subpathName: "transform", tier: "isolated", entryFile: "src/plugins/transform/index.ts", exportedSymbols: ["transformPlugin"] },
|
|
76
|
-
{ directoryName: "tuple-builder", subpathName: "tupleBuilder", tier: "isolated", entryFile: "src/plugins/tuple-builder/index.ts", exportedSymbols: ["tupleBuilderPlugin"] },
|
|
77
|
-
{ directoryName: "union-guard", subpathName: "unionGuard", tier: "isolated", entryFile: "src/plugins/union-guard/index.ts", exportedSymbols: ["unionGuardPlugin"] },
|
|
78
|
-
{ directoryName: "uuid", subpathName: "uuid", tier: "isolated", entryFile: "src/plugins/uuid/index.ts", exportedSymbols: ["uuidPlugin"] },
|
|
79
|
-
{ directoryName: "validate-if", subpathName: "validateIf", tier: "isolated", entryFile: "src/plugins/validate-if/index.ts", exportedSymbols: ["validateIfPlugin"] },
|
|
80
|
-
{ directoryName: "write-only", subpathName: "writeOnly", tier: "isolated", entryFile: "src/plugins/write-only/index.ts", exportedSymbols: ["writeOnlyPlugin"] },
|
|
4
|
+
{ directoryName: "array-contains", subpathName: "arrayContains", tier: "isolated", entryFile: "src/plugins/array-contains/index.ts", entryPoint: "@maroonedog/luq/plugins/arrayContains", exportedSymbols: ["arrayContainsPlugin"], surfaces: [{ "symbol": "arrayContainsPlugin", "method": "contains", "slots": ["array", "tuple"] }] },
|
|
5
|
+
{ directoryName: "array-each", subpathName: "arrayEach", tier: "isolated", entryFile: "src/plugins/array-each/index.ts", entryPoint: "@maroonedog/luq/plugins/arrayEach", exportedSymbols: ["arrayEachPlugin"], surfaces: [{ "symbol": "arrayEachPlugin", "method": "each", "slots": ["array", "tuple"] }] },
|
|
6
|
+
{ directoryName: "array-includes", subpathName: "arrayIncludes", tier: "isolated", entryFile: "src/plugins/array-includes/index.ts", entryPoint: "@maroonedog/luq/plugins/arrayIncludes", exportedSymbols: ["arrayIncludesPlugin"], surfaces: [{ "symbol": "arrayIncludesPlugin", "method": "includes", "slots": ["array", "tuple"] }] },
|
|
7
|
+
{ directoryName: "array-max-length", subpathName: "arrayMaxLength", tier: "isolated", entryFile: "src/plugins/array-max-length/index.ts", entryPoint: "@maroonedog/luq/plugins/arrayMaxLength", exportedSymbols: ["arrayMaxLengthPlugin"], surfaces: [{ "symbol": "arrayMaxLengthPlugin", "method": "maxLength", "slots": ["array", "tuple"] }] },
|
|
8
|
+
{ directoryName: "array-min-length", subpathName: "arrayMinLength", tier: "isolated", entryFile: "src/plugins/array-min-length/index.ts", entryPoint: "@maroonedog/luq/plugins/arrayMinLength", exportedSymbols: ["arrayMinLengthPlugin"], surfaces: [{ "symbol": "arrayMinLengthPlugin", "method": "minLength", "slots": ["array", "tuple"] }] },
|
|
9
|
+
{ directoryName: "array-unique", subpathName: "arrayUnique", tier: "isolated", entryFile: "src/plugins/array-unique/index.ts", entryPoint: "@maroonedog/luq/plugins/arrayUnique", exportedSymbols: ["arrayUniquePlugin"], surfaces: [{ "symbol": "arrayUniquePlugin", "method": "unique", "slots": ["array", "tuple"] }] },
|
|
10
|
+
{ directoryName: "boolean-falsy", subpathName: "booleanFalsy", tier: "isolated", entryFile: "src/plugins/boolean-falsy/index.ts", entryPoint: "@maroonedog/luq/plugins/booleanFalsy", exportedSymbols: ["booleanFalsyPlugin"], surfaces: [{ "symbol": "booleanFalsyPlugin", "method": "falsy", "slots": ["boolean"] }] },
|
|
11
|
+
{ directoryName: "boolean-truthy", subpathName: "booleanTruthy", tier: "isolated", entryFile: "src/plugins/boolean-truthy/index.ts", entryPoint: "@maroonedog/luq/plugins/booleanTruthy", exportedSymbols: ["booleanTruthyPlugin"], surfaces: [{ "symbol": "booleanTruthyPlugin", "method": "truthy", "slots": ["boolean"] }] },
|
|
12
|
+
{ directoryName: "compare-field", subpathName: "compareField", tier: "isolated", entryFile: "src/plugins/compare-field/index.ts", entryPoint: "@maroonedog/luq/plugins/compareField", exportedSymbols: ["compareFieldPlugin"], surfaces: [{ "symbol": "compareFieldPlugin", "method": "compareField", "slots": ["string", "number", "boolean", "date", "object", "array", "tuple", "union"] }] },
|
|
13
|
+
{ directoryName: "conditional-schema", subpathName: "conditionalSchema", tier: "isolated", entryFile: "src/plugins/conditional-schema/index.ts", entryPoint: "@maroonedog/luq/plugins/conditionalSchema", exportedSymbols: ["conditionalSchemaPlugin"], surfaces: [{ "symbol": "conditionalSchemaPlugin", "method": "conditionalSchema", "slots": ["object", "array", "string", "number", "boolean"] }] },
|
|
14
|
+
{ directoryName: "custom", subpathName: "custom", tier: "isolated", entryFile: "src/plugins/custom/index.ts", entryPoint: "@maroonedog/luq/plugins/custom", exportedSymbols: ["customPlugin"], surfaces: [{ "symbol": "customPlugin", "method": "custom", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
15
|
+
{ directoryName: "from-context", subpathName: "fromContext", tier: "isolated", entryFile: "src/plugins/from-context/index.ts", entryPoint: "@maroonedog/luq/plugins/fromContext", exportedSymbols: ["fromContextPlugin"], surfaces: [{ "symbol": "fromContextPlugin", "method": "fromContext", "slots": ["string", "number", "boolean", "date", "object", "array", "tuple", "union"] }] },
|
|
16
|
+
{ directoryName: "json-schema", subpathName: "jsonSchema", tier: "extension", entryFile: "src/json-schema/extensions/json-schema/index.ts", entryPoint: "@maroonedog/luq/plugins/jsonSchema", exportedSymbols: ["jsonSchemaPlugin"], surfaces: [{ "symbol": "jsonSchemaPlugin", "method": "jsonSchema", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
17
|
+
{ directoryName: "json-schema-full-feature", subpathName: "jsonSchemaFullFeature", tier: "extension", entryFile: "src/json-schema/extensions/json-schema-full-feature/index.ts", entryPoint: "@maroonedog/luq/plugins/jsonSchemaFullFeature", exportedSymbols: ["jsonSchemaFullFeaturePlugin"], surfaces: [{ "symbol": "jsonSchemaFullFeaturePlugin", "method": "jsonSchemaFullFeature", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
18
|
+
{ directoryName: "literal", subpathName: "literal", tier: "isolated", entryFile: "src/plugins/literal/index.ts", entryPoint: "@maroonedog/luq/plugins/literal", exportedSymbols: ["literalPlugin"], surfaces: [{ "symbol": "literalPlugin", "method": "literal", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
19
|
+
{ directoryName: "nullable", subpathName: "nullable", tier: "isolated", entryFile: "src/plugins/nullable/index.ts", entryPoint: "@maroonedog/luq/plugins/nullable", exportedSymbols: ["nullablePlugin"], surfaces: [{ "symbol": "nullablePlugin", "method": "nullable", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
20
|
+
{ directoryName: "number-finite", subpathName: "numberFinite", tier: "isolated", entryFile: "src/plugins/number-finite/index.ts", entryPoint: "@maroonedog/luq/plugins/numberFinite", exportedSymbols: ["numberFinitePlugin"], surfaces: [{ "symbol": "numberFinitePlugin", "method": "finite", "slots": ["number"] }] },
|
|
21
|
+
{ directoryName: "number-integer", subpathName: "numberInteger", tier: "isolated", entryFile: "src/plugins/number-integer/index.ts", entryPoint: "@maroonedog/luq/plugins/numberInteger", exportedSymbols: ["numberIntegerPlugin"], surfaces: [{ "symbol": "numberIntegerPlugin", "method": "integer", "slots": ["number"] }] },
|
|
22
|
+
{ directoryName: "number-max", subpathName: "numberMax", tier: "isolated", entryFile: "src/plugins/number-max/index.ts", entryPoint: "@maroonedog/luq/plugins/numberMax", exportedSymbols: ["numberMaxPlugin"], surfaces: [{ "symbol": "numberMaxPlugin", "method": "max", "slots": ["number"] }] },
|
|
23
|
+
{ directoryName: "number-min", subpathName: "numberMin", tier: "isolated", entryFile: "src/plugins/number-min/index.ts", entryPoint: "@maroonedog/luq/plugins/numberMin", exportedSymbols: ["numberMinPlugin"], surfaces: [{ "symbol": "numberMinPlugin", "method": "min", "slots": ["number"] }] },
|
|
24
|
+
{ directoryName: "number-multiple-of", subpathName: "numberMultipleOf", tier: "isolated", entryFile: "src/plugins/number-multiple-of/index.ts", entryPoint: "@maroonedog/luq/plugins/numberMultipleOf", exportedSymbols: ["numberMultipleOfPlugin"], surfaces: [{ "symbol": "numberMultipleOfPlugin", "method": "multipleOf", "slots": ["number"] }] },
|
|
25
|
+
{ directoryName: "number-negative", subpathName: "numberNegative", tier: "isolated", entryFile: "src/plugins/number-negative/index.ts", entryPoint: "@maroonedog/luq/plugins/numberNegative", exportedSymbols: ["numberNegativePlugin"], surfaces: [{ "symbol": "numberNegativePlugin", "method": "negative", "slots": ["number"] }] },
|
|
26
|
+
{ directoryName: "number-positive", subpathName: "numberPositive", tier: "isolated", entryFile: "src/plugins/number-positive/index.ts", entryPoint: "@maroonedog/luq/plugins/numberPositive", exportedSymbols: ["numberPositivePlugin"], surfaces: [{ "symbol": "numberPositivePlugin", "method": "positive", "slots": ["number"] }] },
|
|
27
|
+
{ directoryName: "number-range", subpathName: "numberRange", tier: "isolated", entryFile: "src/plugins/number-range/index.ts", entryPoint: "@maroonedog/luq/plugins/numberRange", exportedSymbols: ["numberRangePlugin"], surfaces: [{ "symbol": "numberRangePlugin", "method": "range", "slots": ["number"] }] },
|
|
28
|
+
{ directoryName: "object", subpathName: "object", tier: "isolated", entryFile: "src/plugins/object/index.ts", entryPoint: "@maroonedog/luq/plugins/object", exportedSymbols: ["objectPlugin"], surfaces: [{ "symbol": "objectPlugin", "method": "object", "slots": ["object"] }] },
|
|
29
|
+
{ directoryName: "object-additional-properties", subpathName: "objectAdditionalProperties", tier: "isolated", entryFile: "src/plugins/object-additional-properties/index.ts", entryPoint: "@maroonedog/luq/plugins/objectAdditionalProperties", exportedSymbols: ["objectAdditionalPropertiesPlugin", "objectAdditionalPropertiesSchemaPlugin"], surfaces: [{ "symbol": "objectAdditionalPropertiesPlugin", "method": "additionalProperties", "slots": ["object"] }, { "symbol": "objectAdditionalPropertiesSchemaPlugin", "method": "additionalPropertiesSchema", "slots": ["object"] }] },
|
|
30
|
+
{ directoryName: "object-dependent-required", subpathName: "objectDependentRequired", tier: "isolated", entryFile: "src/plugins/object-dependent-required/index.ts", entryPoint: "@maroonedog/luq/plugins/objectDependentRequired", exportedSymbols: ["objectDependentRequiredPlugin"], surfaces: [{ "symbol": "objectDependentRequiredPlugin", "method": "dependentRequired", "slots": ["object"] }] },
|
|
31
|
+
{ directoryName: "object-dependent-schemas", subpathName: "objectDependentSchemas", tier: "isolated", entryFile: "src/plugins/object-dependent-schemas/index.ts", entryPoint: "@maroonedog/luq/plugins/objectDependentSchemas", exportedSymbols: ["objectDependentSchemasPlugin"], surfaces: [{ "symbol": "objectDependentSchemasPlugin", "method": "dependentSchemas", "slots": ["object"] }] },
|
|
32
|
+
{ directoryName: "object-max-properties", subpathName: "objectMaxProperties", tier: "isolated", entryFile: "src/plugins/object-max-properties/index.ts", entryPoint: "@maroonedog/luq/plugins/objectMaxProperties", exportedSymbols: ["objectMaxPropertiesPlugin"], surfaces: [{ "symbol": "objectMaxPropertiesPlugin", "method": "maxProperties", "slots": ["object"] }] },
|
|
33
|
+
{ directoryName: "object-min-properties", subpathName: "objectMinProperties", tier: "isolated", entryFile: "src/plugins/object-min-properties/index.ts", entryPoint: "@maroonedog/luq/plugins/objectMinProperties", exportedSymbols: ["objectMinPropertiesPlugin"], surfaces: [{ "symbol": "objectMinPropertiesPlugin", "method": "minProperties", "slots": ["object"] }] },
|
|
34
|
+
{ directoryName: "object-pattern-properties", subpathName: "objectPatternProperties", tier: "isolated", entryFile: "src/plugins/object-pattern-properties/index.ts", entryPoint: "@maroonedog/luq/plugins/objectPatternProperties", exportedSymbols: ["objectPatternPropertiesPlugin"], surfaces: [{ "symbol": "objectPatternPropertiesPlugin", "method": "patternProperties", "slots": ["object"] }] },
|
|
35
|
+
{ directoryName: "object-property-names", subpathName: "objectPropertyNames", tier: "isolated", entryFile: "src/plugins/object-property-names/index.ts", entryPoint: "@maroonedog/luq/plugins/objectPropertyNames", exportedSymbols: ["objectPropertyNamesPlugin"], surfaces: [{ "symbol": "objectPropertyNamesPlugin", "method": "propertyNames", "slots": ["object"] }] },
|
|
36
|
+
{ directoryName: "object-recursively", subpathName: "objectRecursively", tier: "isolated", entryFile: "src/plugins/object-recursively/index.ts", entryPoint: "@maroonedog/luq/plugins/objectRecursively", exportedSymbols: ["objectRecursivelyPlugin"], surfaces: [{ "symbol": "objectRecursivelyPlugin", "method": "recursively", "slots": ["object", "array"] }] },
|
|
37
|
+
{ directoryName: "one-of", subpathName: "oneOf", tier: "isolated", entryFile: "src/plugins/one-of/index.ts", entryPoint: "@maroonedog/luq/plugins/oneOf", exportedSymbols: ["oneOfPlugin"], surfaces: [{ "symbol": "oneOfPlugin", "method": "oneOf", "slots": ["string", "number", "boolean"] }] },
|
|
38
|
+
{ directoryName: "optional", subpathName: "optional", tier: "isolated", entryFile: "src/plugins/optional/index.ts", entryPoint: "@maroonedog/luq/plugins/optional", exportedSymbols: ["optionalPlugin"], surfaces: [{ "symbol": "optionalPlugin", "method": "optional", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
39
|
+
{ directoryName: "optional-if", subpathName: "optionalIf", tier: "isolated", entryFile: "src/plugins/optional-if/index.ts", entryPoint: "@maroonedog/luq/plugins/optionalIf", exportedSymbols: ["optionalIfPlugin"], surfaces: [{ "symbol": "optionalIfPlugin", "method": "optionalIf", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
40
|
+
{ directoryName: "or-fail", subpathName: "orFail", tier: "isolated", entryFile: "src/plugins/or-fail/index.ts", entryPoint: "@maroonedog/luq/plugins/orFail", exportedSymbols: ["orFailPlugin"], surfaces: [{ "symbol": "orFailPlugin", "method": "orFail", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
41
|
+
{ directoryName: "read-only", subpathName: "readOnly", tier: "isolated", entryFile: "src/plugins/read-only/index.ts", entryPoint: "@maroonedog/luq/plugins/readOnly", exportedSymbols: ["readOnlyPlugin"], surfaces: [{ "symbol": "readOnlyPlugin", "method": "readOnly", "slots": ["string", "number", "boolean", "date", "array", "object"] }] },
|
|
42
|
+
{ directoryName: "required", subpathName: "required", tier: "isolated", entryFile: "src/plugins/required/index.ts", entryPoint: "@maroonedog/luq/plugins/required", exportedSymbols: ["requiredPlugin"], surfaces: [{ "symbol": "requiredPlugin", "method": "required", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
43
|
+
{ directoryName: "required-if", subpathName: "requiredIf", tier: "isolated", entryFile: "src/plugins/required-if/index.ts", entryPoint: "@maroonedog/luq/plugins/requiredIf", exportedSymbols: ["requiredIfPlugin"], surfaces: [{ "symbol": "requiredIfPlugin", "method": "requiredIf", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
44
|
+
{ directoryName: "skip", subpathName: "skip", tier: "isolated", entryFile: "src/plugins/skip/index.ts", entryPoint: "@maroonedog/luq/plugins/skip", exportedSymbols: ["skipPlugin"], surfaces: [{ "symbol": "skipPlugin", "method": "skip", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
45
|
+
{ directoryName: "stitch", subpathName: "stitch", tier: "isolated", entryFile: "src/plugins/stitch/index.ts", entryPoint: "@maroonedog/luq/plugins/stitch", exportedSymbols: ["stitchPlugin"], surfaces: [{ "symbol": "stitchPlugin", "method": "stitch", "slots": ["string", "number", "boolean", "date", "object", "array", "tuple", "union"] }] },
|
|
46
|
+
{ directoryName: "stitch-with", subpathName: "stitchWith", tier: "isolated", entryFile: "src/plugins/stitch-with/index.ts", entryPoint: "@maroonedog/luq/plugins/stitchWith", exportedSymbols: ["stitchWithPlugin"], surfaces: [{ "symbol": "stitchWithPlugin", "method": "stitchWith", "slots": ["string", "number", "boolean", "date", "object", "array", "tuple", "union"] }] },
|
|
47
|
+
{ directoryName: "string-alphanumeric", subpathName: "stringAlphanumeric", tier: "isolated", entryFile: "src/plugins/string-alphanumeric/index.ts", entryPoint: "@maroonedog/luq/plugins/stringAlphanumeric", exportedSymbols: ["stringAlphanumericPlugin"], surfaces: [{ "symbol": "stringAlphanumericPlugin", "method": "alphanumeric", "slots": ["string"] }] },
|
|
48
|
+
{ directoryName: "string-base64", subpathName: "stringBase64", tier: "isolated", entryFile: "src/plugins/string-base64/index.ts", entryPoint: "@maroonedog/luq/plugins/stringBase64", exportedSymbols: ["stringBase64Plugin"], surfaces: [{ "symbol": "stringBase64Plugin", "method": "base64", "slots": ["string"] }] },
|
|
49
|
+
{ directoryName: "string-content-encoding", subpathName: "stringContentEncoding", tier: "isolated", entryFile: "src/plugins/string-content-encoding/index.ts", entryPoint: "@maroonedog/luq/plugins/stringContentEncoding", exportedSymbols: ["stringContentEncodingPlugin"], surfaces: [{ "symbol": "stringContentEncodingPlugin", "method": "contentEncoding", "slots": ["string"] }] },
|
|
50
|
+
{ directoryName: "string-content-media-type", subpathName: "stringContentMediaType", tier: "isolated", entryFile: "src/plugins/string-content-media-type/index.ts", entryPoint: "@maroonedog/luq/plugins/stringContentMediaType", exportedSymbols: ["stringContentMediaTypePlugin"], surfaces: [{ "symbol": "stringContentMediaTypePlugin", "method": "contentMediaType", "slots": ["string"] }] },
|
|
51
|
+
{ directoryName: "string-date", subpathName: "stringDate", tier: "isolated", entryFile: "src/plugins/string-date/index.ts", entryPoint: "@maroonedog/luq/plugins/stringDate", exportedSymbols: ["stringDatePlugin"], surfaces: [{ "symbol": "stringDatePlugin", "method": "date", "slots": ["string"] }] },
|
|
52
|
+
{ directoryName: "string-datetime", subpathName: "stringDatetime", tier: "isolated", entryFile: "src/plugins/string-datetime/index.ts", entryPoint: "@maroonedog/luq/plugins/stringDatetime", exportedSymbols: ["stringDatetimePlugin"], surfaces: [{ "symbol": "stringDatetimePlugin", "method": "datetime", "slots": ["string"] }] },
|
|
53
|
+
{ directoryName: "string-duration", subpathName: "stringDuration", tier: "isolated", entryFile: "src/plugins/string-duration/index.ts", entryPoint: "@maroonedog/luq/plugins/stringDuration", exportedSymbols: ["stringDurationPlugin"], surfaces: [{ "symbol": "stringDurationPlugin", "method": "duration", "slots": ["string"] }] },
|
|
54
|
+
{ directoryName: "string-email", subpathName: "stringEmail", tier: "isolated", entryFile: "src/plugins/string-email/index.ts", entryPoint: "@maroonedog/luq/plugins/stringEmail", exportedSymbols: ["stringEmailPlugin"], surfaces: [{ "symbol": "stringEmailPlugin", "method": "email", "slots": ["string"] }] },
|
|
55
|
+
{ directoryName: "string-ends-with", subpathName: "stringEndsWith", tier: "isolated", entryFile: "src/plugins/string-ends-with/index.ts", entryPoint: "@maroonedog/luq/plugins/stringEndsWith", exportedSymbols: ["stringEndsWithPlugin"], surfaces: [{ "symbol": "stringEndsWithPlugin", "method": "endsWith", "slots": ["string"] }] },
|
|
56
|
+
{ directoryName: "string-exact-length", subpathName: "stringExactLength", tier: "isolated", entryFile: "src/plugins/string-exact-length/index.ts", entryPoint: "@maroonedog/luq/plugins/stringExactLength", exportedSymbols: ["stringExactLengthPlugin"], surfaces: [{ "symbol": "stringExactLengthPlugin", "method": "exactLength", "slots": ["string"] }] },
|
|
57
|
+
{ directoryName: "string-hostname", subpathName: "stringHostname", tier: "isolated", entryFile: "src/plugins/string-hostname/index.ts", entryPoint: "@maroonedog/luq/plugins/stringHostname", exportedSymbols: ["stringHostnamePlugin"], surfaces: [{ "symbol": "stringHostnamePlugin", "method": "hostname", "slots": ["string"] }] },
|
|
58
|
+
{ directoryName: "string-idn-email", subpathName: "stringIdnEmail", tier: "isolated", entryFile: "src/plugins/string-idn-email/index.ts", entryPoint: "@maroonedog/luq/plugins/stringIdnEmail", exportedSymbols: ["stringIdnEmailPlugin"], surfaces: [{ "symbol": "stringIdnEmailPlugin", "method": "idnEmail", "slots": ["string"] }] },
|
|
59
|
+
{ directoryName: "string-idn-hostname", subpathName: "stringIdnHostname", tier: "isolated", entryFile: "src/plugins/string-idn-hostname/index.ts", entryPoint: "@maroonedog/luq/plugins/stringIdnHostname", exportedSymbols: ["stringIdnHostnamePlugin"], surfaces: [{ "symbol": "stringIdnHostnamePlugin", "method": "idnHostname", "slots": ["string"] }] },
|
|
60
|
+
{ directoryName: "string-ipv4", subpathName: "stringIpv4", tier: "isolated", entryFile: "src/plugins/string-ipv4/index.ts", entryPoint: "@maroonedog/luq/plugins/stringIpv4", exportedSymbols: ["stringIpv4Plugin"], surfaces: [{ "symbol": "stringIpv4Plugin", "method": "ipv4", "slots": ["string"] }] },
|
|
61
|
+
{ directoryName: "string-ipv6", subpathName: "stringIpv6", tier: "isolated", entryFile: "src/plugins/string-ipv6/index.ts", entryPoint: "@maroonedog/luq/plugins/stringIpv6", exportedSymbols: ["stringIpv6Plugin"], surfaces: [{ "symbol": "stringIpv6Plugin", "method": "ipv6", "slots": ["string"] }] },
|
|
62
|
+
{ directoryName: "string-iri", subpathName: "stringIri", tier: "isolated", entryFile: "src/plugins/string-iri/index.ts", entryPoint: "@maroonedog/luq/plugins/stringIri", exportedSymbols: ["stringIriPlugin"], surfaces: [{ "symbol": "stringIriPlugin", "method": "iri", "slots": ["string"] }] },
|
|
63
|
+
{ directoryName: "string-iri-reference", subpathName: "stringIriReference", tier: "isolated", entryFile: "src/plugins/string-iri-reference/index.ts", entryPoint: "@maroonedog/luq/plugins/stringIriReference", exportedSymbols: ["stringIriReferencePlugin"], surfaces: [{ "symbol": "stringIriReferencePlugin", "method": "iriReference", "slots": ["string"] }] },
|
|
64
|
+
{ directoryName: "string-json-pointer", subpathName: "stringJsonPointer", tier: "isolated", entryFile: "src/plugins/string-json-pointer/index.ts", entryPoint: "@maroonedog/luq/plugins/stringJsonPointer", exportedSymbols: ["stringJsonPointerPlugin"], surfaces: [{ "symbol": "stringJsonPointerPlugin", "method": "jsonPointer", "slots": ["string"] }] },
|
|
65
|
+
{ directoryName: "string-max", subpathName: "stringMax", tier: "isolated", entryFile: "src/plugins/string-max/index.ts", entryPoint: "@maroonedog/luq/plugins/stringMax", exportedSymbols: ["stringMaxPlugin"], surfaces: [{ "symbol": "stringMaxPlugin", "method": "max", "slots": ["string"] }] },
|
|
66
|
+
{ directoryName: "string-min", subpathName: "stringMin", tier: "isolated", entryFile: "src/plugins/string-min/index.ts", entryPoint: "@maroonedog/luq/plugins/stringMin", exportedSymbols: ["stringMinPlugin"], surfaces: [{ "symbol": "stringMinPlugin", "method": "min", "slots": ["string"] }] },
|
|
67
|
+
{ directoryName: "string-pattern", subpathName: "stringPattern", tier: "isolated", entryFile: "src/plugins/string-pattern/index.ts", entryPoint: "@maroonedog/luq/plugins/stringPattern", exportedSymbols: ["stringPatternPlugin"], surfaces: [{ "symbol": "stringPatternPlugin", "method": "pattern", "slots": ["string"] }] },
|
|
68
|
+
{ directoryName: "string-regex", subpathName: "stringRegex", tier: "isolated", entryFile: "src/plugins/string-regex/index.ts", entryPoint: "@maroonedog/luq/plugins/stringRegex", exportedSymbols: ["stringRegexPlugin"], surfaces: [{ "symbol": "stringRegexPlugin", "method": "regex", "slots": ["string"] }] },
|
|
69
|
+
{ directoryName: "string-relative-json-pointer", subpathName: "stringRelativeJsonPointer", tier: "isolated", entryFile: "src/plugins/string-relative-json-pointer/index.ts", entryPoint: "@maroonedog/luq/plugins/stringRelativeJsonPointer", exportedSymbols: ["stringRelativeJsonPointerPlugin"], surfaces: [{ "symbol": "stringRelativeJsonPointerPlugin", "method": "relativeJsonPointer", "slots": ["string"] }] },
|
|
70
|
+
{ directoryName: "string-starts-with", subpathName: "stringStartsWith", tier: "isolated", entryFile: "src/plugins/string-starts-with/index.ts", entryPoint: "@maroonedog/luq/plugins/stringStartsWith", exportedSymbols: ["stringStartsWithPlugin"], surfaces: [{ "symbol": "stringStartsWithPlugin", "method": "startsWith", "slots": ["string"] }] },
|
|
71
|
+
{ directoryName: "string-time", subpathName: "stringTime", tier: "isolated", entryFile: "src/plugins/string-time/index.ts", entryPoint: "@maroonedog/luq/plugins/stringTime", exportedSymbols: ["stringTimePlugin"], surfaces: [{ "symbol": "stringTimePlugin", "method": "time", "slots": ["string"] }] },
|
|
72
|
+
{ directoryName: "string-uri-reference", subpathName: "stringUriReference", tier: "isolated", entryFile: "src/plugins/string-uri-reference/index.ts", entryPoint: "@maroonedog/luq/plugins/stringUriReference", exportedSymbols: ["stringUriReferencePlugin"], surfaces: [{ "symbol": "stringUriReferencePlugin", "method": "uriReference", "slots": ["string"] }] },
|
|
73
|
+
{ directoryName: "string-uri-template", subpathName: "stringUriTemplate", tier: "isolated", entryFile: "src/plugins/string-uri-template/index.ts", entryPoint: "@maroonedog/luq/plugins/stringUriTemplate", exportedSymbols: ["stringUriTemplatePlugin"], surfaces: [{ "symbol": "stringUriTemplatePlugin", "method": "uriTemplate", "slots": ["string"] }] },
|
|
74
|
+
{ directoryName: "string-url", subpathName: "stringUrl", tier: "isolated", entryFile: "src/plugins/string-url/index.ts", entryPoint: "@maroonedog/luq/plugins/stringUrl", exportedSymbols: ["stringUrlPlugin"], surfaces: [{ "symbol": "stringUrlPlugin", "method": "url", "slots": ["string"] }] },
|
|
75
|
+
{ directoryName: "transform", subpathName: "transform", tier: "isolated", entryFile: "src/plugins/transform/index.ts", entryPoint: "@maroonedog/luq/plugins/transform", exportedSymbols: ["transformPlugin"], surfaces: [{ "symbol": "transformPlugin", "method": "transform", "slots": ["string", "number", "boolean", "date", "array", "object", "union"] }] },
|
|
76
|
+
{ directoryName: "tuple-builder", subpathName: "tupleBuilder", tier: "isolated", entryFile: "src/plugins/tuple-builder/index.ts", entryPoint: "@maroonedog/luq/plugins/tupleBuilder", exportedSymbols: ["tupleBuilderPlugin"], surfaces: [{ "symbol": "tupleBuilderPlugin", "method": "builder", "slots": ["tuple"] }] },
|
|
77
|
+
{ directoryName: "union-guard", subpathName: "unionGuard", tier: "isolated", entryFile: "src/plugins/union-guard/index.ts", entryPoint: "@maroonedog/luq/plugins/unionGuard", exportedSymbols: ["unionGuardPlugin"], surfaces: [{ "symbol": "unionGuardPlugin", "method": "guard", "slots": ["union"] }] },
|
|
78
|
+
{ directoryName: "uuid", subpathName: "uuid", tier: "isolated", entryFile: "src/plugins/uuid/index.ts", entryPoint: "@maroonedog/luq/plugins/uuid", exportedSymbols: ["uuidPlugin"], surfaces: [{ "symbol": "uuidPlugin", "method": "uuid", "slots": ["string"] }] },
|
|
79
|
+
{ directoryName: "validate-if", subpathName: "validateIf", tier: "isolated", entryFile: "src/plugins/validate-if/index.ts", entryPoint: "@maroonedog/luq/plugins/validateIf", exportedSymbols: ["validateIfPlugin"], surfaces: [{ "symbol": "validateIfPlugin", "method": "validateIf", "slots": ["string", "number", "boolean", "date", "array", "tuple", "object", "union", "any"] }] },
|
|
80
|
+
{ directoryName: "write-only", subpathName: "writeOnly", tier: "isolated", entryFile: "src/plugins/write-only/index.ts", entryPoint: "@maroonedog/luq/plugins/writeOnly", exportedSymbols: ["writeOnlyPlugin"], surfaces: [{ "symbol": "writeOnlyPlugin", "method": "writeOnly", "slots": ["string", "number", "boolean", "date", "array", "object"] }] },
|
|
81
81
|
];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare class IndexStack {
|
|
2
|
+
private readonly basePath;
|
|
2
3
|
private readonly nodePaths;
|
|
3
4
|
private readonly openIndices;
|
|
4
5
|
/**
|
|
@@ -10,6 +11,11 @@ export declare class IndexStack {
|
|
|
10
11
|
* raises no issue never renders its own prefix at all.
|
|
11
12
|
*/
|
|
12
13
|
private currentPrefix;
|
|
14
|
+
/**
|
|
15
|
+
* Where this run sits inside the whole value: `""` for the run the caller
|
|
16
|
+
* started, and the entering rule's path for a branch or a recursive re-entry.
|
|
17
|
+
*/
|
|
18
|
+
constructor(basePath?: string);
|
|
13
19
|
/** How many array levels are currently open. */
|
|
14
20
|
get depth(): number;
|
|
15
21
|
/** The open indices, outermost first: `[0, 2]` inside `grid[0][2]`. */
|
|
@@ -25,7 +31,10 @@ export declare class IndexStack {
|
|
|
25
31
|
* it took 12% of the array shape's self time.
|
|
26
32
|
*/
|
|
27
33
|
private readTop;
|
|
28
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* `""` at the root of the run the caller started, `items[0]` inside the first
|
|
36
|
+
* element of `items`, and the base path when a nested run has no array open.
|
|
37
|
+
*/
|
|
29
38
|
get prefix(): string;
|
|
30
39
|
/**
|
|
31
40
|
* Enters element `index` of an array node. `nodePath` is the node's own path
|
|
@@ -25,12 +25,25 @@
|
|
|
25
25
|
// stack lives for one validate() call, and 10k elements must not allocate 10k
|
|
26
26
|
// index arrays. It is also why FieldRuleContext remembers the path it built —
|
|
27
27
|
// this stack has moved on by the time a retained context could read it.
|
|
28
|
+
//
|
|
29
|
+
// A NESTED run starts from a BASE PATH rather than from the root. A branch plan
|
|
30
|
+
// and a recursive re-entry each declare their fields against their own subject,
|
|
31
|
+
// so a field renders `name` where the consumer must read `user.name`. The base
|
|
32
|
+
// is handed to the stack, so the path is right the first time it is built — and
|
|
33
|
+
// the message, which is rendered from that same path, names the field the issue
|
|
34
|
+
// reports. Rewriting the path afterwards cannot do that: by then the message has
|
|
35
|
+
// already been rendered against the short one.
|
|
28
36
|
// ===========================================================================
|
|
29
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
38
|
exports.IndexStack = void 0;
|
|
31
39
|
exports.joinIssuePath = joinIssuePath;
|
|
32
40
|
class IndexStack {
|
|
33
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Where this run sits inside the whole value: `""` for the run the caller
|
|
43
|
+
* started, and the entering rule's path for a branch or a recursive re-entry.
|
|
44
|
+
*/
|
|
45
|
+
constructor(basePath = "") {
|
|
46
|
+
this.basePath = basePath;
|
|
34
47
|
this.nodePaths = [];
|
|
35
48
|
this.openIndices = [];
|
|
36
49
|
/**
|
|
@@ -65,7 +78,7 @@ class IndexStack {
|
|
|
65
78
|
const already = this.currentPrefix;
|
|
66
79
|
if (already !== null)
|
|
67
80
|
return already;
|
|
68
|
-
let built =
|
|
81
|
+
let built = this.basePath;
|
|
69
82
|
for (let i = 0; i < this.nodePaths.length; i += 1) {
|
|
70
83
|
const nodePath = this.nodePaths[i];
|
|
71
84
|
const index = this.openIndices[i];
|
|
@@ -76,7 +89,10 @@ class IndexStack {
|
|
|
76
89
|
this.currentPrefix = built;
|
|
77
90
|
return built;
|
|
78
91
|
}
|
|
79
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* `""` at the root of the run the caller started, `items[0]` inside the first
|
|
94
|
+
* element of `items`, and the base path when a nested run has no array open.
|
|
95
|
+
*/
|
|
80
96
|
get prefix() {
|
|
81
97
|
return this.readTop();
|
|
82
98
|
}
|
|
@@ -24,9 +24,22 @@
|
|
|
24
24
|
// stack lives for one validate() call, and 10k elements must not allocate 10k
|
|
25
25
|
// index arrays. It is also why FieldRuleContext remembers the path it built —
|
|
26
26
|
// this stack has moved on by the time a retained context could read it.
|
|
27
|
+
//
|
|
28
|
+
// A NESTED run starts from a BASE PATH rather than from the root. A branch plan
|
|
29
|
+
// and a recursive re-entry each declare their fields against their own subject,
|
|
30
|
+
// so a field renders `name` where the consumer must read `user.name`. The base
|
|
31
|
+
// is handed to the stack, so the path is right the first time it is built — and
|
|
32
|
+
// the message, which is rendered from that same path, names the field the issue
|
|
33
|
+
// reports. Rewriting the path afterwards cannot do that: by then the message has
|
|
34
|
+
// already been rendered against the short one.
|
|
27
35
|
// ===========================================================================
|
|
28
36
|
export class IndexStack {
|
|
29
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Where this run sits inside the whole value: `""` for the run the caller
|
|
39
|
+
* started, and the entering rule's path for a branch or a recursive re-entry.
|
|
40
|
+
*/
|
|
41
|
+
constructor(basePath = "") {
|
|
42
|
+
this.basePath = basePath;
|
|
30
43
|
this.nodePaths = [];
|
|
31
44
|
this.openIndices = [];
|
|
32
45
|
/**
|
|
@@ -61,7 +74,7 @@ export class IndexStack {
|
|
|
61
74
|
const already = this.currentPrefix;
|
|
62
75
|
if (already !== null)
|
|
63
76
|
return already;
|
|
64
|
-
let built =
|
|
77
|
+
let built = this.basePath;
|
|
65
78
|
for (let i = 0; i < this.nodePaths.length; i += 1) {
|
|
66
79
|
const nodePath = this.nodePaths[i];
|
|
67
80
|
const index = this.openIndices[i];
|
|
@@ -72,7 +85,10 @@ export class IndexStack {
|
|
|
72
85
|
this.currentPrefix = built;
|
|
73
86
|
return built;
|
|
74
87
|
}
|
|
75
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* `""` at the root of the run the caller started, `items[0]` inside the first
|
|
90
|
+
* element of `items`, and the base path when a nested run has no array open.
|
|
91
|
+
*/
|
|
76
92
|
get prefix() {
|
|
77
93
|
return this.readTop();
|
|
78
94
|
}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export type { FieldRunContext, FieldRunOutcome, RecursionRunner, } from "./run-f
|
|
|
9
9
|
export { NO_WRITE_TARGETS, createArrayWriteTargets, createPlanWriteTargets, replaceElement, writeFieldValue, } from "./output-writer";
|
|
10
10
|
export type { ArrayWriteTarget } from "./output-writer";
|
|
11
11
|
export { runArrayNodes } from "./run-array-node";
|
|
12
|
-
export {
|
|
12
|
+
export { runPlan } from "./run-plan";
|
|
13
13
|
export { RECURSION_ABORT_POLICY, createRecursionRunner } from "./run-recursion";
|
|
14
14
|
export type { RecursionHost } from "./run-recursion";
|
|
15
15
|
export { BRANCH_ABORT_POLICY, createBranchExecutor } from "./run-branch";
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createFieldValidator = exports.hasRejectingIssue = exports.createValidator = exports.ROOT_MISSING_CODE = exports.createBranchExecutor = exports.BRANCH_ABORT_POLICY = exports.createRecursionRunner = exports.RECURSION_ABORT_POLICY = exports.runPlan = exports.
|
|
3
|
+
exports.createFieldValidator = exports.hasRejectingIssue = exports.createValidator = exports.ROOT_MISSING_CODE = exports.createBranchExecutor = exports.BRANCH_ABORT_POLICY = exports.createRecursionRunner = exports.RECURSION_ABORT_POLICY = exports.runPlan = exports.runArrayNodes = exports.writeFieldValue = exports.replaceElement = exports.createPlanWriteTargets = exports.createArrayWriteTargets = exports.NO_WRITE_TARGETS = exports.runField = exports.FIELD_VALUE_UNCHANGED = exports.decidePresence = exports.renderFallbackMessage = exports.createIssue = exports.joinIssuePath = exports.IndexStack = exports.resolveAbortPolicy = exports.IssueSink = exports.DEFAULT_ABORT_EARLY_ON_EACH_FIELD = exports.DEFAULT_ABORT_EARLY = exports.ARRAY_ELEMENTS_ABORT_ON_EACH_FIELD = void 0;
|
|
4
4
|
// ===========================================================================
|
|
5
5
|
// L5 src/runtime/index.ts — re-exports only. The engine: one plan in, issues
|
|
6
6
|
// and (for parse) a copy-on-write output out. Nothing is defined in this file.
|
|
@@ -31,7 +31,6 @@ Object.defineProperty(exports, "writeFieldValue", { enumerable: true, get: funct
|
|
|
31
31
|
var run_array_node_1 = require("./run-array-node");
|
|
32
32
|
Object.defineProperty(exports, "runArrayNodes", { enumerable: true, get: function () { return run_array_node_1.runArrayNodes; } });
|
|
33
33
|
var run_plan_1 = require("./run-plan");
|
|
34
|
-
Object.defineProperty(exports, "prefixIssuePaths", { enumerable: true, get: function () { return run_plan_1.prefixIssuePaths; } });
|
|
35
34
|
Object.defineProperty(exports, "runPlan", { enumerable: true, get: function () { return run_plan_1.runPlan; } });
|
|
36
35
|
var run_recursion_1 = require("./run-recursion");
|
|
37
36
|
Object.defineProperty(exports, "RECURSION_ABORT_POLICY", { enumerable: true, get: function () { return run_recursion_1.RECURSION_ABORT_POLICY; } });
|
package/dist/runtime/index.mjs
CHANGED
|
@@ -9,7 +9,7 @@ export { decidePresence } from "./decide-presence.mjs";
|
|
|
9
9
|
export { FIELD_VALUE_UNCHANGED, runField } from "./run-field.mjs";
|
|
10
10
|
export { NO_WRITE_TARGETS, createArrayWriteTargets, createPlanWriteTargets, replaceElement, writeFieldValue, } from "./output-writer.mjs";
|
|
11
11
|
export { runArrayNodes } from "./run-array-node.mjs";
|
|
12
|
-
export {
|
|
12
|
+
export { runPlan } from "./run-plan.mjs";
|
|
13
13
|
export { RECURSION_ABORT_POLICY, createRecursionRunner } from "./run-recursion.mjs";
|
|
14
14
|
export { BRANCH_ABORT_POLICY, createBranchExecutor } from "./run-branch.mjs";
|
|
15
15
|
export { ROOT_MISSING_CODE, createValidator, hasRejectingIssue, } from "./create-validator.mjs";
|
|
@@ -48,7 +48,13 @@ function createBranchExecutor() {
|
|
|
48
48
|
(0, run_plan_1.runPlan)(plan, value, {
|
|
49
49
|
root: ruleContext.root,
|
|
50
50
|
sink,
|
|
51
|
-
|
|
51
|
+
// The branch plan's fields are declared against the branch's own
|
|
52
|
+
// subject, so a field of it renders `name` while the consumer must read
|
|
53
|
+
// `user.name`. Starting the stack at the composite's path is what makes
|
|
54
|
+
// the cause's message agree with the cause's path: both come from here,
|
|
55
|
+
// and a message rendered against the short path could not be corrected
|
|
56
|
+
// afterwards.
|
|
57
|
+
indices: new index_stack_1.IndexStack(ruleContext.path),
|
|
52
58
|
shouldApplyTransforms: false,
|
|
53
59
|
runRecursion: (0, run_recursion_1.createRecursionRunner)({
|
|
54
60
|
root: ruleContext.root,
|
|
@@ -60,8 +66,7 @@ function createBranchExecutor() {
|
|
|
60
66
|
});
|
|
61
67
|
if (sink.count === 0)
|
|
62
68
|
return types_1.PASS;
|
|
63
|
-
|
|
64
|
-
return (0, types_1.fail)({ causes: Object.freeze(causes) });
|
|
69
|
+
return (0, types_1.fail)({ causes: Object.freeze(sink.issues) });
|
|
65
70
|
},
|
|
66
71
|
};
|
|
67
72
|
}
|
|
@@ -22,7 +22,7 @@ import { PASS, fail } from "../types/index.mjs";
|
|
|
22
22
|
import { IndexStack } from "./index-stack.mjs";
|
|
23
23
|
import { IssueSink } from "./issue-sink.mjs";
|
|
24
24
|
import { createRecursionRunner } from "./run-recursion.mjs";
|
|
25
|
-
import {
|
|
25
|
+
import { runPlan } from "./run-plan.mjs";
|
|
26
26
|
/**
|
|
27
27
|
* A branch is a decision, not a report: the first failure already answers it,
|
|
28
28
|
* so both aborts stay on. Collecting every issue of every alternative of a
|
|
@@ -44,7 +44,13 @@ export function createBranchExecutor() {
|
|
|
44
44
|
runPlan(plan, value, {
|
|
45
45
|
root: ruleContext.root,
|
|
46
46
|
sink,
|
|
47
|
-
|
|
47
|
+
// The branch plan's fields are declared against the branch's own
|
|
48
|
+
// subject, so a field of it renders `name` while the consumer must read
|
|
49
|
+
// `user.name`. Starting the stack at the composite's path is what makes
|
|
50
|
+
// the cause's message agree with the cause's path: both come from here,
|
|
51
|
+
// and a message rendered against the short path could not be corrected
|
|
52
|
+
// afterwards.
|
|
53
|
+
indices: new IndexStack(ruleContext.path),
|
|
48
54
|
shouldApplyTransforms: false,
|
|
49
55
|
runRecursion: createRecursionRunner({
|
|
50
56
|
root: ruleContext.root,
|
|
@@ -56,8 +62,7 @@ export function createBranchExecutor() {
|
|
|
56
62
|
});
|
|
57
63
|
if (sink.count === 0)
|
|
58
64
|
return PASS;
|
|
59
|
-
|
|
60
|
-
return fail({ causes: Object.freeze(causes) });
|
|
65
|
+
return fail({ causes: Object.freeze(sink.issues) });
|
|
61
66
|
},
|
|
62
67
|
};
|
|
63
68
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { ValidationIssue } from "../types";
|
|
2
1
|
import type { ValidationPlan } from "../compile/validation-plan.types";
|
|
3
2
|
import type { FieldRunContext } from "./run-field";
|
|
4
3
|
import type { ArrayWriteTarget } from "./output-writer";
|
|
@@ -15,14 +14,9 @@ import type { ArrayWriteTarget } from "./output-writer";
|
|
|
15
14
|
*/
|
|
16
15
|
export declare function runPlan(plan: ValidationPlan, subject: unknown, context: FieldRunContext, targets?: readonly ArrayWriteTarget[]): unknown;
|
|
17
16
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* It lives here because both callers already depend on this module and neither
|
|
25
|
-
* may depend on the other — run-branch creates a recursion runner, so
|
|
26
|
-
* run-recursion could not own it without a cycle.
|
|
17
|
+
* A nested plan does NOT come back to have its issue paths corrected. A branch
|
|
18
|
+
* and a recursive re-entry each start their IndexStack at the entering rule's
|
|
19
|
+
* path, so every issue is built at its full path and its message is rendered
|
|
20
|
+
* from that same path. Rewriting the path afterwards used to leave the message
|
|
21
|
+
* naming the field's short name, so one issue reported two different fields.
|
|
27
22
|
*/
|
|
28
|
-
export declare function prefixIssuePaths(prefix: string, issues: readonly ValidationIssue[]): readonly ValidationIssue[];
|
package/dist/runtime/run-plan.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runPlan = runPlan;
|
|
4
|
-
exports.prefixIssuePaths = prefixIssuePaths;
|
|
5
|
-
const index_stack_1 = require("./index-stack");
|
|
6
4
|
const run_array_node_1 = require("./run-array-node");
|
|
7
5
|
const run_field_1 = require("./run-field");
|
|
8
6
|
const output_writer_1 = require("./output-writer");
|
|
@@ -32,23 +30,9 @@ function runPlan(plan, subject, context, targets = output_writer_1.NO_WRITE_TARG
|
|
|
32
30
|
return (0, run_array_node_1.runArrayNodes)(plan.arrays, current, context, targets);
|
|
33
31
|
}
|
|
34
32
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* It lives here because both callers already depend on this module and neither
|
|
42
|
-
* may depend on the other — run-branch creates a recursion runner, so
|
|
43
|
-
* run-recursion could not own it without a cycle.
|
|
33
|
+
* A nested plan does NOT come back to have its issue paths corrected. A branch
|
|
34
|
+
* and a recursive re-entry each start their IndexStack at the entering rule's
|
|
35
|
+
* path, so every issue is built at its full path and its message is rendered
|
|
36
|
+
* from that same path. Rewriting the path afterwards used to leave the message
|
|
37
|
+
* naming the field's short name, so one issue reported two different fields.
|
|
44
38
|
*/
|
|
45
|
-
function prefixIssuePaths(prefix, issues) {
|
|
46
|
-
if (prefix === "")
|
|
47
|
-
return issues;
|
|
48
|
-
return issues.map((issue) => Object.freeze({
|
|
49
|
-
path: (0, index_stack_1.joinIssuePath)(prefix, issue.path),
|
|
50
|
-
code: issue.code,
|
|
51
|
-
message: issue.message,
|
|
52
|
-
severity: issue.severity,
|
|
53
|
-
}));
|
|
54
|
-
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { joinIssuePath } from "./index-stack.mjs";
|
|
2
1
|
import { runArrayNodes } from "./run-array-node.mjs";
|
|
3
2
|
import { runField } from "./run-field.mjs";
|
|
4
3
|
import { NO_WRITE_TARGETS, writeFieldValue } from "./output-writer.mjs";
|
|
@@ -28,23 +27,9 @@ export function runPlan(plan, subject, context, targets = NO_WRITE_TARGETS) {
|
|
|
28
27
|
return runArrayNodes(plan.arrays, current, context, targets);
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* It lives here because both callers already depend on this module and neither
|
|
38
|
-
* may depend on the other — run-branch creates a recursion runner, so
|
|
39
|
-
* run-recursion could not own it without a cycle.
|
|
30
|
+
* A nested plan does NOT come back to have its issue paths corrected. A branch
|
|
31
|
+
* and a recursive re-entry each start their IndexStack at the entering rule's
|
|
32
|
+
* path, so every issue is built at its full path and its message is rendered
|
|
33
|
+
* from that same path. Rewriting the path afterwards used to leave the message
|
|
34
|
+
* naming the field's short name, so one issue reported two different fields.
|
|
40
35
|
*/
|
|
41
|
-
export function prefixIssuePaths(prefix, issues) {
|
|
42
|
-
if (prefix === "")
|
|
43
|
-
return issues;
|
|
44
|
-
return issues.map((issue) => Object.freeze({
|
|
45
|
-
path: joinIssuePath(prefix, issue.path),
|
|
46
|
-
code: issue.code,
|
|
47
|
-
message: issue.message,
|
|
48
|
-
severity: issue.severity,
|
|
49
|
-
}));
|
|
50
|
-
}
|