@zipbul/baker 5.1.0 → 5.2.0

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 (201) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/dist/index.d.ts +11 -9
  3. package/dist/index.js +1 -1
  4. package/dist/src/baker.d.ts +8 -9
  5. package/dist/src/baker.js +1 -1
  6. package/dist/src/common/enums.d.ts +10 -0
  7. package/dist/src/common/enums.js +1 -0
  8. package/dist/src/common/index.d.ts +6 -0
  9. package/dist/src/common/index.js +1 -0
  10. package/dist/src/common/interfaces.d.ts +4 -0
  11. package/dist/src/common/types.d.ts +2 -0
  12. package/dist/src/config/config-normalizer.d.ts +7 -0
  13. package/dist/src/config/config-normalizer.js +1 -0
  14. package/dist/src/config/constants.d.ts +6 -0
  15. package/dist/src/config/constants.js +1 -0
  16. package/dist/src/config/index.d.ts +3 -0
  17. package/dist/src/config/index.js +1 -0
  18. package/dist/src/{configure.d.ts → config/interfaces.d.ts} +1 -8
  19. package/dist/src/config/interfaces.js +0 -0
  20. package/dist/src/decorators/constants.d.ts +2 -0
  21. package/dist/src/decorators/constants.js +1 -0
  22. package/dist/src/decorators/enums.d.ts +5 -0
  23. package/dist/src/decorators/enums.js +1 -0
  24. package/dist/src/decorators/field.d.ts +3 -54
  25. package/dist/src/decorators/field.js +1 -1
  26. package/dist/src/decorators/index.d.ts +2 -2
  27. package/dist/src/decorators/index.js +1 -1
  28. package/dist/src/decorators/interfaces.d.ts +50 -0
  29. package/dist/src/decorators/interfaces.js +0 -0
  30. package/dist/src/decorators/public.d.ts +2 -0
  31. package/dist/src/decorators/public.js +1 -0
  32. package/dist/src/decorators/types.d.ts +6 -0
  33. package/dist/src/decorators/types.js +0 -0
  34. package/dist/src/metadata/enums.d.ts +5 -0
  35. package/dist/src/metadata/enums.js +1 -0
  36. package/dist/src/metadata/index.d.ts +3 -0
  37. package/dist/src/metadata/index.js +1 -0
  38. package/dist/src/metadata/interfaces.d.ts +90 -0
  39. package/dist/src/metadata/interfaces.js +0 -0
  40. package/dist/src/metadata/meta-store.d.ts +49 -0
  41. package/dist/src/metadata/meta-store.js +1 -0
  42. package/dist/src/metadata/types.d.ts +10 -0
  43. package/dist/src/metadata/types.js +0 -0
  44. package/dist/src/rules/array.d.ts +2 -2
  45. package/dist/src/rules/array.js +1 -1
  46. package/dist/src/rules/binary.d.ts +2 -2
  47. package/dist/src/rules/binary.js +1 -1
  48. package/dist/src/rules/combinators.d.ts +1 -1
  49. package/dist/src/rules/combinators.js +1 -1
  50. package/dist/src/rules/common.d.ts +3 -3
  51. package/dist/src/rules/common.js +1 -1
  52. package/dist/src/rules/constants.d.ts +10 -0
  53. package/dist/src/rules/constants.js +1 -0
  54. package/dist/src/{create-rule.d.ts → rules/create-rule.d.ts} +1 -1
  55. package/dist/src/rules/create-rule.js +1 -0
  56. package/dist/src/rules/date.d.ts +1 -1
  57. package/dist/src/rules/date.js +1 -1
  58. package/dist/src/{enums.d.ts → rules/enums.d.ts} +0 -20
  59. package/dist/src/rules/enums.js +1 -0
  60. package/dist/src/rules/index.d.ts +5 -13
  61. package/dist/src/rules/index.js +1 -1
  62. package/dist/src/rules/interfaces.d.ts +43 -0
  63. package/dist/src/rules/interfaces.js +0 -0
  64. package/dist/src/rules/locales.d.ts +1 -1
  65. package/dist/src/rules/locales.js +1 -1
  66. package/dist/src/rules/number.d.ts +3 -3
  67. package/dist/src/rules/number.js +1 -1
  68. package/dist/src/rules/object.d.ts +1 -1
  69. package/dist/src/rules/object.js +1 -1
  70. package/dist/src/rules/public.d.ts +14 -0
  71. package/dist/src/rules/public.js +1 -0
  72. package/dist/src/{rule-metadata.d.ts → rules/rule-metadata.d.ts} +1 -1
  73. package/dist/src/{rule-metadata.js → rules/rule-metadata.js} +1 -1
  74. package/dist/src/{rule-plan.d.ts → rules/rule-plan.d.ts} +4 -7
  75. package/dist/src/rules/rule-plan.js +1 -0
  76. package/dist/src/rules/string-basic.d.ts +23 -0
  77. package/dist/src/rules/string-basic.js +1 -0
  78. package/dist/src/rules/string-crypto.d.ts +5 -0
  79. package/dist/src/rules/string-crypto.js +1 -0
  80. package/dist/src/rules/string-datetime.d.ts +3 -0
  81. package/dist/src/rules/string-datetime.js +1 -0
  82. package/dist/src/rules/string-encoding.d.ts +14 -0
  83. package/dist/src/rules/string-encoding.js +1 -0
  84. package/dist/src/rules/string-finance.d.ts +18 -0
  85. package/dist/src/rules/string-finance.js +10 -0
  86. package/dist/src/rules/string-format.d.ts +38 -0
  87. package/dist/src/rules/string-format.js +1 -0
  88. package/dist/src/rules/string-geo.d.ts +5 -0
  89. package/dist/src/rules/string-geo.js +1 -0
  90. package/dist/src/rules/string-identifier.d.ts +16 -0
  91. package/dist/src/rules/string-identifier.js +3 -0
  92. package/dist/src/rules/string-shared.d.ts +3 -0
  93. package/dist/src/rules/string-shared.js +1 -0
  94. package/dist/src/rules/string-width.d.ts +6 -0
  95. package/dist/src/rules/string-width.js +1 -0
  96. package/dist/src/rules/string.d.ts +14 -110
  97. package/dist/src/rules/string.js +1 -12
  98. package/dist/src/rules/typechecker.d.ts +10 -10
  99. package/dist/src/rules/typechecker.js +5 -5
  100. package/dist/src/rules/types.d.ts +26 -0
  101. package/dist/src/rules/types.js +0 -0
  102. package/dist/src/{functions → runtime}/check-call-options.d.ts +1 -1
  103. package/dist/src/runtime/check-call-options.js +1 -0
  104. package/dist/src/runtime/constants.d.ts +3 -0
  105. package/dist/src/runtime/constants.js +1 -0
  106. package/dist/src/{functions → runtime}/deserialize.d.ts +2 -3
  107. package/dist/src/runtime/deserialize.js +1 -0
  108. package/dist/src/runtime/index.d.ts +3 -0
  109. package/dist/src/runtime/index.js +1 -0
  110. package/dist/src/{functions → runtime}/serialize.d.ts +2 -2
  111. package/dist/src/runtime/serialize.js +1 -0
  112. package/dist/src/{functions → runtime}/validate.d.ts +2 -3
  113. package/dist/src/runtime/validate.js +1 -0
  114. package/dist/src/seal/async-analyzer.d.ts +20 -0
  115. package/dist/src/seal/async-analyzer.js +1 -0
  116. package/dist/src/seal/circular-analyzer.d.ts +9 -6
  117. package/dist/src/seal/circular-analyzer.js +1 -1
  118. package/dist/src/seal/circular-placeholder.d.ts +20 -0
  119. package/dist/src/seal/circular-placeholder.js +1 -0
  120. package/dist/src/seal/codegen-utils.d.ts +15 -0
  121. package/dist/src/seal/codegen-utils.js +1 -1
  122. package/dist/src/seal/compile-cache.d.ts +38 -0
  123. package/dist/src/seal/compile-cache.js +1 -0
  124. package/dist/src/seal/constants.d.ts +62 -0
  125. package/dist/src/seal/constants.js +1 -0
  126. package/dist/src/seal/deserialize-builder.d.ts +3 -6
  127. package/dist/src/seal/deserialize-builder.js +200 -263
  128. package/dist/src/seal/deserialize-codegen.d.ts +58 -0
  129. package/dist/src/seal/deserialize-codegen.js +64 -0
  130. package/dist/src/seal/enums.d.ts +1 -2
  131. package/dist/src/seal/enums.js +1 -1
  132. package/dist/src/seal/expose-validator.d.ts +2 -2
  133. package/dist/src/seal/expose-validator.js +1 -1
  134. package/dist/src/seal/index.d.ts +3 -0
  135. package/dist/src/seal/index.js +1 -0
  136. package/dist/src/seal/inheritance-merger.d.ts +18 -0
  137. package/dist/src/seal/inheritance-merger.js +1 -0
  138. package/dist/src/seal/interfaces.d.ts +89 -0
  139. package/dist/src/seal/interfaces.js +0 -0
  140. package/dist/src/seal/meta-validator.d.ts +16 -0
  141. package/dist/src/seal/meta-validator.js +1 -0
  142. package/dist/src/seal/seal.d.ts +4 -28
  143. package/dist/src/seal/seal.js +1 -1
  144. package/dist/src/seal/serialize-builder.d.ts +5 -3
  145. package/dist/src/seal/serialize-builder.js +64 -64
  146. package/dist/src/seal/type-normalizer.d.ts +9 -0
  147. package/dist/src/seal/type-normalizer.js +1 -0
  148. package/dist/src/seal/type-resolver.d.ts +2 -0
  149. package/dist/src/seal/type-resolver.js +1 -0
  150. package/dist/src/seal/types.d.ts +6 -0
  151. package/dist/src/seal/types.js +0 -0
  152. package/dist/src/transformers/{collection.transformer.d.ts → collection.d.ts} +1 -1
  153. package/dist/src/transformers/constants.d.ts +2 -0
  154. package/dist/src/transformers/constants.js +1 -0
  155. package/dist/src/transformers/{date.transformer.d.ts → date.d.ts} +1 -1
  156. package/dist/src/transformers/date.js +1 -0
  157. package/dist/src/transformers/index.d.ts +3 -8
  158. package/dist/src/transformers/index.js +1 -1
  159. package/dist/src/transformers/interfaces.d.ts +26 -0
  160. package/dist/src/transformers/interfaces.js +0 -0
  161. package/dist/src/transformers/luxon.d.ts +3 -0
  162. package/dist/src/transformers/luxon.js +1 -0
  163. package/dist/src/transformers/moment.d.ts +3 -0
  164. package/dist/src/transformers/moment.js +1 -0
  165. package/dist/src/transformers/{number.transformer.d.ts → number.d.ts} +1 -1
  166. package/dist/src/transformers/public.d.ts +7 -0
  167. package/dist/src/transformers/public.js +1 -0
  168. package/dist/src/transformers/{string.transformer.d.ts → string.d.ts} +1 -1
  169. package/dist/src/transformers/types.d.ts +3 -0
  170. package/dist/src/transformers/types.js +0 -0
  171. package/package.json +7 -7
  172. package/dist/src/collect.d.ts +0 -15
  173. package/dist/src/collect.js +0 -1
  174. package/dist/src/configure.js +0 -1
  175. package/dist/src/create-rule.js +0 -1
  176. package/dist/src/enums.js +0 -1
  177. package/dist/src/functions/check-call-options.js +0 -1
  178. package/dist/src/functions/deserialize.js +0 -1
  179. package/dist/src/functions/serialize.js +0 -1
  180. package/dist/src/functions/validate.js +0 -1
  181. package/dist/src/interfaces.d.ts +0 -32
  182. package/dist/src/meta-access.d.ts +0 -12
  183. package/dist/src/meta-access.js +0 -1
  184. package/dist/src/rule-plan.js +0 -1
  185. package/dist/src/seal/validate-meta.d.ts +0 -13
  186. package/dist/src/seal/validate-meta.js +0 -1
  187. package/dist/src/transformers/date.transformer.js +0 -1
  188. package/dist/src/transformers/luxon.transformer.d.ts +0 -8
  189. package/dist/src/transformers/luxon.transformer.js +0 -1
  190. package/dist/src/transformers/moment.transformer.d.ts +0 -7
  191. package/dist/src/transformers/moment.transformer.js +0 -1
  192. package/dist/src/types.d.ts +0 -177
  193. /package/dist/src/{errors.d.ts → common/errors.d.ts} +0 -0
  194. /package/dist/src/{errors.js → common/errors.js} +0 -0
  195. /package/dist/src/{interfaces.js → common/interfaces.js} +0 -0
  196. /package/dist/src/{types.js → common/types.js} +0 -0
  197. /package/dist/src/{utils.d.ts → common/utils.d.ts} +0 -0
  198. /package/dist/src/{utils.js → common/utils.js} +0 -0
  199. /package/dist/src/transformers/{collection.transformer.js → collection.js} +0 -0
  200. /package/dist/src/transformers/{number.transformer.js → number.js} +0 -0
  201. /package/dist/src/transformers/{string.transformer.js → string.js} +0 -0
