@wildo-ai/zod-decorators 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/currencies.shared.schemas.d.ts.map +1 -1
- package/dist/esm/currencies.shared.schemas.js.map +1 -1
- package/dist/esm/files/agent-file-formats.d.ts +51 -37
- package/dist/esm/files/agent-file-formats.d.ts.map +1 -1
- package/dist/esm/files/agent-file-formats.js +54 -47
- package/dist/esm/files/agent-file-formats.js.map +1 -1
- package/dist/esm/files/extension-nature-map.d.ts.map +1 -1
- package/dist/esm/files/mime-registry.d.ts.map +1 -1
- package/dist/esm/files/unified-registry.d.ts +2 -2
- package/dist/esm/files/unified-registry.d.ts.map +1 -1
- package/dist/esm/files/unified-registry.js +1 -1
- package/dist/esm/files/unified-registry.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/testing/decorated-test-schemas.d.ts.map +1 -1
- package/dist/esm/testing.d.ts +11 -0
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js +11 -0
- package/dist/esm/testing.js.map +1 -1
- package/dist/esm/zod-address.d.ts +146 -0
- package/dist/esm/zod-address.d.ts.map +1 -0
- package/dist/esm/zod-address.js +176 -0
- package/dist/esm/zod-address.js.map +1 -0
- package/dist/esm/zod-bigdecimal.d.ts.map +1 -1
- package/dist/esm/zod-code.d.ts +2 -0
- package/dist/esm/zod-code.d.ts.map +1 -1
- package/dist/esm/zod-code.js +4 -4
- package/dist/esm/zod-code.js.map +1 -1
- package/dist/esm/zod-color.d.ts.map +1 -1
- package/dist/esm/zod-decorators.types.d.ts +311 -29
- package/dist/esm/zod-decorators.types.d.ts.map +1 -1
- package/dist/esm/zod-decorators.types.js +177 -8
- package/dist/esm/zod-decorators.types.js.map +1 -1
- package/dist/esm/zod-duration.d.ts +2 -0
- package/dist/esm/zod-duration.d.ts.map +1 -1
- package/dist/esm/zod-duration.js +4 -4
- package/dist/esm/zod-duration.js.map +1 -1
- package/dist/esm/zod-file.d.ts +70 -4
- package/dist/esm/zod-file.d.ts.map +1 -1
- package/dist/esm/zod-file.js +92 -75
- package/dist/esm/zod-file.js.map +1 -1
- package/dist/esm/zod-money.d.ts +2 -0
- package/dist/esm/zod-money.d.ts.map +1 -1
- package/dist/esm/zod-money.js +6 -6
- package/dist/esm/zod-money.js.map +1 -1
- package/dist/esm/zod-phone.d.ts +8 -0
- package/dist/esm/zod-phone.d.ts.map +1 -1
- package/dist/esm/zod-phone.js +6 -1
- package/dist/esm/zod-phone.js.map +1 -1
- package/dist/esm/zod-range.d.ts.map +1 -1
- package/dist/esm/zod-utils.shared.d.ts +343 -12
- package/dist/esm/zod-utils.shared.d.ts.map +1 -1
- package/dist/esm/zod-utils.shared.js +1004 -90
- package/dist/esm/zod-utils.shared.js.map +1 -1
- package/dist/esm/zod-versioned.d.ts.map +1 -1
- package/dist/esm/zod-versioned.js.map +1 -1
- package/dist/esm/zod.module-override.d.ts +29 -1
- package/dist/esm/zod.module-override.d.ts.map +1 -1
- package/dist/esm/zod.module-override.js +67 -8
- package/dist/esm/zod.module-override.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -7
- package/dist/esm/companion-exports.d.ts +0 -8
- package/dist/esm/companion-exports.d.ts.map +0 -1
- package/dist/esm/companion-exports.js +0 -8
- package/dist/esm/companion-exports.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.module-override.js","sourceRoot":"","sources":["../../src/zod.module-override.ts"],"names":[],"mappings":"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","sourcesContent":["import { z, core } from 'zod';\n\nimport type { ArrayUIEditParams } from './zod-decorators.types';\nimport { BackendOnlyFieldParams, BusinessKeySetParams, WriteOnlySecretFieldParams, CustomFieldMetadata, DecoratorInput, DiscriminatorFieldParams, HiddenFieldParams, ImpersonalizeFieldParams, NotEditableFieldParams, PolymorphicFkVariant, RAGChunkingStrategy, RagSourceConfiguration, SCHEMA_METADATA, SummaryFieldParams, TtlFieldParams, VirtualFieldParams, ZodDecorator, ZodDecorator_ParamsType, UniqueFieldParams, ShowWhenParams } from './zod-decorators.types';\n\n// EnumLike type definition (not exported from Zod v4)\nexport type EnumLike = Record<string, string | number>;\nexport type EnumLikeType = Record<string, string>; \nexport type EnumValues<T extends EnumLikeType> = T[keyof T];\nexport type EnumStringValues<T extends EnumLikeType> = EnumValues<T> extends string ? EnumValues<T> : never;\n\nconst ApplyableTypeAllTypes = [ \"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodDate\", \"ZodEnum\", \"ZodOptional\", \"ZodArray\", \"ZodObject\" ];\nconst ApplyableTypeAllPrimitiveTypes = [ \"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodDate\", \"ZodEnum\", \"ZodOptional\"];\nconst ApplyableTypeAllArrayTypes = [ \"ZodArray\" ];\nconst ApplyableTypeAllObjectTypes = [ \"ZodObject\", \"ZodRecord\", \"ZodMap\" ];\n\n/**\n * List of Zod methods that return new instances and need wrapping\n */\nconst ZOD_INSTANCE_METHODS_TO_WRAP = [\n 'min', 'max', 'length', 'email', 'url', 'uuid', 'nanoid', 'cuid', 'cuid2', 'ulid',\n 'regex', 'includes', 'startsWith', 'endsWith', 'datetime', 'date', 'time', 'duration',\n 'ip', 'base64', 'trim', 'toLowerCase', 'toUpperCase', 'jwt', 'emoji',\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine',\n 'int', 'positive', 'negative', 'nonnegative', 'nonpositive', 'multipleOf', 'finite', 'safe', 'step',\n 'nonempty',\n // Object/record methods that return new schema instances (Zod v4)\n 'extend', 'merge', 'pick', 'omit', 'partial', 'deepPartial', 'required',\n 'strict', 'passthrough', 'strip', 'catchall',\n // Misc helpers that return new schema instances\n 'meta', 'prefault'\n];\n\n// Types that support field-level decorators (hidden, notEditable, sortable, showWhen, draft, etc.): primitives + object roots + arrays\nconst ApplyableTypeFormField = [ ...ApplyableTypeAllPrimitiveTypes, \"ZodObject\", \"ZodArray\" ];\n\nexport const ZodDecorator_ApplyableType: Record<ZodDecorator, string[]> = {\n [ZodDecorator.IS_DB_INDEXED]: [...ApplyableTypeAllPrimitiveTypes, \"ZodObject\"],\n [ZodDecorator.IS_FOREIGN_KEY]: [ \"ZodString\", \"ZodOptional\" ],\n [ZodDecorator.IS_HIDDEN]: ApplyableTypeFormField,\n [ZodDecorator.IS_NOT_EDITABLE]: ApplyableTypeFormField,\n // New decorators - apply to all types since they are schema-level metadata\n [ZodDecorator.IS_SUMMARY_FIELD]: ApplyableTypeAllTypes,\n [ZodDecorator.IS_BACKEND_ONLY]: ApplyableTypeAllTypes,\n [ZodDecorator.IS_WRITE_ONLY_SECRET]: ApplyableTypeAllTypes,\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET's all-types surface: any field\n // type can hold personal data (a nested `address` object and a `phoneNumbers` array as much as a\n // `fullName` string). Whether a given TREATMENT VALUE fits the field's type (e.g. MASK on a number)\n // is a separate axis, enforced by the resource factory's retention guard, not by this map.\n //\n // ⚠️ This list and the `ZodDecorator_FunctionType.impersonalizeWith` entry + the ZodType prototype\n // installs + the `declare module 'zod'` augmentations are ONE unit — wiring only some of them\n // recreates the P0.3a half-live trap: a non-empty list here alone makes `addChainableMethods`\n // auto-install a generic INSTANCE method on the RESULT of a first decorator, so\n // `z.string().isDBIndexed().impersonalizeWith(t)` works while `z.string().impersonalizeWith(t)`\n // throws (order-dependent `TypeError`). `impersonalize-treatment.test.ts` pins BOTH orders.\n //\n // WHAT THIS LIST DOES AND DOES NOT DETERMINE. It governs the INSTANCE install `addChainableMethods`\n // performs on an already-decorated schema. Whether a BARE schema exposes the method is decided by\n // the PROTOTYPE installs in `ensureZodDecoratorsLoaded`, which are a different set — so list\n // membership is neither necessary nor sufficient:\n // • reachable but NOT listed: ZodRecord / ZodMap / ZodUnion / ZodNullable / ZodDefault\n // (prototype-installed alongside IS_WRITE_ONLY_SECRET, or via the wrapper loop)\n // • reachable but NOT listed, and the case most likely to mislead: EVERY string-format\n // constructor — ZodEmail, ZodUUID, ZodCustomStringFormat, ZodISODateTime, … A format schema's\n // `constructor.name` is `ZodUUID`, which appears in NO list here, so `addChainableMethods`\n // installs nothing on it; it is fully decorated anyway because Zod's `$constructor` copies\n // `ZodStringFormat.prototype`'s keys onto the instance at init. Do NOT treat this map as the\n // authority on what a format type supports — it does not mention them, and never has.\n // • listed AND reachable, though it was the standing counter-example: ZodBigInt. It carried no\n // prototype install at all, so no decorator could start a chain on a bare `z.bigint()`. Its\n // own prototype block below now installs the backend-concern set, and its format siblings\n // `z.int64()` / `z.uint64()` follow it for the same reason they followed its emptiness before\n // (`ZodBigIntFormat.init` calls `ZodBigInt.init`). The WIRED list further down records the\n // change; do not read that list and this bullet as disagreeing.\n //\n // THE LISTED-BUT-UNREACHABLE SET: 65 entries on 2026-08-12, 18 now, and the remainder is a single\n // group kept absent for a SEMANTIC reason. \"No app needs it yet\" was explicitly rejected as a\n // reason — this is a framework, so a capability the vocabulary claims must exist before the case\n // arrives. Each entry was therefore resolved one of two ways, never left in disagreement:\n //\n // WIRED (the map's claim was right; the surface was missing)\n // • ZodBigInt × 16 — see its prototype block; every other layer already treats bigint as a leaf.\n // • ZodObject `isDBIndexed`/`isHidden`/`isNotEditable` — a composite field is indexable,\n // hideable and non-editable. The TS2320 clash with `z_file()`'s mixin was the only obstacle\n // and it cost nothing to remove, because `DecoratedPrimitiveZodType<T>` is `T & {…}`.\n // • `isBusinessKey` on ZodBoolean/ZodDate — the map says it mirrors IS_DB_INDEXED's primitive\n // set, and that IS on both. A date is a legitimate natural-key component.\n // • ZodOptional `ttl`/`isPassword`/`isOtp`/`isColor`/`businessKeySet` — natural authoring\n // orders. `businessKeySet` additionally learned to unwrap so its field-name validation still\n // runs through the wrapper instead of silently passing.\n // • `showWhen`/`isDraftRelaxed` across every form-field type — see the string surface constant.\n //\n // MAP TIGHTENED (the surface was right; the map claimed support that cannot exist)\n // • IS_DISCRIMINATOR lost ZodBigInt/ZodBoolean/ZodDate — `baseValues` is `string[]`.\n // • OBJECT_BUSINESS_KEY_SET lost ZodRecord/ZodMap — no named fields to validate against.\n //\n // CORRECTLY ABSENT — the 18 that remain, all factory-owned `*UI` / `*Spec`:\n // `moneyUI`/`codeUI`/`fileUI`/`durationUI` on ZodObject, `phoneUI`/`bigDecimalUI`/\n // `foreignKeyUI`/`timeUI` on ZodString, `dateTimeUI` on ZodDate, plus their `*Spec` twins.\n // These belong to `z_money()`, `z_code()`, `z_file()`, `z_duration()`, `z_phone()`,\n // `z_bigdecimal()`, which return an already-decorated schema. A bare `z.object({})` is NOT\n // money, and a bare `z.string()` is not a phone number — installing these would let an author\n // attach a renderer to a value whose shape it cannot read. The entry here is only the coarse\n // gate that lets `addChainableMethods` re-install the method on the factory's own result; the\n // map keys on constructor name and cannot tell `z_money()`'s object from any other.\n // Fluently reachable today: String, Number, Boolean, Date, Enum, Array, Object, Record, Map, Union,\n // Optional, Nullable, Default (+ the string-refinement and format-validator prototypes).\n // NOT reachable: BigInt, Pipe (what `z_phone()` returns), Literal, Tuple, Set, Null, Any,\n // Intersection, Lazy, Readonly, Catch — every one of these carries NO decorators at all, a\n // pre-existing decorator-WIDE gap that is mirrored here rather than special-cased for one decorator.\n // For those, `addImpersonalizeWith(schema, treatment)` needs no prototype method and the treatment\n // reads back normally (pinned for `z_phone` in `impersonalize-treatment.test.ts`).\n [ZodDecorator.IMPERSONALIZE_WITH]: ApplyableTypeAllTypes,\n // Portability provenance — all-types for the same reason as IMPERSONALIZE_WITH above: any field\n // type can be data the subject provided (a nested `address` object and a `phoneNumbers` array as\n // much as a `fullName` string). The list/FunctionType/prototype-install/`declare module`\n // augmentations are ONE unit here too — wiring only some recreates the order-dependent\n // half-live trap documented above.\n [ZodDecorator.PORTABILITY_PROVENANCE]: ApplyableTypeAllTypes,\n // Data categories — all-types for the same reason as the two above: any field type can hold\n // personal data (a nested `address` OBJECT and a `phoneNumbers` ARRAY as much as a `fullName`\n // string). The list/FunctionType/prototype-install/`declare module` augmentations are ONE unit\n // here too — wiring only some recreates the order-dependent half-live trap documented on\n // IMPERSONALIZE_WITH above.\n [ZodDecorator.DATA_CATEGORIES]: ApplyableTypeAllTypes,\n // Audit evidence — all-types for the same reason as the two above: authority and lifecycle state\n // are held in every field shape (`appRoles` is an ARRAY, `status` an ENUM, `suspendedUntil` a\n // DATE, a scope binding an OBJECT). The list/FunctionType/prototype-install/`declare module`\n // augmentations are ONE unit here too — wiring only some recreates the order-dependent half-live\n // trap documented on IMPERSONALIZE_WITH above.\n [ZodDecorator.IS_AUDIT_EVIDENCE]: ApplyableTypeAllTypes,\n // RAG source — deliberately NOT all-types: only TEXT can be a retrieval-corpus source, so the\n // fluent surface is string-backed (plus the wrappers a string field routinely lives under; the\n // string-FORMAT types get the method from the `ZodStringFormat.prototype` install, which — per the\n // long IMPERSONALIZE_WITH note above — never appears in this map). The FILE case does not go\n // through this map at all: `z_file({ ragSource })` registers the decorator on its own result via\n // `addDecorators`, which performs no applicability gating, so a file object carries the metadata\n // without `.ragSource()` ever being installed on ZodObject. The list/FunctionType/prototype-install/\n // `declare module` augmentations are ONE unit here too — wiring only some recreates the\n // order-dependent half-live trap documented on IMPERSONALIZE_WITH above.\n [ZodDecorator.RAG_SOURCE]: ['ZodString', 'ZodOptional', 'ZodNullable', 'ZodDefault'],\n [ZodDecorator.IS_VIRTUAL]: ApplyableTypeAllTypes,\n // Discriminators are STRING/ENUM-valued, not merely \"primitive\". `DiscriminatorFieldParams.baseValues`\n // is `string[]` and is documented as auto-detected from ENUM VALUES not covered by variants, so a\n // variant set is a finite list of string-comparable labels. A `ZodDate` cannot supply one, and\n // `ZodBoolean` / `ZodBigInt` cannot express theirs through a `string[]` without a coercion the\n // polymorphism engine never performs. Narrowed 2026-08-12 from `ApplyableTypeAllPrimitiveTypes`,\n // which claimed a support the params model cannot honour — the three removed types were half-live\n // (reachable only after another decorator) and had no prototype install, so nothing regresses.\n [ZodDecorator.IS_DISCRIMINATOR]: ['ZodString', 'ZodNumber', 'ZodEnum', 'ZodOptional'],\n [ZodDecorator.EXCLUDE_FROM_CREATE]: ApplyableTypeAllTypes,\n [ZodDecorator.EXCLUDE_FROM_UPDATE]: ApplyableTypeAllTypes,\n // Database constraint decorators - only strings and numbers can be unique (identifiers, codes, etc.)\n // ZodOptional is included to support chaining like z.string().isUnique().optional()\n [ZodDecorator.IS_UNIQUE]: ['ZodString', 'ZodNumber', 'ZodOptional'],\n // Primary key is only for strings (MongoDB _id is always a string or ObjectId)\n [ZodDecorator.IS_PRIMARY_KEY]: ['ZodString'],\n // Business key marker — applies to any primitive that can carry a stable identity\n // (string keys, numeric discriminators, enum keys). Mirrors `IS_DB_INDEXED`'s primitive\n // base set since business keys are also recursively indexed at the DB layer in Phase 2.\n [ZodDecorator.IS_BUSINESS_KEY]: ApplyableTypeAllPrimitiveTypes,\n // Composite business key — object-level only (analog of OBJECT_UI's applicable types)\n // Composite business key — object-level. NOT `ApplyableTypeAllObjectTypes`: the decorator's whole\n // safety property is validating the named fields against the schema's `shape` at decoration time,\n // and a `ZodRecord` / `ZodMap` has no named fields, so the check would silently pass anything.\n // Claiming support there is worse than omitting it — the author would get a key referencing fields\n // that cannot exist, with no error. `ZodOptional` stays and IS supported: the wrapper's shape is\n // reached by unwrapping (see the `businessKeySet` implementation).\n // Every wrapper that can hold an object and whose inner shape `findObjectShape` can reach —\n // Optional, Nullable and Default all already carry the method at runtime via the wrapper loop.\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET]: ['ZodObject', 'ZodOptional', 'ZodNullable', 'ZodDefault'],\n // TTL (Time To Live) - only for Date fields (MongoDB TTL indexes work on Date fields)\n [ZodDecorator.TTL]: ['ZodDate', 'ZodOptional'],\n // String edit mode convenience decorators - only for strings\n [ZodDecorator.IS_PASSWORD]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.IS_OTP]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.IS_COLOR]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.IS_DRAFT_RELAXED]: ApplyableTypeFormField,\n // FIX-P5-H1: Conditional visibility decorator - apply to all form field types\n [ZodDecorator.SHOW_WHEN]: ApplyableTypeFormField,\n // System enum decorator - marks enum fields as using a system-level enum for labelling\n [ZodDecorator.SYSTEM_ENUM]: ['ZodEnum', 'ZodOptional'],\n // Ephemeral field decorator - only for strings (API keys, tokens, etc.)\n [ZodDecorator.IS_EPHEMERAL]: ['ZodString', 'ZodOptional'],\n // CRDT field decorator — all field types can be CRDT-enabled\n [ZodDecorator.IS_CRDT]: ApplyableTypeAllTypes,\n // Unified {primitive}UI decorators — each constrained to its applicable schema types\n [ZodDecorator.BOOLEAN_UI]: ['ZodBoolean', 'ZodOptional'],\n [ZodDecorator.STRING_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.NUMBER_UI]: ['ZodNumber', 'ZodOptional'],\n [ZodDecorator.ENUM_UI]: ['ZodEnum', 'ZodLiteral', 'ZodOptional'],\n [ZodDecorator.DATE_UI]: ['ZodDate', 'ZodOptional'],\n [ZodDecorator.DATETIME_UI]: ['ZodDate', 'ZodOptional'],\n [ZodDecorator.TIME_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.MONEY_UI]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.CODE_UI]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.FILE_UI]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.DURATION_UI]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.PHONE_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.BIGDECIMAL_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.FOREIGN_KEY_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.ARRAY_UI]: ['ZodArray', 'ZodOptional'],\n [ZodDecorator.OBJECT_UI]: [...ApplyableTypeAllObjectTypes, 'ZodOptional'],\n // Per-primitive field specification decorators — same type constraints as UI counterparts\n [ZodDecorator.STRING_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.NUMBER_SPEC]: ['ZodNumber', 'ZodOptional'],\n [ZodDecorator.BOOLEAN_SPEC]: ['ZodBoolean', 'ZodOptional'],\n [ZodDecorator.DATE_SPEC]: ['ZodDate', 'ZodOptional'],\n [ZodDecorator.DATETIME_SPEC]: ['ZodDate', 'ZodOptional'],\n [ZodDecorator.TIME_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.ENUM_SPEC]: ['ZodEnum', 'ZodOptional'],\n [ZodDecorator.MONEY_SPEC]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.CODE_SPEC]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.FILE_SPEC]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.DURATION_SPEC]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.PHONE_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.BIGDECIMAL_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.FOREIGN_KEY_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.ARRAY_SPEC]: ['ZodArray', 'ZodOptional'],\n [ZodDecorator.OBJECT_SPEC]: [...ApplyableTypeAllObjectTypes, 'ZodOptional'],\n}\n\n/**\n * THE decorator surface of a string-backed schema — the single runtime source of truth.\n *\n * A string-format refinement (`z.uuid()`, `z.email()`, `z.hostname()`, `z.iso.datetime()`, …) is a\n * string-backed primitive, so it carries EXACTLY the surface `z.string()` carries. That is not a\n * convenience: it is what the type layer already promises. `declare module 'zod'` below merges the\n * same member list into `ZodString` AND `ZodStringFormat<Format>`, and every refinement type Zod\n * publishes is declared `extends ZodStringFormat<…>` — so `z.uuid().isPrimaryKey()` type-checks.\n * Anything this list omits is a method TypeScript says exists and the prototype does not have.\n *\n * WHY A LIST AND NOT THREE HAND-WRITTEN BLOCKS. Until 2026-08-12 the surface was re-typed by hand at\n * three install sites (the `ZodString` prototype, a named-constructor loop, a format-validator probe)\n * and they had drifted: five decorators — `isPrimaryKey`, `isBusinessKey`, `isPassword`, `isOtp`,\n * `isColor` — reached only `ZodString`, so `z.uuid().isPrimaryKey()` compiled and threw\n * `TypeError: ... is not a function`. Three copies of one list is three chances to forget; one list\n * consumed by one installer makes the divergence unrepresentable rather than merely tested-for.\n * See `.claude/rules/invariant-call-site-enumeration.md` — \"prefer making the invariant unbypassable\n * over applying it N times\".\n *\n * There are now exactly TWO install sites, `ZodString.prototype` and `ZodStringFormat.prototype`,\n * mirroring the two interfaces one-for-one — see the STEP 3 block in `ensureZodDecoratorsLoaded`\n * for why those two bases are complete and why the per-format lists that used to live there were\n * never the mechanism.\n *\n * KEEP IN SYNC WITH: the `ZodString` and `ZodStringFormat` interfaces in the `declare module 'zod'`\n * block below. `string-format-decorator-parity.contract.test.ts` fails — at type-check time AND at\n * runtime — the moment any of the three disagree.\n */\nconst STRING_SCHEMA_DECORATOR_SURFACE: readonly ZodDecorator[] = [\n ZodDecorator.IS_DB_INDEXED,\n ZodDecorator.IS_FOREIGN_KEY,\n ZodDecorator.IS_HIDDEN,\n ZodDecorator.IS_NOT_EDITABLE,\n ZodDecorator.IS_SUMMARY_FIELD,\n ZodDecorator.IS_BACKEND_ONLY,\n ZodDecorator.IS_WRITE_ONLY_SECRET,\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n ZodDecorator.IMPERSONALIZE_WITH,\n // Portability provenance — a format validator (`z.email()`, `z.uuid()`) is the shape personal data\n // most often takes, so omitting it here would leave the decorator half-live on exactly those fields.\n ZodDecorator.PORTABILITY_PROVENANCE,\n // Data categories — same argument as PORTABILITY_PROVENANCE directly above: `z.email()` and\n // `z.uuid()` are the shapes personal data most often takes, so omitting the format prototype\n // would leave the decorator half-live on exactly the fields a notice most needs to enumerate.\n ZodDecorator.DATA_CATEGORIES,\n ZodDecorator.IS_AUDIT_EVIDENCE,\n // RAG source — string-backed by nature (only text can be a corpus source), and a format validator\n // is a legitimate carrier: markdown/documentation fields are routinely `z.string()`, but a\n // `z.url()` pointing at authored content is not excluded from being chunked as text.\n ZodDecorator.RAG_SOURCE,\n ZodDecorator.IS_VIRTUAL,\n ZodDecorator.IS_DISCRIMINATOR,\n ZodDecorator.EXCLUDE_FROM_CREATE,\n ZodDecorator.EXCLUDE_FROM_UPDATE,\n // Database constraint decorators — format validators like email/uuid are commonly used as\n // unique identifiers, and `z.uuid().isPrimaryKey()` is the canonical surrogate-key shape.\n ZodDecorator.IS_UNIQUE,\n ZodDecorator.IS_PRIMARY_KEY,\n // Business key marker (data-seeding subsystem) — `z.email().isBusinessKey()` is the canonical\n // natural-key shape, so a format validator is if anything a MORE likely carrier than a bare string.\n ZodDecorator.IS_BUSINESS_KEY,\n // String edit-mode convenience decorators. These belong on refinement types for a mechanical\n // reason, not a stylistic one: each is exactly `stringUI({ edit: { editMode: X } })` plus a marker,\n // and `STRING_UI` itself is already on this surface. Excluding them would mean\n // `z.hex().stringUI({ edit: { editMode: 'color' } })` works while `z.hex().isColor()` throws —\n // the sugar unavailable precisely where the thing it desugars to is available.\n ZodDecorator.IS_PASSWORD,\n ZodDecorator.IS_OTP,\n ZodDecorator.IS_COLOR,\n ZodDecorator.IS_EPHEMERAL,\n ZodDecorator.IS_CRDT,\n // Generic FORM-FIELD decorators. `ZodDecorator_ApplyableType` gives both of these\n // `ApplyableTypeFormField` — every primitive plus object and array — but until 2026-08-12 they\n // were installed on NO primitive prototype, only on the wrapper types, so the natural authoring\n // form `z.string().showWhen({...})` (the shape this decorator's own `ShowWhenParams` JSDoc has\n // always documented) threw while `z.string().isHidden().showWhen({...})` worked. Unlike the\n // `*UI`/`*Spec` pairs below, these two belong to no factory: they are field-level concerns any\n // form field can carry, which is why they are on the shared surface rather than gated.\n ZodDecorator.SHOW_WHEN,\n ZodDecorator.IS_DRAFT_RELAXED,\n // Format validators like uuid/email/url are still string-backed primitives, so platform presets\n // must be able to apply string display/edit policies and author string field specifications.\n ZodDecorator.STRING_UI,\n ZodDecorator.STRING_SPEC,\n];\n\n// Type for decorator function - uses 'this' binding from prototype\ntype DecoratorFn = (this: z.ZodTypeAny, ...args: any[]) => DecoratedPrimitiveZodType<z.ZodTypeAny>;\n\nexport const ZodDecorator_FunctionType: Record<string, DecoratorFn> = {\n /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n isDBIndexed: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_DB_INDEXED]); },\n isForeignKey: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return params ? addDecorators(this, [{ ref: ZodDecorator.IS_FOREIGN_KEY, params}]) : addDecorators(this, [ZodDecorator.IS_FOREIGN_KEY]); },\n isSummaryField: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_SUMMARY_FIELD, params}]); },\n /**\n * The field never crosses the client boundary, in EITHER direction — stripped from the response\n * DTO, the summary DTO and the context DTO alike, and from the write DTOs too.\n *\n * `{ isReturnedAtCreation: true }` carves out the one exception: the field IS returned on `CREATE`\n * / `CREATE_MANY`, and each such disclosure emits a field-access AUDIT row naming the stored\n * artifact. Marking a field this way therefore creates an audit obligation as well as an exposure.\n */\n isBackendOnly: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_BACKEND_ONLY]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_BACKEND_ONLY, params}]); },\n isWriteOnlySecret: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_WRITE_ONLY_SECRET]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_WRITE_ONLY_SECRET, params}]); },\n isDiscriminator: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_DISCRIMINATOR]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_DISCRIMINATOR, params}]); },\n /**\n * Keep this field out of the CREATE contract — the server owns its initial value.\n *\n * ⚠️ **A client that sends it anyway gets a SUCCESS, and the value goes nowhere.** The field is\n * removed from the create shape, so it is stripped before validation rather than refused. That is\n * deliberate mass-assignment protection, and it means a form that collects the field submits\n * silently-discarded data with nothing to notice.\n *\n * This is NOT how the update side behaves — see `excludeFromUpdate`. The two decorators read as a\n * pair and do opposite things on a violation.\n */\n excludeFromCreate: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.EXCLUDE_FROM_CREATE]); },\n /**\n * Keep this field out of the UPDATE contract — it may be set at creation and not changed after.\n *\n * ⚠️ **A client that ATTEMPTS TO CHANGE it is REFUSED with a 4xx**, not silently stripped. The\n * asymmetry with `excludeFromCreate` is intended: a create carrying a server-owned field is\n * usually an over-broad form, while an update changing a read-only field is a caller asserting\n * something it may not, and telling it so is more useful than dropping the change.\n *\n * Sending the field with its CURRENT value is not an attempt to change it and is accepted — the\n * comparison handles the shapes an echo really takes (a `Date` resent as an ISO string, an id\n * resent as a string against a stored driver object).\n *\n * LIMITATION: a read-only field whose value is a plain OBJECT or ARRAY compares equal to any other\n * object, so a change to one is not detected and is not refused. Prefer a scalar for a field you\n * need this guard to protect.\n */\n excludeFromUpdate: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.EXCLUDE_FROM_UPDATE]); },\n isUnique: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_UNIQUE]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_UNIQUE, params}]); },\n // isPrimaryKey is a composite decorator: implies excludeFromCreate + isHidden + isUnique(sparse:false) + isDBIndexed\n isPrimaryKey: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { \n return addDecorators(this, [\n ZodDecorator.IS_PRIMARY_KEY,\n ZodDecorator.EXCLUDE_FROM_CREATE,\n ZodDecorator.IS_HIDDEN,\n ZodDecorator.IS_DB_INDEXED,\n { ref: ZodDecorator.IS_UNIQUE, params: { scope: 'global', sparse: false } },\n ]); \n },\n // isBusinessKey is a PURE marker — unlike isPrimaryKey, it does NOT imply\n // excludeFromCreate / isHidden / isUnique. Business keys are user-editable\n // (renames are handled by per-seed `renames: [{ from, to }]` migrators in\n // Phase 4 of the data-seeding subsystem). Indexing is a Phase 2 derivation\n // performed by the seed dispatcher when it materialises composite indexes.\n isBusinessKey: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n return addDecorators(this, [ZodDecorator.IS_BUSINESS_KEY]);\n },\n // businessKeySet is the OBJECT-LEVEL composite analog of isBusinessKey.\n // Validates at decoration time that every named field exists on the\n // underlying ZodObject shape and that the array is non-empty. Mixing\n // field-level isBusinessKey() with object-level businessKeySet([...]) on\n // the same schema is rejected by the seed authoring layer (Phase 1.3) —\n // we keep the decorator itself permissive so that tests can verify the\n // higher-level validator rejects the mix.\n businessKeySet: function(\n this: z.ZodTypeAny,\n fields: string[],\n params?: Omit<BusinessKeySetParams, 'fields'>,\n ): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n if (!Array.isArray(fields) || fields.length === 0) {\n throw new Error(\n `businessKeySet([...]) requires a non-empty array of field names (received ${JSON.stringify(fields)}).`,\n );\n }\n // Reach the OBJECT shape, unwrapping wrappers on the way. `z.object({…}).optional()` is a\n // legitimate authoring order and its shape lives on the inner type; without this the guard below\n // would find no shape and silently accept field names that do not exist — the decorator would\n // report success while validating nothing.\n const findObjectShape = (candidate: unknown, depth = 0): Record<string, unknown> | undefined => {\n if (!candidate || depth > 5) return undefined;\n const node = candidate as { shape?: Record<string, unknown>; _zod?: { def?: { shape?: Record<string, unknown>; innerType?: unknown } } };\n const own = node.shape ?? node._zod?.def?.shape;\n if (own && typeof own === 'object') return own;\n return findObjectShape(node._zod?.def?.innerType, depth + 1);\n };\n const shape = findObjectShape(this);\n if (shape && typeof shape === 'object') {\n const missing = fields.filter((f) => !(f in shape));\n if (missing.length > 0) {\n throw new Error(\n `businessKeySet([...]) references field(s) not present in the schema shape: ${missing.join(', ')}.`,\n );\n }\n }\n // `skipRowsMissing` narrows the key it belongs to, so naming a field OUTSIDE the key is not a\n // harmless extra — it would silently scope the constraint by a field the identity never\n // mentions. Rejected at decoration time, where the author can still see both lists.\n const skipRowsMissing = params?.skipRowsMissing;\n if (skipRowsMissing !== undefined) {\n if (!Array.isArray(skipRowsMissing) || skipRowsMissing.length === 0) {\n throw new Error(\n `businessKeySet([...], { skipRowsMissing }) requires a non-empty array of field names (received ${JSON.stringify(skipRowsMissing)}).`,\n );\n }\n const notInKey = skipRowsMissing.filter((f) => !fields.includes(f));\n if (notInKey.length > 0) {\n throw new Error(\n `businessKeySet([...], { skipRowsMissing }) names field(s) that are not part of the key: ${notInKey.join(', ')}.`,\n );\n }\n }\n return addDecorators(this, [\n {\n ref: ZodDecorator.OBJECT_BUSINESS_KEY_SET,\n params: {\n fields: [...fields],\n ...(skipRowsMissing ? { skipRowsMissing: [...skipRowsMissing] } : {}),\n ...(params?.conflictMessageReference ? { conflictMessageReference: params.conflictMessageReference } : {}),\n },\n },\n ]);\n },\n // TTL (Time To Live) - for automatic document expiration in MongoDB\n ttl: function(this: z.ZodTypeAny, params: ZodDecorator_ParamsType[ZodDecorator.TTL]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.TTL, params}]); },\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\n // Impersonalization scrub treatment (retention capability). Deliberately declared OUTSIDE the\n // `shared-structural-methods` anchor: the compiled framework-knowledge surface for this decorator\n // is scheduled with its teaching skill in Phase 3 of the retention plan (a capability whose runtime\n // is still being built cannot be taught honestly). Move it inside the anchor when Phase 3 lands.\n //\n // The treatment is REQUIRED (no marker/undefined form) — a field either declares how it is scrubbed\n // or carries no treatment at all. `applySingleDecorator` fails loud on a non-string/blank value, so\n // this method and the `addImpersonalizeWith` helper share one validation chokepoint — which is also\n // where the optional `{ maskValue }` override is normalized and validated.\n impersonalizeWith: function(this: z.ZodTypeAny, treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IMPERSONALIZE_WITH, params: options ? { ...options, treatment } : treatment }]); },\n // Portability provenance — REQUIRED value, validated at the shared `applySingleDecorator`\n // chokepoint so this method and `addPortabilityProvenance` reject the same inputs.\n portabilityProvenance: function(this: z.ZodTypeAny, provenance: string): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.PORTABILITY_PROVENANCE, params: provenance }]); },\n dataCategories: function(this: z.ZodTypeAny, categories: string | readonly string[]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATA_CATEGORIES, params: categories }]); },\n // Audit evidence — a PURE parameterless marker (the isBusinessKey shape, not the isPrimaryKey\n // shape): it implies no other decorator. Marking a field says only that its before/after values\n // belong on the resource-operation audit event.\n isAuditEvidence: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_AUDIT_EVIDENCE]); },\n // RAG source (resource-native RAG capability). The config is OPTIONAL — a bare `.ragSource()` is a\n // complete declaration — so unlike impersonalizeWith there is no required-value door to guard;\n // what the shared `applySingleDecorator` chokepoint enforces instead is config validity\n // (chunkSize/chunkOverlap/strategy) and the refused companions (secrets, `.ttl()`), identically\n // for this method and the `addRagSource` helper.\n ragSource: function(this: z.ZodTypeAny, config?: RagSourceConfiguration): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.RAG_SOURCE, params: config }]); },\n isHidden: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_HIDDEN, params}]); },\n isNotEditable: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_NOT_EDITABLE, params}]); },\n isSortable: function(this: z.ZodTypeAny, params?: Pick<ArrayUIEditParams, 'dnd' | 'upDownIcons'>): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ARRAY_UI, params: { edit: { isSortable: true, ...params } } }]); },\n // String edit mode convenience composites — structural marker + STRING_UI side effect\n [ZodDecorator.IS_PASSWORD]: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_PASSWORD, params: undefined }, { ref: ZodDecorator.STRING_UI, params: { edit: { editMode: 'password' } } }]); },\n [ZodDecorator.IS_OTP]: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_OTP, params }, { ref: ZodDecorator.STRING_UI, params: { edit: { editMode: 'otp' } } }]); },\n [ZodDecorator.IS_COLOR]: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_COLOR, params: undefined }, { ref: ZodDecorator.STRING_UI, params: { edit: { editMode: 'color' } } }]); },\n // New decorators for resource derived objects rationalization\n isVirtual: function(this: z.ZodTypeAny, params: ZodDecorator_ParamsType[ZodDecorator.IS_VIRTUAL]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_VIRTUAL, params}]); },\n isDraftRelaxed: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_DRAFT_RELAXED]); },\n // FIX-P5-H1: Conditional visibility decorator\n showWhen: function(this: z.ZodTypeAny, params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.SHOW_WHEN, params }]); },\n // System enum decorator - marks an enum field as using a system-level enum for i18n labelling\n systemEnum: function(this: z.ZodTypeAny, name: ZodDecorator_ParamsType[ZodDecorator.SYSTEM_ENUM]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.SYSTEM_ENUM, params: name }]); },\n // Ephemeral field decorator — composite: marks response-only transient data + sets secret display mode + prevents editing.\n // `initiallyRevealed: true` because an ephemeral value is shown exactly once (one-time reveal) — the caller must read/copy it immediately; the eye toggle still lets them re-hide it.\n // Server-minted, output-only. For a CLIENT-provided secret the server must keep but never echo back, use `.isWriteOnlySecret()` instead (client-writable + masked on read). See WriteOnlySecretFieldParams for the full decision.\n /**\n * The server minted this value and hands it over exactly ONCE — an API key's plaintext, an OAuth\n * client secret, a provisioning token. Composite: secret display, one-time reveal, not editable.\n *\n * **Every disclosure of it emits a field-access AUDIT row**, on ANY operation, naming the secret\n * actually handed over. That is the point of the marker rather than a side effect, and it is why\n * this — not `isBackendOnly` — is the home for a one-time reveal: an ephemeral field is deliberately\n * NOT backend-only, so it survives into the response DTO where the disclosure scan can see it.\n *\n * ⚠️ **The scan reads the TOP LEVEL of the response shape only.** A secret nested inside an object\n * is not seen and its disclosure is not recorded. Keep a one-time reveal at the top level of the\n * DTO that returns it.\n */\n isEphemeral: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_EPHEMERAL, params: undefined }, { ref: ZodDecorator.STRING_UI, params: { display: { displayMode: 'secret', initiallyRevealed: true } } }, { ref: ZodDecorator.IS_NOT_EDITABLE, params: undefined }]); },\n // CRDT field decorator — boolean marker for future field-level LWW merge\n isCRDT: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_CRDT]); },\n // Unified {primitive}UI decorators — new API\n booleanUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.BOOLEAN_UI, params }]); },\n stringUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.STRING_UI, params }]); },\n numberUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.NUMBER_UI, params }]); },\n enumUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ENUM_UI, params }]); },\n dateUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATE_UI, params }]); },\n dateTimeUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATETIME_UI, params }]); },\n timeUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.TIME_UI, params }]); },\n moneyUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.MONEY_UI, params }]); },\n codeUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.CODE_UI, params }]); },\n fileUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.FILE_UI, params }]); },\n durationUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DURATION_UI, params }]); },\n phoneUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.PHONE_UI, params }]); },\n bigDecimalUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.BIGDECIMAL_UI, params }]); },\n foreignKeyUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.FOREIGN_KEY_UI, params }]); },\n // Per-primitive field specification decorators (business semantics — companion-only)\n stringSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.STRING_SPEC, params }]); },\n numberSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.NUMBER_SPEC, params }]); },\n booleanSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.BOOLEAN_SPEC, params }]); },\n dateSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATE_SPEC, params }]); },\n dateTimeSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATETIME_SPEC, params }]); },\n timeSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.TIME_SPEC, params }]); },\n enumSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ENUM_SPEC, params }]); },\n moneySpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.MONEY_SPEC, params }]); },\n codeSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.CODE_SPEC, params }]); },\n fileSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.FILE_SPEC, params }]); },\n durationSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DURATION_SPEC, params }]); },\n phoneSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.PHONE_SPEC, params }]); },\n bigDecimalSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.BIGDECIMAL_SPEC, params }]); },\n foreignKeySpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.FOREIGN_KEY_SPEC, params }]); },\n arrayUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ARRAY_UI, params }]); },\n arraySpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ARRAY_SPEC, params }]); },\n objectUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.OBJECT_UI, params }]); },\n objectSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.OBJECT_SPEC, params }]); },\n}\n\nexport type DecoratedPrimitiveZodType<T extends z.ZodTypeAny = z.ZodTypeAny> = T & {\n /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_BACKEND_ONLY]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: ZodDecorator_ParamsType[ZodDecorator.IS_WRITE_ONLY_SECRET]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: ZodDecorator_ParamsType[ZodDecorator.IS_DISCRIMINATOR]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_UNIQUE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_UNIQUE]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_PRIMARY_KEY](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.TTL](params: ZodDecorator_ParamsType[ZodDecorator.TTL]): DecoratedPrimitiveZodType<T>;\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\n // Impersonalization scrub treatment. MUST be declared here as well as on each source ZodType:\n // every decorator returns `DecoratedPrimitiveZodType`, so without this entry any chain longer than\n // one decoration (`z.string().isDBIndexed().impersonalizeWith(...)`) would lose the method at the\n // type level even though the runtime installs it. (Anchor placement: see the FunctionType entry.)\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<T>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<T>;\n /**\n * @wildo_source:part:start zod.decorators.data-categories facet:layer:shared facet:family:decorator facet:kind:api facet:audience:app-developer facet:family:method-surface\n *\n * Declare WHICH KINDS of personal data this field holds — the vocabulary a privacy notice\n * enumerates. Import `PersonalDataCategory` from `@wildo-ai/saas-models`.\n *\n * Accepts a single category (the common case) or an array when a field genuinely spans two. At\n * least one is required: a field that holds NO personal data carries no declaration at all, and\n * that absence is exactly what the compliance gap report reads.\n *\n * Declare it on the field that holds the value. Never on a field merely because its NAME suggests\n * a category — `credentials` is the one category the framework derives for you, and it derives it\n * from `.isPassword()` / `.isOtp()` / `.isWriteOnlySecret()`, never from an identifier.\n *\n * @example\n * fullName: z.string().dataCategories(PersonalDataCategory.IDENTITY)\n * @example\n * email: z.email().nullish().dataCategories(PersonalDataCategory.CONTACT_DETAILS)\n * @example\n * // A field that genuinely spans two — an array never forces you to pick a lie.\n * dietaryNotes: z.string().dataCategories([PersonalDataCategory.USER_CONTENT, PersonalDataCategory.SPECIAL_CATEGORY_HEALTH])\n */\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<T>;\n /** @wildo_source:part:end zod.decorators.data-categories */\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<T>;\n /**\n * @wildo_source:part:start zod.decorators.rag-source facet:layer:shared facet:family:decorator facet:family:method-surface facet:kind:api facet:audience:app-developer\n *\n * `.ragSource(config?)` — declare this field's text a source of the application's retrieval\n * corpus. Live on every string-backed schema (`z.string()` and every string FORMAT such as\n * `z.email()` / `z.url()`) and carried across the `.optional()` / `.nullable()` / `.default()`\n * wrappers, so it composes anywhere in a decorator chain.\n *\n * The config is OPTIONAL and there is no `enabled` flag: a bare `.ragSource()` is a complete\n * declaration that accepts the framework chunking defaults. Presence IS enablement.\n *\n * @example\n * z.string().ragSource()\n * @example\n * z.string().ragSource({ chunkingStrategy: RAGChunkingStrategy.MARKDOWN, chunkSize: 1200, chunkOverlap: 150 }).optional()\n */\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<T>;\n /** @wildo_source:part:end zod.decorators.rag-source */\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<T>;\n // New decorators for resource derived objects rationalization\n [ZodDecorator.IS_VIRTUAL](params: ZodDecorator_ParamsType[ZodDecorator.IS_VIRTUAL]): DecoratedPrimitiveZodType<T>;\n // String edit mode convenience decorators\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<T>;\n // FIX-P5-H1: Conditional visibility decorator\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<T>;\n // System enum decorator\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<T>;\n // Ephemeral field decorator (composite: secret display + not editable + ephemeral marker)\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<T>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<T>;\n // Unified {primitive}UI decorators — new API\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.MONEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.CODE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.FILE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DURATION_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.PHONE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.BIGDECIMAL_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<T>;\n // Per-primitive {primitive}Spec decorators — companion-only business semantics surface,\n // parallel to the {primitive}UI block above. The runtime surface (`addChainableMethods`)\n // installs every applicable spec method via `Object.defineProperty`, the per-Zod-type\n // interface augmentations (`ZodString` / `ZodOptional` / `ZodNullable`) declare them on\n // the source schema, and this aggregate type must declare them too — otherwise any chain\n // longer than one decoration drops the `*Spec` surface (the result becomes\n // `DecoratedPrimitiveZodType<...>` which would lack these methods).\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.MONEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.CODE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.FILE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DURATION_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.PHONE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.BIGDECIMAL_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<T>;\n\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<T>;\n};\n\n\n// =============================================================================\n// MAIN ADD UTILITIES\n// =============================================================================\n\n\nexport function ZodDecorator_FunctionAddDecorators(this: z.ZodTypeAny, decorators: DecoratorInput[]): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n return addDecorators(this, decorators);\n}\n\nexport const defaultZodDecoSchemaProperties = {\n enumerable : false,\n writable : false,\n}\n\n\nexport function addDecorators<T extends z.ZodTypeAny>(\n schema: T, \n decoratorInputs: DecoratorInput[]\n): DecoratedPrimitiveZodType<T> {\n // Lazy initialization: ensure decorators are loaded when first used\n ensureZodDecoratorsLoaded(z);\n \n let resultSchema = schema;\n \n // Apply each decorator in sequence\n for (const decoratorInput of decoratorInputs) {\n resultSchema = (typeof decoratorInput === 'string') \n ? applySingleDecorator(resultSchema, decoratorInput) \n : applySingleDecorator(resultSchema, decoratorInput.ref, decoratorInput.params);\n }\n \n // Add all chainable methods to the final schema\n return addChainableMethods(resultSchema) as DecoratedPrimitiveZodType<T>;\n}\n\n\n/**\n * Deep-clone a value, preserving function references (React components in `IconLike`).\n * - Primitives & functions: returned by reference\n * - Arrays: cloned recursively\n * - Date, RegExp: cloned via constructors\n * - Plain objects: cloned recursively with independent property copies\n * - Shared sub-objects: cloned once and reused (WeakMap tracks original→clone)\n * - Circular references: safely resolved via the shared-reference map\n */\nfunction deepCloneValue(value: unknown, seen?: WeakMap<object, unknown>): unknown {\n if (value === null || value === undefined || typeof value !== 'object') {\n return value;\n }\n if (!seen) seen = new WeakMap();\n const cached = seen.get(value as object);\n if (cached !== undefined) return cached;\n\n if (value instanceof Date) {\n const cloned = new Date(value.getTime());\n seen.set(value as object, cloned);\n return cloned;\n }\n if (value instanceof RegExp) {\n const cloned = new RegExp(value.source, value.flags);\n seen.set(value as object, cloned);\n return cloned;\n }\n if (Array.isArray(value)) {\n const cloned: unknown[] = [];\n seen.set(value as object, cloned);\n for (const v of value) cloned.push(deepCloneValue(v, seen));\n return cloned;\n }\n\n const result: Record<string, unknown> = {};\n seen.set(value as object, result);\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n result[k] = deepCloneValue(v, seen);\n }\n return result;\n}\n\n/**\n * Clone a Zod schema with an independent deep-copy of its decorator metadata.\n *\n * Creates a new schema instance that shares the same Zod validation behavior\n * but has independent decorator metadata. Mutations (`.enumUI()`,\n * `.isDBIndexed()`, etc.) on the clone do not affect the original, and vice versa.\n *\n * Function references (React components in `IconLike`) are preserved by reference;\n * all other metadata values (objects, arrays, primitives) are deep-cloned.\n *\n * **Use case:** reusable leaf schemas (enums, strings, numbers) with shared visual\n * config but independent field-level decorators per resource.\n *\n * **Not required to avoid wrapper leakage.** Decorating a wrapper of a shared leaf\n * (`SharedLeaf.optional().isDBIndexed()`) is safe on its own: the decorator runtime\n * copy-on-writes the wrapper's inner schema before mirroring metadata onto it, so\n * the shared leaf is never written to. Reach for `z_clone` when you want a leaf with\n * DIFFERENT baseline decorators, not as leak protection.\n *\n * **Implementation note:** clones through Zod's own `.clone(def)` with a spread\n * definition. A structural copy (`Object.assign({}, schema)`) cannot work here —\n * `_zod` is a non-enumerable own property, so the copy would omit Zod's internals\n * entirely and every method on it would still act on the ORIGINAL instance\n * (`z_clone(leaf).optional()` would wrap `leaf`, not the clone).\n *\n * **Scope limitation:** the definition is spread SHALLOWLY, so composite members\n * stay shared by reference — `z.object()` shape fields, and a wrapper's own\n * `innerType`. Decorating those members directly still reaches the original; the\n * clone isolates THIS schema's decorators, not its children's.\n *\n * **Related minimal helper:** for the polymorphism engine's specific need —\n * cloning a base-shape field once per variant inside\n * `applyBusinessKeyMarkers` to apply a single decorator without mutating\n * the shared source — see `cloneFieldForBusinessKeyDecoration` in\n * `engine/saas-models/src/resources/utils/resource-polymorphism.schemas.ts`.\n * That helper is a deliberately stripped-down version: it inherits Zod\n * internals via prototype lookup and only shallow-copies `SCHEMA_METADATA`,\n * which is sufficient for the single-decorator mutation pattern used in\n * the polymorphism engine. `z_clone` is the right choice for general-\n * purpose leaf reuse across resources; the polymorphism helper is the\n * right choice when you need MINIMAL isolation in a hot per-variant loop.\n *\n * @example\n * ```ts\n * // Master enum with common visual config\n * const PriorityEnum = z.enum(Priority)\n * .systemEnum('Priority')\n * .enumUI({ values: { low: { color: 'secondary' }, high: { color: 'destructive' } } });\n *\n * // Each resource gets an independent clone\n * const TodosSchema = z.object({\n * priority: z_clone(PriorityEnum).isDBIndexed().isSummaryField(),\n * });\n * const TasksSchema = z.object({\n * priority: z_clone(PriorityEnum).isNotEditable(),\n * });\n * // TodosSchema.priority has isDBIndexed + isSummaryField — TasksSchema.priority does not\n * ```\n */\nexport function z_clone<T extends z.ZodTypeAny>(schema: T): DecoratedPrimitiveZodType<T> {\n const definition = (schema as any)?._zod?.def ?? (schema as any)?.def;\n const nativeClone = (schema as any)?.clone;\n if (typeof nativeClone !== 'function' || !definition || typeof definition !== 'object') {\n throw new Error(\n 'z_clone requires a Zod schema instance (missing `.clone()` or Zod definition).',\n );\n }\n\n const clone = nativeClone.call(schema, { ...definition }) as T;\n\n const metadata = (schema as any)[SCHEMA_METADATA];\n if (metadata) {\n (clone as any)[SCHEMA_METADATA] = deepCloneValue(metadata);\n }\n\n return addChainableMethods(clone) as DecoratedPrimitiveZodType<T>;\n}\n\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Marks an inner schema instance as EXCLUSIVELY OWNED by one wrapper.\n *\n * The value is the owning wrapper instance, not a boolean: ownership is a\n * relation, and a boolean would let a second wrapper mistake someone else's\n * private copy for its own and resume writing into a schema it does not own —\n * reintroducing the very leak this marker exists to close.\n *\n * Deliberately non-enumerable so structural copies (`Object.assign`, spreads,\n * anything that walks own enumerable keys) never inherit an ownership claim\n * that does not belong to them.\n */\nconst WRAPPER_OWNED_INNER_SCHEMA: unique symbol = Symbol('wildo.wrapperOwnedInnerSchema');\n\n/**\n * Resolve the MUTABLE Zod definition object of a schema.\n *\n * Zod 4 stores it at `_zod.def`; the bare `.def` alias is the fallback for\n * schema-like objects that never went through the Zod constructor. Both are\n * read here because `innerType` must be both READ and REWRITTEN through the\n * same object for copy-on-write to take effect.\n */\nfunction getSchemaDefinition(schema: z.ZodTypeAny): Record<string, unknown> | undefined {\n const def = (schema as any)?._zod?.def ?? (schema as any)?.def;\n return def && typeof def === 'object' ? def as Record<string, unknown> : undefined;\n}\n\nfunction getInnerTypeSchema(schema: z.ZodTypeAny): z.ZodTypeAny | undefined {\n const innerType = getSchemaDefinition(schema)?.innerType;\n return innerType && typeof innerType === 'object'\n ? innerType as z.ZodTypeAny\n : undefined;\n}\n\n/**\n * Produce a private, fully-functional copy of a wrapper's inner schema.\n *\n * Uses Zod's OWN `.clone(def)` rather than a structural copy, because `_zod` is\n * a NON-ENUMERABLE own property: `Object.assign({}, schema)` silently omits it\n * and yields a husk whose every method is still bound to the ORIGINAL instance.\n * Such a husk throws `Cannot read properties of undefined (reading 'optin')`\n * the moment Zod parses through it, and — worse — its `.optional()` would wrap\n * the original rather than the copy. `.clone()` runs the real constructor, so\n * the result carries its own `_zod`, its own parse closures, and the correct\n * subclass (`ZodEmail` stays `ZodEmail`).\n *\n * The definition is SPREAD rather than shared. Zod's argument-less `.clone()`\n * reuses the source `def` object by reference, which would leave the copy's\n * structure aliased to the original — a later `innerType` rewrite on the copy\n * would then reach back into the schema we are trying to protect.\n *\n * Returns `undefined` when no honest private copy can be made, so the caller\n * can fail closed instead of falling back to mutating shared state.\n */\nfunction cloneInnerSchemaForWrapper(innerType: z.ZodTypeAny): z.ZodTypeAny | undefined {\n const nativeClone = (innerType as any)?.clone;\n const innerDefinition = getSchemaDefinition(innerType);\n if (typeof nativeClone !== 'function' || !innerDefinition) {\n return undefined;\n }\n\n let cloned: z.ZodTypeAny | undefined;\n try {\n cloned = nativeClone.call(innerType, { ...innerDefinition }) as z.ZodTypeAny;\n } catch {\n return undefined;\n }\n if (!cloned || cloned === innerType) {\n return undefined;\n }\n\n // `.clone()` copies the Zod definition, never our decorator symbol — carry the\n // inner's OWN decorators across so the private copy starts semantically identical.\n const existingMetadata = (innerType as any)[SCHEMA_METADATA] as CustomFieldMetadata | undefined;\n if (existingMetadata) {\n (cloned as any)[SCHEMA_METADATA] = { ...existingMetadata };\n }\n\n // A freshly constructed instance has none of the chainable decorator methods\n // installed as own properties; without this, `unwrapSchema(field).isDBIndexed()`\n // would regress for callers that decorate an unwrapped schema.\n return addChainableMethods(cloned);\n}\n\n/**\n * Give a wrapper a private inner schema it may safely write field metadata onto.\n *\n * Idempotent per wrapper: the first decorator applied to a given wrapper installs\n * the private copy, every later decorator on that same wrapper recognises its own\n * marker and reuses it, so a decorator chain clones exactly once.\n */\nfunction ensureWrapperOwnedInnerSchema(\n wrapper: z.ZodTypeAny,\n wrapperDefinition: Record<string, unknown>,\n innerType: z.ZodTypeAny,\n): z.ZodTypeAny | undefined {\n if ((innerType as any)[WRAPPER_OWNED_INNER_SCHEMA] === wrapper) {\n return innerType;\n }\n\n const cloned = cloneInnerSchemaForWrapper(innerType);\n if (!cloned) {\n return undefined;\n }\n\n Object.defineProperty(cloned, WRAPPER_OWNED_INNER_SCHEMA, {\n value: wrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n wrapperDefinition.innerType = cloned;\n return cloned;\n}\n\n/**\n * Mirror a wrapper's decorator metadata onto the schema it wraps — WITHOUT\n * mutating a schema the wrapper does not own.\n *\n * **Why the mirroring exists.** Decorators are commonly declared on the wrapper\n * (`z.string().optional().isForeignKey()`), while a large family of consumers\n * unwraps first and then reads metadata off the unwrapped schema. Those readers\n * would otherwise see an undecorated leaf.\n *\n * **Why it is copy-on-write.** A wrapper's `innerType` is frequently a SHARED,\n * canonical leaf reused across resources (`TimezoneSchema.default('UTC')` is\n * declared by both the User and the Organization preferences resources). Writing\n * field metadata straight onto that instance published one resource's field\n * decorators onto the shared TYPE, so every other consumer of the leaf silently\n * inherited them — order-dependently, by module import order. Confusing a reusable\n * TYPE with a per-resource FIELD DECLARATION is the root defect; a wrapper may\n * describe its own field, never the type it happens to reuse.\n *\n * The stakes are not cosmetic: `impersonalizeWith` drives the erasure writer, so\n * a leaked treatment scrubs a field its author never marked.\n *\n * **Fail closed.** If no private copy can be made, the mirroring is skipped\n * rather than performed against shared state. The decorator still lives on the\n * wrapper and `getMetadataRecursive` still finds it from there; losing a\n * mirrored read is recoverable, corrupting a shared schema is not.\n */\nfunction propagateWrapperDecoratorMetadataToInnerSchema(\n schema: z.ZodTypeAny,\n metadata: CustomFieldMetadata,\n): void {\n const wrapperDefinition = getSchemaDefinition(schema);\n const innerType = getInnerTypeSchema(schema);\n if (!wrapperDefinition || !innerType || innerType === schema) {\n return;\n }\n\n const ownedInnerType = ensureWrapperOwnedInnerSchema(schema, wrapperDefinition, innerType);\n if (!ownedInnerType) {\n return;\n }\n\n const innerMetadata: CustomFieldMetadata = (ownedInnerType as any)[SCHEMA_METADATA] || {};\n (ownedInnerType as any)[SCHEMA_METADATA] = {\n ...innerMetadata,\n ...metadata,\n };\n}\n\n/**\n * @wildo_source:part:start zod.decorators.chainable-runtime\n *\n * Deep-merge mergeable decorator params with special handling for the `values` key.\n *\n * - Nested plain objects are merged recursively so later decorator calls can\n * augment `display`, `edit`, and similar buckets without dropping earlier data.\n * - `values` is merged per key, preserving existing enum/spec entries while still\n * letting later calls override a nested property of the same entry.\n * - Arrays and non-object values remain atomic and are replaced by the incoming value.\n * - Additive only — to clear a nested property, set it to `undefined` explicitly.\n */\nfunction deepMergeDecoratorParams(\n existing: Record<string, unknown>,\n incoming: Record<string, unknown>,\n): Record<string, unknown> {\n const result = { ...existing };\n for (const [key, value] of Object.entries(incoming)) {\n const existingValue = result[key];\n\n if (key === 'values' && isPlainObject(value) && isPlainObject(existingValue)) {\n const existingValues = existingValue as Record<string, Record<string, unknown>>;\n const incomingValues = value as Record<string, Record<string, unknown>>;\n result[key] = { ...existingValues };\n for (const [enumValue, enumConfig] of Object.entries(incomingValues)) {\n const existingEnumConfig = existingValues[enumValue];\n (result[key] as Record<string, unknown>)[enumValue] =\n isPlainObject(existingEnumConfig) && isPlainObject(enumConfig)\n ? deepMergeDecoratorParams(existingEnumConfig, enumConfig)\n : enumConfig;\n }\n } else if (isPlainObject(value) && isPlainObject(existingValue)) {\n result[key] = deepMergeDecoratorParams(existingValue, value);\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n\n\n/**\n * Decorators that can never share a field with {@link ZodDecorator.RAG_SOURCE}, each with the one\n * sentence that justifies refusing it. ONE table, keyed by the companion, consulted in BOTH\n * application orders by `assertRagSourceCompanionAdmissible` below — the alternative (a check\n * inside each of the five companion methods plus one inside `ragSource`) is six hand-applied\n * copies of one invariant — the failure shape where a fix lands at one of an invariant's N call\n * sites and the other N-1 drift. Because the check lives in\n * `applySingleDecorator`, it also covers every escape hatch (`addRagSource`, `addDecorators`,\n * `z_file({ ragSource })`) for free: there is no door into decorator metadata that bypasses it.\n *\n * ## `TTL` is the one entry this table cannot actually enforce — do not read it as closing DL3\n *\n * Corrected 2026-08-27. `.ttl()`'s applicable types are `['ZodDate','ZodOptional']` and\n * `.ragSource()`'s are `['ZodString','ZodOptional','ZodNullable','ZodDefault']`, so the two\n * essentially cannot land on the SAME field — this row defends a type-impossible pair. The\n * REACHABLE configuration is `expiresAt: z.date().ttl(...)` beside `notes: z.string().ragSource()`:\n * two fields, one resource, one row that MongoDB's TTL monitor deletes whole with no application\n * code running. That is a RESOURCE-level fact and is refused at resource level, at boot, by\n * `ApplicationStartupConfigValidatorService.collectRagSourceRetentionRefusal` (which reads both\n * existing authorities — the RAG field walker and `collectResourceRetentionPolicies` — rather than\n * re-deriving either). The row below is KEPT because it is cheap, correct, and reports the\n * single-field case at authoring time instead of at boot; it is not the control.\n */\nconst RAG_SOURCE_REFUSED_COMPANIONS: ReadonlyMap<ZodDecorator, string> = new Map([\n [ZodDecorator.IS_PASSWORD, 'a password must never enter a retrieval corpus.'],\n [ZodDecorator.IS_OTP, 'a one-time code must never enter a retrieval corpus.'],\n [ZodDecorator.IS_WRITE_ONLY_SECRET, 'a write-only secret must never enter a retrieval corpus.'],\n [ZodDecorator.IS_EPHEMERAL, 'an ephemeral shown-once value must never enter a retrieval corpus.'],\n [\n ZodDecorator.TTL,\n 'MongoDB honours .ttl() natively — rows vanish with no application code running, so derived chunks could never be erased with their parent (resource-rag-capability DL3). ' +\n 'The pair is normally declared on two DIFFERENT fields of one resource, which this field-level check cannot see: that case is refused at boot, per resource, by the startup RAG capability probe. ' +\n 'Both refusals lift when a sweep-cascade reconciles chunk rows against vanished parents.',\n ],\n]);\n\n/**\n * Enforce the RAG-source refusal pairs in BOTH orders at the single decorator chokepoint:\n * applying `RAG_SOURCE` to a schema already carrying a refused companion throws, and applying a\n * refused companion to a schema already carrying `RAG_SOURCE` throws the same sentence. Reading\n * `currentMetadata` (the bag this very application is about to write into) is what makes the check\n * order-symmetric: wrapper chains carry their inner metadata forward (`wrapInstanceMethod` copies\n * `SCHEMA_METADATA` across `.optional()` / `.nullable()` / `.default()`), so the earlier\n * declaration is visible from wherever the later one lands.\n */\nfunction assertRagSourceCompanionAdmissible(decorator: ZodDecorator, currentMetadata: CustomFieldMetadata): void {\n if (decorator === ZodDecorator.RAG_SOURCE) {\n for (const [companion, reason] of RAG_SOURCE_REFUSED_COMPANIONS) {\n if (currentMetadata[companion] !== undefined) {\n throw new Error(`ragSource() cannot be combined with ${companion}(): ${reason}`);\n }\n }\n return;\n }\n\n const reason = RAG_SOURCE_REFUSED_COMPANIONS.get(decorator);\n if (reason !== undefined && currentMetadata[ZodDecorator.RAG_SOURCE] !== undefined) {\n throw new Error(`${decorator}() cannot be combined with ragSource(): ${reason}`);\n }\n}\n\nfunction applySingleDecorator<T extends z.ZodTypeAny>(\n schema: T,\n decorator: ZodDecorator,\n params?: ZodDecorator_ParamsType[ZodDecorator]\n): T {\n // Ensure schema exists before accessing Symbol property\n if (!schema) {\n throw new Error('Invalid schema provided to applySingleDecorator');\n }\n\n // Get existing metadata from Symbol property with proper type casting\n const currentMetadata: CustomFieldMetadata = (schema as any)[SCHEMA_METADATA] || {};\n\n // Refused RAG-source companions, both orders, before any metadata is written — a refusal that\n // fired after a partial write would leave the schema carrying half of a rejected combination.\n assertRagSourceCompanionAdmissible(decorator, currentMetadata);\n \n // Generic updater function resolution: if params is a function, call it with\n // the current metadata value and use the result. Works for any decorator.\n let resolvedFromUpdater = false;\n if (typeof params === 'function') {\n const existing = currentMetadata[decorator];\n const currentValue = (existing && typeof existing === 'object') ? existing : undefined;\n params = (params as (current: unknown) => unknown)(currentValue) as typeof params;\n resolvedFromUpdater = true;\n }\n // After function resolution, params is a concrete value (never a function).\n // TypeScript can't narrow this from control flow. Use `rp<D>()` for typed\n // access in cases that read properties; use `p` for simple assignments.\n const p = params as any;\n function rp<D extends ZodDecorator>(): Exclude<ZodDecorator_ParamsType[D], Function> {\n return params as Exclude<ZodDecorator_ParamsType[D], Function>;\n }\n \n // Handle each decorator explicitly.\n // `p` is used instead of `params` for assignments — it's the same value\n // but typed as `any` since TypeScript can't narrow the function union away\n // after the generic resolution above.\n switch (decorator) {\n case ZodDecorator.IS_DB_INDEXED:\n currentMetadata[ZodDecorator.IS_DB_INDEXED] = true;\n break;\n case ZodDecorator.IS_FOREIGN_KEY:\n currentMetadata[ZodDecorator.IS_FOREIGN_KEY] = p ?? true;\n break;\n case ZodDecorator.IS_HIDDEN:\n currentMetadata[ZodDecorator.IS_HIDDEN] = p ?? true;\n break;\n case ZodDecorator.IS_NOT_EDITABLE:\n currentMetadata[ZodDecorator.IS_NOT_EDITABLE] = p ?? true;\n break;\n case ZodDecorator.IS_SUMMARY_FIELD:\n currentMetadata[ZodDecorator.IS_SUMMARY_FIELD] = p ?? true;\n break;\n case ZodDecorator.IS_BACKEND_ONLY:\n currentMetadata[ZodDecorator.IS_BACKEND_ONLY] = p ?? true;\n break;\n case ZodDecorator.IS_WRITE_ONLY_SECRET:\n currentMetadata[ZodDecorator.IS_WRITE_ONLY_SECRET] = p ?? true;\n break;\n case ZodDecorator.IMPERSONALIZE_WITH: {\n // Fail LOUD on a missing / blank treatment. This is the single chokepoint shared by the fluent\n // `.impersonalizeWith(t)` method and the `addImpersonalizeWith(schema, t)` helper, so both doors\n // reject the same inputs. Without it a bare `.impersonalizeWith()` (JS caller, or a TS caller\n // whose value widened to undefined) would store `undefined`, `getImpersonalizeTreatment` would\n // return `undefined`, and the field would read as UNTREATED — a silently unscrubbed personal\n // field, i.e. exactly the PII-leak class this decorator exists to prevent.\n //\n // NORMALIZE HERE, not in the doors. Both authoring forms — the bare `RedactionType` string\n // (the common case) and the `{ treatment, maskValue }` object (a MASK needing a field-specific\n // value) — collapse to the params object before storage, so every reader sees ONE shape and\n // the doors stay dumb pass-throughs. A raw `addDecorators()` caller lands here too.\n const raw = p as unknown;\n const normalized: ImpersonalizeFieldParams | undefined =\n typeof raw === 'string'\n ? { treatment: raw }\n : (raw !== null && typeof raw === 'object' && !Array.isArray(raw))\n ? { ...(raw as ImpersonalizeFieldParams) }\n : undefined;\n if (normalized === undefined || typeof normalized.treatment !== 'string' || normalized.treatment.trim().length === 0) {\n throw new Error(\n `impersonalizeWith(treatment) requires a non-empty RedactionType value (received ${JSON.stringify(raw)}). ` +\n `An untreated field is left intact by the impersonalize writer — declare a treatment or omit the decorator.`,\n );\n }\n // A blank override would write an empty string and erase the distinction between \"masked\" and\n // \"never had a value\" — the same class of silent lie the treatment check above prevents.\n // WHETHER a maskValue is legal for this treatment (MASK only) and whether the field's schema\n // ACCEPTS it are both checked by the saas-models boot guard: this layer knows neither\n // `RedactionType` nor the resource's mainSchema.\n if (normalized.maskValue !== undefined && (typeof normalized.maskValue !== 'string' || normalized.maskValue.length === 0)) {\n throw new Error(\n `impersonalizeWith({ maskValue }) requires a non-empty string (received ${JSON.stringify(normalized.maskValue)}). ` +\n `The mask value is written verbatim in place of the field — omit it to use the framework mask constant.`,\n );\n }\n currentMetadata[ZodDecorator.IMPERSONALIZE_WITH] = normalized;\n break;\n }\n case ZodDecorator.PORTABILITY_PROVENANCE: {\n // Fail LOUD on a missing / blank provenance — the single chokepoint shared by the fluent\n // `.portabilityProvenance(p)` method and the `addPortabilityProvenance(schema, p)` helper.\n //\n // Storing a blank would be worse here than for most decorators. An Art. 20 export treats an\n // UNDECLARED field as a REFUSAL precisely because neither guess is safe (excluding\n // under-delivers a legal right, including over-shares controller-derived data). A silently\n // stored empty string would read back as declared-but-meaningless, converting that deliberate\n // refusal into a fabricated answer about a disclosure boundary.\n //\n // WHETHER the value is a real `DataPortabilityProvenance` member is checked by the saas-models\n // layer, which owns the enum — this layer knows only that a non-empty string was declared.\n const raw = p as unknown;\n if (typeof raw !== 'string' || raw.trim().length === 0) {\n throw new Error(\n `portabilityProvenance(provenance) requires a non-empty DataPortabilityProvenance value (received ${JSON.stringify(raw)}). ` +\n `An undeclared field makes an Art. 20 export refuse rather than guess — declare a provenance or omit the decorator ` +\n `to inherit the resource's portabilityPolicy.defaultProvenance.`,\n );\n }\n currentMetadata[ZodDecorator.PORTABILITY_PROVENANCE] = raw;\n break;\n }\n case ZodDecorator.DATA_CATEGORIES: {\n // NORMALIZE HERE, not in the doors — the impersonalizeWith discipline. A single value (the\n // common case) and an array both store a deduped ARRAY, so every reader sees one shape and\n // `getDataCategories` answers \"is this field categorized?\" by presence alone.\n //\n // Fail LOUD on an empty declaration. An UNCATEGORIZED field is a legitimate, common state —\n // most fields are not personal data — and the gap report is built on ABSENCE. A stored empty\n // array would read back as declared-with-no-categories, which is invisible to a report\n // looking for absence: the field would be silently excluded from the notice while looking\n // annotated to anyone reading the schema.\n //\n // WHETHER each value is a real `PersonalDataCategory` member is checked by the resource\n // factory's boot guard, which owns the enum — this layer knows only that non-empty strings\n // were declared.\n const raw = p as unknown;\n const authored: readonly unknown[] = Array.isArray(raw) ? raw : [raw];\n if (authored.length === 0 || authored.some((value) => typeof value !== 'string' || value.trim().length === 0)) {\n throw new Error(\n `dataCategories(categories) requires at least one non-empty PersonalDataCategory value (received ${JSON.stringify(raw)}). ` +\n `A field that holds no personal data carries NO declaration — absence is what a category gap report reads. ` +\n `An empty declaration looks annotated and discloses nothing.`,\n );\n }\n currentMetadata[ZodDecorator.DATA_CATEGORIES] = [...new Set(authored as readonly string[])];\n break;\n }\n case ZodDecorator.IS_AUDIT_EVIDENCE:\n currentMetadata[ZodDecorator.IS_AUDIT_EVIDENCE] = true;\n break;\n case ZodDecorator.RAG_SOURCE: {\n // NORMALIZE HERE, not in the doors — the impersonalizeWith discipline. A bare `.ragSource()`\n // (the common case) stores `{}` rather than `true`/`undefined`, so every reader sees ONE\n // shape and `getRagSourceConfig` answers \"is this field a source?\" by presence alone. The\n // knobs are validated at decoration time because every one of them is otherwise a SILENT\n // runtime misconfiguration: a zero chunkSize or an overlap >= size does not fail — it chunks\n // pathologically (empty chunks, or every chunk repeating its predecessor), which surfaces\n // as bad retrieval quality nobody traces back to the schema.\n const raw = p as unknown;\n if (raw !== undefined && (raw === null || typeof raw !== 'object' || Array.isArray(raw))) {\n throw new Error(`ragSource(config?) accepts an optional RagSourceConfiguration object (received ${JSON.stringify(raw)}).`);\n }\n const normalized: RagSourceConfiguration = raw === undefined ? {} : { ...(raw as RagSourceConfiguration) };\n const { chunkingStrategy, chunkSize, chunkOverlap } = normalized;\n const knownStrategies = Object.values(RAGChunkingStrategy) as string[];\n if (chunkingStrategy !== undefined && !knownStrategies.includes(chunkingStrategy)) {\n throw new Error(\n `ragSource({ chunkingStrategy }) must be a RAGChunkingStrategy member (received ${JSON.stringify(chunkingStrategy)}; known: ${knownStrategies.join(', ')}).`,\n );\n }\n if (chunkSize !== undefined && (!Number.isInteger(chunkSize) || chunkSize <= 0)) {\n throw new Error(`ragSource({ chunkSize }) must be a positive integer (received ${JSON.stringify(chunkSize)}).`);\n }\n if (chunkOverlap !== undefined && (!Number.isInteger(chunkOverlap) || chunkOverlap < 0)) {\n throw new Error(`ragSource({ chunkOverlap }) must be a non-negative integer (received ${JSON.stringify(chunkOverlap)}).`);\n }\n if (chunkSize !== undefined && chunkOverlap !== undefined && chunkOverlap >= chunkSize) {\n throw new Error(\n `ragSource({ chunkSize, chunkOverlap }) requires chunkOverlap < chunkSize (received overlap ${chunkOverlap} >= size ${chunkSize}) — ` +\n `an overlap that reaches the chunk size makes every chunk repeat its predecessor.`,\n );\n }\n currentMetadata[ZodDecorator.RAG_SOURCE] = normalized;\n break;\n }\n case ZodDecorator.IS_VIRTUAL: {\n const vp = rp<ZodDecorator.IS_VIRTUAL>();\n if (!vp?.calculate) {\n throw new Error('isVirtual decorator requires a calculate function');\n }\n currentMetadata[ZodDecorator.IS_VIRTUAL] = vp;\n break;\n }\n case ZodDecorator.IS_DISCRIMINATOR:\n currentMetadata[ZodDecorator.IS_DISCRIMINATOR] = p ?? true;\n break;\n case ZodDecorator.EXCLUDE_FROM_CREATE:\n currentMetadata[ZodDecorator.EXCLUDE_FROM_CREATE] = true;\n break;\n case ZodDecorator.EXCLUDE_FROM_UPDATE:\n currentMetadata[ZodDecorator.EXCLUDE_FROM_UPDATE] = true;\n break;\n case ZodDecorator.IS_UNIQUE:\n currentMetadata[ZodDecorator.IS_UNIQUE] = p ?? true;\n break;\n case ZodDecorator.IS_PRIMARY_KEY:\n currentMetadata[ZodDecorator.IS_PRIMARY_KEY] = true;\n break;\n case ZodDecorator.IS_BUSINESS_KEY:\n currentMetadata[ZodDecorator.IS_BUSINESS_KEY] = true;\n break;\n case ZodDecorator.OBJECT_BUSINESS_KEY_SET:\n currentMetadata[ZodDecorator.OBJECT_BUSINESS_KEY_SET] = p;\n break;\n case ZodDecorator.TTL:\n currentMetadata[ZodDecorator.TTL] = p;\n break;\n case ZodDecorator.IS_PASSWORD:\n currentMetadata[ZodDecorator.IS_PASSWORD] = true;\n break;\n case ZodDecorator.IS_OTP:\n currentMetadata[ZodDecorator.IS_OTP] = p ?? true;\n break;\n case ZodDecorator.IS_COLOR:\n currentMetadata[ZodDecorator.IS_COLOR] = true;\n break;\n case ZodDecorator.IS_DRAFT_RELAXED:\n currentMetadata[ZodDecorator.IS_DRAFT_RELAXED] = true;\n break;\n case ZodDecorator.SHOW_WHEN:\n currentMetadata[ZodDecorator.SHOW_WHEN] = p;\n break;\n case ZodDecorator.SYSTEM_ENUM:\n currentMetadata[ZodDecorator.SYSTEM_ENUM] = p;\n break;\n case ZodDecorator.IS_EPHEMERAL:\n currentMetadata[ZodDecorator.IS_EPHEMERAL] = true;\n break;\n case ZodDecorator.IS_CRDT:\n currentMetadata[ZodDecorator.IS_CRDT] = true;\n break;\n // Mergeable decorator buckets: primitive UI/spec decorators deep-merge\n // plain-object params by default, while updater functions still replace\n // exactly with what they return.\n case ZodDecorator.ENUM_UI: {\n const existing = currentMetadata[decorator];\n if (p === undefined) {\n (currentMetadata as Record<string, unknown>)[decorator] = existing ?? true;\n } else if (resolvedFromUpdater) {\n (currentMetadata as Record<string, unknown>)[decorator] = p;\n } else {\n (currentMetadata as Record<string, unknown>)[decorator] =\n isPlainObject(existing) && isPlainObject(p)\n ? deepMergeDecoratorParams(existing, p)\n : p;\n }\n break;\n }\n case ZodDecorator.BOOLEAN_UI:\n case ZodDecorator.STRING_UI:\n case ZodDecorator.NUMBER_UI:\n case ZodDecorator.DATE_UI:\n case ZodDecorator.DATETIME_UI:\n case ZodDecorator.TIME_UI:\n case ZodDecorator.MONEY_UI:\n case ZodDecorator.CODE_UI:\n case ZodDecorator.FILE_UI:\n case ZodDecorator.DURATION_UI:\n case ZodDecorator.PHONE_UI:\n case ZodDecorator.BIGDECIMAL_UI:\n case ZodDecorator.FOREIGN_KEY_UI:\n case ZodDecorator.ARRAY_UI:\n case ZodDecorator.OBJECT_UI:\n case ZodDecorator.STRING_SPEC:\n case ZodDecorator.NUMBER_SPEC:\n case ZodDecorator.BOOLEAN_SPEC:\n case ZodDecorator.DATE_SPEC:\n case ZodDecorator.DATETIME_SPEC:\n case ZodDecorator.TIME_SPEC:\n case ZodDecorator.ENUM_SPEC:\n case ZodDecorator.MONEY_SPEC:\n case ZodDecorator.CODE_SPEC:\n case ZodDecorator.FILE_SPEC:\n case ZodDecorator.DURATION_SPEC:\n case ZodDecorator.PHONE_SPEC:\n case ZodDecorator.BIGDECIMAL_SPEC:\n case ZodDecorator.FOREIGN_KEY_SPEC:\n case ZodDecorator.ARRAY_SPEC:\n case ZodDecorator.OBJECT_SPEC: {\n const existing = currentMetadata[decorator];\n if (p === undefined) {\n (currentMetadata as Record<string, unknown>)[decorator] = existing ?? true;\n } else if (resolvedFromUpdater) {\n (currentMetadata as Record<string, unknown>)[decorator] = p;\n } else {\n (currentMetadata as Record<string, unknown>)[decorator] =\n isPlainObject(existing) && isPlainObject(p)\n ? deepMergeDecoratorParams(existing, p)\n : p;\n }\n break;\n }\n }\n\n // Store updated metadata using Symbol\n (schema as any)[SCHEMA_METADATA] = currentMetadata;\n propagateWrapperDecoratorMetadataToInnerSchema(schema, currentMetadata);\n\n return addChainableMethods(schema) as T;\n}\n/** @wildo_source:part:end zod.decorators.chainable-runtime */\n\n\n/**\n * Methods that transform object fields and need special handling for field-level metadata.\n * These methods create new field wrappers and we need to copy field-level metadata.\n */\nconst OBJECT_FIELD_TRANSFORM_METHODS_SET = new Set(['partial', 'deepPartial', 'required']);\n\n/**\n * @wildo_source:part:start zod.decorators.chainable-runtime\n *\n * Wraps an instance method to preserve SCHEMA_METADATA when it returns a new instance.\n * In Zod v4, methods are on instances not prototypes, so we wrap them individually.\n * Also wraps the result's methods to ensure metadata persists through the entire chain.\n */\nfunction wrapInstanceMethod(instance: any, methodName: string): void {\n const originalMethod = instance[methodName];\n if (typeof originalMethod !== 'function') return;\n \n // Skip if already wrapped\n if ((originalMethod as any).__metadataWrapped) return;\n \n // Use special wrapper for field-transform methods on ZodObject\n const isObjectFieldTransform = OBJECT_FIELD_TRANSFORM_METHODS_SET.has(methodName) && \n instance.constructor?.name === 'ZodObject';\n \n const wrappedMethod = function(this: any, ...args: any[]) {\n // Get original shape before transformation (for field-transform methods)\n const originalShape = isObjectFieldTransform ? this.shape : null;\n const originalSchemaMetadata = (this as any)[SCHEMA_METADATA];\n \n const result = originalMethod.apply(this, args);\n \n // Copy metadata from original to result if it exists and result is different\n if (result && result !== this) {\n // Preserve all decorator metadata (including rangeConfig and currencyConfig)\n if (originalSchemaMetadata && Object.keys(originalSchemaMetadata).length > 0) {\n (result as any)[SCHEMA_METADATA] = { ...originalSchemaMetadata };\n }\n \n // For field-transform methods, copy field-level metadata to new wrapped fields\n if (isObjectFieldTransform && originalShape && result.shape) {\n copyFieldMetadata(originalShape, result.shape);\n }\n \n // Also wrap the result's methods so metadata persists through subsequent chains\n wrapInstanceMethodsForMetadata(result);\n }\n return result;\n };\n \n // Mark as wrapped to avoid double-wrapping\n (wrappedMethod as any).__metadataWrapped = true;\n \n instance[methodName] = wrappedMethod;\n}\n\n/**\n * Copy field-level metadata from original shape to new shape.\n * Used for methods like .partial() that wrap fields in new types.\n */\nfunction copyFieldMetadata(originalShape: Record<string, any>, newShape: Record<string, any>): void {\n for (const fieldName of Object.keys(originalShape)) {\n const originalField = originalShape[fieldName];\n const newField = newShape[fieldName];\n \n if (originalField && newField && originalField !== newField) {\n const fieldMetadata = (originalField as any)[SCHEMA_METADATA];\n \n if (fieldMetadata && Object.keys(fieldMetadata).length > 0) {\n (newField as any)[SCHEMA_METADATA] = deepCloneValue(fieldMetadata);\n \n // Also wrap the new field's methods for future chaining\n wrapInstanceMethodsForMetadata(newField);\n }\n }\n }\n}\n\n/**\n * Wrap only the instance methods (not decorator methods) for metadata preservation.\n * Used when copying metadata to a new schema instance.\n */\nfunction wrapInstanceMethodsForMetadata(schema: any): void {\n for (const methodName of ZOD_INSTANCE_METHODS_TO_WRAP) {\n if (typeof schema[methodName] === 'function') {\n wrapInstanceMethod(schema, methodName);\n }\n }\n}\n\n\n\nexport function addChainableMethods<T extends z.ZodTypeAny>(schema: T): T {\n const decoratedSchema = schema as DecoratedPrimitiveZodType<T>;\n \n // CRITICAL: Wrap instance methods that return new instances to preserve metadata\n // In Zod v4, methods are on instances not prototypes\n for (const methodName of ZOD_INSTANCE_METHODS_TO_WRAP) {\n if (typeof (decoratedSchema as any)[methodName] === 'function') {\n wrapInstanceMethod(decoratedSchema, methodName);\n }\n }\n \n const ctorName = (decoratedSchema as any)?.constructor?.name as string | undefined;\n\n for (const decorator of Object.values(ZodDecorator)) {\n const applyable = ZodDecorator_ApplyableType[decorator];\n if (!applyable || !ctorName) continue;\n if (!applyable.includes(ctorName)) continue;\n if (Object.prototype.hasOwnProperty.call(decoratedSchema, decorator)) continue;\n\n // Use the actual function from ZodDecorator_FunctionType to preserve composite\n // decorator behavior (e.g., isPrimaryKey sets 5 decorators, isPassword sets 2).\n // Falling back to a generic wrapper should never happen if the table is complete.\n const registeredFn = ZodDecorator_FunctionType[decorator];\n const value = registeredFn\n ? (...args: any[]) => registeredFn.apply(decoratedSchema, args)\n : (params: any) => addDecorators(decoratedSchema, [{ ref: decorator, params }]);\n\n Object.defineProperty(decoratedSchema, decorator, { value, ...defaultZodDecoSchemaProperties});\n }\n \n if (!decoratedSchema.hasOwnProperty('addDecorators')) {\n Object.defineProperty(decoratedSchema, 'addDecorators', {\n value: (decorators: DecoratorInput[]) => addDecorators(decoratedSchema, decorators),\n ...defaultZodDecoSchemaProperties\n });\n }\n \n return decoratedSchema as T;\n}\n/** @wildo_source:part:end zod.decorators.chainable-runtime */\n\n\n\n// =============================================================================\n// ADD DECORATORS\n// =============================================================================\n\n\n\n// -----------------------------------------------------------------------------\n// DB related decorators\n// -----------------------------------------------------------------------------\n\nexport function addDBIndexed<T extends z.ZodTypeAny>(schema: T): T {\n // Lazy initialization: ensure decorators are loaded\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.IS_DB_INDEXED]);\n}\n\nexport function addForeignKey<T extends z.ZodTypeAny>(schema: T): T {\n // Lazy initialization: ensure decorators are loaded\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.IS_FOREIGN_KEY]);\n}\n\n\n// -----------------------------------------------------------------------------\n// FORMS\n// -----------------------------------------------------------------------------\n\n// addFormInput, addFormTextarea, addFormSelect, etc. — removed.\n// Component selection moved to {primitive}UI({ edit: { component } }).\n\nexport function addHidden<T extends z.ZodTypeAny>(schema: T, params?: HiddenFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_HIDDEN, params }]);\n}\n\nexport function addNotEditable<T extends z.ZodTypeAny>(schema: T, params?: NotEditableFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_NOT_EDITABLE, params }]);\n}\n\nexport function addSortable<T extends z.ZodTypeAny>(schema: T, params?: Pick<ArrayUIEditParams, 'dnd' | 'upDownIcons'>): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.ARRAY_UI, params: { edit: { isSortable: true, ...params } } }]);\n}\n\n// -----------------------------------------------------------------------------\n// NEW DECORATOR ADD FUNCTIONS\n// -----------------------------------------------------------------------------\n\nexport function addSummaryField<T extends z.ZodTypeAny>(schema: T, params?: SummaryFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_SUMMARY_FIELD, params }]);\n}\n\nexport function addBackendOnly<T extends z.ZodTypeAny>(schema: T, params?: BackendOnlyFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_BACKEND_ONLY, params }]);\n}\n\nexport function addWriteOnlySecret<T extends z.ZodTypeAny>(schema: T, params?: WriteOnlySecretFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_WRITE_ONLY_SECRET, params }]);\n}\n\n/**\n * Standalone form of `.impersonalizeWith(treatment)` — declare a field's impersonalization\n * scrub treatment (a `RedactionType` value).\n *\n * The fluent `.impersonalizeWith(treatment)` method is the idiomatic authoring form and is live on\n * every schema type + wrapper. This helper stays as the programmatic escape hatch for the cases the\n * fluent form cannot express: decorating a schema held in a variable of an erased/generic type, or\n * applying a treatment inside a generic transform where `this` is `z.ZodTypeAny`.\n *\n * Both doors funnel through `applySingleDecorator`, so both reject a missing/blank treatment\n * identically. Read the result back with `getImpersonalizeTreatment(schema)`.\n *\n * `options.maskValue` overrides the framework mask constant for a `MASK` treatment — required when\n * the field is a CONSTRAINED string (`z.email()`, `z.uuid()`, `.min(n)`) the default constant cannot\n * satisfy. See {@link ImpersonalizeFieldParams} for the full contract; read it back with\n * `getImpersonalizeMaskValue(schema)`.\n *\n * @example\n * // Unconstrained string — the framework mask constant applies.\n * addImpersonalizeWith(z.string(), RedactionType.MASK)\n * @example\n * // Constrained string — the default constant would fail the boot guard, so give it a value the\n * // field's own schema accepts. `.invalid` is RFC 2606 reserved: never resolvable, never delivered.\n * addImpersonalizeWith(z.email(), RedactionType.MASK, { maskValue: 'erased@erased.invalid' })\n */\nexport function addImpersonalizeWith<T extends z.ZodTypeAny>(\n schema: T,\n treatment: string,\n options?: Omit<ImpersonalizeFieldParams, 'treatment'>,\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.IMPERSONALIZE_WITH, params: options ? { ...options, treatment } : treatment },\n ]);\n}\n\n/**\n * @wildo_source:part:start zod.decorators.rag-source facet:layer:shared facet:family:decorator facet:kind:api facet:audience:app-developer\n *\n * Standalone form of `.ragSource(config?)` — declare a field's text a RAG retrieval-corpus source.\n *\n * Import from `@wildo-ai/zod-decorators`.\n *\n * The fluent `.ragSource()` method is the idiomatic authoring form and is live on every\n * string-backed type plus the Optional / Nullable / Default wrappers. This helper is the\n * programmatic escape hatch for schemas held as an erased/generic type, and it is the door\n * `z_file({ ragSource })` uses to register the SAME decorator on a file schema (a `ZodObject`,\n * which deliberately carries no fluent `.ragSource()` — see the applicable-types entry).\n *\n * Both doors funnel through `applySingleDecorator`, so both validate the config identically and\n * both enforce the refused companions (`isPassword` / `isOtp` / `isWriteOnlySecret` /\n * `isEphemeral` / `ttl`) in both application orders. Read the stored config back with\n * `getRagSourceConfig(schema)`.\n *\n * @example\n * // A complete declaration — framework chunking defaults apply.\n * addRagSource(z.string())\n * @example\n * // Authored chunking for a markdown knowledge field.\n * addRagSource(z.string(), { chunkingStrategy: RAGChunkingStrategy.MARKDOWN, chunkSize: 1200, chunkOverlap: 150 })\n */\nexport function addRagSource<T extends z.ZodTypeAny>(\n schema: T,\n config?: RagSourceConfiguration,\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.RAG_SOURCE, params: config },\n ]);\n}\n/** @wildo_source:part:end zod.decorators.rag-source */\n\n/**\n * Standalone form of `.portabilityProvenance(provenance)` — declare where a field's value came\n * from, for GDPR Art. 20 scoping.\n *\n * The fluent method is the idiomatic authoring form and is live on every decorator-reachable Zod\n * type. This helper exists for the types that carry NO prototype-installed decorators at all\n * (`z.pipe(...)`, which is what `z_phone()` returns, plus Literal / Tuple / Set / …) and for\n * applying a provenance inside a generic transform where `this` is `z.ZodTypeAny`.\n *\n * Both doors funnel through `applySingleDecorator`, so both reject a missing/blank value\n * identically. Read the result back with `getPortabilityProvenance(schema)`.\n *\n * Omitting the declaration entirely is legitimate and common: the field then inherits its\n * resource's `portabilityPolicy.defaultProvenance`. Only fields that DIFFER from that default need\n * a declaration — which is what keeps annotating a resource a one-line cost rather than a per-field\n * chore.\n *\n * @example\n * // A value the subject typed — in scope for both Art. 15 and Art. 20.\n * addPortabilityProvenance(z.string(), DataPortabilityProvenance.SUBJECT_PROVIDED)\n * @example\n * // A value the controller computed ABOUT the subject — disclosed under Art. 15, excluded from an\n * // Art. 20 portability bundle.\n * addPortabilityProvenance(z.number(), DataPortabilityProvenance.DERIVED)\n */\nexport function addPortabilityProvenance<T extends z.ZodTypeAny>(\n schema: T,\n provenance: string,\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.PORTABILITY_PROVENANCE, params: provenance },\n ]);\n}\n\n/**\n * Standalone form of `.dataCategories(categories)` — declare WHICH KINDS of personal data a field\n * holds, for the privacy-notice inventory.\n *\n * The fluent method is the idiomatic authoring form and is live on every decorator-reachable Zod\n * type. This helper exists for the types that carry NO prototype-installed decorators at all\n * (`z.pipe(...)`, which is what `z_phone()` returns, plus Literal / Tuple / Set / …) and for\n * declaring categories inside a generic transform where `this` is `z.ZodTypeAny`.\n *\n * ⚠️ `z_phone()` is the case that makes this helper load-bearing rather than a curiosity: a phone\n * number is contact detail personal data by definition, and the fluent method cannot reach it.\n *\n * Both doors funnel through `applySingleDecorator`, so both reject an empty declaration\n * identically. Read the result back with `getDataCategories(schema)`.\n *\n * @example\n * // A phone number — the pipe `z_phone()` returns has no fluent surface.\n * addDataCategories(z_phone(), PersonalDataCategory.CONTACT_DETAILS)\n * @example\n * // A field that genuinely spans two categories.\n * addDataCategories(z.string(), [PersonalDataCategory.USER_CONTENT, PersonalDataCategory.SPECIAL_CATEGORY_HEALTH])\n *\n * @wildo_source:part:start zod.decorators.data-categories facet:layer:shared facet:family:decorator facet:kind:api facet:audience:app-developer\n */\nexport function addDataCategories<T extends z.ZodTypeAny>(\n schema: T,\n categories: string | readonly string[],\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.DATA_CATEGORIES, params: categories },\n ]);\n}\n/** @wildo_source:part:end zod.decorators.data-categories */\n\n/**\n * Standalone form of `.isAuditEvidence()` — mark a field whose before/after values are recorded on\n * the `resource_operation_performed` audit event when an operation changes it.\n *\n * The fluent method is the idiomatic authoring form and is live on every decorator-reachable Zod\n * type. This helper exists for the types that carry NO prototype-installed decorators at all\n * (`z.pipe(...)`, which is what `z_phone()` returns, plus Literal / Tuple / Set / …) and for\n * marking a field inside a generic transform where `this` is `z.ZodTypeAny`.\n *\n * Read the result back with `isAuditEvidenceField(schema)`.\n *\n * ⚠️ `z_phone()` is the cautionary case for this decorator specifically: a phone number is personal\n * data, so reaching for this helper on one is almost always the wrong call. The unreachable-fluent\n * types are listed here for completeness of the API surface, not as a suggestion.\n *\n * @example\n * // Authority — the values ARE the evidence; a role change without them proves nothing.\n * addAuditEvidence(z.array(z.string()))\n */\nexport function addAuditEvidence<T extends z.ZodTypeAny>(schema: T): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.IS_AUDIT_EVIDENCE]);\n}\n\nexport function addVirtual<T extends z.ZodTypeAny>(schema: T, params: VirtualFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_VIRTUAL, params }]);\n}\n\nexport function addDiscriminator<T extends z.ZodTypeAny>(schema: T, params?: DiscriminatorFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_DISCRIMINATOR, params }]);\n}\n\nexport function addExcludeFromCreate<T extends z.ZodTypeAny>(schema: T): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.EXCLUDE_FROM_CREATE]);\n}\n\nexport function addExcludeFromUpdate<T extends z.ZodTypeAny>(schema: T): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.EXCLUDE_FROM_UPDATE]);\n}\n\nexport function addUnique<T extends z.ZodTypeAny>(schema: T, params?: UniqueFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_UNIQUE, params }]);\n}\n\n// -----------------------------------------------------------------------------\n// DECORATOR DETECTION HELPER FUNCTIONS\n// -----------------------------------------------------------------------------\n\n/**\n * Recursively get metadata from a schema, traversing through wrapper types.\n * \n * Zod 4's methods like `partial()`, `required()`, `optional()`, `nullable()`, `default()`\n * wrap the original schema in new types. The original decorated schema becomes the `innerType`.\n * This function traverses through these wrappers to find the original metadata.\n * \n * Traversal order:\n * 1. Check if metadata exists directly on the schema\n * 2. If not found, check `_zod.def.innerType` recursively\n * (ZodOptional, ZodNullable, ZodDefault, ZodNonOptional, ZodReadonly, ZodCatch)\n * 3. For ZodEffects (transforms), check `_zod.def.schema`\n * 4. For ZodArray, check `_zod.def.element`\n * 5. For ZodPipe (from .refine()/.superRefine()), check `_zod.def.in`\n */\nexport function getMetadataRecursive(schema: z.ZodTypeAny): CustomFieldMetadata | undefined {\n if (!schema) return undefined;\n\n // First check directly on this schema\n const directMetadata = (schema as any)[SCHEMA_METADATA] as CustomFieldMetadata | undefined;\n if (directMetadata && Object.keys(directMetadata).length > 0) {\n return directMetadata;\n }\n \n // Access the internal Zod definition\n const def = (schema as any)._zod?.def;\n if (!def) return undefined;\n \n // Traverse through wrapper types that use innerType:\n // ZodOptional, ZodNullable, ZodDefault, ZodNonOptional, ZodReadonly, ZodCatch\n if (def.innerType) {\n return getMetadataRecursive(def.innerType);\n }\n \n // ZodEffects (transforms) have a schema property\n if (def.schema) {\n return getMetadataRecursive(def.schema);\n }\n \n // ZodArray has element\n if (def.element) {\n return getMetadataRecursive(def.element);\n }\n\n // ZodPipe (from .refine()/.superRefine()) has 'in' for the input schema\n if (def.in) {\n return getMetadataRecursive(def.in);\n }\n \n return undefined;\n}\n\n// Reader functions (is*, get*Params, etc.) are consolidated in zod-utils.shared.ts.\n// Only writers (add*), getMetadataRecursive, and addPrimaryKey remain here.\n\n/**\n * Apply isPrimaryKey decorator to a schema (composite: excludeFromCreate + isHidden + isUnique + isDBIndexed).\n */\nexport function addPrimaryKey<T extends z.ZodTypeAny>(schema: T): T {\n return addDecorators(schema, [\n ZodDecorator.IS_PRIMARY_KEY,\n ZodDecorator.EXCLUDE_FROM_CREATE,\n ZodDecorator.IS_HIDDEN,\n ZodDecorator.IS_DB_INDEXED,\n { ref: ZodDecorator.IS_UNIQUE, params: { scope: 'global', sparse: false } },\n ]);\n}\n\n// -----------------------------------------------------------------------------\n// MODULE OVERRIDE\n// -----------------------------------------------------------------------------\n\n/**\n * Decorator functions that can be applied to existing Zod schemas\n */\ndeclare module 'zod' {\n interface ZodString {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // String edit mode convenience decorators\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — string-backed types are the decorator's fluent home (see the applicable-types\n // entry); declared here so the bare authoring form type-checks, installed at runtime via\n // STRING_SCHEMA_DECORATOR_SURFACE on both string prototypes.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // Database constraint decorators\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PRIMARY_KEY](): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodStringFormat<Format extends string = string> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // String edit mode convenience decorators\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — string-backed types are the decorator's fluent home (see the applicable-types\n // entry); declared here so the bare authoring form type-checks, installed at runtime via\n // STRING_SCHEMA_DECORATOR_SURFACE on both string prototypes.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // Database constraint decorators\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PRIMARY_KEY](): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n interface ZodNumber {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // Database constraint decorators\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n interface ZodBigInt {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodBoolean {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Wired 2026-08-12 — previously half-live: claimed by ZodDecorator_ApplyableType and reachable\n // only after another decorator, so the bare authoring form threw.\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n interface ZodDate {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // TTL (Time To Live) for MongoDB document expiration\n [ZodDecorator.TTL](params: TtlFieldParams): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Wired 2026-08-12 — previously half-live: claimed by ZodDecorator_ApplyableType and reachable\n // only after another decorator, so the bare authoring form threw.\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n // Zod string refinement types (`ZodEmail`, `ZodUUID`, `ZodISODateTime`, …) need NO augmentation of\n // their own: Zod declares each one `extends ZodStringFormat<Format>`, so they inherit the whole\n // decorator surface from the `ZodStringFormat` block above. They previously carried one\n // `interface ZodX extends ZodString {}` line each; that is what TypeScript 7 rejects with TS2320,\n // because it left each type extending two different generic instantiations of `_ZodString` whose\n // internals conflict. Do not reintroduce them.\n\n // ZodEnum augmentation for resource field decorators\n // Parameter list matches zod's own `ZodEnum` (`zod/v4/classic/schemas.d.ts:536`), including the\n // default that was previously missing. See the `ZodObject` augmentation below for why a mismatch\n // here is not cosmetic: the augmentation's list wins in the merged interface and is emitted into\n // every declaration this repo publishes.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n // @ts-ignore Cast variance — the same suppression zod places on its own declaration, covering the\n // variance annotation only.\n interface ZodEnum<out T extends z.util.EnumLike = z.util.EnumLike> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // System enum decorator\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n // ZodLiteral augmentation — the DISCRIMINATOR surface (issue #304).\n //\n // A string literal renders as a single-value enum (`getSchemaType` maps it to ENUM and its value\n // routes through `DisplayFieldEnum`), and the one place literals appear as AUTHORED fields is the\n // discriminator of a discriminated union — `kind: z.literal(...)` per variant. Until this block,\n // that field was the only enum-rendered surface whose chrome could not be authored at all:\n // `variant.shape.kind.enumUI?.({...})` type-checked as an optional call, installed nothing, and\n // the workbench build plan shipped a `Kind` label over a raw wire constant while every sibling\n // rendered badged (measured 2026-09-03). `enumUI` is deliberately the WHOLE surface — a literal\n // is not a database column, a business key or a form field; it is a fixed value whose only\n // authorable dimension is how it displays. Each `z.literal(...)` call mints a fresh instance, so\n // decorating a variant's discriminator never leaks across variants the way a shared string leaf\n // would.\n // Parameter list matches zod's own `ZodLiteral` (`zod/v4/classic/schemas.d.ts:557`).\n interface ZodLiteral<T extends z.util.Literal = z.util.Literal> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n // Unified UI decorator\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n }\n\n // ZodArray augmentation for arrayUI and array-specific decorators\n // LEFT AS-IS, deliberately, and the reason is worth recording.\n //\n // zod declares `ZodArray<T extends core.SomeType = core.$ZodType>`. Matching that exactly — in\n // both the bare and the `z.core.`-qualified spelling — still yields `TS2428: All declarations of\n // 'ZodArray' must have identical type parameters`, unlike `ZodObject` and `ZodEnum` where the\n // same correction is accepted. That is unexplained; do not assume it is the same defect as those.\n //\n // It is left with its own `@ts-ignore` because, unlike `ZodObject`, this mismatch costs consumers\n // NOTHING: `z.ZodTypeAny` is qualified through `z`, which every emitting file imports, so no\n // unbound name reaches a published declaration. The `ZodObject` defect was serious precisely\n // because its default was spelled bare `core.$ZodObjectExtra`.\n //\n // If you revisit this: the criterion is not \"does it match zod\", it is \"does the emitted default\n // resolve in a consumer\". Check the emitted `.d.ts` for a bare `core.` reference.\n // @ts-ignore - Type parameter conflict with Zod 4's internal definition; runtime works correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface ZodArray<T extends z.ZodTypeAny> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n\n // Structural DB decorators. The runtime has ALWAYS installed both on `ZodArray.prototype` (see the\n // prototype block below); only this declaration was missing, so `z.array(NonEmptyStringSchema).min(1)\n // .isForeignKey({ referencedResourceType })` threw TS2339 while the identical call on a `.default([])`\n // or `.optional()` wrapper compiled and worked. That made the FK marker reachable only by accident of\n // whether the author happened to wrap the array — and decorating the ELEMENT instead is not a\n // substitute, because a shared leaf (`NonEmptyStringSchema`) then carries the marker into every schema\n // that uses it (wrapper copy-on-write does not reach the element position).\n //\n // This is the INSTALLED-BUT-UNDECLARED direction of the surface-agreement contract that\n // `declared-decorator-surface-parity.contract.test.ts` guards in the DECLARED-BUT-NOT-INSTALLED\n // direction only. That direction produces a call that compiles and throws; this one produces a\n // capability that works and cannot be reached. Deliberately NOT wrapped in the\n // `zod.decorators.shared-structural-methods` anchor: the compiled skill already teaches both methods\n // from the ZodString/ZodDefault blocks, and a second two-line fragment under the same topic id would\n // ship a stub excerpt beside the real one.\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<this>;\n isSortable(params?: Pick<ArrayUIEditParams, 'dnd' | 'upDownIcons'>): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n // Wrapper type augmentations - needed for chaining like z.date().default(...).excludeFromCreate()\n // Note: For Zod 4, we must match the type parameters exactly. Zod uses core.SomeType internally.\n // The 'core' namespace is publicly exported from zod, so we use it here.\n interface ZodDefault<T extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — a corpus-source string field routinely lives under a wrapper\n // (`z.string().optional().ragSource()`), so the wrappers declare the method too; the runtime\n // install comes from the blanket wrapper loop (ZodDefault / ZodNullable) or the explicit\n // ZodOptional prototype block.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n // System enum decorator\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Conditional visibility decorator\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorators (ZodDefault wraps any primitive)\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorators (ZodDefault wraps any primitive)\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Factory-owned + string-format decorators, mirroring the ZodOptional block VERBATIM.\n //\n // These were installed all along — the wrapper install is a BLANKET LOOP over every\n // `ZodDecorator_FunctionType` entry — and declared only on `ZodOptional`, whose install list is\n // written out by hand. A loop and a hand-written list cannot agree, which is why the two\n // wrappers below drifted by exactly the same 15 while `ZodOptional` stayed clean (issue #205).\n //\n // Declared rather than uninstalled because `ZodOptional` — the closest sibling — has carried\n // exactly this surface, declared, for a long time. The `FACTORY_OWNED_WITHOUT_PROTOTYPE_INSTALL`\n // hazard the parity test documents is about OPEN constructors (`ZodObject.prototype`,\n // `ZodString.prototype`), where a caller could attach a money renderer to an arbitrary object; a\n // wrapper's inner schema already carries the type.\n //\n // `isPrimaryKey` is deliberately NOT here: `ZodOptional` neither installs nor declares it, and a\n // defaulted / nullable primary key is the same contradiction an optional one is. It reaches these\n // two prototypes only through the blanket loop, and it is the one member that should be\n // UNINSTALLED rather than declared when that loop is replaced by an explicit list. Recorded as a\n // named exemption in `declared-decorator-surface-parity.contract.test.ts` so the reverse\n // assertion states it instead of silently tolerating it.\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TTL](params?: TtlFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n // Composite business key — reachable here because `businessKeySet` unwraps to the object's\n // shape, so its field-name validation still runs through the wrapper.\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodOptional<T extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — a corpus-source string field routinely lives under a wrapper\n // (`z.string().optional().ragSource()`), so the wrappers declare the method too; the runtime\n // install comes from the blanket wrapper loop (ZodDefault / ZodNullable) or the explicit\n // ZodOptional prototype block.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n // System enum decorator\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Conditional visibility decorator\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorators (ZodOptional wraps any primitive, so all UI decorators are\n // applicable — this MUST mirror every `*_UI` entry that lists 'ZodOptional' in\n // `ZodDecorator_ApplyableTypes`, otherwise an optional field can't carry that UI\n // decorator in a `*.ui-behavior.tsx` `fields` block, e.g. `avatar.fileUI(...)`).\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorators (ZodOptional wraps any primitive)\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Wired 2026-08-12 — previously half-live: claimed by ZodDecorator_ApplyableType and reachable\n // only after another decorator, so the bare authoring form threw.\n [ZodDecorator.TTL](params?: TtlFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodNullable<T extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — a corpus-source string field routinely lives under a wrapper\n // (`z.string().nullable().ragSource()`); runtime install comes from the blanket wrapper loop.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Conditional visibility decorator\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorators (ZodNullable wraps any primitive)\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorators (ZodNullable wraps any primitive)\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Factory-owned + string-format decorators, mirroring the ZodOptional block VERBATIM.\n //\n // These were installed all along — the wrapper install is a BLANKET LOOP over every\n // `ZodDecorator_FunctionType` entry — and declared only on `ZodOptional`, whose install list is\n // written out by hand. A loop and a hand-written list cannot agree, which is why the two\n // wrappers below drifted by exactly the same 15 while `ZodOptional` stayed clean (issue #205).\n //\n // Declared rather than uninstalled because `ZodOptional` — the closest sibling — has carried\n // exactly this surface, declared, for a long time. The `FACTORY_OWNED_WITHOUT_PROTOTYPE_INSTALL`\n // hazard the parity test documents is about OPEN constructors (`ZodObject.prototype`,\n // `ZodString.prototype`), where a caller could attach a money renderer to an arbitrary object; a\n // wrapper's inner schema already carries the type.\n //\n // `isPrimaryKey` is deliberately NOT here: `ZodOptional` neither installs nor declares it, and a\n // defaulted / nullable primary key is the same contradiction an optional one is. It reaches these\n // two prototypes only through the blanket loop, and it is the one member that should be\n // UNINSTALLED rather than declared when that loop is replaced by an explicit list. Recorded as a\n // named exemption in `declared-decorator-surface-parity.contract.test.ts` so the reverse\n // assertion states it instead of silently tolerating it.\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TTL](params?: TtlFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n // Composite business key — reachable here because `businessKeySet` unwraps to the object's\n // shape, so its field-name validation still runs through the wrapper.\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodUnion<T extends readonly core.SomeType[] = readonly core.$ZodType[]> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Installed on `ZodUnion.prototype` by an EXPLICIT, hand-written line in the install block below\n // — not by a blanket loop — and simply never declared here, so `z.union([...]).systemEnum('X')`\n // was TS2339 on a method sitting on the prototype (issue #205).\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n // The parameter list MUST match `zod`'s own `ZodObject` exactly — names, constraints, defaults\n // and variance annotations. Interface merging is positional, and a mismatch does not merely warn:\n // the augmentation's parameter list wins in the merged type, so every declaration this repo emits\n // that mentions a `ZodObject` inherits it.\n //\n // This previously read `<Shape extends core.$ZodShape = core.$ZodShape, Extra extends\n // core.$ZodObjectExtra = core.$ZodObjectExtra>`, written against an older Zod 4 API and silenced\n // with `@ts-ignore`. `$ZodObjectExtra` does not exist in zod 4.3.6 — it appears nowhere in the\n // package — so the suppression was not hiding a variance nit, it was hiding a reference to a type\n // that is not there. The cost landed on consumers: 413+ published `.d.ts` across five engine\n // packages emitted `core.$ZodObjectExtra` with no `core` in scope, and a single-line consumer\n // compiling with `skipLibCheck: false` collected 2,617 × `TS2503: Cannot find namespace 'core'`,\n // which then propagated into that consumer's own declarations.\n //\n // Do not reintroduce `@ts-ignore` here. If a zod upgrade changes this signature, change this line\n // to match it and re-run the `skipLibCheck: false` probe — a suppression here is invisible in this\n // repo (every internal tsconfig sets `skipLibCheck: true`) and only ever surfaces downstream.\n //\n // Why THIS augmentation leaked when six siblings below (`ZodDefault`, `ZodOptional`, `ZodNullable`,\n // `ZodUnion`, `ZodRecord`, `ZodMap`) spell their defaults `core.X` just as bare and do not: a\n // default that RESOLVES is re-qualified against the consumer's own `z` import on emit (you see\n // `z.core.$strip` in shipped declarations). `$ZodObjectExtra` resolved to nothing, so TypeScript\n // emitted the name textually and it arrived unbound. Measured 2026-08-13: 6,997 occurrences of\n // `core.$ZodObjectExtra` across the shipped `saas-models` + `saas-specifications` declarations,\n // and ZERO leaked occurrences of any other `core.*` name. The defaults here are additionally\n // spelled `z.core.*` so that even an unresolvable one would arrive qualified.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n // @ts-ignore Cast variance — the SAME suppression zod places on its own declaration of this\n // interface (`zod/v4/classic/schemas.d.ts:432`). It covers the variance annotations only; the\n // parameter names, constraints and defaults below are checked and must stay in step with zod.\n interface ZodObject<out Shape extends z.core.$ZodShape = z.core.$ZodLooseShape, out Config extends z.core.$ZodObjectConfig = z.core.$strip> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Composite business key — see businessKeySet([...])\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Wired 2026-08-12 — previously half-live: claimed by ZodDecorator_ApplyableType and reachable\n // only after another decorator, so the bare authoring form threw.\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodRecord<Key extends core.$ZodRecordKey = core.$ZodRecordKey, Value extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodMap<Key extends core.SomeType = core.$ZodType, Value extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n}\n\n/**\n * Helper to create a metadata-preserving wrapper for Zod methods that return new instances.\n * In Zod v4, methods like .min(), .max(), etc. return NEW schema instances,\n * which would lose our SCHEMA_METADATA Symbol. This wrapper copies the metadata.\n */\nfunction wrapMethodToPreserveMetadata(originalMethod: Function, methodName?: string): Function {\n const wrapped = function(this: any, ...args: any[]) {\n const originalMetadata = (this as any)[SCHEMA_METADATA];\n const result = originalMethod.apply(this, args);\n\n // Copy all metadata from original (this) to result if it exists\n // This includes rangeConfig and currencyConfig which are now part of SCHEMA_METADATA\n if (originalMetadata && Object.keys(originalMetadata).length > 0 && result && result !== this) {\n (result as any)[SCHEMA_METADATA] = { ...originalMetadata };\n }\n return result;\n };\n // Deliberately NOT `__metadataWrapped`, which is `wrapInstanceMethod`'s marker. The two wrappers\n // are not interchangeable — the instance one also runs `copyFieldMetadata` and re-wraps the result\n // — so sharing a marker would let a prototype wrapper suppress an instance wrapper that does more.\n (wrapped as any).__prototypeMetadataWrapped = true;\n return wrapped;\n}\n\n\n\n/**\n * Patches all methods on a prototype that might return new instances,\n * ensuring SCHEMA_METADATA is preserved through method chains.\n *\n * ⚠️ MEASURED 2026-08-12, zod@4.3.6: this function is currently a COMPLETE NO-OP, and every call to\n * it is inert. Zod v4 installs schema methods as INSTANCE own properties — `ZodString.prototype`\n * carries `constructor` and nothing else — so `prototype[methodName]` is `undefined` for every name\n * passed in and the loop skips all of them. Metadata preservation through `.min()` / `.optional()` /\n * `.transform()` is done entirely at the instance level by `addChainableMethods` →\n * `wrapInstanceMethod`, which is what actually works today (verified: metadata survives\n * `.transform().optional()` and `.array().optional()`).\n *\n * It is kept, rather than deleted, because it costs nothing and is the correct behavior if Zod ever\n * moves methods back onto prototypes — at which point the guard below stops being theoretical, since\n * `ZodString.prototype` is reached by both the STEP 1 pass and `installStringDecoratorSurface`.\n * Do NOT cite this function as the reason a decorator survives a chain; it is not.\n */\nfunction patchPrototypeMethodsForMetadataPreservation(prototype: any, methodNames: string[]): void {\n for (const methodName of methodNames) {\n const originalMethod = prototype[methodName];\n if (typeof originalMethod !== 'function') continue;\n if ((originalMethod as any).__prototypeMetadataWrapped) continue;\n prototype[methodName] = wrapMethodToPreserveMetadata(originalMethod, methodName);\n }\n}\n\n/**\n * Install the WHOLE string decorator surface on one string-backed prototype.\n *\n * The only writer of decorator methods onto a string-schema prototype. It has exactly two callers —\n * `ZodString.prototype` and `ZodStringFormat.prototype` — and routing both through one function is\n * what makes `STRING_SCHEMA_DECORATOR_SURFACE` a source of truth rather than a copy: a decorator\n * added to the list reaches `z.string()` and `z.uuid()` in the same edit, and one cannot be given\n * the method while the other is not.\n *\n * Also calls the metadata-preservation patch, matching what each of the three install sites did\n * before. Note that this call is INERT on zod@4.3.6 — see that function's own docblock; schema\n * methods live on instances, and `addChainableMethods` is what preserves metadata through a chain.\n * It is passed through rather than dropped so the two stay coupled if Zod's method placement changes.\n *\n * @param prototype - a Zod string-schema prototype (`ZodString.prototype`, `ZodUUID.prototype`, …)\n * @param methodsToWrap - the instance-returning methods to wrap IF this Zod version puts them on the\n * prototype at all\n */\nfunction installStringDecoratorSurface(prototype: Record<PropertyKey, unknown>, methodsToWrap: string[]): void {\n patchPrototypeMethodsForMetadataPreservation(prototype, methodsToWrap);\n for (const decorator of STRING_SCHEMA_DECORATOR_SURFACE) {\n prototype[decorator] = ZodDecorator_FunctionType[decorator];\n }\n prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n}\n\n/**\n * Ensures Zod decorators are applied to a specific Zod instance.\n * This is critical when multiple Zod instances exist in the dependency tree.\n * Call this function early in your application startup to ensure decorators work.\n * \n * In Zod v4, many methods return new schema instances (for immutability).\n * We patch these methods to copy SCHEMA_METADATA so decorators survive method chains.\n * \n * @param zodInstance - The Zod instance to apply decorators to (defaults to the imported 'z')\n * @returns true if decorators were already present, false if they were just applied\n */\nexport function ensureZodDecoratorsLoaded(zodInstance: typeof z = z): typeof z {\n // @ts-ignore - Dynamic property access for decorator checking\n\n // Typed helper view for optional constructors exposed by Zod v4 classic export.\n // Avoid `any` while still allowing us to patch optional schema constructors.\n type ZodCtor = { prototype: Record<PropertyKey, unknown> };\n type ZodInstanceWithExtras = typeof z & {\n ZodMap?: ZodCtor;\n ZodObject?: ZodCtor;\n ZodRecord?: ZodCtor;\n // Zod exposes many constructors for ISO/refinement string schemas; we access them by name.\n [k: string]: unknown;\n };\n const zi = zodInstance as unknown as ZodInstanceWithExtras;\n\n // Check if decorators are already applied\n const alreadyLoaded = typeof (zodInstance.ZodString.prototype as any)[ZodDecorator.IS_DB_INDEXED] === 'function';\n \n if (alreadyLoaded) {\n return zodInstance;\n }\n\n // =============================================================================\n // STEP 1: Patch Zod methods to preserve SCHEMA_METADATA through method chains\n // =============================================================================\n \n // ZodString methods that return new instances in Zod v4\n const zodStringMethodsToWrap = [\n 'min', 'max', 'length', 'email', 'url', 'uuid', 'nanoid', 'cuid', 'cuid2', 'ulid',\n 'regex', 'includes', 'startsWith', 'endsWith', 'datetime', 'date', 'time', 'duration',\n 'ip', 'base64', 'trim', 'toLowerCase', 'toUpperCase', 'jwt', 'emoji', \n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodString.prototype, zodStringMethodsToWrap);\n \n // ZodNumber methods that return new instances\n const zodNumberMethodsToWrap = [\n 'min', 'max', 'int', 'positive', 'negative', 'nonnegative', 'nonpositive',\n 'multipleOf', 'finite', 'safe', 'step',\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodNumber.prototype, zodNumberMethodsToWrap);\n \n // ZodDate methods that return new instances\n const zodDateMethodsToWrap = [\n 'min', 'max',\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodDate.prototype, zodDateMethodsToWrap);\n \n // ZodBoolean methods\n const zodBooleanMethodsToWrap = [\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodBoolean.prototype, zodBooleanMethodsToWrap);\n \n // ZodArray methods\n const zodArrayMethodsToWrap = [\n 'min', 'max', 'length', 'nonempty',\n 'optional', 'nullable', 'nullish', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodArray.prototype, zodArrayMethodsToWrap);\n \n // ZodEnum methods\n const zodEnumMethodsToWrap = [\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodEnum.prototype, zodEnumMethodsToWrap);\n \n // ZodOptional methods\n const zodOptionalMethodsToWrap = [\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodOptional.prototype, zodOptionalMethodsToWrap);\n\n // =============================================================================\n // STEP 2: Apply decorator methods to Zod prototypes\n // =============================================================================\n\n // Apply decorators to this Zod instance. `ZodString.prototype` takes the SAME surface through the\n // SAME installer as `ZodStringFormat.prototype` in STEP 3 — that shared call is what keeps\n // `z.string()` and `z.uuid()` from drifting apart again. This base covers `z.string()` and its\n // chained forms ONLY; a format type never runs `ZodString.init`, which is the whole point of\n // STEP 3.\n installStringDecoratorSurface(zodInstance.ZodString.prototype, zodStringMethodsToWrap);\n\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n\n // New decorators\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodNumber.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodNumber.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodNumber.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_DISCRIMINATOR] = ZodDecorator_FunctionType[ZodDecorator.IS_DISCRIMINATOR];\n zodInstance.ZodNumber.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodNumber.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // Database constraint decorators\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_UNIQUE] = ZodDecorator_FunctionType[ZodDecorator.IS_UNIQUE];\n // Business key marker (data-seeding subsystem)\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n // CRDT field decorator\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorator\n zodInstance.ZodNumber.prototype[ZodDecorator.NUMBER_UI] = ZodDecorator_FunctionType[ZodDecorator.NUMBER_UI];\n // Field specification decorator\n zodInstance.ZodNumber.prototype[ZodDecorator.NUMBER_SPEC] = ZodDecorator_FunctionType[ZodDecorator.NUMBER_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodNumber.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n zodInstance.ZodNumber.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n // ZodBigInt — the primitive that carried NO decorator at all until 2026-08-12.\n //\n // It is listed in `ApplyableTypeAllTypes` and `ApplyableTypeAllPrimitiveTypes`, and it is a\n // first-class leaf in every OTHER layer: the Mongoose schema convertor maps it, the DTO builder\n // coerces it across the network boundary, `install-bigint-json-encoding.ts` exists solely for it,\n // the MCP JSON-schema emitter handles it, and `z_money()` stores its `amount` as one. The decorator\n // layer was the single outlier, so an application could not mark a bigint field `isBackendOnly()`,\n // `excludeFromCreate()`, `impersonalizeWith(...)` or `isDBIndexed()` — all BACKEND concerns that do\n // not depend on there being a bigint form widget.\n //\n // Reached bare via `addChainableMethods` only AFTER another decorator, which was impossible: there\n // was no first decorator to start the chain. `impersonalize-treatment.test.ts` carried a waiver\n // saying \"drop the waiver if ZodBigInt ever joins the prototype-install block\"; this is that.\n //\n // No `IS_UNIQUE` / `IS_FOREIGN_KEY` (both are String/Number-scoped in the map), no `IS_DISCRIMINATOR`\n // (the params model is string/enum-valued — see the map), and no `*UI` / `*Spec` pair, because none\n // is defined for bigint.\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodBigInt.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodBigInt.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n zodInstance.ZodBigInt.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n zodInstance.ZodBigInt.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n\n // New decorators\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodBoolean.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodBoolean.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodBoolean.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodBoolean.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodBoolean.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorator\n zodInstance.ZodBoolean.prototype[ZodDecorator.BOOLEAN_UI] = ZodDecorator_FunctionType[ZodDecorator.BOOLEAN_UI];\n // Field specification decorator\n zodInstance.ZodBoolean.prototype[ZodDecorator.BOOLEAN_SPEC] = ZodDecorator_FunctionType[ZodDecorator.BOOLEAN_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodBoolean.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n // Business key marker — the map mirrors IS_DB_INDEXED's primitive set, and that IS installed here.\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n zodInstance.ZodBoolean.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n zodInstance.ZodDate.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodDate.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n\n // New decorators\n zodInstance.ZodDate.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodDate.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodDate.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodDate.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodDate.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodDate.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // TTL decorator for MongoDB TTL indexes (automatic document expiration)\n zodInstance.ZodDate.prototype[ZodDecorator.TTL] = ZodDecorator_FunctionType[ZodDecorator.TTL];\n // CRDT field decorator\n zodInstance.ZodDate.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorator\n zodInstance.ZodDate.prototype[ZodDecorator.DATE_UI] = ZodDecorator_FunctionType[ZodDecorator.DATE_UI];\n // Field specification decorator\n zodInstance.ZodDate.prototype[ZodDecorator.DATE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DATE_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodDate.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n // Business key marker — a date is a legitimate component of a natural key (e.g. [accountId, statementDate]).\n zodInstance.ZodDate.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n zodInstance.ZodDate.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zodInstance.ZodOptional.prototype[ZodDecorator.SYSTEM_ENUM] = ZodDecorator_FunctionType[ZodDecorator.SYSTEM_ENUM];\n // New decorators\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodOptional.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodOptional.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodOptional.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n // RAG source — ZodOptional is the ONE wrapper with a hand-enumerated block (its siblings get every\n // FunctionType entry from the blanket wrapper loop below), so this line is what keeps\n // `z.string().optional().ragSource()` from being the order-dependent half-live trap the\n // ZodOptional.showWhen note further down records.\n zodInstance.ZodOptional.prototype[ZodDecorator.RAG_SOURCE] = ZodDecorator_FunctionType[ZodDecorator.RAG_SOURCE];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_DISCRIMINATOR] = ZodDecorator_FunctionType[ZodDecorator.IS_DISCRIMINATOR];\n zodInstance.ZodOptional.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodOptional.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // Database constraint decorators - optional wrapper types need isUnique for z.string().isUnique().optional() pattern\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_UNIQUE] = ZodDecorator_FunctionType[ZodDecorator.IS_UNIQUE];\n // Business key marker (data-seeding subsystem) — supports z.string().isBusinessKey().optional() pattern\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n // Ephemeral field decorator\n // Conditional visibility. The `ZodOptional` interface below DECLARES `showWhen`, and both sibling\n // wrappers already carry it at runtime (ZodDefault / ZodNullable get it from the blanket wrapper\n // loop), so its absence here was an omission, not a policy: `z.string().optional().showWhen(...)`\n // type-checked and threw, while `z.string().optional().isDBIndexed().showWhen(...)` worked. That\n // is precisely the order-dependent half-live trap the IMPERSONALIZE_WITH comment at the top of\n // this file warns about. Found 2026-08-12 by the declared-vs-installed parity contract.\n zodInstance.ZodOptional.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_EPHEMERAL] = ZodDecorator_FunctionType[ZodDecorator.IS_EPHEMERAL];\n // CRDT field decorator\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorators (ZodOptional wraps any primitive)\n zodInstance.ZodOptional.prototype[ZodDecorator.BOOLEAN_UI] = ZodDecorator_FunctionType[ZodDecorator.BOOLEAN_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.STRING_UI] = ZodDecorator_FunctionType[ZodDecorator.STRING_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.NUMBER_UI] = ZodDecorator_FunctionType[ZodDecorator.NUMBER_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.ENUM_UI] = ZodDecorator_FunctionType[ZodDecorator.ENUM_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.DATE_UI] = ZodDecorator_FunctionType[ZodDecorator.DATE_UI];\n // The remaining `*_UI` methods MUST also be installed on ZodOptional so an OPTIONAL\n // field can carry them in a `*.ui-behavior.tsx` `fields` block (e.g.\n // `avatar.fileUI(...)`). These mirror both the `ZodOptional` type augmentation and the\n // `ZodDecorator_ApplyableTypes` runtime list — all three must stay in sync, or the type\n // says the method exists while the prototype lacks it (runtime \"X is not a function\").\n zodInstance.ZodOptional.prototype[ZodDecorator.DATETIME_UI] = ZodDecorator_FunctionType[ZodDecorator.DATETIME_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.TIME_UI] = ZodDecorator_FunctionType[ZodDecorator.TIME_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.MONEY_UI] = ZodDecorator_FunctionType[ZodDecorator.MONEY_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.CODE_UI] = ZodDecorator_FunctionType[ZodDecorator.CODE_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.FILE_UI] = ZodDecorator_FunctionType[ZodDecorator.FILE_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.DURATION_UI] = ZodDecorator_FunctionType[ZodDecorator.DURATION_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.PHONE_UI] = ZodDecorator_FunctionType[ZodDecorator.PHONE_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.BIGDECIMAL_UI] = ZodDecorator_FunctionType[ZodDecorator.BIGDECIMAL_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.FOREIGN_KEY_UI] = ZodDecorator_FunctionType[ZodDecorator.FOREIGN_KEY_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.ARRAY_UI] = ZodDecorator_FunctionType[ZodDecorator.ARRAY_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.OBJECT_UI] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_UI];\n // Field specification decorators (ZodOptional can wrap any primitive/object)\n zodInstance.ZodOptional.prototype[ZodDecorator.STRING_SPEC] = ZodDecorator_FunctionType[ZodDecorator.STRING_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.NUMBER_SPEC] = ZodDecorator_FunctionType[ZodDecorator.NUMBER_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.BOOLEAN_SPEC] = ZodDecorator_FunctionType[ZodDecorator.BOOLEAN_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.DATE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DATE_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.DATETIME_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DATETIME_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.TIME_SPEC] = ZodDecorator_FunctionType[ZodDecorator.TIME_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.ENUM_SPEC] = ZodDecorator_FunctionType[ZodDecorator.ENUM_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.MONEY_SPEC] = ZodDecorator_FunctionType[ZodDecorator.MONEY_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.CODE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.CODE_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.FILE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.FILE_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.DURATION_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DURATION_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.PHONE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.PHONE_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.BIGDECIMAL_SPEC] = ZodDecorator_FunctionType[ZodDecorator.BIGDECIMAL_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.FOREIGN_KEY_SPEC] = ZodDecorator_FunctionType[ZodDecorator.FOREIGN_KEY_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.ARRAY_SPEC] = ZodDecorator_FunctionType[ZodDecorator.ARRAY_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.OBJECT_SPEC] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n // `z.date().optional().ttl()`, `z.string().optional().isPassword()` and\n // `z.object({…}).optional().businessKeySet([…])` are all natural authoring orders the map already\n // claims; each was half-live (worked only after another decorator) until 2026-08-12.\n zodInstance.ZodOptional.prototype[ZodDecorator.TTL] = ZodDecorator_FunctionType[ZodDecorator.TTL];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_PASSWORD] = ZodDecorator_FunctionType[ZodDecorator.IS_PASSWORD];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_OTP] = ZodDecorator_FunctionType[ZodDecorator.IS_OTP];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_COLOR] = ZodDecorator_FunctionType[ZodDecorator.IS_COLOR];\n zodInstance.ZodOptional.prototype[ZodDecorator.OBJECT_BUSINESS_KEY_SET] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_BUSINESS_KEY_SET];\n zodInstance.ZodOptional.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zodInstance.ZodEnum.prototype[ZodDecorator.SYSTEM_ENUM] = ZodDecorator_FunctionType[ZodDecorator.SYSTEM_ENUM];\n // New decorators\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodEnum.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodEnum.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodEnum.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_DISCRIMINATOR] = ZodDecorator_FunctionType[ZodDecorator.IS_DISCRIMINATOR];\n zodInstance.ZodEnum.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodEnum.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // Business key marker (data-seeding subsystem)\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n // CRDT field decorator\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorator\n zodInstance.ZodEnum.prototype[ZodDecorator.ENUM_UI] = ZodDecorator_FunctionType[ZodDecorator.ENUM_UI];\n // Field specification decorator\n zodInstance.ZodEnum.prototype[ZodDecorator.ENUM_SPEC] = ZodDecorator_FunctionType[ZodDecorator.ENUM_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodEnum.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n zodInstance.ZodEnum.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n // ZodLiteral — the discriminator surface: display chrome only. See the interface block's note.\n zodInstance.ZodLiteral.prototype[ZodDecorator.ENUM_UI] = ZodDecorator_FunctionType[ZodDecorator.ENUM_UI];\n\n zodInstance.ZodArray.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodArray.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zodInstance.ZodArray.prototype[ZodDecorator.ARRAY_UI] = ZodDecorator_FunctionType[ZodDecorator.ARRAY_UI];\n zodInstance.ZodArray.prototype.isSortable = ZodDecorator_FunctionType['isSortable'];\n // New decorators\n zodInstance.ZodArray.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodArray.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodArray.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodArray.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodArray.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodArray.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zodInstance.ZodArray.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodArray.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n zodInstance.ZodArray.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n zodInstance.ZodArray.prototype[ZodDecorator.ARRAY_SPEC] = ZodDecorator_FunctionType[ZodDecorator.ARRAY_SPEC];\n\n /**\n * The decorators this blanket loop must NOT install, by name and with the reason.\n *\n * The loop's virtue is that a new `ZodDecorator_FunctionType` entry reaches both wrappers for\n * free; its cost is that it cannot express an exception, which is how `isPrimaryKey` arrived on\n * two prototypes that should never have carried it. `ZodOptional` — whose install list is written\n * out by hand — neither installs nor declares it, because an OPTIONAL primary key is a\n * contradiction, and a DEFAULTED or NULLABLE one is the same contradiction wearing a different\n * wrapper. It was reachable at runtime and undeclared in TypeScript, so no author could call it\n * and nothing depended on it: measured across the whole tree with real `grep` (which, unlike `rg`\n * and unlike the shell's shadowed `grep`, sees gitignored trees), 226 `.isPrimaryKey()` call sites\n * and ZERO in wrapper form.\n *\n * Keep this a SET with a reason per member, never a silent condition in the loop body. An excluded\n * decorator is a decision; a missing one is a bug, and the two must not look alike.\n */\n const WRAPPER_INSTALL_EXCLUSIONS = new Set<string>([ZodDecorator.IS_PRIMARY_KEY]);\n\n // Wrapper types (ZodDefault, ZodNullable) need ALL decorators for chaining\n // e.g. z.date().default(...).excludeFromCreate().isNotEditable().showWhen(...)\n //\n // This loop copies EVERY `ZodDecorator_FunctionType` entry, so it automatically covers new fluent\n // methods (e.g. `impersonalizeWith`) on both wrappers. `.nullish()` needs no entry of its own —\n // Zod builds it as `.nullable().optional()`, so its OUTER type is ZodOptional, installed above.\n for (const wrapperName of ['ZodDefault', 'ZodNullable'] as const) {\n const wrapperCtor = zi[wrapperName as string] as ZodCtor | undefined;\n if (wrapperCtor?.prototype) {\n patchPrototypeMethodsForMetadataPreservation(wrapperCtor.prototype, zodOptionalMethodsToWrap);\n for (const [key, fn] of Object.entries(ZodDecorator_FunctionType)) {\n if (WRAPPER_INSTALL_EXCLUSIONS.has(key)) continue;\n wrapperCtor.prototype[key] = fn;\n }\n (wrapperCtor.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n }\n\n // ZodUnion wrapper type - needs decorators for union fields\n if (zi.ZodUnion?.prototype) {\n patchPrototypeMethodsForMetadataPreservation(zi.ZodUnion.prototype, zodOptionalMethodsToWrap);\n zi.ZodUnion.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zi.ZodUnion.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zi.ZodUnion.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zi.ZodUnion.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zi.ZodUnion.prototype[ZodDecorator.SYSTEM_ENUM] = ZodDecorator_FunctionType[ZodDecorator.SYSTEM_ENUM];\n // New decorators\n zi.ZodUnion.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zi.ZodUnion.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zi.ZodUnion.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zi.ZodUnion.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zi.ZodUnion.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zi.ZodUnion.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zi.ZodUnion.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zi.ZodUnion.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zi.ZodUnion.prototype[ZodDecorator.IS_DISCRIMINATOR] = ZodDecorator_FunctionType[ZodDecorator.IS_DISCRIMINATOR];\n zi.ZodUnion.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zi.ZodUnion.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zi.ZodUnion.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n (zi.ZodUnion.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n\n // Object / record decorators\n if (zi.ZodObject?.prototype) {\n zi.ZodObject.prototype[ZodDecorator.OBJECT_UI] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_UI];\n zi.ZodObject.prototype[ZodDecorator.OBJECT_SPEC] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_SPEC];\n zi.ZodObject.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zi.ZodObject.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zi.ZodObject.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zi.ZodObject.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zi.ZodObject.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zi.ZodObject.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zi.ZodObject.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zi.ZodObject.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zi.ZodObject.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zi.ZodObject.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zi.ZodObject.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Composite business key (data-seeding subsystem)\n zi.ZodObject.prototype[ZodDecorator.OBJECT_BUSINESS_KEY_SET] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_BUSINESS_KEY_SET];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zi.ZodObject.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zi.ZodObject.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n // A composite field is indexable, hideable and non-editable like any other. `z_file()` already\n // declared all three on its own schema type, which is the framework stating that objects carry them.\n zi.ZodObject.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zi.ZodObject.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zi.ZodObject.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n (zi.ZodObject.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n if (zi.ZodRecord?.prototype) {\n zi.ZodRecord.prototype[ZodDecorator.OBJECT_UI] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_UI];\n zi.ZodRecord.prototype[ZodDecorator.OBJECT_SPEC] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_SPEC];\n // New decorators\n zi.ZodRecord.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zi.ZodRecord.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zi.ZodRecord.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zi.ZodRecord.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zi.ZodRecord.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zi.ZodRecord.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zi.ZodRecord.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zi.ZodRecord.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zi.ZodRecord.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zi.ZodRecord.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zi.ZodRecord.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n (zi.ZodRecord.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n\n // Add support for ZodMap if available\n if (zi.ZodMap?.prototype) {\n patchPrototypeMethodsForMetadataPreservation(zi.ZodMap.prototype, [\n 'optional', 'nullable', 'nullish', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ]);\n zi.ZodMap.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zi.ZodMap.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zi.ZodMap.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zi.ZodMap.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zi.ZodMap.prototype[ZodDecorator.OBJECT_UI] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_UI];\n zi.ZodMap.prototype[ZodDecorator.OBJECT_SPEC] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_SPEC];\n // New decorators\n zi.ZodMap.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zi.ZodMap.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zi.ZodMap.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zi.ZodMap.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zi.ZodMap.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zi.ZodMap.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zi.ZodMap.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zi.ZodMap.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zi.ZodMap.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zi.ZodMap.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zi.ZodMap.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n (zi.ZodMap.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n\n // =============================================================================\n // STEP 3: The string-format refinement types (`z.email()`, `z.uuid()`, `z.hostname()`, `z.iso.*`)\n //\n // ONE prototype covers all of them, and it is the same one the type layer names.\n //\n // Zod v4 does NOT use prototype inheritance — `Object.getPrototypeOf(z.email())` is\n // `ZodEmail.prototype`, whose own proto is `Object.prototype`, and Zod's schema methods are\n // INSTANCE properties. What connects them is an explicit extension hook inside `$constructor`,\n // commented \"support prototype modifications\" in Zod's own source: on every `init`, each key of\n // that trait's prototype is copied onto the instance (`inst[k] = proto[k].bind(inst)`), for each\n // trait in the chain.\n //\n // And the classic init chain is the crux of the original defect (measured, zod@4.3.6):\n //\n // ZodEmail.init → $ZodEmail.init + ZodStringFormat.init\n // ZodStringFormat.init → $ZodStringFormat.init + _ZodString.init\n // ZodString.init → $ZodString.init + _ZodString.init + the instance methods\n //\n // A format type NEVER runs classic `ZodString.init`. So decorators installed only on\n // `ZodString.prototype` cannot reach `z.email()` at all — which is exactly why `isPrimaryKey`,\n // `isBusinessKey`, `isPassword`, `isOtp` and `isColor` were absent from every refinement type\n // while TypeScript declared them, and `z.uuid().isPrimaryKey()` threw.\n //\n // `ZodStringFormat` is therefore the single correct base: every string-format type calls its\n // `init`, including `ZodCustomStringFormat`, which backs `z.hex()`, `z.hostname()` and every\n // user-defined `z.stringFormat(...)`. Two prototypes, mirroring the two `declare module 'zod'`\n // interfaces one-for-one.\n //\n // WHAT THIS REPLACED, because it is the whole lesson. Until 2026-08-12 this step was 25 hand-listed\n // constructor names plus 27 hand-listed factory probes. Both lists had rotted and neither was ever\n // the mechanism: the name loop tested `typeof Candidate === 'object'` on a CLASS (a function), so\n // all 25 calls were silent no-ops, and at least eleven of the names did not exist in Zod 4\n // (`ZodHttpUrl`, `ZodHostname`, `ZodHex`, `ZodNanoId`, `ZodCuid`, `ZodCuid2`, `ZodMac`,\n // `ZodCidrV4`, `ZodCidrV6`, `ZodHash`, `ZodISODatetime`). The probe list, meanwhile, omitted\n // `hostname`, `hex`, `guid`, `e164`, `mac`, `xid`, `ksuid` and `base64url`, leaving those formats\n // with ZERO decorators. Verified by removing all 52 calls: parity holds on these two bases alone.\n // Do NOT reintroduce a per-format list — it is a second enumeration of Zod's format catalogue that\n // no one will maintain, and `string-format-decorator-parity.contract.test.ts` discovers the real\n // catalogue from the running Zod and fails loudly if either base ever stops covering it.\n // =============================================================================\n\n // NOTE the `typeof === 'function'` test. A Zod schema class IS a function; the loop this replaced\n // tested `typeof === 'object'` and was therefore a no-op at all 25 of its call sites.\n const stringFormatBase = zi.ZodStringFormat;\n if (typeof stringFormatBase === 'function' && (stringFormatBase as ZodCtor).prototype) {\n installStringDecoratorSurface((stringFormatBase as ZodCtor).prototype, zodStringMethodsToWrap);\n }\n\n // Note: z.range() is exported as standalone `z_range()` function.\n \n return zodInstance;\n}\n\n// Extend the Zod prototypes with the decorator methods (apply to the default imported instance)\nensureZodDecoratorsLoaded(z);\n"]}
|
|
1
|
+
{"version":3,"file":"zod.module-override.js","sourceRoot":"","sources":["../../../src/zod.module-override.ts"],"names":[],"mappings":"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","sourcesContent":["import { z, core } from 'zod';\n\nimport type { ArrayUIEditParams } from './zod-decorators.types';\nimport { BackendOnlyFieldParams, BusinessKeySetParams, WriteOnlySecretFieldParams, CustomFieldMetadata, DecoratorInput, DiscriminatorFieldParams, HiddenFieldParams, ImpersonalizeFieldParams, NotEditableFieldParams, PolymorphicFkVariant, RAGChunkingStrategy, RagSourceConfiguration, SCHEMA_METADATA, SummaryFieldParams, TtlFieldParams, VirtualFieldParams, ZodDecorator, ZodDecorator_ParamsType, UniqueFieldParams, ShowWhenParams } from './zod-decorators.types';\n\n// EnumLike type definition (not exported from Zod v4)\nexport type EnumLike = Record<string, string | number>;\nexport type EnumLikeType = Record<string, string>; \nexport type EnumValues<T extends EnumLikeType> = T[keyof T];\nexport type EnumStringValues<T extends EnumLikeType> = EnumValues<T> extends string ? EnumValues<T> : never;\n\nconst ApplyableTypeAllTypes = [ \"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodDate\", \"ZodEnum\", \"ZodOptional\", \"ZodArray\", \"ZodObject\" ];\nconst ApplyableTypeAllPrimitiveTypes = [ \"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodDate\", \"ZodEnum\", \"ZodOptional\"];\nconst ApplyableTypeAllArrayTypes = [ \"ZodArray\" ];\nconst ApplyableTypeAllObjectTypes = [ \"ZodObject\", \"ZodRecord\", \"ZodMap\" ];\n\n/**\n * List of Zod methods that return new instances and need wrapping\n */\nconst ZOD_INSTANCE_METHODS_TO_WRAP = [\n 'min', 'max', 'length', 'email', 'url', 'uuid', 'nanoid', 'cuid', 'cuid2', 'ulid',\n 'regex', 'includes', 'startsWith', 'endsWith', 'datetime', 'date', 'time', 'duration',\n 'ip', 'base64', 'trim', 'toLowerCase', 'toUpperCase', 'jwt', 'emoji',\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine',\n 'int', 'positive', 'negative', 'nonnegative', 'nonpositive', 'multipleOf', 'finite', 'safe', 'step',\n 'nonempty',\n // Object/record methods that return new schema instances (Zod v4)\n 'extend', 'merge', 'pick', 'omit', 'partial', 'deepPartial', 'required',\n 'strict', 'passthrough', 'strip', 'catchall',\n // Misc helpers that return new schema instances\n 'meta', 'prefault'\n];\n\n// Types that support field-level decorators (hidden, notEditable, sortable, showWhen, draft, etc.): primitives + object roots + arrays\nconst ApplyableTypeFormField = [ ...ApplyableTypeAllPrimitiveTypes, \"ZodObject\", \"ZodArray\" ];\n\nexport const ZodDecorator_ApplyableType: Record<ZodDecorator, string[]> = {\n [ZodDecorator.IS_DB_INDEXED]: [...ApplyableTypeAllPrimitiveTypes, \"ZodObject\"],\n [ZodDecorator.IS_FOREIGN_KEY]: [ \"ZodString\", \"ZodOptional\" ],\n [ZodDecorator.IS_HIDDEN]: ApplyableTypeFormField,\n [ZodDecorator.IS_NOT_EDITABLE]: ApplyableTypeFormField,\n // New decorators - apply to all types since they are schema-level metadata\n [ZodDecorator.IS_SUMMARY_FIELD]: ApplyableTypeAllTypes,\n [ZodDecorator.IS_BACKEND_ONLY]: ApplyableTypeAllTypes,\n [ZodDecorator.IS_WRITE_ONLY_SECRET]: ApplyableTypeAllTypes,\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET's all-types surface: any field\n // type can hold personal data (a nested `address` object and a `phoneNumbers` array as much as a\n // `fullName` string). Whether a given TREATMENT VALUE fits the field's type (e.g. MASK on a number)\n // is a separate axis, enforced by the resource factory's retention guard, not by this map.\n //\n // ⚠️ This list and the `ZodDecorator_FunctionType.impersonalizeWith` entry + the ZodType prototype\n // installs + the `declare module 'zod'` augmentations are ONE unit — wiring only some of them\n // recreates the P0.3a half-live trap: a non-empty list here alone makes `addChainableMethods`\n // auto-install a generic INSTANCE method on the RESULT of a first decorator, so\n // `z.string().isDBIndexed().impersonalizeWith(t)` works while `z.string().impersonalizeWith(t)`\n // throws (order-dependent `TypeError`). `impersonalize-treatment.test.ts` pins BOTH orders.\n //\n // WHAT THIS LIST DOES AND DOES NOT DETERMINE. It governs the INSTANCE install `addChainableMethods`\n // performs on an already-decorated schema. Whether a BARE schema exposes the method is decided by\n // the PROTOTYPE installs in `ensureZodDecoratorsLoaded`, which are a different set — so list\n // membership is neither necessary nor sufficient:\n // • reachable but NOT listed: ZodRecord / ZodMap / ZodUnion / ZodNullable / ZodDefault\n // (prototype-installed alongside IS_WRITE_ONLY_SECRET, or via the wrapper loop)\n // • reachable but NOT listed, and the case most likely to mislead: EVERY string-format\n // constructor — ZodEmail, ZodUUID, ZodCustomStringFormat, ZodISODateTime, … A format schema's\n // `constructor.name` is `ZodUUID`, which appears in NO list here, so `addChainableMethods`\n // installs nothing on it; it is fully decorated anyway because Zod's `$constructor` copies\n // `ZodStringFormat.prototype`'s keys onto the instance at init. Do NOT treat this map as the\n // authority on what a format type supports — it does not mention them, and never has.\n // • listed AND reachable, though it was the standing counter-example: ZodBigInt. It carried no\n // prototype install at all, so no decorator could start a chain on a bare `z.bigint()`. Its\n // own prototype block below now installs the backend-concern set, and its format siblings\n // `z.int64()` / `z.uint64()` follow it for the same reason they followed its emptiness before\n // (`ZodBigIntFormat.init` calls `ZodBigInt.init`). The WIRED list further down records the\n // change; do not read that list and this bullet as disagreeing.\n //\n // THE LISTED-BUT-UNREACHABLE SET: 65 entries on 2026-08-12, 18 now, and the remainder is a single\n // group kept absent for a SEMANTIC reason. \"No app needs it yet\" was explicitly rejected as a\n // reason — this is a framework, so a capability the vocabulary claims must exist before the case\n // arrives. Each entry was therefore resolved one of two ways, never left in disagreement:\n //\n // WIRED (the map's claim was right; the surface was missing)\n // • ZodBigInt × 16 — see its prototype block; every other layer already treats bigint as a leaf.\n // • ZodObject `isDBIndexed`/`isHidden`/`isNotEditable` — a composite field is indexable,\n // hideable and non-editable. The TS2320 clash with `z_file()`'s mixin was the only obstacle\n // and it cost nothing to remove, because `DecoratedPrimitiveZodType<T>` is `T & {…}`.\n // • `isBusinessKey` on ZodBoolean/ZodDate — the map says it mirrors IS_DB_INDEXED's primitive\n // set, and that IS on both. A date is a legitimate natural-key component.\n // • ZodOptional `ttl`/`isPassword`/`isOtp`/`isColor`/`businessKeySet` — natural authoring\n // orders. `businessKeySet` additionally learned to unwrap so its field-name validation still\n // runs through the wrapper instead of silently passing.\n // • `showWhen`/`isDraftRelaxed` across every form-field type — see the string surface constant.\n //\n // MAP TIGHTENED (the surface was right; the map claimed support that cannot exist)\n // • IS_DISCRIMINATOR lost ZodBigInt/ZodBoolean/ZodDate — `baseValues` is `string[]`.\n // • OBJECT_BUSINESS_KEY_SET lost ZodRecord/ZodMap — no named fields to validate against.\n //\n // CORRECTLY ABSENT — the 18 that remain, all factory-owned `*UI` / `*Spec`:\n // `moneyUI`/`codeUI`/`fileUI`/`durationUI` on ZodObject, `phoneUI`/`bigDecimalUI`/\n // `foreignKeyUI`/`timeUI` on ZodString, `dateTimeUI` on ZodDate, plus their `*Spec` twins.\n // These belong to `z_money()`, `z_code()`, `z_file()`, `z_duration()`, `z_phone()`,\n // `z_bigdecimal()`, which return an already-decorated schema. A bare `z.object({})` is NOT\n // money, and a bare `z.string()` is not a phone number — installing these would let an author\n // attach a renderer to a value whose shape it cannot read. The entry here is only the coarse\n // gate that lets `addChainableMethods` re-install the method on the factory's own result; the\n // map keys on constructor name and cannot tell `z_money()`'s object from any other.\n // Fluently reachable today: String, Number, Boolean, Date, Enum, Array, Object, Record, Map, Union,\n // Optional, Nullable, Default (+ the string-refinement and format-validator prototypes).\n // NOT reachable: BigInt, Pipe (what `z_phone()` returns), Literal, Tuple, Set, Null, Any,\n // Intersection, Lazy, Readonly, Catch — every one of these carries NO decorators at all, a\n // pre-existing decorator-WIDE gap that is mirrored here rather than special-cased for one decorator.\n // For those, `addImpersonalizeWith(schema, treatment)` needs no prototype method and the treatment\n // reads back normally (pinned for `z_phone` in `impersonalize-treatment.test.ts`).\n [ZodDecorator.IMPERSONALIZE_WITH]: ApplyableTypeAllTypes,\n // Portability provenance — all-types for the same reason as IMPERSONALIZE_WITH above: any field\n // type can be data the subject provided (a nested `address` object and a `phoneNumbers` array as\n // much as a `fullName` string). The list/FunctionType/prototype-install/`declare module`\n // augmentations are ONE unit here too — wiring only some recreates the order-dependent\n // half-live trap documented above.\n [ZodDecorator.PORTABILITY_PROVENANCE]: ApplyableTypeAllTypes,\n // Data categories — all-types for the same reason as the two above: any field type can hold\n // personal data (a nested `address` OBJECT and a `phoneNumbers` ARRAY as much as a `fullName`\n // string). The list/FunctionType/prototype-install/`declare module` augmentations are ONE unit\n // here too — wiring only some recreates the order-dependent half-live trap documented on\n // IMPERSONALIZE_WITH above.\n [ZodDecorator.DATA_CATEGORIES]: ApplyableTypeAllTypes,\n // Audit evidence — all-types for the same reason as the two above: authority and lifecycle state\n // are held in every field shape (`appRoles` is an ARRAY, `status` an ENUM, `suspendedUntil` a\n // DATE, a scope binding an OBJECT). The list/FunctionType/prototype-install/`declare module`\n // augmentations are ONE unit here too — wiring only some recreates the order-dependent half-live\n // trap documented on IMPERSONALIZE_WITH above.\n [ZodDecorator.IS_AUDIT_EVIDENCE]: ApplyableTypeAllTypes,\n // RAG source — deliberately NOT all-types: only TEXT can be a retrieval-corpus source, so the\n // fluent surface is string-backed (plus the wrappers a string field routinely lives under; the\n // string-FORMAT types get the method from the `ZodStringFormat.prototype` install, which — per the\n // long IMPERSONALIZE_WITH note above — never appears in this map). The FILE case does not go\n // through this map at all: `z_file({ ragSource })` registers the decorator on its own result via\n // `addDecorators`, which performs no applicability gating, so a file object carries the metadata\n // without `.ragSource()` ever being installed on ZodObject. The list/FunctionType/prototype-install/\n // `declare module` augmentations are ONE unit here too — wiring only some recreates the\n // order-dependent half-live trap documented on IMPERSONALIZE_WITH above.\n [ZodDecorator.RAG_SOURCE]: ['ZodString', 'ZodOptional', 'ZodNullable', 'ZodDefault'],\n [ZodDecorator.IS_VIRTUAL]: ApplyableTypeAllTypes,\n // Discriminators are STRING/ENUM-valued, not merely \"primitive\". `DiscriminatorFieldParams.baseValues`\n // is `string[]` and is documented as auto-detected from ENUM VALUES not covered by variants, so a\n // variant set is a finite list of string-comparable labels. A `ZodDate` cannot supply one, and\n // `ZodBoolean` / `ZodBigInt` cannot express theirs through a `string[]` without a coercion the\n // polymorphism engine never performs. Narrowed 2026-08-12 from `ApplyableTypeAllPrimitiveTypes`,\n // which claimed a support the params model cannot honour — the three removed types were half-live\n // (reachable only after another decorator) and had no prototype install, so nothing regresses.\n [ZodDecorator.IS_DISCRIMINATOR]: ['ZodString', 'ZodNumber', 'ZodEnum', 'ZodOptional'],\n [ZodDecorator.EXCLUDE_FROM_CREATE]: ApplyableTypeAllTypes,\n [ZodDecorator.EXCLUDE_FROM_UPDATE]: ApplyableTypeAllTypes,\n // Database constraint decorators - only strings and numbers can be unique (identifiers, codes, etc.)\n // ZodOptional is included to support chaining like z.string().isUnique().optional()\n [ZodDecorator.IS_UNIQUE]: ['ZodString', 'ZodNumber', 'ZodOptional'],\n // Primary key is only for strings (MongoDB _id is always a string or ObjectId)\n [ZodDecorator.IS_PRIMARY_KEY]: ['ZodString'],\n // Business key marker — applies to any primitive that can carry a stable identity\n // (string keys, numeric discriminators, enum keys). Mirrors `IS_DB_INDEXED`'s primitive\n // base set since business keys are also recursively indexed at the DB layer in Phase 2.\n [ZodDecorator.IS_BUSINESS_KEY]: ApplyableTypeAllPrimitiveTypes,\n // Composite business key — object-level only (analog of OBJECT_UI's applicable types)\n // Composite business key — object-level. NOT `ApplyableTypeAllObjectTypes`: the decorator's whole\n // safety property is validating the named fields against the schema's `shape` at decoration time,\n // and a `ZodRecord` / `ZodMap` has no named fields, so the check would silently pass anything.\n // Claiming support there is worse than omitting it — the author would get a key referencing fields\n // that cannot exist, with no error. `ZodOptional` stays and IS supported: the wrapper's shape is\n // reached by unwrapping (see the `businessKeySet` implementation).\n // Every wrapper that can hold an object and whose inner shape `findObjectShape` can reach —\n // Optional, Nullable and Default all already carry the method at runtime via the wrapper loop.\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET]: ['ZodObject', 'ZodOptional', 'ZodNullable', 'ZodDefault'],\n // TTL (Time To Live) - only for Date fields (MongoDB TTL indexes work on Date fields)\n [ZodDecorator.TTL]: ['ZodDate', 'ZodOptional'],\n // String edit mode convenience decorators - only for strings\n [ZodDecorator.IS_PASSWORD]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.IS_OTP]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.IS_COLOR]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.IS_DRAFT_RELAXED]: ApplyableTypeFormField,\n // FIX-P5-H1: Conditional visibility decorator - apply to all form field types\n [ZodDecorator.SHOW_WHEN]: ApplyableTypeFormField,\n // System enum decorator - names the vocabulary whose `system_enums.<name>` words label the field's\n // values. `ZodLiteral` too: a discriminated union's discriminator is a per-variant literal, and the\n // i18n cascade resolves a value ONLY through the enum its field declares (#966). `ZodString` for an\n // OPEN vocabulary (#1791): a string whose values belong to a named vocabulary declared outside the\n // schema — today the engine's audit event types. The schema cannot enumerate those values, so the\n // labeller takes them from where they are declared.\n [ZodDecorator.SYSTEM_ENUM]: ['ZodEnum', 'ZodLiteral', 'ZodString', 'ZodOptional'],\n // Ephemeral field decorator - only for strings (API keys, tokens, etc.)\n [ZodDecorator.IS_EPHEMERAL]: ['ZodString', 'ZodOptional'],\n // CRDT field decorator — all field types can be CRDT-enabled\n [ZodDecorator.IS_CRDT]: ApplyableTypeAllTypes,\n // Unified {primitive}UI decorators — each constrained to its applicable schema types\n [ZodDecorator.BOOLEAN_UI]: ['ZodBoolean', 'ZodOptional'],\n [ZodDecorator.STRING_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.NUMBER_UI]: ['ZodNumber', 'ZodOptional'],\n [ZodDecorator.ENUM_UI]: ['ZodEnum', 'ZodLiteral', 'ZodOptional'],\n [ZodDecorator.DATE_UI]: ['ZodDate', 'ZodOptional'],\n [ZodDecorator.DATETIME_UI]: ['ZodDate', 'ZodOptional'],\n [ZodDecorator.TIME_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.MONEY_UI]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.CODE_UI]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.FILE_UI]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.DURATION_UI]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.PHONE_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.BIGDECIMAL_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.FOREIGN_KEY_UI]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.ARRAY_UI]: ['ZodArray', 'ZodOptional'],\n [ZodDecorator.OBJECT_UI]: [...ApplyableTypeAllObjectTypes, 'ZodOptional'],\n // Per-primitive field specification decorators — same type constraints as UI counterparts\n [ZodDecorator.STRING_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.NUMBER_SPEC]: ['ZodNumber', 'ZodOptional'],\n [ZodDecorator.BOOLEAN_SPEC]: ['ZodBoolean', 'ZodOptional'],\n [ZodDecorator.DATE_SPEC]: ['ZodDate', 'ZodOptional'],\n [ZodDecorator.DATETIME_SPEC]: ['ZodDate', 'ZodOptional'],\n [ZodDecorator.TIME_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.ENUM_SPEC]: ['ZodEnum', 'ZodOptional'],\n [ZodDecorator.MONEY_SPEC]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.CODE_SPEC]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.FILE_SPEC]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.DURATION_SPEC]: ['ZodObject', 'ZodOptional'],\n [ZodDecorator.PHONE_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.BIGDECIMAL_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.FOREIGN_KEY_SPEC]: ['ZodString', 'ZodOptional'],\n [ZodDecorator.ARRAY_SPEC]: ['ZodArray', 'ZodOptional'],\n [ZodDecorator.OBJECT_SPEC]: [...ApplyableTypeAllObjectTypes, 'ZodOptional'],\n}\n\n/**\n * THE decorator surface of a string-backed schema — the single runtime source of truth.\n *\n * A string-format refinement (`z.uuid()`, `z.email()`, `z.hostname()`, `z.iso.datetime()`, …) is a\n * string-backed primitive, so it carries EXACTLY the surface `z.string()` carries. That is not a\n * convenience: it is what the type layer already promises. `declare module 'zod'` below merges the\n * same member list into `ZodString` AND `ZodStringFormat<Format>`, and every refinement type Zod\n * publishes is declared `extends ZodStringFormat<…>` — so `z.uuid().isPrimaryKey()` type-checks.\n * Anything this list omits is a method TypeScript says exists and the prototype does not have.\n *\n * WHY A LIST AND NOT THREE HAND-WRITTEN BLOCKS. Until 2026-08-12 the surface was re-typed by hand at\n * three install sites (the `ZodString` prototype, a named-constructor loop, a format-validator probe)\n * and they had drifted: five decorators — `isPrimaryKey`, `isBusinessKey`, `isPassword`, `isOtp`,\n * `isColor` — reached only `ZodString`, so `z.uuid().isPrimaryKey()` compiled and threw\n * `TypeError: ... is not a function`. Three copies of one list is three chances to forget; one list\n * consumed by one installer makes the divergence unrepresentable rather than merely tested-for.\n * See `.claude/rules/invariant-call-site-enumeration.md` — \"prefer making the invariant unbypassable\n * over applying it N times\".\n *\n * There are now exactly TWO install sites, `ZodString.prototype` and `ZodStringFormat.prototype`,\n * mirroring the two interfaces one-for-one — see the STEP 3 block in `ensureZodDecoratorsLoaded`\n * for why those two bases are complete and why the per-format lists that used to live there were\n * never the mechanism.\n *\n * KEEP IN SYNC WITH: the `ZodString` and `ZodStringFormat` interfaces in the `declare module 'zod'`\n * block below. `string-format-decorator-parity.contract.test.ts` fails — at type-check time AND at\n * runtime — the moment any of the three disagree.\n */\nconst STRING_SCHEMA_DECORATOR_SURFACE: readonly ZodDecorator[] = [\n ZodDecorator.IS_DB_INDEXED,\n ZodDecorator.IS_FOREIGN_KEY,\n ZodDecorator.IS_HIDDEN,\n ZodDecorator.IS_NOT_EDITABLE,\n ZodDecorator.IS_SUMMARY_FIELD,\n ZodDecorator.IS_BACKEND_ONLY,\n ZodDecorator.IS_WRITE_ONLY_SECRET,\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n ZodDecorator.IMPERSONALIZE_WITH,\n // Portability provenance — a format validator (`z.email()`, `z.uuid()`) is the shape personal data\n // most often takes, so omitting it here would leave the decorator half-live on exactly those fields.\n ZodDecorator.PORTABILITY_PROVENANCE,\n // Data categories — same argument as PORTABILITY_PROVENANCE directly above: `z.email()` and\n // `z.uuid()` are the shapes personal data most often takes, so omitting the format prototype\n // would leave the decorator half-live on exactly the fields a notice most needs to enumerate.\n ZodDecorator.DATA_CATEGORIES,\n ZodDecorator.IS_AUDIT_EVIDENCE,\n // RAG source — string-backed by nature (only text can be a corpus source), and a format validator\n // is a legitimate carrier: markdown/documentation fields are routinely `z.string()`, but a\n // `z.url()` pointing at authored content is not excluded from being chunked as text.\n ZodDecorator.RAG_SOURCE,\n ZodDecorator.IS_VIRTUAL,\n ZodDecorator.IS_DISCRIMINATOR,\n ZodDecorator.EXCLUDE_FROM_CREATE,\n ZodDecorator.EXCLUDE_FROM_UPDATE,\n // Database constraint decorators — format validators like email/uuid are commonly used as\n // unique identifiers, and `z.uuid().isPrimaryKey()` is the canonical surrogate-key shape.\n ZodDecorator.IS_UNIQUE,\n ZodDecorator.IS_PRIMARY_KEY,\n // Business key marker (data-seeding subsystem) — `z.email().isBusinessKey()` is the canonical\n // natural-key shape, so a format validator is if anything a MORE likely carrier than a bare string.\n ZodDecorator.IS_BUSINESS_KEY,\n // String edit-mode convenience decorators. These belong on refinement types for a mechanical\n // reason, not a stylistic one: each is exactly `stringUI({ edit: { editMode: X } })` plus a marker,\n // and `STRING_UI` itself is already on this surface. Excluding them would mean\n // `z.hex().stringUI({ edit: { editMode: 'color' } })` works while `z.hex().isColor()` throws —\n // the sugar unavailable precisely where the thing it desugars to is available.\n ZodDecorator.IS_PASSWORD,\n ZodDecorator.IS_OTP,\n ZodDecorator.IS_COLOR,\n ZodDecorator.IS_EPHEMERAL,\n ZodDecorator.IS_CRDT,\n // An OPEN vocabulary's name (#1791): the string's values are words of a vocabulary declared outside the\n // schema. A format validator is not excluded, since an identifier vocabulary may be declared as `z.uuid()`.\n ZodDecorator.SYSTEM_ENUM,\n // Generic FORM-FIELD decorators. `ZodDecorator_ApplyableType` gives both of these\n // `ApplyableTypeFormField` — every primitive plus object and array — but until 2026-08-12 they\n // were installed on NO primitive prototype, only on the wrapper types, so the natural authoring\n // form `z.string().showWhen({...})` (the shape this decorator's own `ShowWhenParams` JSDoc has\n // always documented) threw while `z.string().isHidden().showWhen({...})` worked. Unlike the\n // `*UI`/`*Spec` pairs below, these two belong to no factory: they are field-level concerns any\n // form field can carry, which is why they are on the shared surface rather than gated.\n ZodDecorator.SHOW_WHEN,\n ZodDecorator.IS_DRAFT_RELAXED,\n // Format validators like uuid/email/url are still string-backed primitives, so platform presets\n // must be able to apply string display/edit policies and author string field specifications.\n ZodDecorator.STRING_UI,\n ZodDecorator.STRING_SPEC,\n // A TIME-OF-DAY is genuinely string-backed — `z.iso.time()` holds \"09:30\" and carries no date —\n // so the applyable map has always named `ZodString` for this pair. Nothing installed it there,\n // which made the bare authoring form throw while `z.iso.time().optional().timeUI(...)` worked:\n // the wrapper types carry the whole surface. This surface installs on `ZodString` and\n // `ZodStringFormat` alike, which is what `z.iso.time()` actually is.\n //\n // The DATETIME pair is deliberately NOT here. A datetime is a point in time, which is a `Date` —\n // see the `ZodDate` block for where it lives and why.\n ZodDecorator.TIME_UI,\n ZodDecorator.TIME_SPEC,\n // FOREIGN KEY, on the same argument, and it is the one `{primitive}UI` family with NO factory to\n // own it: a foreign key is authored as `z.string().isForeignKey()` or as `z.uuid()`, never\n // through a `z_foreignKey()` helper. So unlike money, code, duration, bigdecimal, file and phone\n // — each of which declares its UI decorator on its own `Decorated*Schema` and is installed\n // per instance — this one has nowhere to live but the string prototypes.\n //\n // `z.uuid().foreignKeyUI(...)` is why it must be on this surface rather than on `ZodString`\n // alone: a surrogate key is a `ZodUUID`, which reaches its decorators through\n // `ZodStringFormat.prototype` and not through `ZodString.prototype`.\n //\n // (`z_foreignKeyVersioned()` is a genuine factory and declares the pair on its own return type,\n // but it covers versioned references only.)\n ZodDecorator.FOREIGN_KEY_UI,\n ZodDecorator.FOREIGN_KEY_SPEC,\n];\n\n// Type for decorator function - uses 'this' binding from prototype\ntype DecoratorFn = (this: z.ZodTypeAny, ...args: any[]) => DecoratedPrimitiveZodType<z.ZodTypeAny>;\n\nexport const ZodDecorator_FunctionType: Record<string, DecoratorFn> = {\n /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n isDBIndexed: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_DB_INDEXED]); },\n isForeignKey: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return params ? addDecorators(this, [{ ref: ZodDecorator.IS_FOREIGN_KEY, params}]) : addDecorators(this, [ZodDecorator.IS_FOREIGN_KEY]); },\n isSummaryField: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_SUMMARY_FIELD, params}]); },\n /**\n * The field never crosses the client boundary, in EITHER direction — stripped from the response\n * DTO, the summary DTO and the context DTO alike, and from the write DTOs too.\n *\n * `{ isReturnedAtCreation: true }` carves out the one exception: the field IS returned on `CREATE`\n * / `CREATE_MANY`, and each such disclosure emits a field-access AUDIT row naming the stored\n * artifact. Marking a field this way therefore creates an audit obligation as well as an exposure.\n */\n isBackendOnly: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_BACKEND_ONLY]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_BACKEND_ONLY, params}]); },\n isWriteOnlySecret: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_WRITE_ONLY_SECRET]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_WRITE_ONLY_SECRET, params}]); },\n isDiscriminator: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_DISCRIMINATOR]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_DISCRIMINATOR, params}]); },\n /**\n * Keep this field out of the CREATE contract — the server owns its initial value.\n *\n * ⚠️ **A client that sends it anyway gets a SUCCESS, and the value goes nowhere.** The field is\n * removed from the create shape, so it is stripped before validation rather than refused. That is\n * deliberate mass-assignment protection, and it means a form that collects the field submits\n * silently-discarded data with nothing to notice.\n *\n * This is NOT how the update side behaves — see `excludeFromUpdate`. The two decorators read as a\n * pair and do opposite things on a violation.\n */\n excludeFromCreate: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.EXCLUDE_FROM_CREATE]); },\n /**\n * Keep this field out of the UPDATE contract — it may be set at creation and not changed after.\n *\n * ⚠️ **A client that ATTEMPTS TO CHANGE it is REFUSED with a 4xx**, not silently stripped. The\n * asymmetry with `excludeFromCreate` is intended: a create carrying a server-owned field is\n * usually an over-broad form, while an update changing a read-only field is a caller asserting\n * something it may not, and telling it so is more useful than dropping the change.\n *\n * Sending the field with its CURRENT value is not an attempt to change it and is accepted — the\n * comparison handles the shapes an echo really takes (a `Date` resent as an ISO string, an id\n * resent as a string against a stored driver object).\n *\n * LIMITATION: a read-only field whose value is a plain OBJECT or ARRAY compares equal to any other\n * object, so a change to one is not detected and is not refused. Prefer a scalar for a field you\n * need this guard to protect.\n */\n excludeFromUpdate: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.EXCLUDE_FROM_UPDATE]); },\n isUnique: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_UNIQUE]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_UNIQUE, params}]); },\n // isPrimaryKey is a composite decorator: implies excludeFromCreate + isHidden + isUnique(sparse:false) + isDBIndexed\n isPrimaryKey: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { \n return addDecorators(this, [\n ZodDecorator.IS_PRIMARY_KEY,\n ZodDecorator.EXCLUDE_FROM_CREATE,\n ZodDecorator.IS_HIDDEN,\n ZodDecorator.IS_DB_INDEXED,\n { ref: ZodDecorator.IS_UNIQUE, params: { scope: 'global', sparse: false } },\n ]); \n },\n // isBusinessKey is a PURE marker — unlike isPrimaryKey, it does NOT imply\n // excludeFromCreate / isHidden / isUnique. Business keys are user-editable\n // (renames are handled by per-seed `renames: [{ from, to }]` migrators in\n // Phase 4 of the data-seeding subsystem). Indexing is a Phase 2 derivation\n // performed by the seed dispatcher when it materialises composite indexes.\n isBusinessKey: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n return addDecorators(this, [ZodDecorator.IS_BUSINESS_KEY]);\n },\n // businessKeySet is the OBJECT-LEVEL composite analog of isBusinessKey.\n // Validates at decoration time that every named field exists on the\n // underlying ZodObject shape and that the array is non-empty. Mixing\n // field-level isBusinessKey() with object-level businessKeySet([...]) on\n // the same schema is rejected by the seed authoring layer (Phase 1.3) —\n // we keep the decorator itself permissive so that tests can verify the\n // higher-level validator rejects the mix.\n businessKeySet: function(\n this: z.ZodTypeAny,\n fields: string[],\n params?: Omit<BusinessKeySetParams, 'fields'>,\n ): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n if (!Array.isArray(fields) || fields.length === 0) {\n throw new Error(\n `businessKeySet([...]) requires a non-empty array of field names (received ${JSON.stringify(fields)}).`,\n );\n }\n // Reach the OBJECT shape, unwrapping wrappers on the way. `z.object({…}).optional()` is a\n // legitimate authoring order and its shape lives on the inner type; without this the guard below\n // would find no shape and silently accept field names that do not exist — the decorator would\n // report success while validating nothing.\n const findObjectShape = (candidate: unknown, depth = 0): Record<string, unknown> | undefined => {\n if (!candidate || depth > 5) return undefined;\n const node = candidate as { shape?: Record<string, unknown>; _zod?: { def?: { shape?: Record<string, unknown>; innerType?: unknown } } };\n const own = node.shape ?? node._zod?.def?.shape;\n if (own && typeof own === 'object') return own;\n return findObjectShape(node._zod?.def?.innerType, depth + 1);\n };\n const shape = findObjectShape(this);\n if (shape && typeof shape === 'object') {\n const missing = fields.filter((f) => !(f in shape));\n if (missing.length > 0) {\n throw new Error(\n `businessKeySet([...]) references field(s) not present in the schema shape: ${missing.join(', ')}.`,\n );\n }\n }\n // `skipRowsMissing` narrows the key it belongs to, so naming a field OUTSIDE the key is not a\n // harmless extra — it would silently scope the constraint by a field the identity never\n // mentions. Rejected at decoration time, where the author can still see both lists.\n const skipRowsMissing = params?.skipRowsMissing;\n if (skipRowsMissing !== undefined) {\n if (!Array.isArray(skipRowsMissing) || skipRowsMissing.length === 0) {\n throw new Error(\n `businessKeySet([...], { skipRowsMissing }) requires a non-empty array of field names (received ${JSON.stringify(skipRowsMissing)}).`,\n );\n }\n const notInKey = skipRowsMissing.filter((f) => !fields.includes(f));\n if (notInKey.length > 0) {\n throw new Error(\n `businessKeySet([...], { skipRowsMissing }) names field(s) that are not part of the key: ${notInKey.join(', ')}.`,\n );\n }\n }\n return addDecorators(this, [\n {\n ref: ZodDecorator.OBJECT_BUSINESS_KEY_SET,\n params: {\n fields: [...fields],\n ...(skipRowsMissing ? { skipRowsMissing: [...skipRowsMissing] } : {}),\n ...(params?.conflictMessageReference ? { conflictMessageReference: params.conflictMessageReference } : {}),\n },\n },\n ]);\n },\n // TTL (Time To Live) - for automatic document expiration in MongoDB\n ttl: function(this: z.ZodTypeAny, params: ZodDecorator_ParamsType[ZodDecorator.TTL]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.TTL, params}]); },\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\n // Impersonalization scrub treatment (retention capability). Deliberately declared OUTSIDE the\n // `shared-structural-methods` anchor: the compiled framework-knowledge surface for this decorator\n // is scheduled with its teaching skill in Phase 3 of the retention plan (a capability whose runtime\n // is still being built cannot be taught honestly). Move it inside the anchor when Phase 3 lands.\n //\n // The treatment is REQUIRED (no marker/undefined form) — a field either declares how it is scrubbed\n // or carries no treatment at all. `applySingleDecorator` fails loud on a non-string/blank value, so\n // this method and the `addImpersonalizeWith` helper share one validation chokepoint — which is also\n // where the optional `{ maskValue }` override is normalized and validated.\n impersonalizeWith: function(this: z.ZodTypeAny, treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IMPERSONALIZE_WITH, params: options ? { ...options, treatment } : treatment }]); },\n // Portability provenance — REQUIRED value, validated at the shared `applySingleDecorator`\n // chokepoint so this method and `addPortabilityProvenance` reject the same inputs.\n portabilityProvenance: function(this: z.ZodTypeAny, provenance: string): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.PORTABILITY_PROVENANCE, params: provenance }]); },\n dataCategories: function(this: z.ZodTypeAny, categories: string | readonly string[]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATA_CATEGORIES, params: categories }]); },\n // Audit evidence — a PURE parameterless marker (the isBusinessKey shape, not the isPrimaryKey\n // shape): it implies no other decorator. Marking a field says only that its before/after values\n // belong on the resource-operation audit event.\n isAuditEvidence: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_AUDIT_EVIDENCE]); },\n // RAG source (resource-native RAG capability). The config is OPTIONAL — a bare `.ragSource()` is a\n // complete declaration — so unlike impersonalizeWith there is no required-value door to guard;\n // what the shared `applySingleDecorator` chokepoint enforces instead is config validity\n // (chunkSize/chunkOverlap/strategy) and the refused companions (secrets, `.ttl()`), identically\n // for this method and the `addRagSource` helper.\n ragSource: function(this: z.ZodTypeAny, config?: RagSourceConfiguration): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.RAG_SOURCE, params: config }]); },\n isHidden: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_HIDDEN, params}]); },\n isNotEditable: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_NOT_EDITABLE, params}]); },\n isSortable: function(this: z.ZodTypeAny, params?: Pick<ArrayUIEditParams, 'dnd' | 'upDownIcons'>): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ARRAY_UI, params: { edit: { isSortable: true, ...params } } }]); },\n // String edit mode convenience composites — structural marker + STRING_UI side effect\n [ZodDecorator.IS_PASSWORD]: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_PASSWORD, params: undefined }, { ref: ZodDecorator.STRING_UI, params: { edit: { editMode: 'password' } } }]); },\n [ZodDecorator.IS_OTP]: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_OTP, params }, { ref: ZodDecorator.STRING_UI, params: { edit: { editMode: 'otp' } } }]); },\n [ZodDecorator.IS_COLOR]: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_COLOR, params: undefined }, { ref: ZodDecorator.STRING_UI, params: { edit: { editMode: 'color' } } }]); },\n // New decorators for resource derived objects rationalization\n isVirtual: function(this: z.ZodTypeAny, params: ZodDecorator_ParamsType[ZodDecorator.IS_VIRTUAL]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_VIRTUAL, params}]); },\n isDraftRelaxed: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_DRAFT_RELAXED]); },\n // FIX-P5-H1: Conditional visibility decorator\n showWhen: function(this: z.ZodTypeAny, params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.SHOW_WHEN, params }]); },\n // System enum decorator - names the vocabulary whose `system_enums.<name>` words label the field's values: an\n // enum, a discriminator literal, or an OPEN-vocabulary string (#1791)\n systemEnum: function(this: z.ZodTypeAny, name: ZodDecorator_ParamsType[ZodDecorator.SYSTEM_ENUM]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.SYSTEM_ENUM, params: name }]); },\n // Ephemeral field decorator — composite: marks response-only transient data + sets secret display mode + prevents editing.\n // `initiallyRevealed: true` because an ephemeral value is shown exactly once (one-time reveal) — the caller must read/copy it immediately; the eye toggle still lets them re-hide it.\n // Server-minted, output-only. For a CLIENT-provided secret the server must keep but never echo back, use `.isWriteOnlySecret()` instead (client-writable + masked on read). See WriteOnlySecretFieldParams for the full decision.\n /**\n * The server minted this value and hands it over exactly ONCE — an API key's plaintext, an OAuth\n * client secret, a provisioning token. Composite: secret display, one-time reveal, not editable.\n *\n * **Every disclosure of it emits a field-access AUDIT row**, on ANY operation, naming the secret\n * actually handed over. That is the point of the marker rather than a side effect, and it is why\n * this — not `isBackendOnly` — is the home for a one-time reveal: an ephemeral field is deliberately\n * NOT backend-only, so it survives into the response DTO where the disclosure scan can see it.\n *\n * ⚠️ **The scan reads the TOP LEVEL of the response shape only.** A secret nested inside an object\n * is not seen and its disclosure is not recorded. Keep a one-time reveal at the top level of the\n * DTO that returns it.\n */\n isEphemeral: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.IS_EPHEMERAL, params: undefined }, { ref: ZodDecorator.STRING_UI, params: { display: { displayMode: 'secret', initiallyRevealed: true } } }, { ref: ZodDecorator.IS_NOT_EDITABLE, params: undefined }]); },\n // CRDT field decorator — boolean marker for future field-level LWW merge\n isCRDT: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_CRDT]); },\n // Unified {primitive}UI decorators — new API\n booleanUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.BOOLEAN_UI, params }]); },\n stringUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.STRING_UI, params }]); },\n numberUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.NUMBER_UI, params }]); },\n enumUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ENUM_UI, params }]); },\n dateUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATE_UI, params }]); },\n dateTimeUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATETIME_UI, params }]); },\n timeUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.TIME_UI, params }]); },\n moneyUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.MONEY_UI, params }]); },\n codeUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.CODE_UI, params }]); },\n fileUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.FILE_UI, params }]); },\n durationUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DURATION_UI, params }]); },\n phoneUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.PHONE_UI, params }]); },\n bigDecimalUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.BIGDECIMAL_UI, params }]); },\n foreignKeyUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.FOREIGN_KEY_UI, params }]); },\n // Per-primitive field specification decorators (business semantics — companion-only)\n stringSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.STRING_SPEC, params }]); },\n numberSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.NUMBER_SPEC, params }]); },\n booleanSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.BOOLEAN_SPEC, params }]); },\n dateSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATE_SPEC, params }]); },\n dateTimeSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATETIME_SPEC, params }]); },\n timeSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.TIME_SPEC, params }]); },\n enumSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ENUM_SPEC, params }]); },\n moneySpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.MONEY_SPEC, params }]); },\n codeSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.CODE_SPEC, params }]); },\n fileSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.FILE_SPEC, params }]); },\n durationSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DURATION_SPEC, params }]); },\n phoneSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.PHONE_SPEC, params }]); },\n bigDecimalSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.BIGDECIMAL_SPEC, params }]); },\n foreignKeySpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.FOREIGN_KEY_SPEC, params }]); },\n arrayUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ARRAY_UI, params }]); },\n arraySpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.ARRAY_SPEC, params }]); },\n objectUI: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.OBJECT_UI, params }]); },\n objectSpec: function(this: z.ZodTypeAny, params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.OBJECT_SPEC, params }]); },\n}\n\nexport type DecoratedPrimitiveZodType<T extends z.ZodTypeAny = z.ZodTypeAny> = T & {\n /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_BACKEND_ONLY]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: ZodDecorator_ParamsType[ZodDecorator.IS_WRITE_ONLY_SECRET]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: ZodDecorator_ParamsType[ZodDecorator.IS_DISCRIMINATOR]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_UNIQUE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_UNIQUE]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_PRIMARY_KEY](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.TTL](params: ZodDecorator_ParamsType[ZodDecorator.TTL]): DecoratedPrimitiveZodType<T>;\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\n // Impersonalization scrub treatment. MUST be declared here as well as on each source ZodType:\n // every decorator returns `DecoratedPrimitiveZodType`, so without this entry any chain longer than\n // one decoration (`z.string().isDBIndexed().impersonalizeWith(...)`) would lose the method at the\n // type level even though the runtime installs it. (Anchor placement: see the FunctionType entry.)\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<T>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<T>;\n /**\n * @wildo_source:part:start zod.decorators.data-categories facet:layer:shared facet:family:decorator facet:kind:api facet:audience:app-developer facet:family:method-surface\n *\n * Declare WHICH KINDS of personal data this field holds — the vocabulary a privacy notice\n * enumerates. Import `PersonalDataCategory` from `@wildo-ai/saas-models`.\n *\n * Accepts a single category (the common case) or an array when a field genuinely spans two. At\n * least one is required: a field that holds NO personal data carries no declaration at all, and\n * that absence is exactly what the compliance gap report reads.\n *\n * Declare it on the field that holds the value. Never on a field merely because its NAME suggests\n * a category — `credentials` is the one category the framework derives for you, and it derives it\n * from `.isPassword()` / `.isOtp()` / `.isWriteOnlySecret()`, never from an identifier.\n *\n * @example\n * fullName: z.string().dataCategories(PersonalDataCategory.IDENTITY)\n * @example\n * email: z.email().nullish().dataCategories(PersonalDataCategory.CONTACT_DETAILS)\n * @example\n * // A field that genuinely spans two — an array never forces you to pick a lie.\n * dietaryNotes: z.string().dataCategories([PersonalDataCategory.USER_CONTENT, PersonalDataCategory.SPECIAL_CATEGORY_HEALTH])\n */\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<T>;\n /** @wildo_source:part:end zod.decorators.data-categories */\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<T>;\n /**\n * @wildo_source:part:start zod.decorators.rag-source facet:layer:shared facet:family:decorator facet:family:method-surface facet:kind:api facet:audience:app-developer\n *\n * `.ragSource(config?)` — declare this field's text a source of the application's retrieval\n * corpus. Live on every string-backed schema (`z.string()` and every string FORMAT such as\n * `z.email()` / `z.url()`) and carried across the `.optional()` / `.nullable()` / `.default()`\n * wrappers, so it composes anywhere in a decorator chain.\n *\n * The config is OPTIONAL and there is no `enabled` flag: a bare `.ragSource()` is a complete\n * declaration that accepts the framework chunking defaults. Presence IS enablement.\n *\n * @example\n * z.string().ragSource()\n * @example\n * z.string().ragSource({ chunkingStrategy: RAGChunkingStrategy.MARKDOWN, chunkSize: 1200, chunkOverlap: 150 }).optional()\n */\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<T>;\n /** @wildo_source:part:end zod.decorators.rag-source */\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<T>;\n // New decorators for resource derived objects rationalization\n [ZodDecorator.IS_VIRTUAL](params: ZodDecorator_ParamsType[ZodDecorator.IS_VIRTUAL]): DecoratedPrimitiveZodType<T>;\n // String edit mode convenience decorators\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<T>;\n // FIX-P5-H1: Conditional visibility decorator\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<T>;\n // System enum decorator\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<T>;\n // Ephemeral field decorator (composite: secret display + not editable + ephemeral marker)\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<T>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<T>;\n // Unified {primitive}UI decorators — new API\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.MONEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.CODE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.FILE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DURATION_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.PHONE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.BIGDECIMAL_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<T>;\n // Per-primitive {primitive}Spec decorators — companion-only business semantics surface,\n // parallel to the {primitive}UI block above. The runtime surface (`addChainableMethods`)\n // installs every applicable spec method via `Object.defineProperty`, the per-Zod-type\n // interface augmentations (`ZodString` / `ZodOptional` / `ZodNullable`) declare them on\n // the source schema, and this aggregate type must declare them too — otherwise any chain\n // longer than one decoration drops the `*Spec` surface (the result becomes\n // `DecoratedPrimitiveZodType<...>` which would lack these methods).\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.MONEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.CODE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.FILE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.DURATION_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.PHONE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.BIGDECIMAL_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<T>;\n\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<T>;\n};\n\n\n// =============================================================================\n// MAIN ADD UTILITIES\n// =============================================================================\n\n\nexport function ZodDecorator_FunctionAddDecorators(this: z.ZodTypeAny, decorators: DecoratorInput[]): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n return addDecorators(this, decorators);\n}\n\nexport const defaultZodDecoSchemaProperties = {\n enumerable : false,\n writable : false,\n}\n\n\nexport function addDecorators<T extends z.ZodTypeAny>(\n schema: T, \n decoratorInputs: DecoratorInput[]\n): DecoratedPrimitiveZodType<T> {\n // Lazy initialization: ensure decorators are loaded when first used\n ensureZodDecoratorsLoaded(z);\n \n let resultSchema = schema;\n \n // Apply each decorator in sequence\n for (const decoratorInput of decoratorInputs) {\n resultSchema = (typeof decoratorInput === 'string') \n ? applySingleDecorator(resultSchema, decoratorInput) \n : applySingleDecorator(resultSchema, decoratorInput.ref, decoratorInput.params);\n }\n \n // Add all chainable methods to the final schema\n return addChainableMethods(resultSchema) as DecoratedPrimitiveZodType<T>;\n}\n\n\n/**\n * Deep-clone a value, preserving function references (React components in `IconLike`).\n * - Primitives & functions: returned by reference\n * - Arrays: cloned recursively\n * - Date, RegExp: cloned via constructors\n * - Plain objects: cloned recursively with independent property copies\n * - Shared sub-objects: cloned once and reused (WeakMap tracks original→clone)\n * - Circular references: safely resolved via the shared-reference map\n */\nfunction deepCloneValue(value: unknown, seen?: WeakMap<object, unknown>): unknown {\n if (value === null || value === undefined || typeof value !== 'object') {\n return value;\n }\n if (!seen) seen = new WeakMap();\n const cached = seen.get(value as object);\n if (cached !== undefined) return cached;\n\n if (value instanceof Date) {\n const cloned = new Date(value.getTime());\n seen.set(value as object, cloned);\n return cloned;\n }\n if (value instanceof RegExp) {\n const cloned = new RegExp(value.source, value.flags);\n seen.set(value as object, cloned);\n return cloned;\n }\n if (Array.isArray(value)) {\n const cloned: unknown[] = [];\n seen.set(value as object, cloned);\n for (const v of value) cloned.push(deepCloneValue(v, seen));\n return cloned;\n }\n\n const result: Record<string, unknown> = {};\n seen.set(value as object, result);\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n result[k] = deepCloneValue(v, seen);\n }\n return result;\n}\n\n/**\n * Clone a Zod schema with an independent deep-copy of its decorator metadata.\n *\n * Creates a new schema instance that shares the same Zod validation behavior\n * but has independent decorator metadata. Mutations (`.enumUI()`,\n * `.isDBIndexed()`, etc.) on the clone do not affect the original, and vice versa.\n *\n * Function references (React components in `IconLike`) are preserved by reference;\n * all other metadata values (objects, arrays, primitives) are deep-cloned.\n *\n * **Use case:** reusable leaf schemas (enums, strings, numbers) with shared visual\n * config but independent field-level decorators per resource.\n *\n * **Not required to avoid wrapper leakage.** Decorating a wrapper of a shared leaf\n * (`SharedLeaf.optional().isDBIndexed()`) is safe on its own: the decorator runtime\n * copy-on-writes the wrapper's inner schema before mirroring metadata onto it, so\n * the shared leaf is never written to. Reach for `z_clone` when you want a leaf with\n * DIFFERENT baseline decorators, not as leak protection.\n *\n * **Implementation note:** clones through Zod's own `.clone(def)` with a spread\n * definition. A structural copy (`Object.assign({}, schema)`) cannot work here —\n * `_zod` is a non-enumerable own property, so the copy would omit Zod's internals\n * entirely and every method on it would still act on the ORIGINAL instance\n * (`z_clone(leaf).optional()` would wrap `leaf`, not the clone).\n *\n * **Scope limitation:** the definition is spread SHALLOWLY, so composite members\n * stay shared by reference — `z.object()` shape fields, and a wrapper's own\n * `innerType`. Decorating those members directly still reaches the original; the\n * clone isolates THIS schema's decorators, not its children's.\n *\n * **Related minimal helper:** for the polymorphism engine's specific need —\n * cloning a base-shape field once per variant inside\n * `applyBusinessKeyMarkers` to apply a single decorator without mutating\n * the shared source — see `cloneFieldForBusinessKeyDecoration` in\n * `engine/saas-models/src/resources/utils/resource-polymorphism.schemas.ts`.\n * That helper is a deliberately stripped-down version: it inherits Zod\n * internals via prototype lookup and only shallow-copies `SCHEMA_METADATA`,\n * which is sufficient for the single-decorator mutation pattern used in\n * the polymorphism engine. `z_clone` is the right choice for general-\n * purpose leaf reuse across resources; the polymorphism helper is the\n * right choice when you need MINIMAL isolation in a hot per-variant loop.\n *\n * @example\n * ```ts\n * // Master enum with common visual config\n * const PriorityEnum = z.enum(Priority)\n * .systemEnum('Priority')\n * .enumUI({ values: { low: { color: 'secondary' }, high: { color: 'destructive' } } });\n *\n * // Each resource gets an independent clone\n * const TodosSchema = z.object({\n * priority: z_clone(PriorityEnum).isDBIndexed().isSummaryField(),\n * });\n * const TasksSchema = z.object({\n * priority: z_clone(PriorityEnum).isNotEditable(),\n * });\n * // TodosSchema.priority has isDBIndexed + isSummaryField — TasksSchema.priority does not\n * ```\n */\nexport function z_clone<T extends z.ZodTypeAny>(schema: T): DecoratedPrimitiveZodType<T> {\n const definition = (schema as any)?._zod?.def ?? (schema as any)?.def;\n const nativeClone = (schema as any)?.clone;\n if (typeof nativeClone !== 'function' || !definition || typeof definition !== 'object') {\n throw new Error(\n 'z_clone requires a Zod schema instance (missing `.clone()` or Zod definition).',\n );\n }\n\n const clone = nativeClone.call(schema, { ...definition }) as T;\n\n const metadata = (schema as any)[SCHEMA_METADATA];\n if (metadata) {\n (clone as any)[SCHEMA_METADATA] = deepCloneValue(metadata);\n }\n\n return addChainableMethods(clone) as DecoratedPrimitiveZodType<T>;\n}\n\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Marks an inner schema instance as EXCLUSIVELY OWNED by one wrapper.\n *\n * The value is the owning wrapper instance, not a boolean: ownership is a\n * relation, and a boolean would let a second wrapper mistake someone else's\n * private copy for its own and resume writing into a schema it does not own —\n * reintroducing the very leak this marker exists to close.\n *\n * Deliberately non-enumerable so structural copies (`Object.assign`, spreads,\n * anything that walks own enumerable keys) never inherit an ownership claim\n * that does not belong to them.\n */\nconst WRAPPER_OWNED_INNER_SCHEMA: unique symbol = Symbol('wildo.wrapperOwnedInnerSchema');\n\n/**\n * Resolve the MUTABLE Zod definition object of a schema.\n *\n * Zod 4 stores it at `_zod.def`; the bare `.def` alias is the fallback for\n * schema-like objects that never went through the Zod constructor. Both are\n * read here because `innerType` must be both READ and REWRITTEN through the\n * same object for copy-on-write to take effect.\n */\nfunction getSchemaDefinition(schema: z.ZodTypeAny): Record<string, unknown> | undefined {\n const def = (schema as any)?._zod?.def ?? (schema as any)?.def;\n return def && typeof def === 'object' ? def as Record<string, unknown> : undefined;\n}\n\nfunction getInnerTypeSchema(schema: z.ZodTypeAny): z.ZodTypeAny | undefined {\n const innerType = getSchemaDefinition(schema)?.innerType;\n return innerType && typeof innerType === 'object'\n ? innerType as z.ZodTypeAny\n : undefined;\n}\n\n/**\n * Produce a private, fully-functional copy of a wrapper's inner schema.\n *\n * Uses Zod's OWN `.clone(def)` rather than a structural copy, because `_zod` is\n * a NON-ENUMERABLE own property: `Object.assign({}, schema)` silently omits it\n * and yields a husk whose every method is still bound to the ORIGINAL instance.\n * Such a husk throws `Cannot read properties of undefined (reading 'optin')`\n * the moment Zod parses through it, and — worse — its `.optional()` would wrap\n * the original rather than the copy. `.clone()` runs the real constructor, so\n * the result carries its own `_zod`, its own parse closures, and the correct\n * subclass (`ZodEmail` stays `ZodEmail`).\n *\n * The definition is SPREAD rather than shared. Zod's argument-less `.clone()`\n * reuses the source `def` object by reference, which would leave the copy's\n * structure aliased to the original — a later `innerType` rewrite on the copy\n * would then reach back into the schema we are trying to protect.\n *\n * Returns `undefined` when no honest private copy can be made, so the caller\n * can fail closed instead of falling back to mutating shared state.\n */\nfunction cloneInnerSchemaForWrapper(innerType: z.ZodTypeAny): z.ZodTypeAny | undefined {\n const nativeClone = (innerType as any)?.clone;\n const innerDefinition = getSchemaDefinition(innerType);\n if (typeof nativeClone !== 'function' || !innerDefinition) {\n return undefined;\n }\n\n let cloned: z.ZodTypeAny | undefined;\n try {\n cloned = nativeClone.call(innerType, { ...innerDefinition }) as z.ZodTypeAny;\n } catch {\n return undefined;\n }\n if (!cloned || cloned === innerType) {\n return undefined;\n }\n\n // `.clone()` copies the Zod definition, never our decorator symbol — carry the\n // inner's OWN decorators across so the private copy starts semantically identical.\n const existingMetadata = (innerType as any)[SCHEMA_METADATA] as CustomFieldMetadata | undefined;\n if (existingMetadata) {\n (cloned as any)[SCHEMA_METADATA] = { ...existingMetadata };\n }\n\n // A freshly constructed instance has none of the chainable decorator methods\n // installed as own properties; without this, `unwrapSchema(field).isDBIndexed()`\n // would regress for callers that decorate an unwrapped schema.\n return addChainableMethods(cloned);\n}\n\n/**\n * Give a wrapper a private inner schema it may safely write field metadata onto.\n *\n * Idempotent per wrapper: the first decorator applied to a given wrapper installs\n * the private copy, every later decorator on that same wrapper recognises its own\n * marker and reuses it, so a decorator chain clones exactly once.\n */\nfunction ensureWrapperOwnedInnerSchema(\n wrapper: z.ZodTypeAny,\n wrapperDefinition: Record<string, unknown>,\n innerType: z.ZodTypeAny,\n): z.ZodTypeAny | undefined {\n if ((innerType as any)[WRAPPER_OWNED_INNER_SCHEMA] === wrapper) {\n return innerType;\n }\n\n const cloned = cloneInnerSchemaForWrapper(innerType);\n if (!cloned) {\n return undefined;\n }\n\n Object.defineProperty(cloned, WRAPPER_OWNED_INNER_SCHEMA, {\n value: wrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n wrapperDefinition.innerType = cloned;\n return cloned;\n}\n\n/**\n * Mirror a wrapper's decorator metadata onto the schema it wraps — WITHOUT\n * mutating a schema the wrapper does not own.\n *\n * **Why the mirroring exists.** Decorators are commonly declared on the wrapper\n * (`z.string().optional().isForeignKey()`), while a large family of consumers\n * unwraps first and then reads metadata off the unwrapped schema. Those readers\n * would otherwise see an undecorated leaf.\n *\n * **Why it is copy-on-write.** A wrapper's `innerType` is frequently a SHARED,\n * canonical leaf reused across resources (`TimezoneSchema.default('UTC')` is\n * declared by both the User and the Organization preferences resources). Writing\n * field metadata straight onto that instance published one resource's field\n * decorators onto the shared TYPE, so every other consumer of the leaf silently\n * inherited them — order-dependently, by module import order. Confusing a reusable\n * TYPE with a per-resource FIELD DECLARATION is the root defect; a wrapper may\n * describe its own field, never the type it happens to reuse.\n *\n * The stakes are not cosmetic: `impersonalizeWith` drives the erasure writer, so\n * a leaked treatment scrubs a field its author never marked.\n *\n * **Fail closed.** If no private copy can be made, the mirroring is skipped\n * rather than performed against shared state. The decorator still lives on the\n * wrapper and `getMetadataRecursive` still finds it from there; losing a\n * mirrored read is recoverable, corrupting a shared schema is not.\n */\nfunction propagateWrapperDecoratorMetadataToInnerSchema(\n schema: z.ZodTypeAny,\n metadata: CustomFieldMetadata,\n): void {\n const wrapperDefinition = getSchemaDefinition(schema);\n const innerType = getInnerTypeSchema(schema);\n if (!wrapperDefinition || !innerType || innerType === schema) {\n return;\n }\n\n const ownedInnerType = ensureWrapperOwnedInnerSchema(schema, wrapperDefinition, innerType);\n if (!ownedInnerType) {\n return;\n }\n\n const innerMetadata: CustomFieldMetadata = (ownedInnerType as any)[SCHEMA_METADATA] || {};\n (ownedInnerType as any)[SCHEMA_METADATA] = {\n ...innerMetadata,\n ...metadata,\n };\n\n // Down the WHOLE wrapper chain, not one level (#1647). `.nullish()` is `ZodOptional(ZodNullable(leaf))`\n // and `.default(x).optional()` is two wrappers as well, so mirroring one level left a decorator written\n // after them on the middle wrapper, never on the leaf. Every reader that unwraps to the leaf then saw an\n // undecorated field — the SQL planner among them, so `.nullish().isDBIndexed()` was indexed on MongoDB\n // (which reads the field schema) and silently not on PostgreSQL. Each level takes its own private copy\n // through the same copy-on-write, so a shared leaf is still never written.\n propagateWrapperDecoratorMetadataToInnerSchema(ownedInnerType, metadata);\n}\n\n/**\n * @wildo_source:part:start zod.decorators.chainable-runtime\n *\n * Deep-merge mergeable decorator params with special handling for the `values` key.\n *\n * - Nested plain objects are merged recursively so later decorator calls can\n * augment `display`, `edit`, and similar buckets without dropping earlier data.\n * - `values` is merged per key, preserving existing enum/spec entries while still\n * letting later calls override a nested property of the same entry.\n * - Arrays and non-object values remain atomic and are replaced by the incoming value.\n * - Additive only — to clear a nested property, set it to `undefined` explicitly.\n */\nfunction deepMergeDecoratorParams(\n existing: Record<string, unknown>,\n incoming: Record<string, unknown>,\n): Record<string, unknown> {\n const result = { ...existing };\n for (const [key, value] of Object.entries(incoming)) {\n const existingValue = result[key];\n\n if (key === 'values' && isPlainObject(value) && isPlainObject(existingValue)) {\n const existingValues = existingValue as Record<string, Record<string, unknown>>;\n const incomingValues = value as Record<string, Record<string, unknown>>;\n result[key] = { ...existingValues };\n for (const [enumValue, enumConfig] of Object.entries(incomingValues)) {\n const existingEnumConfig = existingValues[enumValue];\n (result[key] as Record<string, unknown>)[enumValue] =\n isPlainObject(existingEnumConfig) && isPlainObject(enumConfig)\n ? deepMergeDecoratorParams(existingEnumConfig, enumConfig)\n : enumConfig;\n }\n } else if (isPlainObject(value) && isPlainObject(existingValue)) {\n result[key] = deepMergeDecoratorParams(existingValue, value);\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n\n\n/**\n * Decorators that can never share a field with {@link ZodDecorator.RAG_SOURCE}, each with the one\n * sentence that justifies refusing it. ONE table, keyed by the companion, consulted in BOTH\n * application orders by `assertRagSourceCompanionAdmissible` below — the alternative (a check\n * inside each of the five companion methods plus one inside `ragSource`) is six hand-applied\n * copies of one invariant — the failure shape where a fix lands at one of an invariant's N call\n * sites and the other N-1 drift. Because the check lives in\n * `applySingleDecorator`, it also covers every escape hatch (`addRagSource`, `addDecorators`,\n * `z_file({ ragSource })`) for free: there is no door into decorator metadata that bypasses it.\n *\n * ## `TTL` is the one entry this table cannot actually enforce — do not read it as closing DL3\n *\n * Corrected 2026-08-27. `.ttl()`'s applicable types are `['ZodDate','ZodOptional']` and\n * `.ragSource()`'s are `['ZodString','ZodOptional','ZodNullable','ZodDefault']`, so the two\n * essentially cannot land on the SAME field — this row defends a type-impossible pair. The\n * REACHABLE configuration is `expiresAt: z.date().ttl(...)` beside `notes: z.string().ragSource()`:\n * two fields, one resource, one row that MongoDB's TTL monitor deletes whole with no application\n * code running. That is a RESOURCE-level fact and is refused at resource level, at boot, by\n * `ApplicationStartupConfigValidatorService.collectRagSourceRetentionRefusal` (which reads both\n * existing authorities — the RAG field walker and `collectResourceRetentionPolicies` — rather than\n * re-deriving either). The row below is KEPT because it is cheap, correct, and reports the\n * single-field case at authoring time instead of at boot; it is not the control.\n */\nconst RAG_SOURCE_REFUSED_COMPANIONS: ReadonlyMap<ZodDecorator, string> = new Map([\n [ZodDecorator.IS_PASSWORD, 'a password must never enter a retrieval corpus.'],\n [ZodDecorator.IS_OTP, 'a one-time code must never enter a retrieval corpus.'],\n [ZodDecorator.IS_WRITE_ONLY_SECRET, 'a write-only secret must never enter a retrieval corpus.'],\n [ZodDecorator.IS_EPHEMERAL, 'an ephemeral shown-once value must never enter a retrieval corpus.'],\n [\n ZodDecorator.TTL,\n 'MongoDB honours .ttl() natively — rows vanish with no application code running, so derived chunks could never be erased with their parent (resource-rag-capability DL3). ' +\n 'The pair is normally declared on two DIFFERENT fields of one resource, which this field-level check cannot see: that case is refused at boot, per resource, by the startup RAG capability probe. ' +\n 'Both refusals lift when a sweep-cascade reconciles chunk rows against vanished parents.',\n ],\n]);\n\n/**\n * Enforce the RAG-source refusal pairs in BOTH orders at the single decorator chokepoint:\n * applying `RAG_SOURCE` to a schema already carrying a refused companion throws, and applying a\n * refused companion to a schema already carrying `RAG_SOURCE` throws the same sentence. Reading\n * `currentMetadata` (the bag this very application is about to write into) is what makes the check\n * order-symmetric: wrapper chains carry their inner metadata forward (`wrapInstanceMethod` copies\n * `SCHEMA_METADATA` across `.optional()` / `.nullable()` / `.default()`), so the earlier\n * declaration is visible from wherever the later one lands.\n */\nfunction assertRagSourceCompanionAdmissible(decorator: ZodDecorator, currentMetadata: CustomFieldMetadata): void {\n if (decorator === ZodDecorator.RAG_SOURCE) {\n for (const [companion, reason] of RAG_SOURCE_REFUSED_COMPANIONS) {\n if (currentMetadata[companion] !== undefined) {\n throw new Error(`ragSource() cannot be combined with ${companion}(): ${reason}`);\n }\n }\n return;\n }\n\n const reason = RAG_SOURCE_REFUSED_COMPANIONS.get(decorator);\n if (reason !== undefined && currentMetadata[ZodDecorator.RAG_SOURCE] !== undefined) {\n throw new Error(`${decorator}() cannot be combined with ragSource(): ${reason}`);\n }\n}\n\nfunction applySingleDecorator<T extends z.ZodTypeAny>(\n schema: T,\n decorator: ZodDecorator,\n params?: ZodDecorator_ParamsType[ZodDecorator]\n): T {\n // Ensure schema exists before accessing Symbol property\n if (!schema) {\n throw new Error('Invalid schema provided to applySingleDecorator');\n }\n\n // Get existing metadata from Symbol property with proper type casting\n const currentMetadata: CustomFieldMetadata = (schema as any)[SCHEMA_METADATA] || {};\n\n // Refused RAG-source companions, both orders, before any metadata is written — a refusal that\n // fired after a partial write would leave the schema carrying half of a rejected combination.\n assertRagSourceCompanionAdmissible(decorator, currentMetadata);\n \n // Generic updater function resolution: if params is a function, call it with\n // the current metadata value and use the result. Works for any decorator.\n let resolvedFromUpdater = false;\n if (typeof params === 'function') {\n const existing = currentMetadata[decorator];\n const currentValue = (existing && typeof existing === 'object') ? existing : undefined;\n params = (params as (current: unknown) => unknown)(currentValue) as typeof params;\n resolvedFromUpdater = true;\n }\n // After function resolution, params is a concrete value (never a function).\n // TypeScript can't narrow this from control flow. Use `rp<D>()` for typed\n // access in cases that read properties; use `p` for simple assignments.\n const p = params as any;\n function rp<D extends ZodDecorator>(): Exclude<ZodDecorator_ParamsType[D], Function> {\n return params as Exclude<ZodDecorator_ParamsType[D], Function>;\n }\n \n // Handle each decorator explicitly.\n // `p` is used instead of `params` for assignments — it's the same value\n // but typed as `any` since TypeScript can't narrow the function union away\n // after the generic resolution above.\n switch (decorator) {\n case ZodDecorator.IS_DB_INDEXED:\n currentMetadata[ZodDecorator.IS_DB_INDEXED] = true;\n break;\n case ZodDecorator.IS_FOREIGN_KEY:\n currentMetadata[ZodDecorator.IS_FOREIGN_KEY] = p ?? true;\n break;\n case ZodDecorator.IS_HIDDEN:\n currentMetadata[ZodDecorator.IS_HIDDEN] = p ?? true;\n break;\n case ZodDecorator.IS_NOT_EDITABLE:\n currentMetadata[ZodDecorator.IS_NOT_EDITABLE] = p ?? true;\n break;\n case ZodDecorator.IS_SUMMARY_FIELD:\n currentMetadata[ZodDecorator.IS_SUMMARY_FIELD] = p ?? true;\n break;\n case ZodDecorator.IS_BACKEND_ONLY:\n currentMetadata[ZodDecorator.IS_BACKEND_ONLY] = p ?? true;\n break;\n case ZodDecorator.IS_WRITE_ONLY_SECRET:\n currentMetadata[ZodDecorator.IS_WRITE_ONLY_SECRET] = p ?? true;\n break;\n case ZodDecorator.IMPERSONALIZE_WITH: {\n // Fail LOUD on a missing / blank treatment. This is the single chokepoint shared by the fluent\n // `.impersonalizeWith(t)` method and the `addImpersonalizeWith(schema, t)` helper, so both doors\n // reject the same inputs. Without it a bare `.impersonalizeWith()` (JS caller, or a TS caller\n // whose value widened to undefined) would store `undefined`, `getImpersonalizeTreatment` would\n // return `undefined`, and the field would read as UNTREATED — a silently unscrubbed personal\n // field, i.e. exactly the PII-leak class this decorator exists to prevent.\n //\n // NORMALIZE HERE, not in the doors. Both authoring forms — the bare `RedactionType` string\n // (the common case) and the `{ treatment, maskValue }` object (a MASK needing a field-specific\n // value) — collapse to the params object before storage, so every reader sees ONE shape and\n // the doors stay dumb pass-throughs. A raw `addDecorators()` caller lands here too.\n const raw = p as unknown;\n const normalized: ImpersonalizeFieldParams | undefined =\n typeof raw === 'string'\n ? { treatment: raw }\n : (raw !== null && typeof raw === 'object' && !Array.isArray(raw))\n ? { ...(raw as ImpersonalizeFieldParams) }\n : undefined;\n if (normalized === undefined || typeof normalized.treatment !== 'string' || normalized.treatment.trim().length === 0) {\n throw new Error(\n `impersonalizeWith(treatment) requires a non-empty RedactionType value (received ${JSON.stringify(raw)}). ` +\n `An untreated field is left intact by the impersonalize writer — declare a treatment or omit the decorator.`,\n );\n }\n // A blank override would write an empty string and erase the distinction between \"masked\" and\n // \"never had a value\" — the same class of silent lie the treatment check above prevents.\n // WHETHER a maskValue is legal for this treatment (MASK only) and whether the field's schema\n // ACCEPTS it are both checked by the saas-models boot guard: this layer knows neither\n // `RedactionType` nor the resource's mainSchema.\n if (normalized.maskValue !== undefined && (typeof normalized.maskValue !== 'string' || normalized.maskValue.length === 0)) {\n throw new Error(\n `impersonalizeWith({ maskValue }) requires a non-empty string (received ${JSON.stringify(normalized.maskValue)}). ` +\n `The mask value is written verbatim in place of the field — omit it to use the framework mask constant.`,\n );\n }\n currentMetadata[ZodDecorator.IMPERSONALIZE_WITH] = normalized;\n break;\n }\n case ZodDecorator.PORTABILITY_PROVENANCE: {\n // Fail LOUD on a missing / blank provenance — the single chokepoint shared by the fluent\n // `.portabilityProvenance(p)` method and the `addPortabilityProvenance(schema, p)` helper.\n //\n // Storing a blank would be worse here than for most decorators. An Art. 20 export treats an\n // UNDECLARED field as a REFUSAL precisely because neither guess is safe (excluding\n // under-delivers a legal right, including over-shares controller-derived data). A silently\n // stored empty string would read back as declared-but-meaningless, converting that deliberate\n // refusal into a fabricated answer about a disclosure boundary.\n //\n // WHETHER the value is a real `DataPortabilityProvenance` member is checked by the saas-models\n // layer, which owns the enum — this layer knows only that a non-empty string was declared.\n const raw = p as unknown;\n if (typeof raw !== 'string' || raw.trim().length === 0) {\n throw new Error(\n `portabilityProvenance(provenance) requires a non-empty DataPortabilityProvenance value (received ${JSON.stringify(raw)}). ` +\n `An undeclared field makes an Art. 20 export refuse rather than guess — declare a provenance or omit the decorator ` +\n `to inherit the resource's portabilityPolicy.defaultProvenance.`,\n );\n }\n currentMetadata[ZodDecorator.PORTABILITY_PROVENANCE] = raw;\n break;\n }\n case ZodDecorator.DATA_CATEGORIES: {\n // NORMALIZE HERE, not in the doors — the impersonalizeWith discipline. A single value (the\n // common case) and an array both store a deduped ARRAY, so every reader sees one shape and\n // `getDataCategories` answers \"is this field categorized?\" by presence alone.\n //\n // Fail LOUD on an empty declaration. An UNCATEGORIZED field is a legitimate, common state —\n // most fields are not personal data — and the gap report is built on ABSENCE. A stored empty\n // array would read back as declared-with-no-categories, which is invisible to a report\n // looking for absence: the field would be silently excluded from the notice while looking\n // annotated to anyone reading the schema.\n //\n // WHETHER each value is a real `PersonalDataCategory` member is checked by the resource\n // factory's boot guard, which owns the enum — this layer knows only that non-empty strings\n // were declared.\n const raw = p as unknown;\n const authored: readonly unknown[] = Array.isArray(raw) ? raw : [raw];\n if (authored.length === 0 || authored.some((value) => typeof value !== 'string' || value.trim().length === 0)) {\n throw new Error(\n `dataCategories(categories) requires at least one non-empty PersonalDataCategory value (received ${JSON.stringify(raw)}). ` +\n `A field that holds no personal data carries NO declaration — absence is what a category gap report reads. ` +\n `An empty declaration looks annotated and discloses nothing.`,\n );\n }\n currentMetadata[ZodDecorator.DATA_CATEGORIES] = [...new Set(authored as readonly string[])];\n break;\n }\n case ZodDecorator.IS_AUDIT_EVIDENCE:\n currentMetadata[ZodDecorator.IS_AUDIT_EVIDENCE] = true;\n break;\n case ZodDecorator.RAG_SOURCE: {\n // NORMALIZE HERE, not in the doors — the impersonalizeWith discipline. A bare `.ragSource()`\n // (the common case) stores `{}` rather than `true`/`undefined`, so every reader sees ONE\n // shape and `getRagSourceConfig` answers \"is this field a source?\" by presence alone. The\n // knobs are validated at decoration time because every one of them is otherwise a SILENT\n // runtime misconfiguration: a zero chunkSize or an overlap >= size does not fail — it chunks\n // pathologically (empty chunks, or every chunk repeating its predecessor), which surfaces\n // as bad retrieval quality nobody traces back to the schema.\n const raw = p as unknown;\n if (raw !== undefined && (raw === null || typeof raw !== 'object' || Array.isArray(raw))) {\n throw new Error(`ragSource(config?) accepts an optional RagSourceConfiguration object (received ${JSON.stringify(raw)}).`);\n }\n const normalized: RagSourceConfiguration = raw === undefined ? {} : { ...(raw as RagSourceConfiguration) };\n const { chunkingStrategy, chunkSize, chunkOverlap } = normalized;\n const knownStrategies = Object.values(RAGChunkingStrategy) as string[];\n if (chunkingStrategy !== undefined && !knownStrategies.includes(chunkingStrategy)) {\n throw new Error(\n `ragSource({ chunkingStrategy }) must be a RAGChunkingStrategy member (received ${JSON.stringify(chunkingStrategy)}; known: ${knownStrategies.join(', ')}).`,\n );\n }\n if (chunkSize !== undefined && (!Number.isInteger(chunkSize) || chunkSize <= 0)) {\n throw new Error(`ragSource({ chunkSize }) must be a positive integer (received ${JSON.stringify(chunkSize)}).`);\n }\n if (chunkOverlap !== undefined && (!Number.isInteger(chunkOverlap) || chunkOverlap < 0)) {\n throw new Error(`ragSource({ chunkOverlap }) must be a non-negative integer (received ${JSON.stringify(chunkOverlap)}).`);\n }\n if (chunkSize !== undefined && chunkOverlap !== undefined && chunkOverlap >= chunkSize) {\n throw new Error(\n `ragSource({ chunkSize, chunkOverlap }) requires chunkOverlap < chunkSize (received overlap ${chunkOverlap} >= size ${chunkSize}) — ` +\n `an overlap that reaches the chunk size makes every chunk repeat its predecessor.`,\n );\n }\n currentMetadata[ZodDecorator.RAG_SOURCE] = normalized;\n break;\n }\n case ZodDecorator.IS_VIRTUAL: {\n const vp = rp<ZodDecorator.IS_VIRTUAL>();\n if (!vp?.calculate) {\n throw new Error('isVirtual decorator requires a calculate function');\n }\n currentMetadata[ZodDecorator.IS_VIRTUAL] = vp;\n break;\n }\n case ZodDecorator.IS_DISCRIMINATOR:\n currentMetadata[ZodDecorator.IS_DISCRIMINATOR] = p ?? true;\n break;\n case ZodDecorator.EXCLUDE_FROM_CREATE:\n currentMetadata[ZodDecorator.EXCLUDE_FROM_CREATE] = true;\n break;\n case ZodDecorator.EXCLUDE_FROM_UPDATE:\n currentMetadata[ZodDecorator.EXCLUDE_FROM_UPDATE] = true;\n break;\n case ZodDecorator.IS_UNIQUE:\n currentMetadata[ZodDecorator.IS_UNIQUE] = p ?? true;\n break;\n case ZodDecorator.IS_PRIMARY_KEY:\n currentMetadata[ZodDecorator.IS_PRIMARY_KEY] = true;\n break;\n case ZodDecorator.IS_BUSINESS_KEY:\n currentMetadata[ZodDecorator.IS_BUSINESS_KEY] = true;\n break;\n case ZodDecorator.OBJECT_BUSINESS_KEY_SET:\n currentMetadata[ZodDecorator.OBJECT_BUSINESS_KEY_SET] = p;\n break;\n case ZodDecorator.TTL:\n currentMetadata[ZodDecorator.TTL] = p;\n break;\n case ZodDecorator.IS_PASSWORD:\n currentMetadata[ZodDecorator.IS_PASSWORD] = true;\n break;\n case ZodDecorator.IS_OTP:\n currentMetadata[ZodDecorator.IS_OTP] = p ?? true;\n break;\n case ZodDecorator.IS_COLOR:\n currentMetadata[ZodDecorator.IS_COLOR] = true;\n break;\n case ZodDecorator.IS_DRAFT_RELAXED:\n currentMetadata[ZodDecorator.IS_DRAFT_RELAXED] = true;\n break;\n case ZodDecorator.SHOW_WHEN:\n currentMetadata[ZodDecorator.SHOW_WHEN] = p;\n break;\n case ZodDecorator.SYSTEM_ENUM:\n currentMetadata[ZodDecorator.SYSTEM_ENUM] = p;\n break;\n case ZodDecorator.IS_EPHEMERAL:\n currentMetadata[ZodDecorator.IS_EPHEMERAL] = true;\n break;\n case ZodDecorator.IS_CRDT:\n currentMetadata[ZodDecorator.IS_CRDT] = true;\n break;\n // Mergeable decorator buckets: primitive UI/spec decorators deep-merge\n // plain-object params by default, while updater functions still replace\n // exactly with what they return.\n case ZodDecorator.ENUM_UI: {\n const existing = currentMetadata[decorator];\n if (p === undefined) {\n (currentMetadata as Record<string, unknown>)[decorator] = existing ?? true;\n } else if (resolvedFromUpdater) {\n (currentMetadata as Record<string, unknown>)[decorator] = p;\n } else {\n (currentMetadata as Record<string, unknown>)[decorator] =\n isPlainObject(existing) && isPlainObject(p)\n ? deepMergeDecoratorParams(existing, p)\n : p;\n }\n break;\n }\n case ZodDecorator.BOOLEAN_UI:\n case ZodDecorator.STRING_UI:\n case ZodDecorator.NUMBER_UI:\n case ZodDecorator.DATE_UI:\n case ZodDecorator.DATETIME_UI:\n case ZodDecorator.TIME_UI:\n case ZodDecorator.MONEY_UI:\n case ZodDecorator.CODE_UI:\n case ZodDecorator.FILE_UI:\n case ZodDecorator.DURATION_UI:\n case ZodDecorator.PHONE_UI:\n case ZodDecorator.BIGDECIMAL_UI:\n case ZodDecorator.FOREIGN_KEY_UI:\n case ZodDecorator.ARRAY_UI:\n case ZodDecorator.OBJECT_UI:\n case ZodDecorator.STRING_SPEC:\n case ZodDecorator.NUMBER_SPEC:\n case ZodDecorator.BOOLEAN_SPEC:\n case ZodDecorator.DATE_SPEC:\n case ZodDecorator.DATETIME_SPEC:\n case ZodDecorator.TIME_SPEC:\n case ZodDecorator.ENUM_SPEC:\n case ZodDecorator.MONEY_SPEC:\n case ZodDecorator.CODE_SPEC:\n case ZodDecorator.FILE_SPEC:\n case ZodDecorator.DURATION_SPEC:\n case ZodDecorator.PHONE_SPEC:\n case ZodDecorator.BIGDECIMAL_SPEC:\n case ZodDecorator.FOREIGN_KEY_SPEC:\n case ZodDecorator.ARRAY_SPEC:\n case ZodDecorator.OBJECT_SPEC: {\n const existing = currentMetadata[decorator];\n if (p === undefined) {\n (currentMetadata as Record<string, unknown>)[decorator] = existing ?? true;\n } else if (resolvedFromUpdater) {\n (currentMetadata as Record<string, unknown>)[decorator] = p;\n } else {\n (currentMetadata as Record<string, unknown>)[decorator] =\n isPlainObject(existing) && isPlainObject(p)\n ? deepMergeDecoratorParams(existing, p)\n : p;\n }\n break;\n }\n }\n\n // Store updated metadata using Symbol\n (schema as any)[SCHEMA_METADATA] = currentMetadata;\n propagateWrapperDecoratorMetadataToInnerSchema(schema, currentMetadata);\n\n return addChainableMethods(schema) as T;\n}\n/** @wildo_source:part:end zod.decorators.chainable-runtime */\n\n\n/**\n * Methods that transform object fields and need special handling for field-level metadata.\n * These methods create new field wrappers and we need to copy field-level metadata.\n */\nconst OBJECT_FIELD_TRANSFORM_METHODS_SET = new Set(['partial', 'deepPartial', 'required']);\n\n/**\n * @wildo_source:part:start zod.decorators.chainable-runtime\n *\n * Wraps an instance method to preserve SCHEMA_METADATA when it returns a new instance.\n * In Zod v4, methods are on instances not prototypes, so we wrap them individually.\n * Also wraps the result's methods to ensure metadata persists through the entire chain.\n */\nfunction wrapInstanceMethod(instance: any, methodName: string): void {\n const originalMethod = instance[methodName];\n if (typeof originalMethod !== 'function') return;\n \n // Skip if already wrapped\n if ((originalMethod as any).__metadataWrapped) return;\n \n // Use special wrapper for field-transform methods on ZodObject\n const isObjectFieldTransform = OBJECT_FIELD_TRANSFORM_METHODS_SET.has(methodName) && \n instance.constructor?.name === 'ZodObject';\n \n const wrappedMethod = function(this: any, ...args: any[]) {\n // Get original shape before transformation (for field-transform methods)\n const originalShape = isObjectFieldTransform ? this.shape : null;\n const originalSchemaMetadata = (this as any)[SCHEMA_METADATA];\n \n const result = originalMethod.apply(this, args);\n \n // Copy metadata from original to result if it exists and result is different\n if (result && result !== this) {\n // Preserve all decorator metadata (including rangeConfig and currencyConfig)\n if (originalSchemaMetadata && Object.keys(originalSchemaMetadata).length > 0) {\n (result as any)[SCHEMA_METADATA] = { ...originalSchemaMetadata };\n }\n \n // For field-transform methods, copy field-level metadata to new wrapped fields\n if (isObjectFieldTransform && originalShape && result.shape) {\n copyFieldMetadata(originalShape, result.shape);\n }\n \n // Also wrap the result's methods so metadata persists through subsequent chains\n wrapInstanceMethodsForMetadata(result);\n }\n return result;\n };\n \n // Mark as wrapped to avoid double-wrapping\n (wrappedMethod as any).__metadataWrapped = true;\n \n instance[methodName] = wrappedMethod;\n}\n\n/**\n * Copy field-level metadata from original shape to new shape.\n * Used for methods like .partial() that wrap fields in new types.\n */\nfunction copyFieldMetadata(originalShape: Record<string, any>, newShape: Record<string, any>): void {\n for (const fieldName of Object.keys(originalShape)) {\n const originalField = originalShape[fieldName];\n const newField = newShape[fieldName];\n \n if (originalField && newField && originalField !== newField) {\n const fieldMetadata = (originalField as any)[SCHEMA_METADATA];\n \n if (fieldMetadata && Object.keys(fieldMetadata).length > 0) {\n (newField as any)[SCHEMA_METADATA] = deepCloneValue(fieldMetadata);\n \n // Also wrap the new field's methods for future chaining\n wrapInstanceMethodsForMetadata(newField);\n }\n }\n }\n}\n\n/**\n * Wrap only the instance methods (not decorator methods) for metadata preservation.\n * Used when copying metadata to a new schema instance.\n */\nfunction wrapInstanceMethodsForMetadata(schema: any): void {\n for (const methodName of ZOD_INSTANCE_METHODS_TO_WRAP) {\n if (typeof schema[methodName] === 'function') {\n wrapInstanceMethod(schema, methodName);\n }\n }\n}\n\n\n\n/**\n * Install, per instance, every decorator `ZodDecorator_ApplyableType` admits for this schema.\n *\n * `decoratorTypeName` overrides the CONSTRUCTOR NAME the map is consulted with, and exists for\n * factories whose output is not the Zod type it behaves as. `z_phone()` is the case: it ends in\n * `.pipe(z.string())`, so its constructor is `ZodPipe` — a name that appears in NO entry of the\n * map. Every decorator was therefore skipped, and `z_phone()` shipped carrying **zero** of them\n * while `DecoratedPhoneSchema` declared eight, so `z_phone().isDBIndexed()` type-checked and threw\n * `TypeError`. Measured 2026-09-17: 0 decorators against 27–36 on every other factory.\n *\n * The override is deliberately an explicit ARGUMENT rather than an automatic unwrap of `ZodPipe`.\n * A pipe's decorator surface is a statement about what the factory built, which only the factory\n * knows: unwrapping generically would hand the string surface to every pipe in the framework,\n * including ones whose output is not a string at all.\n */\nexport function addChainableMethods<T extends z.ZodTypeAny>(schema: T, decoratorTypeName?: string): T {\n const decoratedSchema = schema as DecoratedPrimitiveZodType<T>;\n \n // CRITICAL: Wrap instance methods that return new instances to preserve metadata\n // In Zod v4, methods are on instances not prototypes\n for (const methodName of ZOD_INSTANCE_METHODS_TO_WRAP) {\n if (typeof (decoratedSchema as any)[methodName] === 'function') {\n wrapInstanceMethod(decoratedSchema, methodName);\n }\n }\n \n const ctorName = decoratorTypeName ?? ((decoratedSchema as any)?.constructor?.name as string | undefined);\n\n for (const decorator of Object.values(ZodDecorator)) {\n const applyable = ZodDecorator_ApplyableType[decorator];\n if (!applyable || !ctorName) continue;\n if (!applyable.includes(ctorName)) continue;\n if (Object.prototype.hasOwnProperty.call(decoratedSchema, decorator)) continue;\n\n // Use the actual function from ZodDecorator_FunctionType to preserve composite\n // decorator behavior (e.g., isPrimaryKey sets 5 decorators, isPassword sets 2).\n // Falling back to a generic wrapper should never happen if the table is complete.\n const registeredFn = ZodDecorator_FunctionType[decorator];\n const value = registeredFn\n ? (...args: any[]) => registeredFn.apply(decoratedSchema, args)\n : (params: any) => addDecorators(decoratedSchema, [{ ref: decorator, params }]);\n\n Object.defineProperty(decoratedSchema, decorator, { value, ...defaultZodDecoSchemaProperties});\n }\n \n if (!decoratedSchema.hasOwnProperty('addDecorators')) {\n Object.defineProperty(decoratedSchema, 'addDecorators', {\n value: (decorators: DecoratorInput[]) => addDecorators(decoratedSchema, decorators),\n ...defaultZodDecoSchemaProperties\n });\n }\n \n return decoratedSchema as T;\n}\n/** @wildo_source:part:end zod.decorators.chainable-runtime */\n\n\n\n// =============================================================================\n// ADD DECORATORS\n// =============================================================================\n\n\n\n// -----------------------------------------------------------------------------\n// DB related decorators\n// -----------------------------------------------------------------------------\n\nexport function addDBIndexed<T extends z.ZodTypeAny>(schema: T): T {\n // Lazy initialization: ensure decorators are loaded\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.IS_DB_INDEXED]);\n}\n\nexport function addForeignKey<T extends z.ZodTypeAny>(schema: T): T {\n // Lazy initialization: ensure decorators are loaded\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.IS_FOREIGN_KEY]);\n}\n\n\n// -----------------------------------------------------------------------------\n// FORMS\n// -----------------------------------------------------------------------------\n\n// addFormInput, addFormTextarea, addFormSelect, etc. — removed.\n// Component selection moved to {primitive}UI({ edit: { component } }).\n\nexport function addHidden<T extends z.ZodTypeAny>(schema: T, params?: HiddenFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_HIDDEN, params }]);\n}\n\nexport function addNotEditable<T extends z.ZodTypeAny>(schema: T, params?: NotEditableFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_NOT_EDITABLE, params }]);\n}\n\nexport function addSortable<T extends z.ZodTypeAny>(schema: T, params?: Pick<ArrayUIEditParams, 'dnd' | 'upDownIcons'>): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.ARRAY_UI, params: { edit: { isSortable: true, ...params } } }]);\n}\n\n// -----------------------------------------------------------------------------\n// NEW DECORATOR ADD FUNCTIONS\n// -----------------------------------------------------------------------------\n\nexport function addSummaryField<T extends z.ZodTypeAny>(schema: T, params?: SummaryFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_SUMMARY_FIELD, params }]);\n}\n\nexport function addBackendOnly<T extends z.ZodTypeAny>(schema: T, params?: BackendOnlyFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_BACKEND_ONLY, params }]);\n}\n\nexport function addWriteOnlySecret<T extends z.ZodTypeAny>(schema: T, params?: WriteOnlySecretFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_WRITE_ONLY_SECRET, params }]);\n}\n\n/**\n * Standalone form of `.impersonalizeWith(treatment)` — declare a field's impersonalization\n * scrub treatment (a `RedactionType` value).\n *\n * The fluent `.impersonalizeWith(treatment)` method is the idiomatic authoring form and is live on\n * every schema type + wrapper. This helper stays as the programmatic escape hatch for the cases the\n * fluent form cannot express: decorating a schema held in a variable of an erased/generic type, or\n * applying a treatment inside a generic transform where `this` is `z.ZodTypeAny`.\n *\n * Both doors funnel through `applySingleDecorator`, so both reject a missing/blank treatment\n * identically. Read the result back with `getImpersonalizeTreatment(schema)`.\n *\n * `options.maskValue` overrides the framework mask constant for a `MASK` treatment — required when\n * the field is a CONSTRAINED string (`z.email()`, `z.uuid()`, `.min(n)`) the default constant cannot\n * satisfy. See {@link ImpersonalizeFieldParams} for the full contract; read it back with\n * `getImpersonalizeMaskValue(schema)`.\n *\n * @example\n * // Unconstrained string — the framework mask constant applies.\n * addImpersonalizeWith(z.string(), RedactionType.MASK)\n * @example\n * // Constrained string — the default constant would fail the boot guard, so give it a value the\n * // field's own schema accepts. `.invalid` is RFC 2606 reserved: never resolvable, never delivered.\n * addImpersonalizeWith(z.email(), RedactionType.MASK, { maskValue: 'erased@erased.invalid' })\n */\nexport function addImpersonalizeWith<T extends z.ZodTypeAny>(\n schema: T,\n treatment: string,\n options?: Omit<ImpersonalizeFieldParams, 'treatment'>,\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.IMPERSONALIZE_WITH, params: options ? { ...options, treatment } : treatment },\n ]);\n}\n\n/**\n * @wildo_source:part:start zod.decorators.rag-source facet:layer:shared facet:family:decorator facet:kind:api facet:audience:app-developer\n *\n * Standalone form of `.ragSource(config?)` — declare a field's text a RAG retrieval-corpus source.\n *\n * Import from `@wildo-ai/zod-decorators`.\n *\n * The fluent `.ragSource()` method is the idiomatic authoring form and is live on every\n * string-backed type plus the Optional / Nullable / Default wrappers. This helper is the\n * programmatic escape hatch for schemas held as an erased/generic type, and it is the door\n * `z_file({ ragSource })` uses to register the SAME decorator on a file schema (a `ZodObject`,\n * which deliberately carries no fluent `.ragSource()` — see the applicable-types entry).\n *\n * Both doors funnel through `applySingleDecorator`, so both validate the config identically and\n * both enforce the refused companions (`isPassword` / `isOtp` / `isWriteOnlySecret` /\n * `isEphemeral` / `ttl`) in both application orders. Read the stored config back with\n * `getRagSourceConfig(schema)`.\n *\n * @example\n * // A complete declaration — framework chunking defaults apply.\n * addRagSource(z.string())\n * @example\n * // Authored chunking for a markdown knowledge field.\n * addRagSource(z.string(), { chunkingStrategy: RAGChunkingStrategy.MARKDOWN, chunkSize: 1200, chunkOverlap: 150 })\n */\nexport function addRagSource<T extends z.ZodTypeAny>(\n schema: T,\n config?: RagSourceConfiguration,\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.RAG_SOURCE, params: config },\n ]);\n}\n/** @wildo_source:part:end zod.decorators.rag-source */\n\n/**\n * Standalone form of `.portabilityProvenance(provenance)` — declare where a field's value came\n * from, for GDPR Art. 20 scoping.\n *\n * The fluent method is the idiomatic authoring form and is live on every decorator-reachable Zod\n * type. This helper exists for the types that carry NO prototype-installed decorators at all\n * (`z.pipe(...)`, which is what `z_phone()` returns, plus Literal / Tuple / Set / …) and for\n * applying a provenance inside a generic transform where `this` is `z.ZodTypeAny`.\n *\n * Both doors funnel through `applySingleDecorator`, so both reject a missing/blank value\n * identically. Read the result back with `getPortabilityProvenance(schema)`.\n *\n * Omitting the declaration entirely is legitimate and common: the field then inherits its\n * resource's `portabilityPolicy.defaultProvenance`. Only fields that DIFFER from that default need\n * a declaration — which is what keeps annotating a resource a one-line cost rather than a per-field\n * chore.\n *\n * @example\n * // A value the subject typed — in scope for both Art. 15 and Art. 20.\n * addPortabilityProvenance(z.string(), DataPortabilityProvenance.SUBJECT_PROVIDED)\n * @example\n * // A value the controller computed ABOUT the subject — disclosed under Art. 15, excluded from an\n * // Art. 20 portability bundle.\n * addPortabilityProvenance(z.number(), DataPortabilityProvenance.DERIVED)\n */\nexport function addPortabilityProvenance<T extends z.ZodTypeAny>(\n schema: T,\n provenance: string,\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.PORTABILITY_PROVENANCE, params: provenance },\n ]);\n}\n\n/**\n * Standalone form of `.dataCategories(categories)` — declare WHICH KINDS of personal data a field\n * holds, for the privacy-notice inventory.\n *\n * The fluent method is the idiomatic authoring form and is live on every decorator-reachable Zod\n * type. This helper exists for the types that carry NO prototype-installed decorators at all\n * (`z.pipe(...)`, which is what `z_phone()` returns, plus Literal / Tuple / Set / …) and for\n * declaring categories inside a generic transform where `this` is `z.ZodTypeAny`.\n *\n * ⚠️ `z_phone()` is the case that makes this helper load-bearing rather than a curiosity: a phone\n * number is contact detail personal data by definition, and the fluent method cannot reach it.\n *\n * Both doors funnel through `applySingleDecorator`, so both reject an empty declaration\n * identically. Read the result back with `getDataCategories(schema)`.\n *\n * @example\n * // A phone number — the pipe `z_phone()` returns has no fluent surface.\n * addDataCategories(z_phone(), PersonalDataCategory.CONTACT_DETAILS)\n * @example\n * // A field that genuinely spans two categories.\n * addDataCategories(z.string(), [PersonalDataCategory.USER_CONTENT, PersonalDataCategory.SPECIAL_CATEGORY_HEALTH])\n *\n * @wildo_source:part:start zod.decorators.data-categories facet:layer:shared facet:family:decorator facet:kind:api facet:audience:app-developer\n */\nexport function addDataCategories<T extends z.ZodTypeAny>(\n schema: T,\n categories: string | readonly string[],\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.DATA_CATEGORIES, params: categories },\n ]);\n}\n/** @wildo_source:part:end zod.decorators.data-categories */\n\n/**\n * Standalone form of `.isAuditEvidence()` — mark a field whose before/after values are recorded on\n * the `resource_operation_performed` audit event when an operation changes it.\n *\n * The fluent method is the idiomatic authoring form and is live on every decorator-reachable Zod\n * type. This helper exists for the types that carry NO prototype-installed decorators at all\n * (`z.pipe(...)`, which is what `z_phone()` returns, plus Literal / Tuple / Set / …) and for\n * marking a field inside a generic transform where `this` is `z.ZodTypeAny`.\n *\n * Read the result back with `isAuditEvidenceField(schema)`.\n *\n * ⚠️ `z_phone()` is the cautionary case for this decorator specifically: a phone number is personal\n * data, so reaching for this helper on one is almost always the wrong call. The unreachable-fluent\n * types are listed here for completeness of the API surface, not as a suggestion.\n *\n * @example\n * // Authority — the values ARE the evidence; a role change without them proves nothing.\n * addAuditEvidence(z.array(z.string()))\n */\nexport function addAuditEvidence<T extends z.ZodTypeAny>(schema: T): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.IS_AUDIT_EVIDENCE]);\n}\n\nexport function addVirtual<T extends z.ZodTypeAny>(schema: T, params: VirtualFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_VIRTUAL, params }]);\n}\n\nexport function addDiscriminator<T extends z.ZodTypeAny>(schema: T, params?: DiscriminatorFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_DISCRIMINATOR, params }]);\n}\n\nexport function addExcludeFromCreate<T extends z.ZodTypeAny>(schema: T): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.EXCLUDE_FROM_CREATE]);\n}\n\nexport function addExcludeFromUpdate<T extends z.ZodTypeAny>(schema: T): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [ZodDecorator.EXCLUDE_FROM_UPDATE]);\n}\n\nexport function addUnique<T extends z.ZodTypeAny>(schema: T, params?: UniqueFieldParams): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [{ ref: ZodDecorator.IS_UNIQUE, params }]);\n}\n\n// -----------------------------------------------------------------------------\n// DECORATOR DETECTION HELPER FUNCTIONS\n// -----------------------------------------------------------------------------\n\n/**\n * Recursively get metadata from a schema, traversing through wrapper types.\n * \n * Zod 4's methods like `partial()`, `required()`, `optional()`, `nullable()`, `default()`\n * wrap the original schema in new types. The original decorated schema becomes the `innerType`.\n * This function traverses through these wrappers to find the original metadata.\n * \n * Traversal order:\n * 1. Check if metadata exists directly on the schema\n * 2. If not found, check `_zod.def.innerType` recursively\n * (ZodOptional, ZodNullable, ZodDefault, ZodNonOptional, ZodReadonly, ZodCatch)\n * 3. For ZodEffects (transforms), check `_zod.def.schema`\n * 4. For ZodArray, check `_zod.def.element`\n * 5. For ZodPipe (from .refine()/.superRefine()), check `_zod.def.in`\n */\nexport function getMetadataRecursive(schema: z.ZodTypeAny): CustomFieldMetadata | undefined {\n if (!schema) return undefined;\n\n // First check directly on this schema\n const directMetadata = (schema as any)[SCHEMA_METADATA] as CustomFieldMetadata | undefined;\n if (directMetadata && Object.keys(directMetadata).length > 0) {\n return directMetadata;\n }\n \n // Access the internal Zod definition\n const def = (schema as any)._zod?.def;\n if (!def) return undefined;\n \n // Traverse through wrapper types that use innerType:\n // ZodOptional, ZodNullable, ZodDefault, ZodNonOptional, ZodReadonly, ZodCatch\n if (def.innerType) {\n return getMetadataRecursive(def.innerType);\n }\n \n // ZodEffects (transforms) have a schema property\n if (def.schema) {\n return getMetadataRecursive(def.schema);\n }\n \n // ZodArray has element\n if (def.element) {\n return getMetadataRecursive(def.element);\n }\n\n // ZodPipe (from .refine()/.superRefine()) has 'in' for the input schema\n if (def.in) {\n return getMetadataRecursive(def.in);\n }\n \n return undefined;\n}\n\n// Reader functions (is*, get*Params, etc.) are consolidated in zod-utils.shared.ts.\n// Only writers (add*), getMetadataRecursive, and addPrimaryKey remain here.\n\n/**\n * Apply isPrimaryKey decorator to a schema (composite: excludeFromCreate + isHidden + isUnique + isDBIndexed).\n */\nexport function addPrimaryKey<T extends z.ZodTypeAny>(schema: T): T {\n return addDecorators(schema, [\n ZodDecorator.IS_PRIMARY_KEY,\n ZodDecorator.EXCLUDE_FROM_CREATE,\n ZodDecorator.IS_HIDDEN,\n ZodDecorator.IS_DB_INDEXED,\n { ref: ZodDecorator.IS_UNIQUE, params: { scope: 'global', sparse: false } },\n ]);\n}\n\n// -----------------------------------------------------------------------------\n// MODULE OVERRIDE\n// -----------------------------------------------------------------------------\n\n/**\n * Decorator functions that can be applied to existing Zod schemas\n */\ndeclare module 'zod' {\n interface ZodString {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // String edit mode convenience decorators\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — string-backed types are the decorator's fluent home (see the applicable-types\n // entry); declared here so the bare authoring form type-checks, installed at runtime via\n // STRING_SCHEMA_DECORATOR_SURFACE on both string prototypes.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // Database constraint decorators\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PRIMARY_KEY](): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n // The OPEN vocabulary whose `system_enums.<name>` words label this string's values (#1791)\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // `timeUI` / `timeSpec`. Declared on BOTH string interfaces because the parity contract\n // requires it (a shared interface does not compile — see that test for the two measured\n // alternatives), and reachable at runtime because they are on\n // STRING_SCHEMA_DECORATOR_SURFACE, which installs on both prototypes.\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<this>;\n // `foreignKeyUI` / `foreignKeySpec` — the FK display policy. On the string surface because a\n // foreign key has no factory: it is a plain string or a uuid. Declared on both string\n // interfaces because the parity contract requires it.\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodStringFormat<Format extends string = string> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // String edit mode convenience decorators\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — string-backed types are the decorator's fluent home (see the applicable-types\n // entry); declared here so the bare authoring form type-checks, installed at runtime via\n // STRING_SCHEMA_DECORATOR_SURFACE on both string prototypes.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // Database constraint decorators\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PRIMARY_KEY](): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n // The OPEN vocabulary whose `system_enums.<name>` words label this string's values (#1791)\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Mirrors the block on `ZodString`. `z.iso.time()` is a `ZodStringFormat` refinement, so THIS\n // is the interface an author writing a time-of-day field actually meets.\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<this>;\n // Mirrors the block on `ZodString`. This is the interface `z.uuid()` — the canonical surrogate\n // key, and the commonest thing a foreign key points at — actually meets.\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n interface ZodNumber {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // Database constraint decorators\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n interface ZodBigInt {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodBoolean {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Wired 2026-08-12 — previously half-live: claimed by ZodDecorator_ApplyableType and reachable\n // only after another decorator, so the bare authoring form threw.\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n interface ZodDate {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // TTL (Time To Live) for MongoDB document expiration\n [ZodDecorator.TTL](params: TtlFieldParams): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Wired 2026-08-12 — previously half-live: claimed by ZodDecorator_ApplyableType and reachable\n // only after another decorator, so the bare authoring form threw.\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // `dateTimeUI` / `dateTimeSpec` belong HERE, beside `dateUI`, because a datetime is a point in\n // time and that is what a `Date` is. An ISO string is a WIRE format for one, not the model.\n //\n // They were declared on neither the interface nor the prototype until 2026-09-17, while\n // `ZodDecorator_ApplyableType` named `ZodDate` for both — so `addDecorators` accepted them and\n // `z.date().dateTimeUI(...)` threw \"is not a function\". The wrapper types hid it: `ZodOptional`,\n // `ZodDefault` and `ZodNullable` carry the whole surface, and so does whatever any decorator\n // returns, so only the FIRST decorator on a REQUIRED field ever failed.\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n // Zod string refinement types (`ZodEmail`, `ZodUUID`, `ZodISODateTime`, …) need NO augmentation of\n // their own: Zod declares each one `extends ZodStringFormat<Format>`, so they inherit the whole\n // decorator surface from the `ZodStringFormat` block above. They previously carried one\n // `interface ZodX extends ZodString {}` line each; that is what TypeScript 7 rejects with TS2320,\n // because it left each type extending two different generic instantiations of `_ZodString` whose\n // internals conflict. Do not reintroduce them.\n\n // ZodEnum augmentation for resource field decorators\n // Parameter list matches zod's own `ZodEnum` (`zod/v4/classic/schemas.d.ts:536`), including the\n // default that was previously missing. See the `ZodObject` augmentation below for why a mismatch\n // here is not cosmetic: the augmentation's list wins in the merged interface and is emitted into\n // every declaration this repo publishes.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n // @ts-ignore Cast variance — the same suppression zod places on its own declaration, covering the\n // variance annotation only.\n interface ZodEnum<out T extends z.util.EnumLike = z.util.EnumLike> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // System enum decorator\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorator\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n // ZodLiteral augmentation — the DISCRIMINATOR surface (issue #304).\n //\n // A string literal renders as a single-value enum (`getSchemaType` maps it to ENUM and its value\n // routes through `DisplayFieldEnum`), and the one place literals appear as AUTHORED fields is the\n // discriminator of a discriminated union — `kind: z.literal(...)` per variant. Until this block,\n // that field was the only enum-rendered surface whose chrome could not be authored at all:\n // `variant.shape.kind.enumUI?.({...})` type-checked as an optional call, installed nothing, and\n // the workbench build plan shipped a `Kind` label over a raw wire constant while every sibling\n // rendered badged (measured 2026-09-03). A literal is not a database column, a business key or a\n // form field; it is a fixed value whose only authorable dimensions are how it DISPLAYS — its chrome\n // (`enumUI`) and the vocabulary its words come from (`systemEnum`). The second was added for #966:\n // `tResourceFieldEnumValue` resolves a value through `system_enums.<name>` only for the enum the\n // FIELD declares, so a discriminator that cannot name its vocabulary can only render raw. Each\n // `z.literal(...)` call mints a fresh instance, so decorating a variant's discriminator never\n // leaks across variants the way a shared string leaf would.\n // Parameter list matches zod's own `ZodLiteral` (`zod/v4/classic/schemas.d.ts:557`).\n interface ZodLiteral<T extends z.util.Literal = z.util.Literal> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n // Unified UI decorator\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n // The vocabulary whose `system_enums` words label this value (#966)\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n }\n\n // ZodArray augmentation for arrayUI and array-specific decorators\n // LEFT AS-IS, deliberately, and the reason is worth recording.\n //\n // zod declares `ZodArray<T extends core.SomeType = core.$ZodType>`. Matching that exactly — in\n // both the bare and the `z.core.`-qualified spelling — still yields `TS2428: All declarations of\n // 'ZodArray' must have identical type parameters`, unlike `ZodObject` and `ZodEnum` where the\n // same correction is accepted. That is unexplained; do not assume it is the same defect as those.\n //\n // It is left with its own `@ts-ignore` because, unlike `ZodObject`, this mismatch costs consumers\n // NOTHING: `z.ZodTypeAny` is qualified through `z`, which every emitting file imports, so no\n // unbound name reaches a published declaration. The `ZodObject` defect was serious precisely\n // because its default was spelled bare `core.$ZodObjectExtra`.\n //\n // If you revisit this: the criterion is not \"does it match zod\", it is \"does the emitted default\n // resolve in a consumer\". Check the emitted `.d.ts` for a bare `core.` reference.\n // @ts-ignore - Type parameter conflict with Zod 4's internal definition; runtime works correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface ZodArray<T extends z.ZodTypeAny> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n\n // Structural DB decorators. The runtime has ALWAYS installed both on `ZodArray.prototype` (see the\n // prototype block below); only this declaration was missing, so `z.array(NonEmptyStringSchema).min(1)\n // .isForeignKey({ referencedResourceType })` threw TS2339 while the identical call on a `.default([])`\n // or `.optional()` wrapper compiled and worked. That made the FK marker reachable only by accident of\n // whether the author happened to wrap the array — and decorating the ELEMENT instead is not a\n // substitute, because a shared leaf (`NonEmptyStringSchema`) then carries the marker into every schema\n // that uses it (wrapper copy-on-write does not reach the element position).\n //\n // This is the INSTALLED-BUT-UNDECLARED direction of the surface-agreement contract that\n // `declared-decorator-surface-parity.contract.test.ts` guards in the DECLARED-BUT-NOT-INSTALLED\n // direction only. That direction produces a call that compiles and throws; this one produces a\n // capability that works and cannot be reached. Deliberately NOT wrapped in the\n // `zod.decorators.shared-structural-methods` anchor: the compiled skill already teaches both methods\n // from the ZodString/ZodDefault blocks, and a second two-line fragment under the same topic id would\n // ship a stub excerpt beside the real one.\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<this>;\n isSortable(params?: Pick<ArrayUIEditParams, 'dnd' | 'upDownIcons'>): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Field specification decorator\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n \n // Wrapper type augmentations - needed for chaining like z.date().default(...).excludeFromCreate()\n // Note: For Zod 4, we must match the type parameters exactly. Zod uses core.SomeType internally.\n // The 'core' namespace is publicly exported from zod, so we use it here.\n interface ZodDefault<T extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — a corpus-source string field routinely lives under a wrapper\n // (`z.string().optional().ragSource()`), so the wrappers declare the method too; the runtime\n // install comes from the blanket wrapper loop (ZodDefault / ZodNullable) or the explicit\n // ZodOptional prototype block.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n // System enum decorator\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Conditional visibility decorator\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorators (ZodDefault wraps any primitive)\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorators (ZodDefault wraps any primitive)\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Factory-owned + string-format decorators, mirroring the ZodOptional block VERBATIM.\n //\n // These were installed all along — the wrapper install is a BLANKET LOOP over every\n // `ZodDecorator_FunctionType` entry — and declared only on `ZodOptional`, whose install list is\n // written out by hand. A loop and a hand-written list cannot agree, which is why the two\n // wrappers below drifted by exactly the same 15 while `ZodOptional` stayed clean (issue #205).\n //\n // Declared rather than uninstalled because `ZodOptional` — the closest sibling — has carried\n // exactly this surface, declared, for a long time. The `FACTORY_OWNED_WITHOUT_PROTOTYPE_INSTALL`\n // hazard the parity test documents is about OPEN constructors (`ZodObject.prototype`,\n // `ZodString.prototype`), where a caller could attach a money renderer to an arbitrary object; a\n // wrapper's inner schema already carries the type.\n //\n // `isPrimaryKey` is deliberately NOT here: `ZodOptional` neither installs nor declares it, and a\n // defaulted / nullable primary key is the same contradiction an optional one is. It reaches these\n // two prototypes only through the blanket loop, and it is the one member that should be\n // UNINSTALLED rather than declared when that loop is replaced by an explicit list. Recorded as a\n // named exemption in `declared-decorator-surface-parity.contract.test.ts` so the reverse\n // assertion states it instead of silently tolerating it.\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TTL](params?: TtlFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n // Composite business key — reachable here because `businessKeySet` unwraps to the object's\n // shape, so its field-name validation still runs through the wrapper.\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodOptional<T extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — a corpus-source string field routinely lives under a wrapper\n // (`z.string().optional().ragSource()`), so the wrappers declare the method too; the runtime\n // install comes from the blanket wrapper loop (ZodDefault / ZodNullable) or the explicit\n // ZodOptional prototype block.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n // System enum decorator\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Conditional visibility decorator\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n // Business key marker (data-seeding subsystem)\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorators (ZodOptional wraps any primitive, so all UI decorators are\n // applicable — this MUST mirror every `*_UI` entry that lists 'ZodOptional' in\n // `ZodDecorator_ApplyableTypes`, otherwise an optional field can't carry that UI\n // decorator in a `*.ui-behavior.tsx` `fields` block, e.g. `avatar.fileUI(...)`).\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorators (ZodOptional wraps any primitive)\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Wired 2026-08-12 — previously half-live: claimed by ZodDecorator_ApplyableType and reachable\n // only after another decorator, so the bare authoring form threw.\n [ZodDecorator.TTL](params?: TtlFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodNullable<T extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n // RAG source — a corpus-source string field routinely lives under a wrapper\n // (`z.string().nullable().ragSource()`); runtime install comes from the blanket wrapper loop.\n [ZodDecorator.RAG_SOURCE](config?: RagSourceConfiguration): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_UNIQUE](params?: UniqueFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n // Conditional visibility decorator\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n // Ephemeral field decorator\n [ZodDecorator.IS_EPHEMERAL](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Unified UI decorators (ZodNullable wraps any primitive)\n [ZodDecorator.BOOLEAN_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.STRING_UI](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_UI](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n // Field specification decorators (ZodNullable wraps any primitive)\n [ZodDecorator.STRING_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.STRING_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.NUMBER_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.NUMBER_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BOOLEAN_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BOOLEAN_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ENUM_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ENUM_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.ARRAY_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.ARRAY_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Factory-owned + string-format decorators, mirroring the ZodOptional block VERBATIM.\n //\n // These were installed all along — the wrapper install is a BLANKET LOOP over every\n // `ZodDecorator_FunctionType` entry — and declared only on `ZodOptional`, whose install list is\n // written out by hand. A loop and a hand-written list cannot agree, which is why the two\n // wrappers below drifted by exactly the same 15 while `ZodOptional` stayed clean (issue #205).\n //\n // Declared rather than uninstalled because `ZodOptional` — the closest sibling — has carried\n // exactly this surface, declared, for a long time. The `FACTORY_OWNED_WITHOUT_PROTOTYPE_INSTALL`\n // hazard the parity test documents is about OPEN constructors (`ZodObject.prototype`,\n // `ZodString.prototype`), where a caller could attach a money renderer to an arbitrary object; a\n // wrapper's inner schema already carries the type.\n //\n // `isPrimaryKey` is deliberately NOT here: `ZodOptional` neither installs nor declares it, and a\n // defaulted / nullable primary key is the same contradiction an optional one is. It reaches these\n // two prototypes only through the blanket loop, and it is the one member that should be\n // UNINSTALLED rather than declared when that loop is replaced by an explicit list. Recorded as a\n // named exemption in `declared-decorator-surface-parity.contract.test.ts` so the reverse\n // assertion states it instead of silently tolerating it.\n [ZodDecorator.IS_BUSINESS_KEY](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATETIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DATETIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TIME_UI](params?: ZodDecorator_ParamsType[ZodDecorator.TIME_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.MONEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.MONEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.CODE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.CODE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FILE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FILE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DURATION_UI](params?: ZodDecorator_ParamsType[ZodDecorator.DURATION_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.PHONE_UI](params?: ZodDecorator_ParamsType[ZodDecorator.PHONE_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.BIGDECIMAL_UI](params?: ZodDecorator_ParamsType[ZodDecorator.BIGDECIMAL_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.FOREIGN_KEY_UI](params?: ZodDecorator_ParamsType[ZodDecorator.FOREIGN_KEY_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.TTL](params?: TtlFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_PASSWORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_OTP](params?: ZodDecorator_ParamsType[ZodDecorator.IS_OTP]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_COLOR](): DecoratedPrimitiveZodType<this>;\n // Composite business key — reachable here because `businessKeySet` unwraps to the object's\n // shape, so its field-name validation still runs through the wrapper.\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodUnion<T extends readonly core.SomeType[] = readonly core.$ZodType[]> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DISCRIMINATOR](params?: DiscriminatorFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Installed on `ZodUnion.prototype` by an EXPLICIT, hand-written line in the install block below\n // — not by a blanket loop — and simply never declared here, so `z.union([...]).systemEnum('X')`\n // was TS2339 on a method sitting on the prototype (issue #205).\n [ZodDecorator.SYSTEM_ENUM](name: string): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n // The parameter list MUST match `zod`'s own `ZodObject` exactly — names, constraints, defaults\n // and variance annotations. Interface merging is positional, and a mismatch does not merely warn:\n // the augmentation's parameter list wins in the merged type, so every declaration this repo emits\n // that mentions a `ZodObject` inherits it.\n //\n // This previously read `<Shape extends core.$ZodShape = core.$ZodShape, Extra extends\n // core.$ZodObjectExtra = core.$ZodObjectExtra>`, written against an older Zod 4 API and silenced\n // with `@ts-ignore`. `$ZodObjectExtra` does not exist in zod 4.3.6 — it appears nowhere in the\n // package — so the suppression was not hiding a variance nit, it was hiding a reference to a type\n // that is not there. The cost landed on consumers: 413+ published `.d.ts` across five engine\n // packages emitted `core.$ZodObjectExtra` with no `core` in scope, and a single-line consumer\n // compiling with `skipLibCheck: false` collected 2,617 × `TS2503: Cannot find namespace 'core'`,\n // which then propagated into that consumer's own declarations.\n //\n // Do not reintroduce `@ts-ignore` here. If a zod upgrade changes this signature, change this line\n // to match it and re-run the `skipLibCheck: false` probe — a suppression here is invisible in this\n // repo (every internal tsconfig sets `skipLibCheck: true`) and only ever surfaces downstream.\n //\n // Why THIS augmentation leaked when six siblings below (`ZodDefault`, `ZodOptional`, `ZodNullable`,\n // `ZodUnion`, `ZodRecord`, `ZodMap`) spell their defaults `core.X` just as bare and do not: a\n // default that RESOLVES is re-qualified against the consumer's own `z` import on emit (you see\n // `z.core.$strip` in shipped declarations). `$ZodObjectExtra` resolved to nothing, so TypeScript\n // emitted the name textually and it arrived unbound. Measured 2026-08-13: 6,997 occurrences of\n // `core.$ZodObjectExtra` across the shipped `saas-models` + `saas-specifications` declarations,\n // and ZERO leaked occurrences of any other `core.*` name. The defaults here are additionally\n // spelled `z.core.*` so that even an unresolvable one would arrive qualified.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n // @ts-ignore Cast variance — the SAME suppression zod places on its own declaration of this\n // interface (`zod/v4/classic/schemas.d.ts:432`). It covers the variance annotations only; the\n // parameter names, constraints and defaults below are checked and must stay in step with zod.\n interface ZodObject<out Shape extends z.core.$ZodShape = z.core.$ZodLooseShape, out Config extends z.core.$ZodObjectConfig = z.core.$strip> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n // Composite business key — see businessKeySet([...])\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<this>;\n // Generic form-field decorators — see STRING_SCHEMA_DECORATOR_SURFACE for why these two\n // belong on every ApplyableTypeFormField type rather than only on the wrapper types.\n [ZodDecorator.SHOW_WHEN](params: ZodDecorator_ParamsType[ZodDecorator.SHOW_WHEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DRAFT_RELAXED](): DecoratedPrimitiveZodType<this>;\n // Wired 2026-08-12 — previously half-live: claimed by ZodDecorator_ApplyableType and reachable\n // only after another decorator, so the bare authoring form threw.\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodRecord<Key extends core.$ZodRecordKey = core.$ZodRecordKey, Value extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n\n interface ZodMap<Key extends core.SomeType = core.$ZodType, Value extends core.SomeType = core.$ZodType> {\n [SCHEMA_METADATA]?: CustomFieldMetadata;\n [ZodDecorator.IS_DB_INDEXED](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_FOREIGN_KEY](params?: ZodDecorator_ParamsType[ZodDecorator.IS_FOREIGN_KEY]): DecoratedPrimitiveZodType<this>;\n\n [ZodDecorator.IS_HIDDEN](params?: ZodDecorator_ParamsType[ZodDecorator.IS_HIDDEN]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_NOT_EDITABLE](params?: ZodDecorator_ParamsType[ZodDecorator.IS_NOT_EDITABLE]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_UI](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_UI]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.OBJECT_SPEC](params?: ZodDecorator_ParamsType[ZodDecorator.OBJECT_SPEC]): DecoratedPrimitiveZodType<this>;\n // New decorators\n [ZodDecorator.IS_SUMMARY_FIELD](params?: ZodDecorator_ParamsType[ZodDecorator.IS_SUMMARY_FIELD]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_BACKEND_ONLY](params?: BackendOnlyFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_WRITE_ONLY_SECRET](params?: WriteOnlySecretFieldParams): DecoratedPrimitiveZodType<this>;\n // Impersonalization scrub treatment (retention capability) — see the FunctionType entry for why\n // it sits outside the shared-structural-methods anchor until Phase 3. The signature MIRRORS the\n // runtime function, NOT the storage type: `ZodDecorator_ParamsType[IMPERSONALIZE_WITH]` is the\n // widened value `addDecorators` accepts (bare string OR the normalized params object), whereas\n // authors call `(treatment, options?)`. Declaring the storage type here would make `maskValue`\n // unreachable through the fluent form.\n [ZodDecorator.IMPERSONALIZE_WITH](treatment: string, options?: Omit<ImpersonalizeFieldParams, 'treatment'>): DecoratedPrimitiveZodType<this>;\n // Portability provenance — declared alongside IMPERSONALIZE_WITH at every site for the same\n // reason: the runtime installs it, but without the type-level entry any chain longer than one\n // decoration would lose the method.\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[]): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_VIRTUAL](params: VirtualFieldParams): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_CREATE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.EXCLUDE_FROM_UPDATE](): DecoratedPrimitiveZodType<this>;\n // CRDT field decorator\n [ZodDecorator.IS_CRDT](): DecoratedPrimitiveZodType<this>;\n addDecorators(decorators: DecoratorInput[]): DecoratedPrimitiveZodType<this>;\n }\n}\n\n/**\n * Helper to create a metadata-preserving wrapper for Zod methods that return new instances.\n * In Zod v4, methods like .min(), .max(), etc. return NEW schema instances,\n * which would lose our SCHEMA_METADATA Symbol. This wrapper copies the metadata.\n */\nfunction wrapMethodToPreserveMetadata(originalMethod: Function, methodName?: string): Function {\n const wrapped = function(this: any, ...args: any[]) {\n const originalMetadata = (this as any)[SCHEMA_METADATA];\n const result = originalMethod.apply(this, args);\n\n // Copy all metadata from original (this) to result if it exists\n // This includes rangeConfig and currencyConfig which are now part of SCHEMA_METADATA\n if (originalMetadata && Object.keys(originalMetadata).length > 0 && result && result !== this) {\n (result as any)[SCHEMA_METADATA] = { ...originalMetadata };\n }\n return result;\n };\n // Deliberately NOT `__metadataWrapped`, which is `wrapInstanceMethod`'s marker. The two wrappers\n // are not interchangeable — the instance one also runs `copyFieldMetadata` and re-wraps the result\n // — so sharing a marker would let a prototype wrapper suppress an instance wrapper that does more.\n (wrapped as any).__prototypeMetadataWrapped = true;\n return wrapped;\n}\n\n\n\n/**\n * Patches all methods on a prototype that might return new instances,\n * ensuring SCHEMA_METADATA is preserved through method chains.\n *\n * ⚠️ MEASURED 2026-08-12, zod@4.3.6: this function is currently a COMPLETE NO-OP, and every call to\n * it is inert. Zod v4 installs schema methods as INSTANCE own properties — `ZodString.prototype`\n * carries `constructor` and nothing else — so `prototype[methodName]` is `undefined` for every name\n * passed in and the loop skips all of them. Metadata preservation through `.min()` / `.optional()` /\n * `.transform()` is done entirely at the instance level by `addChainableMethods` →\n * `wrapInstanceMethod`, which is what actually works today (verified: metadata survives\n * `.transform().optional()` and `.array().optional()`).\n *\n * It is kept, rather than deleted, because it costs nothing and is the correct behavior if Zod ever\n * moves methods back onto prototypes — at which point the guard below stops being theoretical, since\n * `ZodString.prototype` is reached by both the STEP 1 pass and `installStringDecoratorSurface`.\n * Do NOT cite this function as the reason a decorator survives a chain; it is not.\n */\nfunction patchPrototypeMethodsForMetadataPreservation(prototype: any, methodNames: string[]): void {\n for (const methodName of methodNames) {\n const originalMethod = prototype[methodName];\n if (typeof originalMethod !== 'function') continue;\n if ((originalMethod as any).__prototypeMetadataWrapped) continue;\n prototype[methodName] = wrapMethodToPreserveMetadata(originalMethod, methodName);\n }\n}\n\n/**\n * Install the WHOLE string decorator surface on one string-backed prototype.\n *\n * The only writer of decorator methods onto a string-schema prototype. It has exactly two callers —\n * `ZodString.prototype` and `ZodStringFormat.prototype` — and routing both through one function is\n * what makes `STRING_SCHEMA_DECORATOR_SURFACE` a source of truth rather than a copy: a decorator\n * added to the list reaches `z.string()` and `z.uuid()` in the same edit, and one cannot be given\n * the method while the other is not.\n *\n * Also calls the metadata-preservation patch, matching what each of the three install sites did\n * before. Note that this call is INERT on zod@4.3.6 — see that function's own docblock; schema\n * methods live on instances, and `addChainableMethods` is what preserves metadata through a chain.\n * It is passed through rather than dropped so the two stay coupled if Zod's method placement changes.\n *\n * @param prototype - a Zod string-schema prototype (`ZodString.prototype`, `ZodUUID.prototype`, …)\n * @param methodsToWrap - the instance-returning methods to wrap IF this Zod version puts them on the\n * prototype at all\n */\nfunction installStringDecoratorSurface(prototype: Record<PropertyKey, unknown>, methodsToWrap: string[]): void {\n patchPrototypeMethodsForMetadataPreservation(prototype, methodsToWrap);\n for (const decorator of STRING_SCHEMA_DECORATOR_SURFACE) {\n prototype[decorator] = ZodDecorator_FunctionType[decorator];\n }\n prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n}\n\n/**\n * Ensures Zod decorators are applied to a specific Zod instance.\n * This is critical when multiple Zod instances exist in the dependency tree.\n * Call this function early in your application startup to ensure decorators work.\n * \n * In Zod v4, many methods return new schema instances (for immutability).\n * We patch these methods to copy SCHEMA_METADATA so decorators survive method chains.\n * \n * @param zodInstance - The Zod instance to apply decorators to (defaults to the imported 'z')\n * @returns true if decorators were already present, false if they were just applied\n */\nexport function ensureZodDecoratorsLoaded(zodInstance: typeof z = z): typeof z {\n // @ts-ignore - Dynamic property access for decorator checking\n\n // Typed helper view for optional constructors exposed by Zod v4 classic export.\n // Avoid `any` while still allowing us to patch optional schema constructors.\n type ZodCtor = { prototype: Record<PropertyKey, unknown> };\n type ZodInstanceWithExtras = typeof z & {\n ZodMap?: ZodCtor;\n ZodObject?: ZodCtor;\n ZodRecord?: ZodCtor;\n // Zod exposes many constructors for ISO/refinement string schemas; we access them by name.\n [k: string]: unknown;\n };\n const zi = zodInstance as unknown as ZodInstanceWithExtras;\n\n // Check if decorators are already applied\n const alreadyLoaded = typeof (zodInstance.ZodString.prototype as any)[ZodDecorator.IS_DB_INDEXED] === 'function';\n \n if (alreadyLoaded) {\n return zodInstance;\n }\n\n // =============================================================================\n // STEP 1: Patch Zod methods to preserve SCHEMA_METADATA through method chains\n // =============================================================================\n \n // ZodString methods that return new instances in Zod v4\n const zodStringMethodsToWrap = [\n 'min', 'max', 'length', 'email', 'url', 'uuid', 'nanoid', 'cuid', 'cuid2', 'ulid',\n 'regex', 'includes', 'startsWith', 'endsWith', 'datetime', 'date', 'time', 'duration',\n 'ip', 'base64', 'trim', 'toLowerCase', 'toUpperCase', 'jwt', 'emoji', \n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodString.prototype, zodStringMethodsToWrap);\n \n // ZodNumber methods that return new instances\n const zodNumberMethodsToWrap = [\n 'min', 'max', 'int', 'positive', 'negative', 'nonnegative', 'nonpositive',\n 'multipleOf', 'finite', 'safe', 'step',\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodNumber.prototype, zodNumberMethodsToWrap);\n \n // ZodDate methods that return new instances\n const zodDateMethodsToWrap = [\n 'min', 'max',\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodDate.prototype, zodDateMethodsToWrap);\n \n // ZodBoolean methods\n const zodBooleanMethodsToWrap = [\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodBoolean.prototype, zodBooleanMethodsToWrap);\n \n // ZodArray methods\n const zodArrayMethodsToWrap = [\n 'min', 'max', 'length', 'nonempty',\n 'optional', 'nullable', 'nullish', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodArray.prototype, zodArrayMethodsToWrap);\n \n // ZodEnum methods\n const zodEnumMethodsToWrap = [\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodEnum.prototype, zodEnumMethodsToWrap);\n \n // ZodOptional methods\n const zodOptionalMethodsToWrap = [\n 'optional', 'nullable', 'nullish', 'array', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ];\n patchPrototypeMethodsForMetadataPreservation(zodInstance.ZodOptional.prototype, zodOptionalMethodsToWrap);\n\n // =============================================================================\n // STEP 2: Apply decorator methods to Zod prototypes\n // =============================================================================\n\n // Apply decorators to this Zod instance. `ZodString.prototype` takes the SAME surface through the\n // SAME installer as `ZodStringFormat.prototype` in STEP 3 — that shared call is what keeps\n // `z.string()` and `z.uuid()` from drifting apart again. This base covers `z.string()` and its\n // chained forms ONLY; a format type never runs `ZodString.init`, which is the whole point of\n // STEP 3.\n installStringDecoratorSurface(zodInstance.ZodString.prototype, zodStringMethodsToWrap);\n\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n\n // New decorators\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodNumber.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodNumber.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodNumber.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_DISCRIMINATOR] = ZodDecorator_FunctionType[ZodDecorator.IS_DISCRIMINATOR];\n zodInstance.ZodNumber.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodNumber.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // Database constraint decorators\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_UNIQUE] = ZodDecorator_FunctionType[ZodDecorator.IS_UNIQUE];\n // Business key marker (data-seeding subsystem)\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n // CRDT field decorator\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorator\n zodInstance.ZodNumber.prototype[ZodDecorator.NUMBER_UI] = ZodDecorator_FunctionType[ZodDecorator.NUMBER_UI];\n // Field specification decorator\n zodInstance.ZodNumber.prototype[ZodDecorator.NUMBER_SPEC] = ZodDecorator_FunctionType[ZodDecorator.NUMBER_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodNumber.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n zodInstance.ZodNumber.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n // ZodBigInt — the primitive that carried NO decorator at all until 2026-08-12.\n //\n // It is listed in `ApplyableTypeAllTypes` and `ApplyableTypeAllPrimitiveTypes`, and it is a\n // first-class leaf in every OTHER layer: the Mongoose schema convertor maps it, the DTO builder\n // coerces it across the network boundary, `install-bigint-json-encoding.ts` exists solely for it,\n // the MCP JSON-schema emitter handles it, and `z_money()` stores its `amount` as one. The decorator\n // layer was the single outlier, so an application could not mark a bigint field `isBackendOnly()`,\n // `excludeFromCreate()`, `impersonalizeWith(...)` or `isDBIndexed()` — all BACKEND concerns that do\n // not depend on there being a bigint form widget.\n //\n // Reached bare via `addChainableMethods` only AFTER another decorator, which was impossible: there\n // was no first decorator to start the chain. `impersonalize-treatment.test.ts` carried a waiver\n // saying \"drop the waiver if ZodBigInt ever joins the prototype-install block\"; this is that.\n //\n // No `IS_UNIQUE` / `IS_FOREIGN_KEY` (both are String/Number-scoped in the map), no `IS_DISCRIMINATOR`\n // (the params model is string/enum-valued — see the map), and no `*UI` / `*Spec` pair, because none\n // is defined for bigint.\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodBigInt.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodBigInt.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n zodInstance.ZodBigInt.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n zodInstance.ZodBigInt.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n\n // New decorators\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodBoolean.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodBoolean.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodBoolean.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodBoolean.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodBoolean.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorator\n zodInstance.ZodBoolean.prototype[ZodDecorator.BOOLEAN_UI] = ZodDecorator_FunctionType[ZodDecorator.BOOLEAN_UI];\n // Field specification decorator\n zodInstance.ZodBoolean.prototype[ZodDecorator.BOOLEAN_SPEC] = ZodDecorator_FunctionType[ZodDecorator.BOOLEAN_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodBoolean.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n // Business key marker — the map mirrors IS_DB_INDEXED's primitive set, and that IS installed here.\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n zodInstance.ZodBoolean.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n zodInstance.ZodDate.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodDate.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n\n // New decorators\n zodInstance.ZodDate.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodDate.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodDate.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodDate.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodDate.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodDate.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // TTL decorator for MongoDB TTL indexes (automatic document expiration)\n zodInstance.ZodDate.prototype[ZodDecorator.TTL] = ZodDecorator_FunctionType[ZodDecorator.TTL];\n // CRDT field decorator\n zodInstance.ZodDate.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorators. BOTH temporal pairs live on `ZodDate`, because a date and a datetime are\n // the same JavaScript value and differ only in whether the time of day is part of the fact.\n zodInstance.ZodDate.prototype[ZodDecorator.DATE_UI] = ZodDecorator_FunctionType[ZodDecorator.DATE_UI];\n zodInstance.ZodDate.prototype[ZodDecorator.DATETIME_UI] = ZodDecorator_FunctionType[ZodDecorator.DATETIME_UI];\n // Field specification decorators\n zodInstance.ZodDate.prototype[ZodDecorator.DATE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DATE_SPEC];\n zodInstance.ZodDate.prototype[ZodDecorator.DATETIME_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DATETIME_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodDate.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n // Business key marker — a date is a legitimate component of a natural key (e.g. [accountId, statementDate]).\n zodInstance.ZodDate.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n zodInstance.ZodDate.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zodInstance.ZodOptional.prototype[ZodDecorator.SYSTEM_ENUM] = ZodDecorator_FunctionType[ZodDecorator.SYSTEM_ENUM];\n // New decorators\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodOptional.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodOptional.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodOptional.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n // RAG source — ZodOptional is the ONE wrapper with a hand-enumerated block (its siblings get every\n // FunctionType entry from the blanket wrapper loop below), so this line is what keeps\n // `z.string().optional().ragSource()` from being the order-dependent half-live trap the\n // ZodOptional.showWhen note further down records.\n zodInstance.ZodOptional.prototype[ZodDecorator.RAG_SOURCE] = ZodDecorator_FunctionType[ZodDecorator.RAG_SOURCE];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_DISCRIMINATOR] = ZodDecorator_FunctionType[ZodDecorator.IS_DISCRIMINATOR];\n zodInstance.ZodOptional.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodOptional.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // Database constraint decorators - optional wrapper types need isUnique for z.string().isUnique().optional() pattern\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_UNIQUE] = ZodDecorator_FunctionType[ZodDecorator.IS_UNIQUE];\n // Business key marker (data-seeding subsystem) — supports z.string().isBusinessKey().optional() pattern\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n // Ephemeral field decorator\n // Conditional visibility. The `ZodOptional` interface below DECLARES `showWhen`, and both sibling\n // wrappers already carry it at runtime (ZodDefault / ZodNullable get it from the blanket wrapper\n // loop), so its absence here was an omission, not a policy: `z.string().optional().showWhen(...)`\n // type-checked and threw, while `z.string().optional().isDBIndexed().showWhen(...)` worked. That\n // is precisely the order-dependent half-live trap the IMPERSONALIZE_WITH comment at the top of\n // this file warns about. Found 2026-08-12 by the declared-vs-installed parity contract.\n zodInstance.ZodOptional.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_EPHEMERAL] = ZodDecorator_FunctionType[ZodDecorator.IS_EPHEMERAL];\n // CRDT field decorator\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorators (ZodOptional wraps any primitive)\n zodInstance.ZodOptional.prototype[ZodDecorator.BOOLEAN_UI] = ZodDecorator_FunctionType[ZodDecorator.BOOLEAN_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.STRING_UI] = ZodDecorator_FunctionType[ZodDecorator.STRING_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.NUMBER_UI] = ZodDecorator_FunctionType[ZodDecorator.NUMBER_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.ENUM_UI] = ZodDecorator_FunctionType[ZodDecorator.ENUM_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.DATE_UI] = ZodDecorator_FunctionType[ZodDecorator.DATE_UI];\n // The remaining `*_UI` methods MUST also be installed on ZodOptional so an OPTIONAL\n // field can carry them in a `*.ui-behavior.tsx` `fields` block (e.g.\n // `avatar.fileUI(...)`). These mirror both the `ZodOptional` type augmentation and the\n // `ZodDecorator_ApplyableTypes` runtime list — all three must stay in sync, or the type\n // says the method exists while the prototype lacks it (runtime \"X is not a function\").\n zodInstance.ZodOptional.prototype[ZodDecorator.DATETIME_UI] = ZodDecorator_FunctionType[ZodDecorator.DATETIME_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.TIME_UI] = ZodDecorator_FunctionType[ZodDecorator.TIME_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.MONEY_UI] = ZodDecorator_FunctionType[ZodDecorator.MONEY_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.CODE_UI] = ZodDecorator_FunctionType[ZodDecorator.CODE_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.FILE_UI] = ZodDecorator_FunctionType[ZodDecorator.FILE_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.DURATION_UI] = ZodDecorator_FunctionType[ZodDecorator.DURATION_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.PHONE_UI] = ZodDecorator_FunctionType[ZodDecorator.PHONE_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.BIGDECIMAL_UI] = ZodDecorator_FunctionType[ZodDecorator.BIGDECIMAL_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.FOREIGN_KEY_UI] = ZodDecorator_FunctionType[ZodDecorator.FOREIGN_KEY_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.ARRAY_UI] = ZodDecorator_FunctionType[ZodDecorator.ARRAY_UI];\n zodInstance.ZodOptional.prototype[ZodDecorator.OBJECT_UI] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_UI];\n // Field specification decorators (ZodOptional can wrap any primitive/object)\n zodInstance.ZodOptional.prototype[ZodDecorator.STRING_SPEC] = ZodDecorator_FunctionType[ZodDecorator.STRING_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.NUMBER_SPEC] = ZodDecorator_FunctionType[ZodDecorator.NUMBER_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.BOOLEAN_SPEC] = ZodDecorator_FunctionType[ZodDecorator.BOOLEAN_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.DATE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DATE_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.DATETIME_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DATETIME_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.TIME_SPEC] = ZodDecorator_FunctionType[ZodDecorator.TIME_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.ENUM_SPEC] = ZodDecorator_FunctionType[ZodDecorator.ENUM_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.MONEY_SPEC] = ZodDecorator_FunctionType[ZodDecorator.MONEY_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.CODE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.CODE_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.FILE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.FILE_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.DURATION_SPEC] = ZodDecorator_FunctionType[ZodDecorator.DURATION_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.PHONE_SPEC] = ZodDecorator_FunctionType[ZodDecorator.PHONE_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.BIGDECIMAL_SPEC] = ZodDecorator_FunctionType[ZodDecorator.BIGDECIMAL_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.FOREIGN_KEY_SPEC] = ZodDecorator_FunctionType[ZodDecorator.FOREIGN_KEY_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.ARRAY_SPEC] = ZodDecorator_FunctionType[ZodDecorator.ARRAY_SPEC];\n zodInstance.ZodOptional.prototype[ZodDecorator.OBJECT_SPEC] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n // `z.date().optional().ttl()`, `z.string().optional().isPassword()` and\n // `z.object({…}).optional().businessKeySet([…])` are all natural authoring orders the map already\n // claims; each was half-live (worked only after another decorator) until 2026-08-12.\n zodInstance.ZodOptional.prototype[ZodDecorator.TTL] = ZodDecorator_FunctionType[ZodDecorator.TTL];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_PASSWORD] = ZodDecorator_FunctionType[ZodDecorator.IS_PASSWORD];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_OTP] = ZodDecorator_FunctionType[ZodDecorator.IS_OTP];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_COLOR] = ZodDecorator_FunctionType[ZodDecorator.IS_COLOR];\n zodInstance.ZodOptional.prototype[ZodDecorator.OBJECT_BUSINESS_KEY_SET] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_BUSINESS_KEY_SET];\n zodInstance.ZodOptional.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zodInstance.ZodEnum.prototype[ZodDecorator.SYSTEM_ENUM] = ZodDecorator_FunctionType[ZodDecorator.SYSTEM_ENUM];\n // New decorators\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodEnum.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodEnum.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodEnum.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_DISCRIMINATOR] = ZodDecorator_FunctionType[ZodDecorator.IS_DISCRIMINATOR];\n zodInstance.ZodEnum.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodEnum.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // Business key marker (data-seeding subsystem)\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_BUSINESS_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_BUSINESS_KEY];\n // CRDT field decorator\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Unified UI decorator\n zodInstance.ZodEnum.prototype[ZodDecorator.ENUM_UI] = ZodDecorator_FunctionType[ZodDecorator.ENUM_UI];\n // Field specification decorator\n zodInstance.ZodEnum.prototype[ZodDecorator.ENUM_SPEC] = ZodDecorator_FunctionType[ZodDecorator.ENUM_SPEC];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodEnum.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n zodInstance.ZodEnum.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n\n // ZodLiteral — the discriminator surface: display chrome and its word vocabulary. See the interface block's note.\n zodInstance.ZodLiteral.prototype[ZodDecorator.ENUM_UI] = ZodDecorator_FunctionType[ZodDecorator.ENUM_UI];\n zodInstance.ZodLiteral.prototype[ZodDecorator.SYSTEM_ENUM] = ZodDecorator_FunctionType[ZodDecorator.SYSTEM_ENUM];\n\n zodInstance.ZodArray.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zodInstance.ZodArray.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zodInstance.ZodArray.prototype[ZodDecorator.ARRAY_UI] = ZodDecorator_FunctionType[ZodDecorator.ARRAY_UI];\n zodInstance.ZodArray.prototype.isSortable = ZodDecorator_FunctionType['isSortable'];\n // New decorators\n zodInstance.ZodArray.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zodInstance.ZodArray.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zodInstance.ZodArray.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zodInstance.ZodArray.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zodInstance.ZodArray.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zodInstance.ZodArray.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zodInstance.ZodArray.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zodInstance.ZodArray.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n zodInstance.ZodArray.prototype.addDecorators = ZodDecorator_FunctionAddDecorators;\n zodInstance.ZodArray.prototype[ZodDecorator.ARRAY_SPEC] = ZodDecorator_FunctionType[ZodDecorator.ARRAY_SPEC];\n\n /**\n * The decorators this blanket loop must NOT install, by name and with the reason.\n *\n * The loop's virtue is that a new `ZodDecorator_FunctionType` entry reaches both wrappers for\n * free; its cost is that it cannot express an exception, which is how `isPrimaryKey` arrived on\n * two prototypes that should never have carried it. `ZodOptional` — whose install list is written\n * out by hand — neither installs nor declares it, because an OPTIONAL primary key is a\n * contradiction, and a DEFAULTED or NULLABLE one is the same contradiction wearing a different\n * wrapper. It was reachable at runtime and undeclared in TypeScript, so no author could call it\n * and nothing depended on it: measured across the whole tree with real `grep` (which, unlike `rg`\n * and unlike the shell's shadowed `grep`, sees gitignored trees), 226 `.isPrimaryKey()` call sites\n * and ZERO in wrapper form.\n *\n * Keep this a SET with a reason per member, never a silent condition in the loop body. An excluded\n * decorator is a decision; a missing one is a bug, and the two must not look alike.\n */\n const WRAPPER_INSTALL_EXCLUSIONS = new Set<string>([ZodDecorator.IS_PRIMARY_KEY]);\n\n // Wrapper types (ZodDefault, ZodNullable) need ALL decorators for chaining\n // e.g. z.date().default(...).excludeFromCreate().isNotEditable().showWhen(...)\n //\n // This loop copies EVERY `ZodDecorator_FunctionType` entry, so it automatically covers new fluent\n // methods (e.g. `impersonalizeWith`) on both wrappers. `.nullish()` needs no entry of its own —\n // Zod builds it as `.nullable().optional()`, so its OUTER type is ZodOptional, installed above.\n for (const wrapperName of ['ZodDefault', 'ZodNullable'] as const) {\n const wrapperCtor = zi[wrapperName as string] as ZodCtor | undefined;\n if (wrapperCtor?.prototype) {\n patchPrototypeMethodsForMetadataPreservation(wrapperCtor.prototype, zodOptionalMethodsToWrap);\n for (const [key, fn] of Object.entries(ZodDecorator_FunctionType)) {\n if (WRAPPER_INSTALL_EXCLUSIONS.has(key)) continue;\n wrapperCtor.prototype[key] = fn;\n }\n (wrapperCtor.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n }\n\n // ZodUnion wrapper type - needs decorators for union fields\n if (zi.ZodUnion?.prototype) {\n patchPrototypeMethodsForMetadataPreservation(zi.ZodUnion.prototype, zodOptionalMethodsToWrap);\n zi.ZodUnion.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zi.ZodUnion.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zi.ZodUnion.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zi.ZodUnion.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zi.ZodUnion.prototype[ZodDecorator.SYSTEM_ENUM] = ZodDecorator_FunctionType[ZodDecorator.SYSTEM_ENUM];\n // New decorators\n zi.ZodUnion.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zi.ZodUnion.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zi.ZodUnion.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zi.ZodUnion.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zi.ZodUnion.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zi.ZodUnion.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zi.ZodUnion.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zi.ZodUnion.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zi.ZodUnion.prototype[ZodDecorator.IS_DISCRIMINATOR] = ZodDecorator_FunctionType[ZodDecorator.IS_DISCRIMINATOR];\n zi.ZodUnion.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zi.ZodUnion.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zi.ZodUnion.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n (zi.ZodUnion.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n\n // Object / record decorators\n if (zi.ZodObject?.prototype) {\n zi.ZodObject.prototype[ZodDecorator.OBJECT_UI] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_UI];\n zi.ZodObject.prototype[ZodDecorator.OBJECT_SPEC] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_SPEC];\n zi.ZodObject.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zi.ZodObject.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zi.ZodObject.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zi.ZodObject.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zi.ZodObject.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zi.ZodObject.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zi.ZodObject.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zi.ZodObject.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zi.ZodObject.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zi.ZodObject.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zi.ZodObject.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n // Composite business key (data-seeding subsystem)\n zi.ZodObject.prototype[ZodDecorator.OBJECT_BUSINESS_KEY_SET] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_BUSINESS_KEY_SET];\n // Generic form-field decorators (conditional visibility / draft relaxation).\n zi.ZodObject.prototype[ZodDecorator.SHOW_WHEN] = ZodDecorator_FunctionType[ZodDecorator.SHOW_WHEN];\n zi.ZodObject.prototype[ZodDecorator.IS_DRAFT_RELAXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DRAFT_RELAXED];\n // A composite field is indexable, hideable and non-editable like any other. `z_file()` already\n // declared all three on its own schema type, which is the framework stating that objects carry them.\n zi.ZodObject.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zi.ZodObject.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zi.ZodObject.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n (zi.ZodObject.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n if (zi.ZodRecord?.prototype) {\n zi.ZodRecord.prototype[ZodDecorator.OBJECT_UI] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_UI];\n zi.ZodRecord.prototype[ZodDecorator.OBJECT_SPEC] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_SPEC];\n // New decorators\n zi.ZodRecord.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zi.ZodRecord.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zi.ZodRecord.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zi.ZodRecord.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zi.ZodRecord.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zi.ZodRecord.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zi.ZodRecord.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zi.ZodRecord.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zi.ZodRecord.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zi.ZodRecord.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zi.ZodRecord.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n (zi.ZodRecord.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n\n // Add support for ZodMap if available\n if (zi.ZodMap?.prototype) {\n patchPrototypeMethodsForMetadataPreservation(zi.ZodMap.prototype, [\n 'optional', 'nullable', 'nullish', 'or', 'and', 'transform', 'default',\n 'catch', 'describe', 'brand', 'readonly', 'pipe', 'refine', 'superRefine'\n ]);\n zi.ZodMap.prototype[ZodDecorator.IS_DB_INDEXED] = ZodDecorator_FunctionType[ZodDecorator.IS_DB_INDEXED];\n zi.ZodMap.prototype[ZodDecorator.IS_FOREIGN_KEY] = ZodDecorator_FunctionType[ZodDecorator.IS_FOREIGN_KEY];\n\n zi.ZodMap.prototype[ZodDecorator.IS_HIDDEN] = ZodDecorator_FunctionType[ZodDecorator.IS_HIDDEN];\n zi.ZodMap.prototype[ZodDecorator.IS_NOT_EDITABLE] = ZodDecorator_FunctionType[ZodDecorator.IS_NOT_EDITABLE];\n zi.ZodMap.prototype[ZodDecorator.OBJECT_UI] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_UI];\n zi.ZodMap.prototype[ZodDecorator.OBJECT_SPEC] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_SPEC];\n // New decorators\n zi.ZodMap.prototype[ZodDecorator.IS_SUMMARY_FIELD] = ZodDecorator_FunctionType[ZodDecorator.IS_SUMMARY_FIELD];\n zi.ZodMap.prototype[ZodDecorator.IS_BACKEND_ONLY] = ZodDecorator_FunctionType[ZodDecorator.IS_BACKEND_ONLY];\n zi.ZodMap.prototype[ZodDecorator.IS_WRITE_ONLY_SECRET] = ZodDecorator_FunctionType[ZodDecorator.IS_WRITE_ONLY_SECRET];\n // Impersonalization scrub treatment — mirrors IS_WRITE_ONLY_SECRET (same all-types surface).\n zi.ZodMap.prototype[ZodDecorator.IMPERSONALIZE_WITH] = ZodDecorator_FunctionType[ZodDecorator.IMPERSONALIZE_WITH];\n zi.ZodMap.prototype[ZodDecorator.PORTABILITY_PROVENANCE] = ZodDecorator_FunctionType[ZodDecorator.PORTABILITY_PROVENANCE];\n zi.ZodMap.prototype[ZodDecorator.DATA_CATEGORIES] = ZodDecorator_FunctionType[ZodDecorator.DATA_CATEGORIES];\n zi.ZodMap.prototype[ZodDecorator.IS_AUDIT_EVIDENCE] = ZodDecorator_FunctionType[ZodDecorator.IS_AUDIT_EVIDENCE];\n zi.ZodMap.prototype[ZodDecorator.IS_VIRTUAL] = ZodDecorator_FunctionType[ZodDecorator.IS_VIRTUAL];\n zi.ZodMap.prototype[ZodDecorator.EXCLUDE_FROM_CREATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_CREATE];\n zi.ZodMap.prototype[ZodDecorator.EXCLUDE_FROM_UPDATE] = ZodDecorator_FunctionType[ZodDecorator.EXCLUDE_FROM_UPDATE];\n // CRDT field decorator\n zi.ZodMap.prototype[ZodDecorator.IS_CRDT] = ZodDecorator_FunctionType[ZodDecorator.IS_CRDT];\n (zi.ZodMap.prototype as any).addDecorators = ZodDecorator_FunctionAddDecorators;\n }\n\n // =============================================================================\n // STEP 3: The string-format refinement types (`z.email()`, `z.uuid()`, `z.hostname()`, `z.iso.*`)\n //\n // ONE prototype covers all of them, and it is the same one the type layer names.\n //\n // Zod v4 does NOT use prototype inheritance — `Object.getPrototypeOf(z.email())` is\n // `ZodEmail.prototype`, whose own proto is `Object.prototype`, and Zod's schema methods are\n // INSTANCE properties. What connects them is an explicit extension hook inside `$constructor`,\n // commented \"support prototype modifications\" in Zod's own source: on every `init`, each key of\n // that trait's prototype is copied onto the instance (`inst[k] = proto[k].bind(inst)`), for each\n // trait in the chain.\n //\n // And the classic init chain is the crux of the original defect (measured, zod@4.3.6):\n //\n // ZodEmail.init → $ZodEmail.init + ZodStringFormat.init\n // ZodStringFormat.init → $ZodStringFormat.init + _ZodString.init\n // ZodString.init → $ZodString.init + _ZodString.init + the instance methods\n //\n // A format type NEVER runs classic `ZodString.init`. So decorators installed only on\n // `ZodString.prototype` cannot reach `z.email()` at all — which is exactly why `isPrimaryKey`,\n // `isBusinessKey`, `isPassword`, `isOtp` and `isColor` were absent from every refinement type\n // while TypeScript declared them, and `z.uuid().isPrimaryKey()` threw.\n //\n // `ZodStringFormat` is therefore the single correct base: every string-format type calls its\n // `init`, including `ZodCustomStringFormat`, which backs `z.hex()`, `z.hostname()` and every\n // user-defined `z.stringFormat(...)`. Two prototypes, mirroring the two `declare module 'zod'`\n // interfaces one-for-one.\n //\n // WHAT THIS REPLACED, because it is the whole lesson. Until 2026-08-12 this step was 25 hand-listed\n // constructor names plus 27 hand-listed factory probes. Both lists had rotted and neither was ever\n // the mechanism: the name loop tested `typeof Candidate === 'object'` on a CLASS (a function), so\n // all 25 calls were silent no-ops, and at least eleven of the names did not exist in Zod 4\n // (`ZodHttpUrl`, `ZodHostname`, `ZodHex`, `ZodNanoId`, `ZodCuid`, `ZodCuid2`, `ZodMac`,\n // `ZodCidrV4`, `ZodCidrV6`, `ZodHash`, `ZodISODatetime`). The probe list, meanwhile, omitted\n // `hostname`, `hex`, `guid`, `e164`, `mac`, `xid`, `ksuid` and `base64url`, leaving those formats\n // with ZERO decorators. Verified by removing all 52 calls: parity holds on these two bases alone.\n // Do NOT reintroduce a per-format list — it is a second enumeration of Zod's format catalogue that\n // no one will maintain, and `string-format-decorator-parity.contract.test.ts` discovers the real\n // catalogue from the running Zod and fails loudly if either base ever stops covering it.\n // =============================================================================\n\n // NOTE the `typeof === 'function'` test. A Zod schema class IS a function; the loop this replaced\n // tested `typeof === 'object'` and was therefore a no-op at all 25 of its call sites.\n const stringFormatBase = zi.ZodStringFormat;\n if (typeof stringFormatBase === 'function' && (stringFormatBase as ZodCtor).prototype) {\n installStringDecoratorSurface((stringFormatBase as ZodCtor).prototype, zodStringMethodsToWrap);\n }\n\n // Note: z.range() is exported as standalone `z_range()` function.\n \n return zodInstance;\n}\n\n// Extend the Zod prototypes with the decorator methods (apply to the default imported instance)\nensureZodDecoratorsLoaded(z);\n"]}
|