@wildo-ai/zod-decorators 1.1.11 → 1.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/esm/commons.d.ts.map +1 -1
  2. package/dist/esm/commons.js.map +1 -1
  3. package/dist/esm/currencies.shared.schemas.d.ts.map +1 -1
  4. package/dist/esm/currencies.shared.schemas.js.map +1 -1
  5. package/dist/esm/files/agent-file-formats.d.ts.map +1 -1
  6. package/dist/esm/files/agent-file-formats.js.map +1 -1
  7. package/dist/esm/files/extension-nature-map.d.ts.map +1 -1
  8. package/dist/esm/files/extension-nature-map.js.map +1 -1
  9. package/dist/esm/files/file-extensions.enum.d.ts.map +1 -1
  10. package/dist/esm/files/file-extensions.enum.js.map +1 -1
  11. package/dist/esm/files/mime-registry.d.ts.map +1 -1
  12. package/dist/esm/files/mime-registry.js.map +1 -1
  13. package/dist/esm/files/unified-registry.d.ts.map +1 -1
  14. package/dist/esm/files/unified-registry.js.map +1 -1
  15. package/dist/esm/index.d.ts +2 -0
  16. package/dist/esm/index.d.ts.map +1 -1
  17. package/dist/esm/index.js +2 -0
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/install-bigint-json-encoding.d.ts +1 -1
  20. package/dist/esm/install-bigint-json-encoding.d.ts.map +1 -1
  21. package/dist/esm/install-bigint-json-encoding.js +1 -1
  22. package/dist/esm/install-bigint-json-encoding.js.map +1 -1
  23. package/dist/esm/testing/decorated-test-schemas.d.ts +7 -7
  24. package/dist/esm/testing/decorated-test-schemas.d.ts.map +1 -1
  25. package/dist/esm/testing/decorated-test-schemas.js.map +1 -1
  26. package/dist/esm/testing.d.ts.map +1 -1
  27. package/dist/esm/testing.js.map +1 -1
  28. package/dist/esm/zod-address.d.ts.map +1 -1
  29. package/dist/esm/zod-address.js.map +1 -1
  30. package/dist/esm/zod-bigdecimal.d.ts +4 -4
  31. package/dist/esm/zod-bigdecimal.d.ts.map +1 -1
  32. package/dist/esm/zod-bigdecimal.js.map +1 -1
  33. package/dist/esm/zod-code.d.ts +4 -4
  34. package/dist/esm/zod-code.d.ts.map +1 -1
  35. package/dist/esm/zod-code.js.map +1 -1
  36. package/dist/esm/zod-color.d.ts.map +1 -1
  37. package/dist/esm/zod-color.js.map +1 -1
  38. package/dist/esm/zod-decorators.types.d.ts +116 -9
  39. package/dist/esm/zod-decorators.types.d.ts.map +1 -1
  40. package/dist/esm/zod-decorators.types.js +40 -1
  41. package/dist/esm/zod-decorators.types.js.map +1 -1
  42. package/dist/esm/zod-document-sequence.d.ts.map +1 -1
  43. package/dist/esm/zod-document-sequence.js.map +1 -1
  44. package/dist/esm/zod-duration.d.ts +6 -6
  45. package/dist/esm/zod-duration.d.ts.map +1 -1
  46. package/dist/esm/zod-duration.js.map +1 -1
  47. package/dist/esm/zod-file.d.ts +5 -4
  48. package/dist/esm/zod-file.d.ts.map +1 -1
  49. package/dist/esm/zod-file.js +1 -1
  50. package/dist/esm/zod-file.js.map +1 -1
  51. package/dist/esm/zod-money.d.ts +4 -4
  52. package/dist/esm/zod-money.d.ts.map +1 -1
  53. package/dist/esm/zod-money.js.map +1 -1
  54. package/dist/esm/zod-phone.d.ts +4 -4
  55. package/dist/esm/zod-phone.d.ts.map +1 -1
  56. package/dist/esm/zod-phone.js.map +1 -1
  57. package/dist/esm/zod-range.d.ts.map +1 -1
  58. package/dist/esm/zod-range.js.map +1 -1
  59. package/dist/esm/zod-utils.shared.d.ts +47 -12
  60. package/dist/esm/zod-utils.shared.d.ts.map +1 -1
  61. package/dist/esm/zod-utils.shared.js +143 -40
  62. package/dist/esm/zod-utils.shared.js.map +1 -1
  63. package/dist/esm/zod-versioned.d.ts.map +1 -1
  64. package/dist/esm/zod-versioned.js.map +1 -1
  65. package/dist/esm/zod-wire-date.d.ts +107 -0
  66. package/dist/esm/zod-wire-date.d.ts.map +1 -0
  67. package/dist/esm/zod-wire-date.js +162 -0
  68. package/dist/esm/zod-wire-date.js.map +1 -0
  69. package/dist/esm/zod-year-month.d.ts +76 -0
  70. package/dist/esm/zod-year-month.d.ts.map +1 -0
  71. package/dist/esm/zod-year-month.js +115 -0
  72. package/dist/esm/zod-year-month.js.map +1 -0
  73. package/dist/esm/zod.module-override.d.ts +139 -156
  74. package/dist/esm/zod.module-override.d.ts.map +1 -1
  75. package/dist/esm/zod.module-override.js +176 -6
  76. package/dist/esm/zod.module-override.js.map +1 -1
  77. package/dist/tsconfig.build.tsbuildinfo +1 -1
  78. package/package.json +5 -5
