@maroonedog/luq 2.4.3 → 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.
@@ -11,6 +11,7 @@ exports.eraseAssembledRecord = eraseAssembledRecord;
11
11
  exports.eraseChainSurface = eraseChainSurface;
12
12
  exports.eraseBuilderSurface = eraseBuilderSurface;
13
13
  exports.eraseSchemaValidator = eraseSchemaValidator;
14
+ exports.eraseRuleDefineToBuilderSlots = eraseRuleDefineToBuilderSlots;
14
15
  /**
15
16
  * Why: a record built up key by key has all its keys at run time but stays
16
17
  * Record<string, unknown> statically. The generic on the calling side —
@@ -67,3 +68,25 @@ function eraseBuilderSurface(assembled) {
67
68
  function eraseSchemaValidator(planBacked) {
68
69
  return planBacked;
69
70
  }
71
+ /**
72
+ * Why: useField runs a rule's callback against the BUILDER's slots, and the
73
+ * two are typed on different bags — the rule's, and the builder's. The
74
+ * signature proves the relation between them (`keyof BRule extends keyof B`,
75
+ * i.e. the builder carries at least what the rule was minted from), but that
76
+ * is a statement about two type parameters and there is no way to write the
77
+ * value side so the compiler carries it through.
78
+ *
79
+ * It used to need no erasure because both sides named one bag `B` and a richer
80
+ * slot object was simply assignable to a leaner one. That stopped holding when
81
+ * a slot began carrying a member for every method it does NOT have: where the
82
+ * rule's bag reports PluginNotImported the builder's may have the real method,
83
+ * and those two are not assignable in either direction.
84
+ *
85
+ * Soundness depends on the subset relation the signature states. The callback
86
+ * can only call methods its own bag declares, every one of those keys is in
87
+ * the builder's bag, and a key in the builder's bag is a real method rather
88
+ * than the not-imported marker.
89
+ */
90
+ function eraseRuleDefineToBuilderSlots(define) {
91
+ return define;
92
+ }
@@ -61,3 +61,25 @@ export function eraseBuilderSurface(assembled) {
61
61
  export function eraseSchemaValidator(planBacked) {
62
62
  return planBacked;
63
63
  }
64
+ /**
65
+ * Why: useField runs a rule's callback against the BUILDER's slots, and the
66
+ * two are typed on different bags — the rule's, and the builder's. The
67
+ * signature proves the relation between them (`keyof BRule extends keyof B`,
68
+ * i.e. the builder carries at least what the rule was minted from), but that
69
+ * is a statement about two type parameters and there is no way to write the
70
+ * value side so the compiler carries it through.
71
+ *
72
+ * It used to need no erasure because both sides named one bag `B` and a richer
73
+ * slot object was simply assignable to a leaner one. That stopped holding when
74
+ * a slot began carrying a member for every method it does NOT have: where the
75
+ * rule's bag reports PluginNotImported the builder's may have the real method,
76
+ * and those two are not assignable in either direction.
77
+ *
78
+ * Soundness depends on the subset relation the signature states. The callback
79
+ * can only call methods its own bag declares, every one of those keys is in
80
+ * the builder's bag, and a key in the builder's bag is a real method rather
81
+ * than the not-imported marker.
82
+ */
83
+ export function eraseRuleDefineToBuilderSlots(define) {
84
+ return define;
85
+ }
@@ -1,6 +1,7 @@
1
1
  import type { FieldBuilder } from "../builder/field-builder.types";
2
2
  import type { PluginBag } from "../chain/plugin-bag.types";
3
+ import type { FieldRuleNeedsPlugins } from "../chain/plugin-not-imported.types";
3
4
  import type { FieldPath } from "../path/field-path.types";
4
5
  import type { ValueAtPath } from "../path/value-at-path.types";
5
6
  import type { FieldRule } from "./field-rule.types";
6
- export declare function useField<T extends object, B extends PluginBag, TDeclared extends string, K extends FieldPath<T> & string>(builder: FieldBuilder<T, B, TDeclared>, path: K, rule: FieldRule<ValueAtPath<T, K>, B>): FieldBuilder<T, B, TDeclared | K>;
7
+ export declare function useField<T extends object, B extends PluginBag, BRule extends PluginBag, TDeclared extends string, K extends FieldPath<T> & string>(builder: FieldBuilder<T, B, TDeclared> & (keyof BRule extends keyof B ? unknown : FieldRuleNeedsPlugins<Exclude<keyof BRule, keyof B>>), path: K, rule: FieldRule<ValueAtPath<T, K>, BRule>): FieldBuilder<T, B, TDeclared | K>;
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useField = useField;
4
- function useField(builder, path, rule) {
5
- return builder.v(path, rule.define, rule.fieldOptions);
4
+ const type_erasure_1 = require("../core/type-erasure");
5
+ function useField(
6
+ // The gate rides on the BUILDER rather than on the rule, so a builder that
7
+ // is missing plugins fails at the argument that is actually short of them.
8
+ // When it carries what the rule needs the intersection is `& unknown` and
9
+ // changes nothing; when it does not, the builder is asked to be a type no
10
+ // builder is, and the error names the plugins it lacks.
11
+ builder, path, rule) {
12
+ return builder.v(path, (0, type_erasure_1.eraseRuleDefineToBuilderSlots)(rule.define), rule.fieldOptions);
6
13
  }
@@ -1,3 +1,10 @@
1
- export function useField(builder, path, rule) {
2
- return builder.v(path, rule.define, rule.fieldOptions);
1
+ import { eraseRuleDefineToBuilderSlots } from "../core/type-erasure.mjs";
2
+ export function useField(
3
+ // The gate rides on the BUILDER rather than on the rule, so a builder that
4
+ // is missing plugins fails at the argument that is actually short of them.
5
+ // When it carries what the rule needs the intersection is `& unknown` and
6
+ // changes nothing; when it does not, the builder is asked to be a type no
7
+ // builder is, and the error names the plugins it lacks.
8
+ builder, path, rule) {
9
+ return builder.v(path, eraseRuleDefineToBuilderSlots(rule.define), rule.fieldOptions);
3
10
  }
@@ -1,8 +1,26 @@
1
+ /** One plugin symbol: the method it adds, and the slots it adds it to. */
2
+ export interface PluginSurface {
3
+ /** The symbol to pass to `.use()`, e.g. "stringMinPlugin". */
4
+ readonly symbol: string;
5
+ /** The chain method it adds, e.g. "min". */
6
+ readonly method: string;
7
+ /** The slots that method appears on, e.g. ["string"]. */
8
+ readonly slots: readonly string[];
9
+ }
1
10
  export interface PluginManifestEntry {
2
11
  readonly directoryName: string;
3
12
  readonly subpathName: string;
4
13
  readonly tier: "isolated" | "extension";
14
+ /**
15
+ * Where the plugin lives in the REPOSITORY. A source path, so it resolves
16
+ * only in a checkout; an installed package has no src directory. What a
17
+ * consumer writes instead is `entryPoint`.
18
+ */
5
19
  readonly entryFile: string;
20
+ /** The specifier a consumer writes, e.g. "@maroonedog/luq/plugins/stringMin". */
21
+ readonly entryPoint: string;
6
22
  readonly exportedSymbols: readonly string[];
23
+ /** One per exported symbol, in the same order. */
24
+ readonly surfaces: readonly PluginSurface[];
7
25
  }
8
26
  export declare const PLUGIN_MANIFEST: readonly PluginManifestEntry[];
@@ -4,81 +4,81 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.PLUGIN_MANIFEST = void 0;
6
6
  exports.PLUGIN_MANIFEST = [
7
- { directoryName: "array-contains", subpathName: "arrayContains", tier: "isolated", entryFile: "src/plugins/array-contains/index.ts", exportedSymbols: ["arrayContainsPlugin"] },
8
- { directoryName: "array-each", subpathName: "arrayEach", tier: "isolated", entryFile: "src/plugins/array-each/index.ts", exportedSymbols: ["arrayEachPlugin"] },
9
- { directoryName: "array-includes", subpathName: "arrayIncludes", tier: "isolated", entryFile: "src/plugins/array-includes/index.ts", exportedSymbols: ["arrayIncludesPlugin"] },
10
- { directoryName: "array-max-length", subpathName: "arrayMaxLength", tier: "isolated", entryFile: "src/plugins/array-max-length/index.ts", exportedSymbols: ["arrayMaxLengthPlugin"] },
11
- { directoryName: "array-min-length", subpathName: "arrayMinLength", tier: "isolated", entryFile: "src/plugins/array-min-length/index.ts", exportedSymbols: ["arrayMinLengthPlugin"] },
12
- { directoryName: "array-unique", subpathName: "arrayUnique", tier: "isolated", entryFile: "src/plugins/array-unique/index.ts", exportedSymbols: ["arrayUniquePlugin"] },
13
- { directoryName: "boolean-falsy", subpathName: "booleanFalsy", tier: "isolated", entryFile: "src/plugins/boolean-falsy/index.ts", exportedSymbols: ["booleanFalsyPlugin"] },
14
- { directoryName: "boolean-truthy", subpathName: "booleanTruthy", tier: "isolated", entryFile: "src/plugins/boolean-truthy/index.ts", exportedSymbols: ["booleanTruthyPlugin"] },
15
- { directoryName: "compare-field", subpathName: "compareField", tier: "isolated", entryFile: "src/plugins/compare-field/index.ts", exportedSymbols: ["compareFieldPlugin"] },
16
- { directoryName: "conditional-schema", subpathName: "conditionalSchema", tier: "isolated", entryFile: "src/plugins/conditional-schema/index.ts", exportedSymbols: ["conditionalSchemaPlugin"] },
17
- { directoryName: "custom", subpathName: "custom", tier: "isolated", entryFile: "src/plugins/custom/index.ts", exportedSymbols: ["customPlugin"] },
18
- { directoryName: "from-context", subpathName: "fromContext", tier: "isolated", entryFile: "src/plugins/from-context/index.ts", exportedSymbols: ["fromContextPlugin"] },
19
- { directoryName: "json-schema", subpathName: "jsonSchema", tier: "extension", entryFile: "src/json-schema/extensions/json-schema/index.ts", exportedSymbols: ["jsonSchemaPlugin"] },
20
- { directoryName: "json-schema-full-feature", subpathName: "jsonSchemaFullFeature", tier: "extension", entryFile: "src/json-schema/extensions/json-schema-full-feature/index.ts", exportedSymbols: ["jsonSchemaFullFeaturePlugin"] },
21
- { directoryName: "literal", subpathName: "literal", tier: "isolated", entryFile: "src/plugins/literal/index.ts", exportedSymbols: ["literalPlugin"] },
22
- { directoryName: "nullable", subpathName: "nullable", tier: "isolated", entryFile: "src/plugins/nullable/index.ts", exportedSymbols: ["nullablePlugin"] },
23
- { directoryName: "number-finite", subpathName: "numberFinite", tier: "isolated", entryFile: "src/plugins/number-finite/index.ts", exportedSymbols: ["numberFinitePlugin"] },
24
- { directoryName: "number-integer", subpathName: "numberInteger", tier: "isolated", entryFile: "src/plugins/number-integer/index.ts", exportedSymbols: ["numberIntegerPlugin"] },
25
- { directoryName: "number-max", subpathName: "numberMax", tier: "isolated", entryFile: "src/plugins/number-max/index.ts", exportedSymbols: ["numberMaxPlugin"] },
26
- { directoryName: "number-min", subpathName: "numberMin", tier: "isolated", entryFile: "src/plugins/number-min/index.ts", exportedSymbols: ["numberMinPlugin"] },
27
- { directoryName: "number-multiple-of", subpathName: "numberMultipleOf", tier: "isolated", entryFile: "src/plugins/number-multiple-of/index.ts", exportedSymbols: ["numberMultipleOfPlugin"] },
28
- { directoryName: "number-negative", subpathName: "numberNegative", tier: "isolated", entryFile: "src/plugins/number-negative/index.ts", exportedSymbols: ["numberNegativePlugin"] },
29
- { directoryName: "number-positive", subpathName: "numberPositive", tier: "isolated", entryFile: "src/plugins/number-positive/index.ts", exportedSymbols: ["numberPositivePlugin"] },
30
- { directoryName: "number-range", subpathName: "numberRange", tier: "isolated", entryFile: "src/plugins/number-range/index.ts", exportedSymbols: ["numberRangePlugin"] },
31
- { directoryName: "object", subpathName: "object", tier: "isolated", entryFile: "src/plugins/object/index.ts", exportedSymbols: ["objectPlugin"] },
32
- { directoryName: "object-additional-properties", subpathName: "objectAdditionalProperties", tier: "isolated", entryFile: "src/plugins/object-additional-properties/index.ts", exportedSymbols: ["objectAdditionalPropertiesPlugin", "objectAdditionalPropertiesSchemaPlugin"] },
33
- { directoryName: "object-dependent-required", subpathName: "objectDependentRequired", tier: "isolated", entryFile: "src/plugins/object-dependent-required/index.ts", exportedSymbols: ["objectDependentRequiredPlugin"] },
34
- { directoryName: "object-dependent-schemas", subpathName: "objectDependentSchemas", tier: "isolated", entryFile: "src/plugins/object-dependent-schemas/index.ts", exportedSymbols: ["objectDependentSchemasPlugin"] },
35
- { directoryName: "object-max-properties", subpathName: "objectMaxProperties", tier: "isolated", entryFile: "src/plugins/object-max-properties/index.ts", exportedSymbols: ["objectMaxPropertiesPlugin"] },
36
- { directoryName: "object-min-properties", subpathName: "objectMinProperties", tier: "isolated", entryFile: "src/plugins/object-min-properties/index.ts", exportedSymbols: ["objectMinPropertiesPlugin"] },
37
- { directoryName: "object-pattern-properties", subpathName: "objectPatternProperties", tier: "isolated", entryFile: "src/plugins/object-pattern-properties/index.ts", exportedSymbols: ["objectPatternPropertiesPlugin"] },
38
- { directoryName: "object-property-names", subpathName: "objectPropertyNames", tier: "isolated", entryFile: "src/plugins/object-property-names/index.ts", exportedSymbols: ["objectPropertyNamesPlugin"] },
39
- { directoryName: "object-recursively", subpathName: "objectRecursively", tier: "isolated", entryFile: "src/plugins/object-recursively/index.ts", exportedSymbols: ["objectRecursivelyPlugin"] },
40
- { directoryName: "one-of", subpathName: "oneOf", tier: "isolated", entryFile: "src/plugins/one-of/index.ts", exportedSymbols: ["oneOfPlugin"] },
41
- { directoryName: "optional", subpathName: "optional", tier: "isolated", entryFile: "src/plugins/optional/index.ts", exportedSymbols: ["optionalPlugin"] },
42
- { directoryName: "optional-if", subpathName: "optionalIf", tier: "isolated", entryFile: "src/plugins/optional-if/index.ts", exportedSymbols: ["optionalIfPlugin"] },
43
- { directoryName: "or-fail", subpathName: "orFail", tier: "isolated", entryFile: "src/plugins/or-fail/index.ts", exportedSymbols: ["orFailPlugin"] },
44
- { directoryName: "read-only", subpathName: "readOnly", tier: "isolated", entryFile: "src/plugins/read-only/index.ts", exportedSymbols: ["readOnlyPlugin"] },
45
- { directoryName: "required", subpathName: "required", tier: "isolated", entryFile: "src/plugins/required/index.ts", exportedSymbols: ["requiredPlugin"] },
46
- { directoryName: "required-if", subpathName: "requiredIf", tier: "isolated", entryFile: "src/plugins/required-if/index.ts", exportedSymbols: ["requiredIfPlugin"] },
47
- { directoryName: "skip", subpathName: "skip", tier: "isolated", entryFile: "src/plugins/skip/index.ts", exportedSymbols: ["skipPlugin"] },
48
- { directoryName: "stitch", subpathName: "stitch", tier: "isolated", entryFile: "src/plugins/stitch/index.ts", exportedSymbols: ["stitchPlugin"] },
49
- { directoryName: "stitch-with", subpathName: "stitchWith", tier: "isolated", entryFile: "src/plugins/stitch-with/index.ts", exportedSymbols: ["stitchWithPlugin"] },
50
- { directoryName: "string-alphanumeric", subpathName: "stringAlphanumeric", tier: "isolated", entryFile: "src/plugins/string-alphanumeric/index.ts", exportedSymbols: ["stringAlphanumericPlugin"] },
51
- { directoryName: "string-base64", subpathName: "stringBase64", tier: "isolated", entryFile: "src/plugins/string-base64/index.ts", exportedSymbols: ["stringBase64Plugin"] },
52
- { directoryName: "string-content-encoding", subpathName: "stringContentEncoding", tier: "isolated", entryFile: "src/plugins/string-content-encoding/index.ts", exportedSymbols: ["stringContentEncodingPlugin"] },
53
- { directoryName: "string-content-media-type", subpathName: "stringContentMediaType", tier: "isolated", entryFile: "src/plugins/string-content-media-type/index.ts", exportedSymbols: ["stringContentMediaTypePlugin"] },
54
- { directoryName: "string-date", subpathName: "stringDate", tier: "isolated", entryFile: "src/plugins/string-date/index.ts", exportedSymbols: ["stringDatePlugin"] },
55
- { directoryName: "string-datetime", subpathName: "stringDatetime", tier: "isolated", entryFile: "src/plugins/string-datetime/index.ts", exportedSymbols: ["stringDatetimePlugin"] },
56
- { directoryName: "string-duration", subpathName: "stringDuration", tier: "isolated", entryFile: "src/plugins/string-duration/index.ts", exportedSymbols: ["stringDurationPlugin"] },
57
- { directoryName: "string-email", subpathName: "stringEmail", tier: "isolated", entryFile: "src/plugins/string-email/index.ts", exportedSymbols: ["stringEmailPlugin"] },
58
- { directoryName: "string-ends-with", subpathName: "stringEndsWith", tier: "isolated", entryFile: "src/plugins/string-ends-with/index.ts", exportedSymbols: ["stringEndsWithPlugin"] },
59
- { directoryName: "string-exact-length", subpathName: "stringExactLength", tier: "isolated", entryFile: "src/plugins/string-exact-length/index.ts", exportedSymbols: ["stringExactLengthPlugin"] },
60
- { directoryName: "string-hostname", subpathName: "stringHostname", tier: "isolated", entryFile: "src/plugins/string-hostname/index.ts", exportedSymbols: ["stringHostnamePlugin"] },
61
- { directoryName: "string-idn-email", subpathName: "stringIdnEmail", tier: "isolated", entryFile: "src/plugins/string-idn-email/index.ts", exportedSymbols: ["stringIdnEmailPlugin"] },
62
- { directoryName: "string-idn-hostname", subpathName: "stringIdnHostname", tier: "isolated", entryFile: "src/plugins/string-idn-hostname/index.ts", exportedSymbols: ["stringIdnHostnamePlugin"] },
63
- { directoryName: "string-ipv4", subpathName: "stringIpv4", tier: "isolated", entryFile: "src/plugins/string-ipv4/index.ts", exportedSymbols: ["stringIpv4Plugin"] },
64
- { directoryName: "string-ipv6", subpathName: "stringIpv6", tier: "isolated", entryFile: "src/plugins/string-ipv6/index.ts", exportedSymbols: ["stringIpv6Plugin"] },
65
- { directoryName: "string-iri", subpathName: "stringIri", tier: "isolated", entryFile: "src/plugins/string-iri/index.ts", exportedSymbols: ["stringIriPlugin"] },
66
- { directoryName: "string-iri-reference", subpathName: "stringIriReference", tier: "isolated", entryFile: "src/plugins/string-iri-reference/index.ts", exportedSymbols: ["stringIriReferencePlugin"] },
67
- { directoryName: "string-json-pointer", subpathName: "stringJsonPointer", tier: "isolated", entryFile: "src/plugins/string-json-pointer/index.ts", exportedSymbols: ["stringJsonPointerPlugin"] },
68
- { directoryName: "string-max", subpathName: "stringMax", tier: "isolated", entryFile: "src/plugins/string-max/index.ts", exportedSymbols: ["stringMaxPlugin"] },
69
- { directoryName: "string-min", subpathName: "stringMin", tier: "isolated", entryFile: "src/plugins/string-min/index.ts", exportedSymbols: ["stringMinPlugin"] },
70
- { directoryName: "string-pattern", subpathName: "stringPattern", tier: "isolated", entryFile: "src/plugins/string-pattern/index.ts", exportedSymbols: ["stringPatternPlugin"] },
71
- { directoryName: "string-regex", subpathName: "stringRegex", tier: "isolated", entryFile: "src/plugins/string-regex/index.ts", exportedSymbols: ["stringRegexPlugin"] },
72
- { directoryName: "string-relative-json-pointer", subpathName: "stringRelativeJsonPointer", tier: "isolated", entryFile: "src/plugins/string-relative-json-pointer/index.ts", exportedSymbols: ["stringRelativeJsonPointerPlugin"] },
73
- { directoryName: "string-starts-with", subpathName: "stringStartsWith", tier: "isolated", entryFile: "src/plugins/string-starts-with/index.ts", exportedSymbols: ["stringStartsWithPlugin"] },
74
- { directoryName: "string-time", subpathName: "stringTime", tier: "isolated", entryFile: "src/plugins/string-time/index.ts", exportedSymbols: ["stringTimePlugin"] },
75
- { directoryName: "string-uri-reference", subpathName: "stringUriReference", tier: "isolated", entryFile: "src/plugins/string-uri-reference/index.ts", exportedSymbols: ["stringUriReferencePlugin"] },
76
- { directoryName: "string-uri-template", subpathName: "stringUriTemplate", tier: "isolated", entryFile: "src/plugins/string-uri-template/index.ts", exportedSymbols: ["stringUriTemplatePlugin"] },
77
- { directoryName: "string-url", subpathName: "stringUrl", tier: "isolated", entryFile: "src/plugins/string-url/index.ts", exportedSymbols: ["stringUrlPlugin"] },
78
- { directoryName: "transform", subpathName: "transform", tier: "isolated", entryFile: "src/plugins/transform/index.ts", exportedSymbols: ["transformPlugin"] },
79
- { directoryName: "tuple-builder", subpathName: "tupleBuilder", tier: "isolated", entryFile: "src/plugins/tuple-builder/index.ts", exportedSymbols: ["tupleBuilderPlugin"] },
80
- { directoryName: "union-guard", subpathName: "unionGuard", tier: "isolated", entryFile: "src/plugins/union-guard/index.ts", exportedSymbols: ["unionGuardPlugin"] },
81
- { directoryName: "uuid", subpathName: "uuid", tier: "isolated", entryFile: "src/plugins/uuid/index.ts", exportedSymbols: ["uuidPlugin"] },
82
- { directoryName: "validate-if", subpathName: "validateIf", tier: "isolated", entryFile: "src/plugins/validate-if/index.ts", exportedSymbols: ["validateIfPlugin"] },
83
- { directoryName: "write-only", subpathName: "writeOnly", tier: "isolated", entryFile: "src/plugins/write-only/index.ts", exportedSymbols: ["writeOnlyPlugin"] },
7
+ { 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"] }] },
8
+ { 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"] }] },
9
+ { 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"] }] },
10
+ { 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"] }] },
11
+ { 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"] }] },
12
+ { 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"] }] },
13
+ { 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"] }] },
14
+ { 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"] }] },
15
+ { 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"] }] },
16
+ { 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"] }] },
17
+ { 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"] }] },
18
+ { 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"] }] },
19
+ { 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"] }] },
20
+ { 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"] }] },
21
+ { 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"] }] },
22
+ { 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"] }] },
23
+ { 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"] }] },
24
+ { 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"] }] },
25
+ { 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"] }] },
26
+ { 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"] }] },
27
+ { 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"] }] },
28
+ { 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"] }] },
29
+ { 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"] }] },
30
+ { 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"] }] },
31
+ { 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"] }] },
32
+ { 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"] }] },
33
+ { 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"] }] },
34
+ { 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"] }] },
35
+ { 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"] }] },
36
+ { 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"] }] },
37
+ { 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"] }] },
38
+ { 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"] }] },
39
+ { 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"] }] },
40
+ { 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"] }] },
41
+ { 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"] }] },
42
+ { 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"] }] },
43
+ { 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"] }] },
44
+ { 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"] }] },
45
+ { 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"] }] },
46
+ { 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"] }] },
47
+ { 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"] }] },
48
+ { 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"] }] },
49
+ { 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"] }] },
50
+ { 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"] }] },
51
+ { 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"] }] },
52
+ { 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"] }] },
53
+ { 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"] }] },
54
+ { 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"] }] },
55
+ { 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"] }] },
56
+ { 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"] }] },
57
+ { 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"] }] },
58
+ { 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"] }] },
59
+ { 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"] }] },
60
+ { 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"] }] },
61
+ { 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"] }] },
62
+ { 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"] }] },
63
+ { 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"] }] },
64
+ { 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"] }] },
65
+ { 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"] }] },
66
+ { 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"] }] },
67
+ { 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"] }] },
68
+ { 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"] }] },
69
+ { 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"] }] },
70
+ { 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"] }] },
71
+ { 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"] }] },
72
+ { 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"] }] },
73
+ { 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"] }] },
74
+ { 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"] }] },
75
+ { 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"] }] },
76
+ { 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"] }] },
77
+ { 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"] }] },
78
+ { 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"] }] },
79
+ { 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"] }] },
80
+ { 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"] }] },
81
+ { 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"] }] },
82
+ { 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"] }] },
83
+ { 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"] }] },
84
84
  ];