@@ -0,0 +1,20 @@
1
+ import type { RuntimeOptions } from '../common';
2
+ import type { SealedExecutors } from './interfaces';
3
+ /**
4
+ * @internal Placeholder executor parked in the baker's map while a class is mid-seal, to break circular
5
+ * references. The instance IS the placeholder: it holds the still-sealing class name as private state
6
+ * and its executor members throw if invoked before sealing completes.
7
+ *
8
+ * The three executor members are writable OWN (arrow) fields, not prototype methods, so sealOne can
9
+ * replace them in place via `Object.assign(placeholder, { deserialize, … })` once compilation finishes
10
+ * (reference identity is load-bearing — nested refs already hold this object).
11
+ */
12
+ export declare class CircularPlaceholder implements SealedExecutors<unknown> {
13
+ #private;
14
+ isAsync: boolean;
15
+ isSerializeAsync: boolean;
16
+ constructor(className: string);
17
+ deserialize: (_input: unknown, _options?: RuntimeOptions) => never;
18
+ serialize: (_instance: unknown, _options?: RuntimeOptions) => never;
19
+ validate: (_input: unknown, _options?: RuntimeOptions) => never;
20
+ }
@@ -0,0 +1 @@
1
+ export class CircularPlaceholder{#q;isAsync=!1;isSerializeAsync=!1;constructor(q){this.#q=`Circular dependency during seal: ${q} is still being sealed`}deserialize=(q,C)=>{throw new A(this.#q)};serialize=(q,C)=>{throw new A(this.#q)};validate=(q,C)=>{throw new A(this.#q)}}import{BakerError as A}from"../common/index.js";
@@ -1,5 +1,20 @@
1
+ import type { RawPropertyMeta } from '../metadata';
2
+ import { Direction } from '../common';
1
3
  /** Convert key to a valid JS identifier suffix (encode non-alphanumeric chars via charCode to prevent collisions) */
2
4
  export declare function sanitizeKey(key: string): string;
5
+ /**
6
+ * Resolve the rename target for a field in `direction`: the @Expose `name` from a same-direction-only
7
+ * entry if present, else a bidirectional @Expose `name`, else the field key itself. The single source
8
+ * of truth for both deserialize extract-key and serialize output-key resolution (they are mirror images
9
+ * differing only in which directional flag they honour).
10
+ */
11
+ export declare function resolveExposeName(fieldKey: string, exposeStack: RawPropertyMeta['expose'], direction: Direction): string;
12
+ /**
13
+ * Resolve a field's expose groups for `direction` — undefined (no restriction) if any unconditional
14
+ * expose entry exists. Single source of truth for both directions: serialize skips deserialize-only
15
+ * entries, deserialize skips serialize-only entries.
16
+ */
17
+ export declare function resolveExposeGroups(exposeStack: RawPropertyMeta['expose'], direction: Direction): string[] | undefined;
3
18
  /**
4
19
  * Generate a groups-has expression for the fast-path single-group / Set pattern.
5
20
  * Checks if any of the given groups match the runtime groups.
@@ -1 +1 @@
1
- export function sanitizeKey(d){return d.replace(/[^a-zA-Z0-9_]/g,(b)=>`$${b.charCodeAt(0)}$`)}export function buildGroupsHasExpr(d,b,w){return w.map((z)=>{const j=JSON.stringify(z);return`(${d}===${j} || (${b} && ${b}.has(${j})))`}).join(" || ")}
1
+ import{Direction as F}from"../common/index.js";export function sanitizeKey(B){return B.replace(/[^a-zA-Z0-9_]/g,(w)=>`$${w.charCodeAt(0)}$`)}export function resolveExposeName(B,w,z){const A=z===F.Serialize?w.find((j)=>j.serializeOnly&&j.name):w.find((j)=>j.deserializeOnly&&j.name);if(A)return A.name;const E=w.find((j)=>!j.deserializeOnly&&!j.serializeOnly&&j.name);if(E)return E.name;return B}export function resolveExposeGroups(B,w){let z=null;for(const A of B){if(w===F.Serialize?A.deserializeOnly:A.serializeOnly)continue;if(!A.groups||A.groups.length===0)return;if(z===null)z=new Set;for(const E of A.groups)z.add(E)}return z===null?void 0:[...z]}export function buildGroupsHasExpr(B,w,z){return z.map((E)=>{const j=JSON.stringify(E);return`(${B}===${j} || (${w} && ${w}.has(${j})))`}).join(" || ")}
@@ -0,0 +1,38 @@
1
+ import type { SealOptions, SealedExecutors } from './interfaces';
2
+ /**
3
+ * A class's generated executor is a pure function of (its RAW metadata, the seal config). So two
4
+ * bakers with the SAME config compile byte-identical executors — memoize globally by
5
+ * `(class, configFingerprint)` so they share one executor (compiled once) instead of N copies, while
6
+ * different-config bakers stay isolated (distinct fingerprint → distinct entry). Behaviour is
7
+ * unchanged either way: executors are pure (no per-call mutable state), so sharing is invisible.
8
+ *
9
+ * `WeakMap<class>` so an entry is reclaimed when its class is GC'd. The inner `Map` retains one
10
+ * executor per (class, config) for the class's lifetime — bounded for a fixed DTO/config set (the
11
+ * intended "seal once at startup" usage); a program that dynamically generates classes/configs would
12
+ * grow it without eviction.
13
+ *
14
+ * The cache owns its WeakMap as a private field (no module-level mutable state) and is exposed as a
15
+ * single process-global instance, `compileCache` — the single source of truth for compiled executors.
16
+ */
17
+ declare class CompileCache {
18
+ #private;
19
+ constructor();
20
+ /**
21
+ * Canonical fingerprint of a SealOptions — the seal-affecting booleans in fixed order. `{}` and a
22
+ * fully-defaulted object both map to "00000", so `new Baker()` and `new Baker({})` share a cache key.
23
+ */
24
+ fingerprint(o: SealOptions): string;
25
+ get(cls: Function, fp: string): SealedExecutors<unknown> | undefined;
26
+ set(cls: Function, fp: string, exec: SealedExecutors<unknown>): void;
27
+ /** Test-only: drop a single class's cached executors so a re-seal recompiles it. */
28
+ clear(cls: Function): void;
29
+ /**
30
+ * Test-only: drop the ENTIRE cache. Used by `unseal()` so a test that re-seals classes starts from a
31
+ * clean slate — a whole-cache reset (vs per-class) is the only way to avoid the partial-clear state
32
+ * where a cached root still references a nested whose entry was dropped (a root + its nested are
33
+ * always compiled together, so they must be invalidated together).
34
+ */
35
+ clearAll(): void;
36
+ }
37
+ export declare const compileCache: CompileCache;
38
+ export {};
@@ -0,0 +1 @@
1
+ class D{#j;constructor(){this.#j=new WeakMap}fingerprint(j){let q="";for(const B of F)q+=j[B]?"1":"0";return q}get(j,q){return this.#j.get(j)?.get(q)}set(j,q,B){let z=this.#j.get(j);if(z===void 0){z=new Map;this.#j.set(j,z)}z.set(q,B)}clear(j){this.#j.delete(j)}clearAll(){this.#j=new WeakMap}}import{SEAL_OPTION_KEYS as F}from"./constants.js";export const compileCache=new D;
@@ -0,0 +1,62 @@
1
+ import type { SealOptions } from './interfaces';
2
+ /** Built-in constructors that are NOT treated as nested DTOs during seal. */
3
+ export declare const PRIMITIVE_CTORS: Set<Function>;
4
+ /**
5
+ * The runtime key list of {@link SealOptions}, in fixed order. Built from a `Record<keyof SealOptions,
6
+ * true>` so a new (or removed) SealOptions field is a COMPILE error here until covered. Single source
7
+ * for the compile-cache fingerprint (its bit order) and the runtime per-call seal-time-key rejection.
8
+ */
9
+ export declare const SEAL_OPTION_KEYS: (keyof SealOptions)[];
10
+ /**
11
+ * Property names that must never be used as a field key, an @Expose wire name, or a discriminator
12
+ * property — writing them onto the output object corrupts its prototype/shape (prototype pollution).
13
+ * Single source shared by every seal-time gate (seal.ts, expose-validator.ts, meta-validator.ts).
14
+ */
15
+ export declare const RESERVED_PROPERTY_NAMES: Set<string>;
16
+ /** Deserialize codegen variable-name table (imported as `GEN` by the deserialize builder/codegen). */
17
+ export declare const DES_GEN: {
18
+ readonly field: "__bk$f_";
19
+ readonly index: "__bk$i_";
20
+ readonly setIdx: "__bk$si_";
21
+ readonly setVal: "__bk$sv_";
22
+ readonly mapIdx: "__bk$mi_";
23
+ readonly mapVal: "__bk$mv_";
24
+ readonly mark: "__bk$mark_";
25
+ readonly skip: "__bk$skip_";
26
+ readonly result: "__bk$r_";
27
+ readonly errors: "__bk$re_";
28
+ readonly arr: "__bk$arr_";
29
+ readonly disc: "__bk$dt_";
30
+ readonly nestedIdx: "__bk$j_";
31
+ readonly out: "__bk$out";
32
+ readonly errList: "__bk$errors";
33
+ readonly groups: "__bk$groups";
34
+ readonly group0: "__bk$group0";
35
+ readonly groupsSet: "__bk$groupsSet";
36
+ readonly key: "__bk$k";
37
+ };
38
+ /** Serialize codegen variable-name table (imported as `GEN` by the serialize builder). */
39
+ export declare const SER_GEN: {
40
+ readonly out: "__bk$out";
41
+ readonly fieldVal: "__bk$fv_";
42
+ readonly groups: "__bk$groups";
43
+ readonly group0: "__bk$group0";
44
+ readonly groupsSet: "__bk$groupsSet";
45
+ readonly setArr: "__bk$sa";
46
+ readonly setItem: "__bk$si";
47
+ readonly mapObj: "__bk$m";
48
+ readonly mapEntry: "__bk$me";
49
+ readonly serResult: "__bk$sr";
50
+ readonly outItem: "__bk$out_item";
51
+ readonly discArr: "__bk$da";
52
+ readonly discIdx: "__bk$di";
53
+ readonly nestedArr: "__bk$na";
54
+ readonly nestedIdx: "__bk$ni";
55
+ readonly nestedItem: "__bk$nitem";
56
+ };
57
+ /** `@Type`() primitive builtin → target type mapping */
58
+ export declare const PRIMITIVE_TYPE_HINTS: Record<string, string>;
59
+ /** Asserter rule name → gate type mapping */
60
+ export declare const ASSERTER_TO_GATE: Record<string, string>;
61
+ /** Asserters whose gate check fully subsumes the rule (skip emit inside gate) */
62
+ export declare const GATE_ONLY_ASSERTERS: Set<string>;
@@ -0,0 +1 @@
1
+ export const PRIMITIVE_CTORS=new Set([Number,String,Boolean,Date]);export const SEAL_OPTION_KEYS=Object.keys({enableImplicitConversion:!0,exposeDefaultValues:!0,stopAtFirstError:!0,whitelist:!0,debug:!0});export const RESERVED_PROPERTY_NAMES=new Set(["__proto__","constructor","prototype"]);export const DES_GEN={field:"__bk$f_",index:"__bk$i_",setIdx:"__bk$si_",setVal:"__bk$sv_",mapIdx:"__bk$mi_",mapVal:"__bk$mv_",mark:"__bk$mark_",skip:"__bk$skip_",result:"__bk$r_",errors:"__bk$re_",arr:"__bk$arr_",disc:"__bk$dt_",nestedIdx:"__bk$j_",out:"__bk$out",errList:"__bk$errors",groups:"__bk$groups",group0:"__bk$group0",groupsSet:"__bk$groupsSet",key:"__bk$k"};export const SER_GEN={out:"__bk$out",fieldVal:"__bk$fv_",groups:"__bk$groups",group0:"__bk$group0",groupsSet:"__bk$groupsSet",setArr:"__bk$sa",setItem:"__bk$si",mapObj:"__bk$m",mapEntry:"__bk$me",serResult:"__bk$sr",outItem:"__bk$out_item",discArr:"__bk$da",discIdx:"__bk$di",nestedArr:"__bk$na",nestedIdx:"__bk$ni",nestedItem:"__bk$nitem"};export const PRIMITIVE_TYPE_HINTS={Number:"number",Boolean:"boolean",String:"string",Date:"date"};export const ASSERTER_TO_GATE={isString:"string",isNumber:"number",isBoolean:"boolean",isDate:"date",isInt:"number",isArray:"array",isObject:"object"};export const GATE_ONLY_ASSERTERS=new Set(["isString","isBoolean","isDate","isArray","isObject"]);
@@ -1,9 +1,6 @@
1
- import type { Result, ResultAsync } from '@zipbul/result';
2
- import type { SealOptions, RuntimeOptions } from '../interfaces';
3
- import type { RawClassMeta, SealedExecutors } from '../types';
4
- import { type BakerIssue } from '../errors';
5
- type DeserializeExecutor<T> = (input: unknown, opts?: RuntimeOptions) => Result<T, BakerIssue[]> | ResultAsync<T, BakerIssue[]>;
6
- type ValidateExecutor = (input: unknown, opts?: RuntimeOptions) => BakerIssue[] | null | Promise<BakerIssue[] | null>;
1
+ import type { RawClassMeta } from '../metadata';
2
+ import type { SealOptions, SealedExecutors } from './interfaces';
3
+ import type { DeserializeExecutor, ValidateExecutor } from './types';
7
4
  declare function buildDeserializeCode<T>(Class: Function, merged: RawClassMeta, options: SealOptions | undefined, needsCircularCheck: boolean, isAsync: boolean, resolve: (cls: Function) => SealedExecutors<unknown> | undefined): DeserializeExecutor<T>;
8
5
  declare function buildDeserializeCode(Class: Function, merged: RawClassMeta, options: SealOptions | undefined, needsCircularCheck: boolean, isAsync: boolean, resolve: (cls: Function) => SealedExecutors<unknown> | undefined, validateOnly: true): ValidateExecutor;
9
6
  declare function buildValidateCode(Class: Function, merged: RawClassMeta, options: SealOptions | undefined, needsCircularCheck: boolean, isAsync: boolean, resolve: (cls: Function) => SealedExecutors<unknown> | undefined): ValidateExecutor;