@@ -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';\nimport { DocumentSequenceAllocation, DocumentSequenceScope, parseDocumentSequenceFormat, type DocumentSequenceParams } from './zod-document-sequence';\n\nimport type { ArrayUIEditParams } from './zod-decorators.types';\nimport { UniqueScope } from './zod-decorators.types';\nimport { BackendOnlyFieldParams, BusinessKeySetParams, ResourceReferenceParams, WriteOnlySecretFieldParams, CustomFieldMetadata, DataCategoriesFieldParams, DataCategoriesOptions, 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 // Zod 4 methods that also return a new instance, found unwrapped by the #1308 review: each dropped every decorator\n 'check', 'with', 'overwrite', 'gt', 'gte', 'lt', 'lte', 'lowercase', 'uppercase', 'normalize', 'slugify',\n 'safeExtend', 'loose', 'exactOptional', 'nonoptional',\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 // Last-action record — all-types for the same reason as IS_AUDIT_EVIDENCE: what an action says about\n // itself is usually free text, but can be a choice (an ENUM reason code) or a reference (a ticket id).\n // The list/FunctionType/prototype-install/`declare module` augmentations are ONE unit here too.\n [ZodDecorator.IS_LAST_ACTION_RECORD]: ApplyableTypeAllTypes,\n [ZodDecorator.IS_DECIDER]: 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 [ZodDecorator.DOCUMENT_SEQUENCE]: ['ZodString', '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 // A resource reference names its two members, so it applies to an object with a shape, and only to one.\n [ZodDecorator.RESOURCE_REFERENCE]: ['ZodObject'],\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 // A calendar day rather than an instant — see `CalendarDateDeclaration`.\n [ZodDecorator.IS_CALENDAR_DATE]: ['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 ZodDecorator.IS_LAST_ACTION_RECORD,\n ZodDecorator.IS_DECIDER,\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 // A server-allocated document number (#2509) is a string by nature.\n ZodDecorator.DOCUMENT_SEQUENCE,\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. A caller cannot\n * reach it indirectly either: a collection request's sort key naming it is dropped, since an\n * ordering discloses a value as surely as returning it does.\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 // documentSequence is COMPOSITE (#2509): a server-allocated number is never written by a client, and is unique in its\n // sequence's scope (sparse, so an EXPLICIT sequence's not-yet-numbered rows do not collide on the empty value).\n documentSequence: function(this: z.ZodTypeAny, params: DocumentSequenceParams): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n // A document number is either present or absent, never null, and never defaulted: absent is the one way to be not yet\n // numbered, and a default would be a number the counter never handed out. (A null also used to collide in the scope's\n // unique index on MongoDB only; since #2582 that index leaves a null out on both stores, so the rule is about the one\n // representation, not the index.)\n for (let candidate: unknown = this; candidate instanceof z.ZodOptional; candidate = candidate.unwrap()) {\n if (candidate.unwrap() instanceof z.ZodNullable || candidate.unwrap() instanceof z.ZodDefault) throw new Error('documentSequence: a document number cannot be nullable or defaulted; declare it .optional() for an EXPLICIT sequence.');\n }\n if (this instanceof z.ZodNullable || this instanceof z.ZodDefault) {\n throw new Error('documentSequence: a document number cannot be nullable or defaulted; declare it .optional() for an EXPLICIT sequence.');\n }\n return addDecorators(this, [\n { ref: ZodDecorator.DOCUMENT_SEQUENCE, params },\n ZodDecorator.EXCLUDE_FROM_CREATE,\n ZodDecorator.EXCLUDE_FROM_UPDATE,\n { ref: ZodDecorator.IS_UNIQUE, params: { scope: params?.scope === DocumentSequenceScope.APPLICATION ? UniqueScope.GLOBAL : UniqueScope.ORGANIZATION, sparse: true } },\n ]);\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 // isResourceReference (#2471): the object names one row of a resource chosen at run time. Validated at decoration\n // time, like businessKeySet: the object must HAVE the two members the reference is read through, or a form would\n // offer a picker that writes into fields the schema does not carry.\n isResourceReference: function(this: z.ZodTypeAny, params: ResourceReferenceParams): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n if (!params || typeof params.targetSet !== 'string' || params.targetSet.length === 0) {\n throw new Error(`isResourceReference({ targetSet }) requires a non-empty target set (received ${JSON.stringify(params)}).`);\n }\n const node = this as unknown as { shape?: Record<string, unknown>; _zod?: { def?: { shape?: Record<string, unknown> } } };\n const shape = node.shape ?? node._zod?.def?.shape;\n const missing = ['resourceType', 'resourceId'].filter((member) => !shape || !(member in shape));\n if (missing.length > 0) {\n throw new Error(`isResourceReference({ targetSet: '${params.targetSet}' }) needs an object with resourceType and resourceId members; missing: ${missing.join(', ')}.`);\n }\n return addDecorators(this, [{ ref: ZodDecorator.RESOURCE_REFERENCE, params: { targetSet: params.targetSet } }]);\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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATA_CATEGORIES, params: options ? { ...options, categories: typeof categories === 'string' ? [categories] : categories } : 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 // Last-action record — a PURE parameterless marker, like isAuditEvidence: it implies no other decorator.\n isLastActionRecord: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_LAST_ACTION_RECORD]); },\n isDecider: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_DECIDER]); },\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 isCalendarDate: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_CALENDAR_DATE]); },\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.DOCUMENT_SEQUENCE](params: DocumentSequenceParams): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.OBJECT_BUSINESS_KEY_SET](fields: string[], params?: Omit<BusinessKeySetParams, 'fields'>): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.RESOURCE_REFERENCE](params: ResourceReferenceParams): DecoratedPrimitiveZodType<T>;\n [ZodDecorator.TTL](params: ZodDecorator_ParamsType[ZodDecorator.TTL]): DecoratedPrimitiveZodType<T>;\n /**\n * `z.date().isCalendarDate()` — the date is a CALENDAR DAY (a due date, a birthday, an invoice date), not an\n * instant. It is held as UTC midnight of the day and shown and picked as that day for every reader, whatever\n * their time zone; \"tomorrow\" is still measured from the reader's today. Leave it off a moment in time\n * (`createdAt`, `expiresAt`, `completedAt`): an undeclared date is an instant, shown in the reader's zone.\n * A day has no time of day, so it cannot also declare `dateTimeUI()`: combining the two throws when the schema\n * loads. Use `dateUI()` to style a calendar date's display, and `dateTimeUI()` alone for a moment.\n */\n [ZodDecorator.IS_CALENDAR_DATE](): 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 * `options.personalOnlyWhen` takes a `PersonalDataCondition` (also from `@wildo-ai/saas-models`)\n * for a field that is personal data only on some rows. The case it exists for is a field naming\n * the PARTY a row describes — a customer account, a supplier: it is an individual's data when that\n * party is a sole trader, and a company's when it is not. The field still counts as personal data\n * for erasure, export and every guard; the privacy notice lists it as held \"where the customer is\n * an individual\" instead of claiming it about every customer. Do not use it for a field naming a\n * person AT a company (a contact's email): that is personal on every row.\n *\n * `options.aboutAnotherParty: true` says the field names a party OTHER than the one the row is about: a\n * copy of another organization's name kept on a cost record or a relationship. It decides only one thing:\n * a resource declaring `retentionPolicy: RETAIN_ONLY` (\"no personal data about its own subject\") may keep\n * such a copy. Leave it off the row's own party's name (a customer account's own name), which that\n * resource may not keep.\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 * @example\n * // A customer account's name: a person's data only when the customer is a sole trader.\n * accountName: z.string().dataCategories(PersonalDataCategory.IDENTITY, { personalOnlyWhen: PersonalDataCondition.DESCRIBED_PARTY_IS_A_NATURAL_PERSON })\n * @example\n * // The billed customer's name copied onto an invoice line: another party's name, not the line's subject.\n * customerName: z.string().dataCategories(PersonalDataCategory.IDENTITY, { personalOnlyWhen: PersonalDataCondition.DESCRIBED_PARTY_IS_A_NATURAL_PERSON, aboutAnotherParty: true })\n */\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<T>;\n /** @wildo_source:part:end zod.decorators.data-categories */\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<T>;\n /**\n * `.isLastActionRecord()` — this row field holds what the most recent action said about itself (the reason\n * given for a decision), so a form that starts from the row never offers it as the next action's starting\n * value. Mark it where an action REPLACES the field with words about that action; never on a setting an\n * action edits from its current value. Read back with `isLastActionRecordField(schema)`.\n *\n * @example\n * decisionReason: z.string().max(1000).optional().excludeFromCreate().excludeFromUpdate().isLastActionRecord()\n */\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<T>;\n /**\n * `.isDecider()` — this row field records which person decided something on the row (who approved, accepted,\n * placed, released). The declaration of the verb that writes it names it (`approvalSeal.decides`, #2906); the engine\n * checks that over its own resources. Read back with `isDeciderField(schema)`.\n *\n * @example\n * decidedByUserId: z.string().optional().excludeFromCreate().excludeFromUpdate().isDecider()\n */\n [ZodDecorator.IS_DECIDER](): 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\n/**\n * Apply decorators — to a PRIVATE COPY of `schema`, which is what is returned. The receiver is never written.\n *\n * ## Builder semantics, since #1308\n *\n * Every call site reads like Zod's own builders (`.optional()`, `.min(1)`): `const b = a.isDBIndexed()`\n * looks like it leaves `a` alone. Until #1308 it did not. The metadata was written back onto `a` and `a`\n * returned, so decorating an IMPORTED schema decorated it for every other consumer, in an order that\n * depended on module load. `NotificationBadgeDefinitionSchema` (what applications author) carried the\n * `isSummaryField` its own file said it must not, because the persisted schema decorated the shared leaf.\n *\n * So each call clones first (Zod's own `.clone()` with a copy of the definition, as `z_clone` does) and\n * decorates the clone. One call is one copy: a composite like `isPrimaryKey()` applies its five decorators\n * to the same copy. An inline chain (`z.string().min(1).isDBIndexed()`) behaves exactly as before, because\n * nothing else held the intermediate schemas.\n *\n * What changed is the one idiom that relied on the mutation: calling a decorator for its side effect and\n * dropping the result (`shape.field.isHidden(...)`). That now does nothing, so it is refused by\n * `check:decorator-results` (scripts/code-conduct), and a reader that wants a decorated view of a schema it\n * does not own builds one from the returned copies.\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 = cloneSchemaForDecoration(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 * The constructor name `addChainableMethods` was told to treat a schema as, when it is not its own (`z_phone()`\n * is a `ZodPipe` that decorates as a `ZodString`). Recorded on the instance so a COPY made for decoration\n * installs the same decorator surface; without it, `z_phone().isDBIndexed().isUnique()` would find no\n * `isUnique` on the copy the first decorator returned.\n */\nconst DECORATOR_TYPE_NAME_OVERRIDE: unique symbol = Symbol('wildo.decoratorTypeNameOverride');\n\n/**\n * The private copy `addDecorators` decorates (#1308): Zod's own `.clone()` with a COPY of the definition, so the\n * copy has its own `_zod`, its own parse closures and the right subclass (a structural copy would be a husk\n * bound to the original, see `cloneInnerSchemaForWrapper`). Carries the decorator metadata (shallowly: every\n * decorator writes a top-level key, never into a nested value) and the type-name override.\n *\n * Throws rather than decorating the receiver when no copy can be made: falling back to mutation would bring\n * back the shared-state writes this exists to remove, silently.\n */\nfunction cloneSchemaForDecoration<T extends z.ZodTypeAny>(schema: T, definitionOverrides: Record<string, unknown> = {}): T {\n const definition = getSchemaDefinition(schema);\n const nativeClone = (schema as any)?.clone;\n if (typeof nativeClone !== 'function' || !definition) {\n throw new Error('A zod decorator was applied to something that is not a Zod schema instance (it has no `.clone()` or definition).');\n }\n const cloned = withRegistryMetadataOf(schema, nativeClone.call(schema, copySchemaDefinition(definition, definitionOverrides)) as T);\n if (!cloned || cloned === schema) {\n throw new Error('A zod decorator could not copy the schema it was applied to, so it refuses to decorate the original.');\n }\n const metadata = (schema as any)[SCHEMA_METADATA] as CustomFieldMetadata | undefined;\n if (metadata) (cloned as any)[SCHEMA_METADATA] = { ...metadata };\n carryZodBag(schema, cloned);\n return addChainableMethods(cloned, (schema as any)[DECORATOR_TYPE_NAME_OVERRIDE] as string | undefined);\n}\n\n/**\n * A copy of an object schema with some of its fields replaced by decorated copies (#1308).\n *\n * Decorators are builders, so a reader that wants a decorated view of a field it does not own decorates a COPY\n * of the field and needs a row schema that holds it. `.extend()` is the wrong tool for that: Zod refuses it on an\n * object carrying refinements, and the object it returns has lost the object's own decorator metadata\n * (`businessKeySet`, …) and chainable methods. This keeps all three — the refinements, the metadata and the\n * decorator surface — and changes only the named fields.\n *\n * Every key must already be a field of the object: this REPLACES fields, it never adds one, so a misspelt key is\n * refused rather than silently becoming a new field nothing renders.\n *\n * @example\n * const Row = z.object({ ownerId: z.string().isForeignKey(...) }).refine(...);\n * const Shown = withObjectFields(Row, { ownerId: Row.shape.ownerId.foreignKeyUI({ display: { mode: 'label' } }) });\n */\nexport function withObjectFields<T extends z.ZodTypeAny>(objectSchema: T, fields: Record<string, z.ZodTypeAny>): T {\n const definition = getSchemaDefinition(objectSchema);\n if (definition?.type !== 'object') {\n throw new Error(`withObjectFields needs an object schema; it was given a \"${String(definition?.type)}\" schema.`);\n }\n const shape = definition.shape as Record<string, z.ZodTypeAny>;\n const unknownKeys = Object.keys(fields).filter((key) => !Object.prototype.hasOwnProperty.call(shape, key));\n if (unknownKeys.length > 0) {\n throw new Error(`withObjectFields replaces existing fields only; the object has no field ${unknownKeys.map((key) => `\"${key}\"`).join(', ')}.`);\n }\n if (Object.keys(fields).length === 0) return objectSchema;\n // By descriptor, so a member still declared as a getter (a recursive object) stays lazy instead of being read here.\n const merged = Object.defineProperties({}, Object.getOwnPropertyDescriptors(shape)) as Record<string, z.ZodTypeAny>;\n for (const [key, field] of Object.entries(fields)) {\n Object.defineProperty(merged, key, { value: field, writable: true, enumerable: true, configurable: true });\n }\n return cloneSchemaForDecoration(objectSchema, { shape: merged });\n}\n\n/**\n * State a Zod factory writes onto an instance's `_zod.bag` AFTER construction, which a `.clone(def)` cannot rebuild:\n * `z.instanceof(Foo)` records `bag.Class`, read when the parse fails. Only keys the copy did not compute itself are\n * carried, so everything its own checks derive stays its own.\n */\nfunction carryZodBag(source: z.ZodTypeAny, copy: z.ZodTypeAny): void {\n const sourceBag = (source as any)?._zod?.bag as Record<string, unknown> | undefined;\n const copyBag = (copy as any)?._zod?.bag as Record<string, unknown> | undefined;\n if (!sourceBag || !copyBag) return;\n for (const [key, value] of Object.entries(sourceBag)) {\n if (!(key in copyBag)) copyBag[key] = value;\n }\n // `z.instanceof(Foo)` also replaces its check after construction, so a failure reads `invalid_type` \"expected Foo\"\n // rather than a bare custom issue. The replacement is carried with the class it names.\n if ((source as any)._zod.def?.type === 'custom' && sourceBag.Class !== undefined) {\n (copy as any)._zod.check = (source as any)._zod.check;\n }\n}\n\n/** The definition keys that hold ONE child schema, per Zod 4 definition type. */\nconst SINGLE_CHILD_DEFINITION_KEYS: Readonly<Record<string, readonly string[]>> = {\n array: ['element'],\n optional: ['innerType'],\n nullable: ['innerType'],\n default: ['innerType'],\n prefault: ['innerType'],\n readonly: ['innerType'],\n catch: ['innerType'],\n nonoptional: ['innerType'],\n promise: ['innerType'],\n success: ['innerType'],\n intersection: ['left', 'right'],\n record: ['keyType', 'valueType'],\n map: ['keyType', 'valueType'],\n set: ['valueType'],\n pipe: ['in', 'out'],\n};\n\n/**\n * A copy of `schema` whose CHILD schemas are `mapChild(child)` — or `schema` itself when every child maps to\n * itself (#1308).\n *\n * Decorators return copies, so a reader that wants a decorated view of a deep schema it does not own (a field\n * three levels down, a union member, an array element) rebuilds the path to it: this is the one structural step\n * of that rebuild, applied recursively by the caller. It covers every Zod 4 container — object (shape and\n * catchall), array, every wrapper, union, intersection, record, map, set, tuple, pipe and lazy — and keeps what a\n * hand-built copy loses: the decorator metadata, the refinements, and laziness (a `z.lazy`, and a shape member still\n * declared as a getter, are mapped when first read). A leaf has no children and is returned as it is.\n *\n * One step only: the caller recurses, and owns memoisation and cycles. Zod turns a recursive getter member into a\n * plain data property once the shape is read, so a recursive object is a real cycle by the time it is walked; a\n * caller that recurses must leave a node it meets again while still presenting it as it is.\n */\nexport function mapSchemaChildren<T extends z.ZodTypeAny>(schema: T, mapChild: (child: z.ZodTypeAny) => z.ZodTypeAny): T {\n const definition = getSchemaDefinition(schema);\n const type = definition?.type as string | undefined;\n if (!definition || !type) return schema;\n const overrides: Record<string, unknown> = {};\n let changed = false;\n const mapOne = (child: unknown): unknown => {\n if (!child || typeof child !== 'object' || !(child as { _zod?: unknown })._zod) return child;\n const mapped = mapChild(child as z.ZodTypeAny);\n if (mapped !== child) changed = true;\n return mapped;\n };\n\n if (type === 'object') {\n const shape = definition.shape as Record<string, z.ZodTypeAny>;\n const mappedShape: Record<string, z.ZodTypeAny> = {};\n for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(shape))) {\n if (descriptor.get) {\n // A recursive member: deferred, and the copy is always taken since what it maps to is unknown until read.\n const read = descriptor.get;\n let mapped: z.ZodTypeAny | undefined;\n Object.defineProperty(mappedShape, key, { enumerable: true, configurable: true, get: () => (mapped ??= mapChild(read.call(shape))) });\n changed = true;\n } else {\n mappedShape[key] = mapOne(descriptor.value) as z.ZodTypeAny;\n }\n }\n overrides.shape = mappedShape;\n if (definition.catchall !== undefined) overrides.catchall = mapOne(definition.catchall);\n } else if (type === 'union') {\n overrides.options = (definition.options as unknown[]).map(mapOne);\n } else if (type === 'tuple') {\n overrides.items = (definition.items as unknown[]).map(mapOne);\n if (definition.rest !== undefined && definition.rest !== null) overrides.rest = mapOne(definition.rest);\n } else if (type === 'lazy') {\n const getter = definition.getter as () => z.ZodTypeAny;\n let mapped: z.ZodTypeAny | undefined;\n overrides.getter = () => (mapped ??= mapChild(getter()));\n changed = true;\n } else {\n for (const key of SINGLE_CHILD_DEFINITION_KEYS[type] ?? []) {\n if (definition[key] !== undefined) overrides[key] = mapOne(definition[key]);\n }\n }\n return changed ? cloneSchemaForDecoration(schema, overrides) : schema;\n}\n\n/**\n * `copy` carrying what Zod stores OUTSIDE the instance for `source`: `.describe()` text and `.meta()` live in Zod's\n * global registry, keyed by instance, and a clone given a definition has none of it. Without this every decorated\n * copy of a described field lost its description — the OpenAPI node and the labelling planner read it — measured on\n * `privacy.consentedPurposes` the day builder semantics landed (#1308).\n *\n * COPIED, never linked. Zod's own answer is `.clone(def, { parent: true })`, whose `_zod.parent` the registry reads\n * through — and which keeps the source alive for as long as the copy lives. Every decorator call copies, so a chain\n * (`z.string().isDBIndexed().isSummaryField()`) would keep every intermediate copy: measured +68 MB (+27%) of\n * retained heap evaluating `@wildo-ai/saas-models`, where the copied entry costs nothing measurable. The registry is\n * a WeakMap, so the entry dies with the copy. `id` is left out, as Zod's link leaves it out: an id names ONE schema.\n */\nfunction withRegistryMetadataOf<T extends z.ZodTypeAny>(source: z.ZodTypeAny, copy: T): T {\n const registered = z.globalRegistry.get(source) as Record<string, unknown> | undefined;\n if (registered === undefined) return copy;\n const { id: _id, ...inherited } = registered;\n if (Object.keys(inherited).length > 0) z.globalRegistry.add(copy, inherited as never);\n return copy;\n}\n\n/**\n * A Zod definition copied by DESCRIPTOR, never spread, with `overrides` set on the copy.\n *\n * Zod declares part of a definition as getters, and a spread reads each one once: `.default(() => new Date())`\n * keeps its value behind a `defaultValue` getter that calls the function on every parse, so a spread copy freezes\n * the first date into a constant default for every row after it. Every copy this module makes goes through here.\n */\nfunction copySchemaDefinition(definition: Record<string, unknown>, overrides: Record<string, unknown> = {}): Record<string, unknown> {\n const copied = Object.defineProperties({}, Object.getOwnPropertyDescriptors(definition)) as Record<string, unknown>;\n /*\n * An object's `shape` is the exception: Zod installs it as a LAZY getter closed over the SOURCE definition, which\n * caches the shape onto that definition on first read. Copied as is, every read of the copy's shape would rewrite\n * the source's definition and hand back a fresh object. Read EAGERLY instead, it would break a recursive\n * declaration decorated where it is declared (`Base.extend({ get children() { … Node … } }).isSummaryField()`:\n * the getter runs before `Node` exists). So the copy gets a lazy getter of its own: it reads the source's shape on\n * first access and keeps that value.\n */\n const shapeDescriptor = Object.getOwnPropertyDescriptor(definition, 'shape');\n if (definition.type === 'object' && !('shape' in overrides) && shapeDescriptor?.get) {\n Object.defineProperty(copied, 'shape', {\n configurable: true,\n enumerable: shapeDescriptor.enumerable ?? true,\n get() {\n const shape = definition.shape;\n Object.defineProperty(copied, 'shape', { value: shape, writable: true, enumerable: true, configurable: true });\n return shape;\n },\n });\n }\n for (const [key, value] of Object.entries(overrides)) {\n Object.defineProperty(copied, key, { value, writable: true, enumerable: true, configurable: true });\n }\n return copied;\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 * **Not needed to keep a shared schema clean, since #1308.** Every decorator now\n * returns a decorated copy and never writes the schema it is called on, so\n * `PriorityEnum.isDBIndexed()` leaves `PriorityEnum` untouched with no clone. A\n * decorator's own copy carries the metadata SHALLOWLY (each decorator replaces a\n * top-level key); `z_clone` is for the rarer need of a copy whose nested metadata\n * values are independent too.\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 * **Implementation note:** clones through Zod's own `.clone(def)` with a copy of the\n * definition (by descriptor, so a getter such as a function default stays a getter).\n * A structural copy (`Object.assign({}, schema)`) cannot work here — `_zod` is a\n * non-enumerable own property, so the copy would omit Zod's internals entirely and\n * every method on it would still act on the ORIGINAL instance (`z_clone(leaf).optional()`\n * would wrap `leaf`, not the clone).\n *\n * **Scope:** the definition is copied SHALLOWLY, so composite members stay shared by\n * reference — `z.object()` shape fields, and a wrapper's own `innerType`. That shares\n * nothing writable: decorating a member returns a copy of the member.\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 = withRegistryMetadataOf(schema, nativeClone.call(schema, copySchemaDefinition(definition)) as T);\n carryZodBag(schema, clone);\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 COPIED rather than shared (`copySchemaDefinition`). 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 = withRegistryMetadataOf(innerType, nativeClone.call(innerType, copySchemaDefinition(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 carryZodBag(innerType, cloned);\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. The type-name\n // override travels too: `z_phone()` is a ZodPipe that decorates as a ZodString.\n return addChainableMethods(cloned, (innerType as any)[DECORATOR_TYPE_NAME_OVERRIDE] as string | undefined);\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\n/**\n * `isCalendarDate()` and `dateTimeUI()` say opposite things about one value (#2180): a calendar DAY, held as UTC\n * midnight and read by its UTC day, versus a moment with a time of day, edited and read in the reader's zone.\n * Together they would edit a time the value does not keep, so the second one applied, in either order, refuses.\n * Read from the same bag as the RAG-source pairs, which carries the earlier declaration across wrappers.\n */\nfunction assertCalendarDateNotDateTime(decorator: ZodDecorator, currentMetadata: CustomFieldMetadata): void {\n const conflicting =\n decorator === ZodDecorator.IS_CALENDAR_DATE ? ZodDecorator.DATETIME_UI : decorator === ZodDecorator.DATETIME_UI ? ZodDecorator.IS_CALENDAR_DATE : undefined;\n if (conflicting !== undefined && currentMetadata[conflicting] !== undefined) {\n throw new Error(\n `${decorator}() cannot be combined with ${conflicting}(): a calendar date is a day with no time of day, a dateTimeUI() field is a moment. ` +\n 'Declare a day with isCalendarDate() (and dateUI() for its display), or a moment with dateTimeUI().',\n );\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 assertCalendarDateNotDateTime(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 // A deep copy: the metadata bag is copied shallowly onto every decorated copy, so `existing` is shared with the\n // schema this copy was made from, and an updater that edits its argument would edit that schema too (#1308).\n const currentValue = (existing && typeof existing === 'object') ? deepCloneValue(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. Every authoring form\n // stores one object whose `categories` is 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 //\n // THREE authoring shapes, ONE stored shape: a bare value, an array, or the object the fluent\n // method builds when its `options` argument is given (#2119). All three store a\n // `DataCategoriesFieldParams`, so the condition can never be separated from the categories it\n // qualifies.\n const raw = p as unknown;\n const isParamsObject = typeof raw === 'object' && raw !== null && !Array.isArray(raw);\n const rawCategories = isParamsObject ? (raw as { categories?: unknown }).categories : raw;\n const authored: readonly unknown[] = Array.isArray(rawCategories) ? rawCategories : [rawCategories];\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(rawCategories)}). ` +\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 const personalOnlyWhen = isParamsObject ? (raw as { personalOnlyWhen?: unknown }).personalOnlyWhen : undefined;\n // An options bag with no condition is the unconditional declaration; a condition that is present\n // must be a real value, because a blank one would read as \"conditional on nothing\".\n if (personalOnlyWhen !== undefined && (typeof personalOnlyWhen !== 'string' || personalOnlyWhen.trim().length === 0)) {\n throw new Error(\n `dataCategories(categories, { personalOnlyWhen }) requires a non-empty PersonalDataCondition value (received ${JSON.stringify(personalOnlyWhen)}). ` +\n `Omit the option for a field that is personal data on every row.`,\n );\n }\n const aboutAnotherParty = isParamsObject ? (raw as { aboutAnotherParty?: unknown }).aboutAnotherParty : undefined;\n if (aboutAnotherParty !== undefined && typeof aboutAnotherParty !== 'boolean') {\n throw new Error(\n `dataCategories(categories, { aboutAnotherParty }) takes a boolean (received ${JSON.stringify(aboutAnotherParty)}). ` +\n `Set it to true on a field naming a party other than the one the row is about, and omit it otherwise.`,\n );\n }\n const stored: DataCategoriesFieldParams = {\n categories: [...new Set(authored as readonly string[])],\n ...(personalOnlyWhen === undefined ? {} : { personalOnlyWhen: personalOnlyWhen as string }),\n ...(aboutAnotherParty === true ? { aboutAnotherParty: true } : {}),\n };\n currentMetadata[ZodDecorator.DATA_CATEGORIES] = stored;\n break;\n }\n case ZodDecorator.IS_AUDIT_EVIDENCE:\n currentMetadata[ZodDecorator.IS_AUDIT_EVIDENCE] = true;\n break;\n case ZodDecorator.IS_LAST_ACTION_RECORD:\n currentMetadata[ZodDecorator.IS_LAST_ACTION_RECORD] = true;\n break;\n case ZodDecorator.IS_DECIDER:\n currentMetadata[ZodDecorator.IS_DECIDER] = 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.DOCUMENT_SEQUENCE: {\n // Parsed HERE, so a bad format fails when the schema loads, never when the first document is created.\n const sequence = p as DocumentSequenceParams | undefined;\n if (!sequence || !Object.values(DocumentSequenceScope).includes(sequence.scope)) {\n throw new Error('documentSequence: params need a format and a DocumentSequenceScope.');\n }\n if (sequence.allocation !== undefined && !Object.values(DocumentSequenceAllocation).includes(sequence.allocation)) {\n throw new Error(`documentSequence: unknown allocation \"${String(sequence.allocation)}\".`);\n }\n parseDocumentSequenceFormat(sequence.format);\n currentMetadata[ZodDecorator.DOCUMENT_SEQUENCE] = sequence;\n break;\n }\n case ZodDecorator.OBJECT_BUSINESS_KEY_SET:\n currentMetadata[ZodDecorator.OBJECT_BUSINESS_KEY_SET] = p;\n break;\n case ZodDecorator.RESOURCE_REFERENCE:\n currentMetadata[ZodDecorator.RESOURCE_REFERENCE] = 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 case ZodDecorator.IS_CALENDAR_DATE:\n currentMetadata[ZodDecorator.IS_CALENDAR_DATE] = 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 — and only when the result IS a\n // schema: `.meta()` with no argument returns the registry entry, which must not be written to.\n if (result && result !== this && (result as any)._zod) {\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 if (decoratorTypeName !== undefined && (decoratedSchema as any)[DECORATOR_TYPE_NAME_OVERRIDE] !== decoratorTypeName) {\n Object.defineProperty(decoratedSchema, DECORATOR_TYPE_NAME_OVERRIDE, { value: decoratorTypeName, enumerable: false, writable: true, configurable: true });\n }\n const ctorName = decoratorTypeName ?? ((decoratedSchema as any)[DECORATOR_TYPE_NAME_OVERRIDE] as string | undefined) ?? ((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 options?: DataCategoriesOptions,\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.DATA_CATEGORIES, params: options ? { ...options, categories: typeof categories === 'string' ? [categories] : categories } : 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 * 1b. A PURE Zod clone with none of its own reads the schema it was cloned from (see below)\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 // A PURE Zod clone is the same schema under a new instance: Zod's `clone(schema)` with no new definition, which keeps\n // the original as `_zod.parent` and shares its very `def`. Zod makes one where an author cannot intervene, notably for\n // the KEY schema of `z.partialRecord(key, value)`, and the decorators live on the instance, so the clone came out\n // carrying none: a foreign key declared on a partial record's key was invisible to every reader (#2762). Such a clone\n // answers with its original's decorators. A clone that was decorated itself (`schema.clone().arraySpec(…)`) has its\n // own metadata, read above, unchanged; a clone built from a NEW definition (`z_clone`, a wrapper's private copy) has\n // a different `def` and is not one of these.\n const clonedFrom = (schema as any)._zod?.parent;\n if (clonedFrom && clonedFrom !== schema && clonedFrom._zod?.def === def) {\n return getMetadataRecursive(clonedFrom);\n }\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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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.DOCUMENT_SEQUENCE](params: DocumentSequenceParams): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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.DOCUMENT_SEQUENCE](params: DocumentSequenceParams): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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 [ZodDecorator.IS_CALENDAR_DATE](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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.IS_CALENDAR_DATE](): 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 [ZodDecorator.DOCUMENT_SEQUENCE](params: DocumentSequenceParams): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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.IS_CALENDAR_DATE](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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.IS_CALENDAR_DATE](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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 // A row of a resource chosen at run time — see isResourceReference({ targetSet })\n [ZodDecorator.RESOURCE_REFERENCE](params: ResourceReferenceParams): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): 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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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.IS_CALENDAR_DATE] = ZodDecorator_FunctionType[ZodDecorator.IS_CALENDAR_DATE];\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 zodInstance.ZodOptional.prototype[ZodDecorator.IS_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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 zodInstance.ZodOptional.prototype[ZodDecorator.DOCUMENT_SEQUENCE] = ZodDecorator_FunctionType[ZodDecorator.DOCUMENT_SEQUENCE];\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 zodInstance.ZodOptional.prototype[ZodDecorator.IS_CALENDAR_DATE] = ZodDecorator_FunctionType[ZodDecorator.IS_CALENDAR_DATE];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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 * `DOCUMENT_SEQUENCE` (#2509) is excluded for the same kind of reason: a document number is present or absent,\n * never null and never defaulted. Absent is the one way to be not yet numbered, and a default is a number the counter\n * never handed out. (A null also used to collide in MongoDB's unique index only; #2582 made that index leave a null\n * out on both stores.)\n * Left out of both wrapper interfaces too, so `z.string().nullable().documentSequence(...)` is a type error; the\n * decorator still refuses a nullable or defaulted schema reached under `.optional()`, which no type can see.\n *\n * `isResourceReference` (#2471) is excluded because it validates the OBJECT it decorates: it names that object's\n * `resourceType` and `resourceId` members, and a wrapper has no members to check. It is declared on the object\n * before the object is wrapped (`WorkUnitRefSchema.optional()`), and read through any wrapper. `ZodOptional`,\n * whose list is written by hand, does not carry it either.\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, ZodDecorator.DOCUMENT_SEQUENCE, ZodDecorator.RESOURCE_REFERENCE]);\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zi.ZodUnion.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zi.ZodObject.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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 zi.ZodObject.prototype[ZodDecorator.RESOURCE_REFERENCE] = ZodDecorator_FunctionType[ZodDecorator.RESOURCE_REFERENCE];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zi.ZodRecord.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zi.ZodMap.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\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';\nimport { DocumentSequenceAllocation, DocumentSequenceScope, parseDocumentSequenceFormat, type DocumentSequenceParams } from './zod-document-sequence';\n\nimport type { ArrayUIEditParams } from './zod-decorators.types';\nimport { UniqueScope } from './zod-decorators.types';\nimport { BackendOnlyFieldParams, BusinessKeySetParams, CompoundIndexParams, ResourceReferenceParams, WriteOnlySecretFieldParams, CustomFieldMetadata, DataCategoriesFieldParams, DataCategoriesOptions, 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 // Zod 4 methods that also return a new instance, found unwrapped by the #1308 review: each dropped every decorator\n 'check', 'with', 'overwrite', 'gt', 'gte', 'lt', 'lte', 'lowercase', 'uppercase', 'normalize', 'slugify',\n 'safeExtend', 'loose', 'exactOptional', 'nonoptional',\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: a decorator returns `this`, which for `z_file()` is its own\n // interface, so the members it adds are kept.\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 // Last-action record — all-types for the same reason as IS_AUDIT_EVIDENCE: what an action says about\n // itself is usually free text, but can be a choice (an ENUM reason code) or a reference (a ticket id).\n // The list/FunctionType/prototype-install/`declare module` augmentations are ONE unit here too.\n [ZodDecorator.IS_LAST_ACTION_RECORD]: ApplyableTypeAllTypes,\n [ZodDecorator.IS_DECIDER]: ApplyableTypeAllTypes,\n [ZodDecorator.IS_ROLE_GRANT]: 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 [ZodDecorator.DOCUMENT_SEQUENCE]: ['ZodString', '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 // A compound index names fields of the object it decorates, so it applies to an object with a shape, and only to\n // one: an index belongs to a stored row, and a resource's main schema is always a plain object.\n [ZodDecorator.OBJECT_COMPOUND_INDEX]: ['ZodObject'],\n // A resource reference names its two members, so it applies to an object with a shape, and only to one.\n [ZodDecorator.RESOURCE_REFERENCE]: ['ZodObject'],\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 // A calendar day rather than an instant — see `CalendarDateDeclaration`.\n [ZodDecorator.IS_CALENDAR_DATE]: ['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 ZodDecorator.IS_LAST_ACTION_RECORD,\n ZodDecorator.IS_DECIDER,\n ZodDecorator.IS_ROLE_GRANT,\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 // A server-allocated document number (#2509) is a string by nature.\n ZodDecorator.DOCUMENT_SEQUENCE,\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. A caller cannot\n * reach it indirectly either: a collection request's sort key naming it is dropped, since an\n * ordering discloses a value as surely as returning it does.\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 // documentSequence is COMPOSITE (#2509): a server-allocated number is never written by a client, and is unique in its\n // sequence's scope (sparse, so an EXPLICIT sequence's not-yet-numbered rows do not collide on the empty value).\n documentSequence: function(this: z.ZodTypeAny, params: DocumentSequenceParams): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n // A document number is either present or absent, never null, and never defaulted: absent is the one way to be not yet\n // numbered, and a default would be a number the counter never handed out. (A null also used to collide in the scope's\n // unique index on MongoDB only; since #2582 that index leaves a null out on both stores, so the rule is about the one\n // representation, not the index.)\n for (let candidate: unknown = this; candidate instanceof z.ZodOptional; candidate = candidate.unwrap()) {\n if (candidate.unwrap() instanceof z.ZodNullable || candidate.unwrap() instanceof z.ZodDefault) throw new Error('documentSequence: a document number cannot be nullable or defaulted; declare it .optional() for an EXPLICIT sequence.');\n }\n if (this instanceof z.ZodNullable || this instanceof z.ZodDefault) {\n throw new Error('documentSequence: a document number cannot be nullable or defaulted; declare it .optional() for an EXPLICIT sequence.');\n }\n return addDecorators(this, [\n { ref: ZodDecorator.DOCUMENT_SEQUENCE, params },\n ZodDecorator.EXCLUDE_FROM_CREATE,\n ZodDecorator.EXCLUDE_FROM_UPDATE,\n { ref: ZodDecorator.IS_UNIQUE, params: { scope: params?.scope === DocumentSequenceScope.APPLICATION ? UniqueScope.GLOBAL : UniqueScope.ORGANIZATION, sparse: true } },\n ]);\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 // compoundIndex (#3142): one more NON-unique index over several fields of this object. Validated at decoration time,\n // like businessKeySet, so an index cannot name a field the row does not carry; storage would otherwise build an index\n // over a path that is always empty, or the SQL plan would refuse at migration time, far from the declaration.\n compoundIndex: function(this: z.ZodTypeAny, fields: string[]): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n if (!Array.isArray(fields) || fields.length < 2) {\n throw new Error(\n `compoundIndex([...]) needs at least two field names (received ${JSON.stringify(fields)}); a one-field index is .isDBIndexed() on the field.`,\n );\n }\n const repeated = fields.filter((field, index) => fields.indexOf(field) !== index);\n if (repeated.length > 0) {\n throw new Error(`compoundIndex([...]) names a field more than once: ${[...new Set(repeated)].join(', ')}.`);\n }\n const node = this as unknown as { shape?: Record<string, unknown>; _zod?: { def?: { shape?: Record<string, unknown> } } };\n const shape = node.shape ?? node._zod?.def?.shape;\n const missing = fields.filter((field) => !shape || !(field in shape));\n if (missing.length > 0) {\n throw new Error(`compoundIndex([...]) references field(s) not present in the schema shape: ${missing.join(', ')}.`);\n }\n return addDecorators(this, [{ ref: ZodDecorator.OBJECT_COMPOUND_INDEX, params: { fields: [...fields] } }]);\n },\n // isResourceReference (#2471): the object names one row of a resource chosen at run time. Validated at decoration\n // time, like businessKeySet: the object must HAVE the two members the reference is read through, or a form would\n // offer a picker that writes into fields the schema does not carry.\n isResourceReference: function(this: z.ZodTypeAny, params: ResourceReferenceParams): DecoratedPrimitiveZodType<z.ZodTypeAny> {\n if (!params || typeof params.targetSet !== 'string' || params.targetSet.length === 0) {\n throw new Error(`isResourceReference({ targetSet }) requires a non-empty target set (received ${JSON.stringify(params)}).`);\n }\n const node = this as unknown as { shape?: Record<string, unknown>; _zod?: { def?: { shape?: Record<string, unknown> } } };\n const shape = node.shape ?? node._zod?.def?.shape;\n const missing = ['resourceType', 'resourceId'].filter((member) => !shape || !(member in shape));\n if (missing.length > 0) {\n throw new Error(`isResourceReference({ targetSet: '${params.targetSet}' }) needs an object with resourceType and resourceId members; missing: ${missing.join(', ')}.`);\n }\n return addDecorators(this, [{ ref: ZodDecorator.RESOURCE_REFERENCE, params: { targetSet: params.targetSet } }]);\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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [{ ref: ZodDecorator.DATA_CATEGORIES, params: options ? { ...options, categories: typeof categories === 'string' ? [categories] : categories } : 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 // Last-action record — a PURE parameterless marker, like isAuditEvidence: it implies no other decorator.\n isLastActionRecord: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_LAST_ACTION_RECORD]); },\n isDecider: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_DECIDER]); },\n isRoleGrant: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_ROLE_GRANT]); },\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 isCalendarDate: function(this: z.ZodTypeAny): DecoratedPrimitiveZodType<z.ZodTypeAny> { return addDecorators(this, [ZodDecorator.IS_CALENDAR_DATE]); },\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\n/**\n * The type every decorator returns: the schema's OWN type, and nothing more (#3031).\n *\n * A decorated schema keeps exactly the chainable surface its `declare module 'zod'` interface declares\n * below, because every declared member returns `DecoratedPrimitiveZodType<this>`. So\n * `z.enum(X).isDBIndexed()` is a `ZodEnum<…>` and offers what `ZodEnum` declares; `.isUnique()` on it is a\n * compile error, as it is on the bare enum.\n *\n * WHY NOT `T & { …every decorator… }`, which this was until 2026-11-06. That intersection declared all of\n * them on every schema after its first decoration, while the runtime installs each one only where its\n * interface declares it (`declared-decorator-surface-parity.contract.test.ts` holds the two equal). Measured\n * on 2026-10-21: 569 (type, decorator) pairs typechecked after one decoration and threw at load, such as\n * `z.enum(ModelUsageUnit).isDBIndexed().isUnique()` (TypeError while loading saas-models, `tsc` clean).\n * Narrowing it broke no chain anywhere in the repository (measured 2026-11-06 over every package that\n * authors one), which is what the old type was hiding: only the wrong chains needed it.\n *\n * REJECTED: installing the missing decorators so the old promise came true. Most of the 569 are refused on\n * purpose by `ZodDecorator_ApplyableType` (`isPrimaryKey` on a boolean, `stringUI` on a number), so the\n * promise was the defect, not the install. A decorator a type should carry is added to that type's\n * interface and installed on its prototype, as one change.\n *\n * Factory schemas (`z_money()`, `z_file()`, …) keep their extra members because `this` is the factory's\n * own intersection or interface, which already carries them.\n */\nexport type DecoratedPrimitiveZodType<T extends z.ZodTypeAny = z.ZodTypeAny> = T;\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\n/**\n * Apply decorators — to a PRIVATE COPY of `schema`, which is what is returned. The receiver is never written.\n *\n * ## Builder semantics, since #1308\n *\n * Every call site reads like Zod's own builders (`.optional()`, `.min(1)`): `const b = a.isDBIndexed()`\n * looks like it leaves `a` alone. Until #1308 it did not. The metadata was written back onto `a` and `a`\n * returned, so decorating an IMPORTED schema decorated it for every other consumer, in an order that\n * depended on module load. `NotificationBadgeDefinitionSchema` (what applications author) carried the\n * `isSummaryField` its own file said it must not, because the persisted schema decorated the shared leaf.\n *\n * So each call clones first (Zod's own `.clone()` with a copy of the definition, as `z_clone` does) and\n * decorates the clone. One call is one copy: a composite like `isPrimaryKey()` applies its five decorators\n * to the same copy. An inline chain (`z.string().min(1).isDBIndexed()`) behaves exactly as before, because\n * nothing else held the intermediate schemas.\n *\n * What changed is the one idiom that relied on the mutation: calling a decorator for its side effect and\n * dropping the result (`shape.field.isHidden(...)`). That now does nothing, so it is refused by\n * `check:decorator-results` (scripts/code-conduct), and a reader that wants a decorated view of a schema it\n * does not own builds one from the returned copies.\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 = cloneSchemaForDecoration(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 * The constructor name `addChainableMethods` was told to treat a schema as, when it is not its own (`z_phone()`\n * is a `ZodPipe` that decorates as a `ZodString`). Recorded on the instance so a COPY made for decoration\n * installs the same decorator surface; without it, `z_phone().isDBIndexed().isUnique()` would find no\n * `isUnique` on the copy the first decorator returned.\n */\nconst DECORATOR_TYPE_NAME_OVERRIDE: unique symbol = Symbol('wildo.decoratorTypeNameOverride');\n\n/**\n * The private copy `addDecorators` decorates (#1308): Zod's own `.clone()` with a COPY of the definition, so the\n * copy has its own `_zod`, its own parse closures and the right subclass (a structural copy would be a husk\n * bound to the original, see `cloneInnerSchemaForWrapper`). Carries the decorator metadata (shallowly: every\n * decorator writes a top-level key, never into a nested value) and the type-name override.\n *\n * Throws rather than decorating the receiver when no copy can be made: falling back to mutation would bring\n * back the shared-state writes this exists to remove, silently.\n */\nfunction cloneSchemaForDecoration<T extends z.ZodTypeAny>(schema: T, definitionOverrides: Record<string, unknown> = {}): T {\n const definition = getSchemaDefinition(schema);\n const nativeClone = (schema as any)?.clone;\n if (typeof nativeClone !== 'function' || !definition) {\n throw new Error('A zod decorator was applied to something that is not a Zod schema instance (it has no `.clone()` or definition).');\n }\n const cloned = withRegistryMetadataOf(schema, nativeClone.call(schema, copySchemaDefinition(definition, definitionOverrides)) as T);\n if (!cloned || cloned === schema) {\n throw new Error('A zod decorator could not copy the schema it was applied to, so it refuses to decorate the original.');\n }\n const metadata = (schema as any)[SCHEMA_METADATA] as CustomFieldMetadata | undefined;\n if (metadata) (cloned as any)[SCHEMA_METADATA] = { ...metadata };\n carryZodBag(schema, cloned);\n return addChainableMethods(cloned, (schema as any)[DECORATOR_TYPE_NAME_OVERRIDE] as string | undefined);\n}\n\n/**\n * A copy of an object schema with some of its fields replaced by decorated copies (#1308).\n *\n * Decorators are builders, so a reader that wants a decorated view of a field it does not own decorates a COPY\n * of the field and needs a row schema that holds it. `.extend()` is the wrong tool for that: Zod refuses it on an\n * object carrying refinements, and the object it returns has lost the object's own decorator metadata\n * (`businessKeySet`, …) and chainable methods. This keeps all three — the refinements, the metadata and the\n * decorator surface — and changes only the named fields.\n *\n * Every key must already be a field of the object: this REPLACES fields, it never adds one, so a misspelt key is\n * refused rather than silently becoming a new field nothing renders.\n *\n * @example\n * const Row = z.object({ ownerId: z.string().isForeignKey(...) }).refine(...);\n * const Shown = withObjectFields(Row, { ownerId: Row.shape.ownerId.foreignKeyUI({ display: { mode: 'label' } }) });\n */\nexport function withObjectFields<T extends z.ZodTypeAny>(objectSchema: T, fields: Record<string, z.ZodTypeAny>): T {\n const definition = getSchemaDefinition(objectSchema);\n if (definition?.type !== 'object') {\n throw new Error(`withObjectFields needs an object schema; it was given a \"${String(definition?.type)}\" schema.`);\n }\n const shape = definition.shape as Record<string, z.ZodTypeAny>;\n const unknownKeys = Object.keys(fields).filter((key) => !Object.prototype.hasOwnProperty.call(shape, key));\n if (unknownKeys.length > 0) {\n throw new Error(`withObjectFields replaces existing fields only; the object has no field ${unknownKeys.map((key) => `\"${key}\"`).join(', ')}.`);\n }\n if (Object.keys(fields).length === 0) return objectSchema;\n // By descriptor, so a member still declared as a getter (a recursive object) stays lazy instead of being read here.\n const merged = Object.defineProperties({}, Object.getOwnPropertyDescriptors(shape)) as Record<string, z.ZodTypeAny>;\n for (const [key, field] of Object.entries(fields)) {\n Object.defineProperty(merged, key, { value: field, writable: true, enumerable: true, configurable: true });\n }\n return cloneSchemaForDecoration(objectSchema, { shape: merged });\n}\n\n/**\n * State a Zod factory writes onto an instance's `_zod.bag` AFTER construction, which a `.clone(def)` cannot rebuild:\n * `z.instanceof(Foo)` records `bag.Class`, read when the parse fails. Only keys the copy did not compute itself are\n * carried, so everything its own checks derive stays its own.\n */\nfunction carryZodBag(source: z.ZodTypeAny, copy: z.ZodTypeAny): void {\n const sourceBag = (source as any)?._zod?.bag as Record<string, unknown> | undefined;\n const copyBag = (copy as any)?._zod?.bag as Record<string, unknown> | undefined;\n if (!sourceBag || !copyBag) return;\n for (const [key, value] of Object.entries(sourceBag)) {\n if (!(key in copyBag)) copyBag[key] = value;\n }\n // `z.instanceof(Foo)` also replaces its check after construction, so a failure reads `invalid_type` \"expected Foo\"\n // rather than a bare custom issue. The replacement is carried with the class it names.\n if ((source as any)._zod.def?.type === 'custom' && sourceBag.Class !== undefined) {\n (copy as any)._zod.check = (source as any)._zod.check;\n }\n}\n\n/** The definition keys that hold ONE child schema, per Zod 4 definition type. */\nconst SINGLE_CHILD_DEFINITION_KEYS: Readonly<Record<string, readonly string[]>> = {\n array: ['element'],\n optional: ['innerType'],\n nullable: ['innerType'],\n default: ['innerType'],\n prefault: ['innerType'],\n readonly: ['innerType'],\n catch: ['innerType'],\n nonoptional: ['innerType'],\n promise: ['innerType'],\n success: ['innerType'],\n intersection: ['left', 'right'],\n record: ['keyType', 'valueType'],\n map: ['keyType', 'valueType'],\n set: ['valueType'],\n pipe: ['in', 'out'],\n};\n\n/**\n * A copy of `schema` whose CHILD schemas are `mapChild(child)` — or `schema` itself when every child maps to\n * itself (#1308).\n *\n * Decorators return copies, so a reader that wants a decorated view of a deep schema it does not own (a field\n * three levels down, a union member, an array element) rebuilds the path to it: this is the one structural step\n * of that rebuild, applied recursively by the caller. It covers every Zod 4 container — object (shape and\n * catchall), array, every wrapper, union, intersection, record, map, set, tuple, pipe and lazy — and keeps what a\n * hand-built copy loses: the decorator metadata, the refinements, and laziness (a `z.lazy`, and a shape member still\n * declared as a getter, are mapped when first read). A leaf has no children and is returned as it is.\n *\n * One step only: the caller recurses, and owns memoisation and cycles. Zod turns a recursive getter member into a\n * plain data property once the shape is read, so a recursive object is a real cycle by the time it is walked; a\n * caller that recurses must leave a node it meets again while still presenting it as it is.\n */\nexport function mapSchemaChildren<T extends z.ZodTypeAny>(schema: T, mapChild: (child: z.ZodTypeAny) => z.ZodTypeAny): T {\n const definition = getSchemaDefinition(schema);\n const type = definition?.type as string | undefined;\n if (!definition || !type) return schema;\n const overrides: Record<string, unknown> = {};\n let changed = false;\n const mapOne = (child: unknown): unknown => {\n if (!child || typeof child !== 'object' || !(child as { _zod?: unknown })._zod) return child;\n const mapped = mapChild(child as z.ZodTypeAny);\n if (mapped !== child) changed = true;\n return mapped;\n };\n\n if (type === 'object') {\n const shape = definition.shape as Record<string, z.ZodTypeAny>;\n const mappedShape: Record<string, z.ZodTypeAny> = {};\n for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(shape))) {\n if (descriptor.get) {\n // A recursive member: deferred, and the copy is always taken since what it maps to is unknown until read.\n const read = descriptor.get;\n let mapped: z.ZodTypeAny | undefined;\n Object.defineProperty(mappedShape, key, { enumerable: true, configurable: true, get: () => (mapped ??= mapChild(read.call(shape))) });\n changed = true;\n } else {\n mappedShape[key] = mapOne(descriptor.value) as z.ZodTypeAny;\n }\n }\n overrides.shape = mappedShape;\n if (definition.catchall !== undefined) overrides.catchall = mapOne(definition.catchall);\n } else if (type === 'union') {\n overrides.options = (definition.options as unknown[]).map(mapOne);\n } else if (type === 'tuple') {\n overrides.items = (definition.items as unknown[]).map(mapOne);\n if (definition.rest !== undefined && definition.rest !== null) overrides.rest = mapOne(definition.rest);\n } else if (type === 'lazy') {\n const getter = definition.getter as () => z.ZodTypeAny;\n let mapped: z.ZodTypeAny | undefined;\n overrides.getter = () => (mapped ??= mapChild(getter()));\n changed = true;\n } else {\n for (const key of SINGLE_CHILD_DEFINITION_KEYS[type] ?? []) {\n if (definition[key] !== undefined) overrides[key] = mapOne(definition[key]);\n }\n }\n return changed ? cloneSchemaForDecoration(schema, overrides) : schema;\n}\n\n/**\n * `copy` carrying what Zod stores OUTSIDE the instance for `source`: `.describe()` text and `.meta()` live in Zod's\n * global registry, keyed by instance, and a clone given a definition has none of it. Without this every decorated\n * copy of a described field lost its description — the OpenAPI node and the labelling planner read it — measured on\n * `privacy.consentedPurposes` the day builder semantics landed (#1308).\n *\n * COPIED, never linked. Zod's own answer is `.clone(def, { parent: true })`, whose `_zod.parent` the registry reads\n * through — and which keeps the source alive for as long as the copy lives. Every decorator call copies, so a chain\n * (`z.string().isDBIndexed().isSummaryField()`) would keep every intermediate copy: measured +68 MB (+27%) of\n * retained heap evaluating `@wildo-ai/saas-models`, where the copied entry costs nothing measurable. The registry is\n * a WeakMap, so the entry dies with the copy. `id` is left out, as Zod's link leaves it out: an id names ONE schema.\n */\nfunction withRegistryMetadataOf<T extends z.ZodTypeAny>(source: z.ZodTypeAny, copy: T): T {\n const registered = z.globalRegistry.get(source) as Record<string, unknown> | undefined;\n if (registered === undefined) return copy;\n const { id: _id, ...inherited } = registered;\n if (Object.keys(inherited).length > 0) z.globalRegistry.add(copy, inherited as never);\n return copy;\n}\n\n/**\n * A Zod definition copied by DESCRIPTOR, never spread, with `overrides` set on the copy.\n *\n * Zod declares part of a definition as getters, and a spread reads each one once: `.default(() => new Date())`\n * keeps its value behind a `defaultValue` getter that calls the function on every parse, so a spread copy freezes\n * the first date into a constant default for every row after it. Every copy this module makes goes through here.\n */\nfunction copySchemaDefinition(definition: Record<string, unknown>, overrides: Record<string, unknown> = {}): Record<string, unknown> {\n const copied = Object.defineProperties({}, Object.getOwnPropertyDescriptors(definition)) as Record<string, unknown>;\n /*\n * An object's `shape` is the exception: Zod installs it as a LAZY getter closed over the SOURCE definition, which\n * caches the shape onto that definition on first read. Copied as is, every read of the copy's shape would rewrite\n * the source's definition and hand back a fresh object. Read EAGERLY instead, it would break a recursive\n * declaration decorated where it is declared (`Base.extend({ get children() { … Node … } }).isSummaryField()`:\n * the getter runs before `Node` exists). So the copy gets a lazy getter of its own: it reads the source's shape on\n * first access and keeps that value.\n */\n const shapeDescriptor = Object.getOwnPropertyDescriptor(definition, 'shape');\n if (definition.type === 'object' && !('shape' in overrides) && shapeDescriptor?.get) {\n Object.defineProperty(copied, 'shape', {\n configurable: true,\n enumerable: shapeDescriptor.enumerable ?? true,\n get() {\n const shape = definition.shape;\n Object.defineProperty(copied, 'shape', { value: shape, writable: true, enumerable: true, configurable: true });\n return shape;\n },\n });\n }\n for (const [key, value] of Object.entries(overrides)) {\n Object.defineProperty(copied, key, { value, writable: true, enumerable: true, configurable: true });\n }\n return copied;\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 * **Not needed to keep a shared schema clean, since #1308.** Every decorator now\n * returns a decorated copy and never writes the schema it is called on, so\n * `PriorityEnum.isDBIndexed()` leaves `PriorityEnum` untouched with no clone. A\n * decorator's own copy carries the metadata SHALLOWLY (each decorator replaces a\n * top-level key); `z_clone` is for the rarer need of a copy whose nested metadata\n * values are independent too.\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 * **Implementation note:** clones through Zod's own `.clone(def)` with a copy of the\n * definition (by descriptor, so a getter such as a function default stays a getter).\n * A structural copy (`Object.assign({}, schema)`) cannot work here — `_zod` is a\n * non-enumerable own property, so the copy would omit Zod's internals entirely and\n * every method on it would still act on the ORIGINAL instance (`z_clone(leaf).optional()`\n * would wrap `leaf`, not the clone).\n *\n * **Scope:** the definition is copied SHALLOWLY, so composite members stay shared by\n * reference — `z.object()` shape fields, and a wrapper's own `innerType`. That shares\n * nothing writable: decorating a member returns a copy of the member.\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 = withRegistryMetadataOf(schema, nativeClone.call(schema, copySchemaDefinition(definition)) as T);\n carryZodBag(schema, clone);\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 COPIED rather than shared (`copySchemaDefinition`). 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 = withRegistryMetadataOf(innerType, nativeClone.call(innerType, copySchemaDefinition(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 carryZodBag(innerType, cloned);\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. The type-name\n // override travels too: `z_phone()` is a ZodPipe that decorates as a ZodString.\n return addChainableMethods(cloned, (innerType as any)[DECORATOR_TYPE_NAME_OVERRIDE] as string | undefined);\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\n/**\n * `isCalendarDate()` and `dateTimeUI()` say opposite things about one value (#2180): a calendar DAY, held as UTC\n * midnight and read by its UTC day, versus a moment with a time of day, edited and read in the reader's zone.\n * Together they would edit a time the value does not keep, so the second one applied, in either order, refuses.\n * Read from the same bag as the RAG-source pairs, which carries the earlier declaration across wrappers.\n */\nfunction assertCalendarDateNotDateTime(decorator: ZodDecorator, currentMetadata: CustomFieldMetadata): void {\n const conflicting =\n decorator === ZodDecorator.IS_CALENDAR_DATE ? ZodDecorator.DATETIME_UI : decorator === ZodDecorator.DATETIME_UI ? ZodDecorator.IS_CALENDAR_DATE : undefined;\n if (conflicting !== undefined && currentMetadata[conflicting] !== undefined) {\n throw new Error(\n `${decorator}() cannot be combined with ${conflicting}(): a calendar date is a day with no time of day, a dateTimeUI() field is a moment. ` +\n 'Declare a day with isCalendarDate() (and dateUI() for its display), or a moment with dateTimeUI().',\n );\n }\n}\n\n/**\n * The decorators that mark a value as a SECRET, each with the reason a subject-disclosed backend-only field\n * (`isBackendOnly({ disclosedToSubject: true })`, #2958) may never carry it. One table, consulted in both application\n * orders by {@link assertSubjectDisclosureAdmissible}, at the same chokepoint as the RAG-source pairs, so no door into the\n * metadata bypasses it.\n */\nconst SUBJECT_DISCLOSURE_REFUSED_COMPANIONS: ReadonlyMap<ZodDecorator, string> = new Map([\n [ZodDecorator.IS_PASSWORD, 'a password never leaves the backend, not even to the person it belongs to.'],\n [ZodDecorator.IS_OTP, 'a one-time code never leaves the backend once it was sent.'],\n [ZodDecorator.IS_WRITE_ONLY_SECRET, 'a write-only secret is masked on every response, so it is not disclosed to anyone.'],\n [ZodDecorator.IS_EPHEMERAL, 'an ephemeral value is shown once, when it is minted, and never again.'],\n]);\n\n/** Whether a stored `IS_BACKEND_ONLY` value declares the subject-disclosure opt-in. */\nfunction declaresDisclosedToSubject(value: unknown): boolean {\n return typeof value === 'object' && value !== null && (value as BackendOnlyFieldParams).disclosedToSubject === true;\n}\n\n/**\n * Refuse `isBackendOnly({ disclosedToSubject: true })` on a field that holds a secret, in either order (#2958): applied to\n * a field already marked a secret, applied with `isReturnedAtCreation` (a server-minted secret shown once), or a secret\n * marker applied to a field already opted in. Run after an updater is resolved, so an updater that adds the opt-in is\n * checked too, and before anything is written.\n */\nfunction assertSubjectDisclosureAdmissible(decorator: ZodDecorator, params: unknown, currentMetadata: CustomFieldMetadata): void {\n if (decorator === ZodDecorator.IS_BACKEND_ONLY) {\n if (!declaresDisclosedToSubject(params)) return;\n if ((params as BackendOnlyFieldParams).isReturnedAtCreation) {\n throw new Error('isBackendOnly() cannot declare both disclosedToSubject and isReturnedAtCreation: a value returned once at creation is a '\n + 'server-minted secret, and a subject export never discloses a secret.');\n }\n for (const [companion, reason] of SUBJECT_DISCLOSURE_REFUSED_COMPANIONS) {\n if (currentMetadata[companion] !== undefined) {\n throw new Error(`isBackendOnly({ disclosedToSubject: true }) cannot be combined with ${companion}(): ${reason}`);\n }\n }\n return;\n }\n const reason = SUBJECT_DISCLOSURE_REFUSED_COMPANIONS.get(decorator);\n if (reason !== undefined && declaresDisclosedToSubject(currentMetadata[ZodDecorator.IS_BACKEND_ONLY])) {\n throw new Error(`${decorator}() cannot be combined with isBackendOnly({ disclosedToSubject: true }): ${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 assertCalendarDateNotDateTime(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 // A deep copy: the metadata bag is copied shallowly onto every decorated copy, so `existing` is shared with the\n // schema this copy was made from, and an updater that edits its argument would edit that schema too (#1308).\n const currentValue = (existing && typeof existing === 'object') ? deepCloneValue(existing) : undefined;\n params = (params as (current: unknown) => unknown)(currentValue) as typeof params;\n resolvedFromUpdater = true;\n }\n // A subject-disclosed backend-only field never holds a secret (#2958). Checked on the RESOLVED params, before any write.\n assertSubjectDisclosureAdmissible(decorator, params, currentMetadata);\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. Every authoring form\n // stores one object whose `categories` is 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 //\n // THREE authoring shapes, ONE stored shape: a bare value, an array, or the object the fluent\n // method builds when its `options` argument is given (#2119). All three store a\n // `DataCategoriesFieldParams`, so the condition can never be separated from the categories it\n // qualifies.\n const raw = p as unknown;\n const isParamsObject = typeof raw === 'object' && raw !== null && !Array.isArray(raw);\n const rawCategories = isParamsObject ? (raw as { categories?: unknown }).categories : raw;\n const authored: readonly unknown[] = Array.isArray(rawCategories) ? rawCategories : [rawCategories];\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(rawCategories)}). ` +\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 const personalOnlyWhen = isParamsObject ? (raw as { personalOnlyWhen?: unknown }).personalOnlyWhen : undefined;\n // An options bag with no condition is the unconditional declaration; a condition that is present\n // must be a real value, because a blank one would read as \"conditional on nothing\".\n if (personalOnlyWhen !== undefined && (typeof personalOnlyWhen !== 'string' || personalOnlyWhen.trim().length === 0)) {\n throw new Error(\n `dataCategories(categories, { personalOnlyWhen }) requires a non-empty PersonalDataCondition value (received ${JSON.stringify(personalOnlyWhen)}). ` +\n `Omit the option for a field that is personal data on every row.`,\n );\n }\n const aboutAnotherParty = isParamsObject ? (raw as { aboutAnotherParty?: unknown }).aboutAnotherParty : undefined;\n if (aboutAnotherParty !== undefined && typeof aboutAnotherParty !== 'boolean') {\n throw new Error(\n `dataCategories(categories, { aboutAnotherParty }) takes a boolean (received ${JSON.stringify(aboutAnotherParty)}). ` +\n `Set it to true on a field naming a party other than the one the row is about, and omit it otherwise.`,\n );\n }\n const stored: DataCategoriesFieldParams = {\n categories: [...new Set(authored as readonly string[])],\n ...(personalOnlyWhen === undefined ? {} : { personalOnlyWhen: personalOnlyWhen as string }),\n ...(aboutAnotherParty === true ? { aboutAnotherParty: true } : {}),\n };\n currentMetadata[ZodDecorator.DATA_CATEGORIES] = stored;\n break;\n }\n case ZodDecorator.IS_AUDIT_EVIDENCE:\n currentMetadata[ZodDecorator.IS_AUDIT_EVIDENCE] = true;\n break;\n case ZodDecorator.IS_LAST_ACTION_RECORD:\n currentMetadata[ZodDecorator.IS_LAST_ACTION_RECORD] = true;\n break;\n case ZodDecorator.IS_DECIDER:\n currentMetadata[ZodDecorator.IS_DECIDER] = true;\n break;\n case ZodDecorator.IS_ROLE_GRANT:\n currentMetadata[ZodDecorator.IS_ROLE_GRANT] = 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.DOCUMENT_SEQUENCE: {\n // Parsed HERE, so a bad format fails when the schema loads, never when the first document is created.\n const sequence = p as DocumentSequenceParams | undefined;\n if (!sequence || !Object.values(DocumentSequenceScope).includes(sequence.scope)) {\n throw new Error('documentSequence: params need a format and a DocumentSequenceScope.');\n }\n if (sequence.allocation !== undefined && !Object.values(DocumentSequenceAllocation).includes(sequence.allocation)) {\n throw new Error(`documentSequence: unknown allocation \"${String(sequence.allocation)}\".`);\n }\n parseDocumentSequenceFormat(sequence.format);\n currentMetadata[ZodDecorator.DOCUMENT_SEQUENCE] = sequence;\n break;\n }\n case ZodDecorator.OBJECT_BUSINESS_KEY_SET:\n currentMetadata[ZodDecorator.OBJECT_BUSINESS_KEY_SET] = p;\n break;\n case ZodDecorator.OBJECT_COMPOUND_INDEX: {\n // ACCUMULATES: each call declares one more index. A fresh array, never a push, so the schema this one was\n // derived from keeps its own list (decorators are builders, #1308). The same field list twice is one index.\n const existing = (currentMetadata[ZodDecorator.OBJECT_COMPOUND_INDEX] ?? []) as CompoundIndexParams[];\n const declared = p as CompoundIndexParams;\n const key = declared.fields.join('\\u0000');\n currentMetadata[ZodDecorator.OBJECT_COMPOUND_INDEX] = existing.some((index) => index.fields.join('\\u0000') === key)\n ? existing\n : [...existing, { fields: [...declared.fields] }];\n break;\n }\n case ZodDecorator.RESOURCE_REFERENCE:\n currentMetadata[ZodDecorator.RESOURCE_REFERENCE] = 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 case ZodDecorator.IS_CALENDAR_DATE:\n currentMetadata[ZodDecorator.IS_CALENDAR_DATE] = 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 — and only when the result IS a\n // schema: `.meta()` with no argument returns the registry entry, which must not be written to.\n if (result && result !== this && (result as any)._zod) {\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 if (decoratorTypeName !== undefined && (decoratedSchema as any)[DECORATOR_TYPE_NAME_OVERRIDE] !== decoratorTypeName) {\n Object.defineProperty(decoratedSchema, DECORATOR_TYPE_NAME_OVERRIDE, { value: decoratorTypeName, enumerable: false, writable: true, configurable: true });\n }\n const ctorName = decoratorTypeName ?? ((decoratedSchema as any)[DECORATOR_TYPE_NAME_OVERRIDE] as string | undefined) ?? ((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 options?: DataCategoriesOptions,\n): T {\n ensureZodDecoratorsLoaded(z);\n return addDecorators(schema, [\n { ref: ZodDecorator.DATA_CATEGORIES, params: options ? { ...options, categories: typeof categories === 'string' ? [categories] : categories } : 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 * 1b. A PURE Zod clone with none of its own reads the schema it was cloned from (see below)\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 // A PURE Zod clone is the same schema under a new instance: Zod's `clone(schema)` with no new definition, which keeps\n // the original as `_zod.parent` and shares its very `def`. Zod makes one where an author cannot intervene, notably for\n // the KEY schema of `z.partialRecord(key, value)`, and the decorators live on the instance, so the clone came out\n // carrying none: a foreign key declared on a partial record's key was invisible to every reader (#2762). Such a clone\n // answers with its original's decorators. A clone that was decorated itself (`schema.clone().arraySpec(…)`) has its\n // own metadata, read above, unchanged; a clone built from a NEW definition (`z_clone`, a wrapper's private copy) has\n // a different `def` and is not one of these.\n const clonedFrom = (schema as any)._zod?.parent;\n if (clonedFrom && clonedFrom !== schema && clonedFrom._zod?.def === def) {\n return getMetadataRecursive(clonedFrom);\n }\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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\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 * `options.personalOnlyWhen` takes a `PersonalDataCondition` (also from `@wildo-ai/saas-models`)\n * for a field that is personal data only on some rows. The case it exists for is a field naming\n * the PARTY a row describes — a customer account, a supplier: it is an individual's data when that\n * party is a sole trader, and a company's when it is not. The field still counts as personal data\n * for erasure, export and every guard; the privacy notice lists it as held \"where the customer is\n * an individual\" instead of claiming it about every customer. Do not use it for a field naming a\n * person AT a company (a contact's email): that is personal on every row.\n *\n * `options.aboutAnotherParty: true` says the field names a party OTHER than the one the row is about: a\n * copy of another organization's name kept on a cost record or a relationship. It decides only one thing:\n * a resource declaring `retentionPolicy: RETAIN_ONLY` (\"no personal data about its own subject\") may keep\n * such a copy. Leave it off the row's own party's name (a customer account's own name), which that\n * resource may not keep.\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 * @example\n * // A customer account's name: a person's data only when the customer is a sole trader.\n * accountName: z.string().dataCategories(PersonalDataCategory.IDENTITY, { personalOnlyWhen: PersonalDataCondition.DESCRIBED_PARTY_IS_A_NATURAL_PERSON })\n * @example\n * // The billed customer's name copied onto an invoice line: another party's name, not the line's subject.\n * customerName: z.string().dataCategories(PersonalDataCategory.IDENTITY, { personalOnlyWhen: PersonalDataCondition.DESCRIBED_PARTY_IS_A_NATURAL_PERSON, aboutAnotherParty: true })\n */\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n /** @wildo_source:part:end zod.decorators.data-categories */\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n /**\n * `.isLastActionRecord()` — this row field holds what the most recent action said about itself (the reason\n * given for a decision), so a form that starts from the row never offers it as the next action's starting\n * value. Mark it where an action REPLACES the field with words about that action; never on a setting an\n * action edits from its current value. Read back with `isLastActionRecordField(schema)`.\n *\n * @example\n * decisionReason: z.string().max(1000).optional().excludeFromCreate().excludeFromUpdate().isLastActionRecord()\n */\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n /**\n * `.isDecider()` — this row field records which person decided something on the row (who approved, accepted,\n * placed, released). The declaration of the verb that writes it names it (`approvalSeal.decides`, #2906); the engine\n * checks that over its own resources. Read back with `isDeciderField(schema)`.\n *\n * @example\n * decidedByUserId: z.string().optional().excludeFromCreate().excludeFromUpdate().isDecider()\n */\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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 /**\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<this>;\n /** @wildo_source:part:end zod.decorators.rag-source */\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.DOCUMENT_SEQUENCE](params: DocumentSequenceParams): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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.DOCUMENT_SEQUENCE](params: DocumentSequenceParams): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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 /** @wildo_source:part:start zod.decorators.shared-structural-methods facet:layer:shared facet:family:decorator facet:family:method-surface */\n /**\n * `z.date().isCalendarDate()` — the date is a CALENDAR DAY (a due date, a birthday, an invoice date), not an\n * instant. It is held as UTC midnight of the day and shown and picked as that day for every reader, whatever\n * their time zone; \"tomorrow\" is still measured from the reader's today. Leave it off a moment in time\n * (`createdAt`, `expiresAt`, `completedAt`): an undeclared date is an instant, shown in the reader's zone.\n * A day has no time of day, so it cannot also declare `dateTimeUI()`: combining the two throws when the schema\n * loads. Use `dateUI()` to style a calendar date's display, and `dateTimeUI()` alone for a moment.\n */\n [ZodDecorator.IS_CALENDAR_DATE](): DecoratedPrimitiveZodType<this>;\n /** @wildo_source:part:end zod.decorators.shared-structural-methods */\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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n /**\n * `.isRoleGrant()` — this field's values are roles the writer grants, so a form offers only the roles the person\n * filling it may grant, plus any the record already holds (#3248). Mark a field a form offers roles in, where the\n * write is checked against the writer's role ceiling. Read back with `isRoleGrantField(schema)`.\n *\n * @example\n * roles: z.array(OrgRolesSchema).default([]).isRoleGrant()\n */\n [ZodDecorator.IS_ROLE_GRANT](): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n /** `.isRoleGrant()`: the field's values are roles the writer grants. Documented on `ZodArray`. */\n [ZodDecorator.IS_ROLE_GRANT](): 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.IS_CALENDAR_DATE](): 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 [ZodDecorator.DOCUMENT_SEQUENCE](params: DocumentSequenceParams): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n /** `.isLastActionRecord()`: the field holds what the most recent action said about itself. Documented on `ZodString`. */\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n /** `.isDecider()`: the field records which person decided something on the row. Documented on `ZodString`. */\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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.IS_CALENDAR_DATE](): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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.IS_CALENDAR_DATE](): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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 // One more non-unique index over several fields — see compoundIndex([...])\n [ZodDecorator.OBJECT_COMPOUND_INDEX](fields: string[]): DecoratedPrimitiveZodType<this>;\n // A row of a resource chosen at run time — see isResourceReference({ targetSet })\n [ZodDecorator.RESOURCE_REFERENCE](params: ResourceReferenceParams): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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, and this entry is the only thing that makes it callable on this\n // type, bare or decorated (a decorator returns the schema's own type, #3031).\n [ZodDecorator.PORTABILITY_PROVENANCE](provenance: string): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.DATA_CATEGORIES](categories: string | readonly string[], options?: DataCategoriesOptions): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_AUDIT_EVIDENCE](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_LAST_ACTION_RECORD](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_DECIDER](): DecoratedPrimitiveZodType<this>;\n [ZodDecorator.IS_ROLE_GRANT](): 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 *\n * ⚠️ zod@4.6 DID move them (2026-11-09), as binding ACCESSORS installed lazily on the first instance. So\n * this function is now live whenever a schema was built before this module ran, and inert otherwise\n * (zod's own install then lands after it). It reads and writes through `readPrototypeMethod` /\n * `installBoundPrototypeMethod`, because a plain `prototype[name]` read binds the method to the\n * PROTOTYPE — see `readPrototypeMethod` for what that broke.\n */\nfunction patchPrototypeMethodsForMetadataPreservation(prototype: any, methodNames: string[]): void {\n for (const methodName of methodNames) {\n const originalMethod = readPrototypeMethod(prototype, methodName);\n if (typeof originalMethod !== 'function') continue;\n if ((originalMethod as any).__prototypeMetadataWrapped) continue;\n installBoundPrototypeMethod(prototype, methodName, wrapMethodToPreserveMetadata(originalMethod, methodName));\n }\n}\n\n/**\n * Reads a schema method off a PROTOTYPE without binding it to the prototype.\n *\n * zod 4.6 moved schema methods onto prototypes, as ACCESSORS: a trait's members are installed lazily on the\n * constructor's prototype when its first instance is built (`util.members` → `defineBound`), and the getter binds the\n * method to its receiver and memoizes it there — `own(this, key, fn.bind(this))`. So a plain `prototype[name]` runs\n * that getter with the PROTOTYPE as `this` and permanently shadows the prototype with a method bound to itself. Every\n * schema then inherited a `refine` whose `this` was the prototype, and zod's `check` read `this.def` off it: measured\n * 2026-11-09 under vitest as `Cannot read properties of undefined (reading 'checks')` at `z.string().refine(…)`, which\n * failed 13 suites of `saas-specifications` at import. It reproduced only when a schema had been built before this\n * module ran (so the members were already installed), which is why `zod-decorators`' own suite stayed green.\n *\n * zod's getter answers the RAW method for a nullish receiver (\"vitest's spyOn calls a prototype getter bare\"), which is\n * the read this needs. A data property (zod ≤ 4.3, or our own decorator) is returned as it is.\n */\nfunction readPrototypeMethod(prototype: object, methodName: string): unknown {\n for (let at: object | null = prototype; at && at !== Object.prototype; at = Object.getPrototypeOf(at)) {\n const descriptor = Object.getOwnPropertyDescriptor(at, methodName);\n if (!descriptor) continue;\n if ('value' in descriptor) return descriptor.value;\n if (!descriptor.get) return undefined;\n try {\n return descriptor.get.call(undefined);\n } catch {\n // A getter that derives a value from its instance is not a method; there is nothing to wrap.\n return undefined;\n }\n }\n return undefined;\n}\n\n/**\n * Installs a method on a prototype with zod 4.6's own member semantics: bound to the instance on first read and\n * memoized there, so a detached member (`const opt = schema.optional; opt()`) keeps working as it does for zod's own,\n * and assignment shadows on the instance.\n *\n * Only a receiver that INHERITS from `prototype` is an instance read. Every other receiver gets the unbound method and\n * nothing is memoized, which is what zod's own getter answers for a nullish one. The test is deliberately not\n * `this == null`: in sloppy-mode code a getter called with an `undefined` receiver sees `globalThis`, and this module\n * runs sloppy whenever tsx transforms it to CommonJS (every `wildo.saas.config.ts` imported through tsx — see\n * `prototype-member-binding.zod46.test.ts`). Measured 2026-11-09: `readPrototypeMethod`'s bare read then memoized\n * eleven zod methods on `globalThis` and returned a copy bound to it without the wrap marker, the next patch pass wrapped\n * that copy, and `z.string().refine(…)` threw `this.check is not a function` while `@wildo-ai/zod-decorators` loaded.\n * The same predicate keeps a plain `prototype[name]` read from binding the method to the prototype itself.\n */\nfunction installBoundPrototypeMethod(prototype: object, methodName: string, method: Function): void {\n Object.defineProperty(prototype, methodName, {\n configurable: true,\n enumerable: false,\n get(this: object | null | undefined) {\n if (!Object.prototype.isPrototypeOf.call(prototype, this)) return method;\n const bound = method.bind(this);\n Object.defineProperty(this, methodName, { configurable: true, enumerable: true, writable: true, value: bound });\n return bound;\n },\n set(this: object, value: unknown) {\n Object.defineProperty(this, methodName, { configurable: true, enumerable: true, writable: true, value });\n },\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 was INERT on zod@4.3.6 and is live on 4.6 only when a schema was built\n * first — see that function's own docblock; `addChainableMethods` is what preserves metadata through a\n * 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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zodInstance.ZodNumber.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zodInstance.ZodBigInt.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zodInstance.ZodBoolean.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zodInstance.ZodDate.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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.IS_CALENDAR_DATE] = ZodDecorator_FunctionType[ZodDecorator.IS_CALENDAR_DATE];\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 zodInstance.ZodOptional.prototype[ZodDecorator.IS_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zodInstance.ZodOptional.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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 zodInstance.ZodOptional.prototype[ZodDecorator.DOCUMENT_SEQUENCE] = ZodDecorator_FunctionType[ZodDecorator.DOCUMENT_SEQUENCE];\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 zodInstance.ZodOptional.prototype[ZodDecorator.IS_CALENDAR_DATE] = ZodDecorator_FunctionType[ZodDecorator.IS_CALENDAR_DATE];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zodInstance.ZodEnum.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zodInstance.ZodArray.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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 * `DOCUMENT_SEQUENCE` (#2509) is excluded for the same kind of reason: a document number is present or absent,\n * never null and never defaulted. Absent is the one way to be not yet numbered, and a default is a number the counter\n * never handed out. (A null also used to collide in MongoDB's unique index only; #2582 made that index leave a null\n * out on both stores.)\n * Left out of both wrapper interfaces too, so `z.string().nullable().documentSequence(...)` is a type error; the\n * decorator still refuses a nullable or defaulted schema reached under `.optional()`, which no type can see.\n *\n * `isResourceReference` (#2471) is excluded because it validates the OBJECT it decorates: it names that object's\n * `resourceType` and `resourceId` members, and a wrapper has no members to check. It is declared on the object\n * before the object is wrapped (`WorkUnitRefSchema.optional()`), and read through any wrapper. `ZodOptional`,\n * whose list is written by hand, does not carry it either.\n *\n * `compoundIndex` (#3142) is excluded for the same reason: it names fields of the OBJECT it decorates, and an index\n * belongs to the stored row, whose schema is a plain object. It is read from the top-level object only.\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, ZodDecorator.DOCUMENT_SEQUENCE, ZodDecorator.RESOURCE_REFERENCE, ZodDecorator.OBJECT_COMPOUND_INDEX]);\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zi.ZodUnion.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zi.ZodUnion.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zi.ZodObject.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zi.ZodObject.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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 zi.ZodObject.prototype[ZodDecorator.OBJECT_COMPOUND_INDEX] = ZodDecorator_FunctionType[ZodDecorator.OBJECT_COMPOUND_INDEX];\n zi.ZodObject.prototype[ZodDecorator.RESOURCE_REFERENCE] = ZodDecorator_FunctionType[ZodDecorator.RESOURCE_REFERENCE];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zi.ZodRecord.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zi.ZodRecord.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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_LAST_ACTION_RECORD] = ZodDecorator_FunctionType[ZodDecorator.IS_LAST_ACTION_RECORD];\n zi.ZodMap.prototype[ZodDecorator.IS_DECIDER] = ZodDecorator_FunctionType[ZodDecorator.IS_DECIDER];\n zi.ZodMap.prototype[ZodDecorator.IS_ROLE_GRANT] = ZodDecorator_FunctionType[ZodDecorator.IS_ROLE_GRANT];\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"]}