zodvex 0.7.2-beta.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +85 -36
- package/dist/cli/index.js.map +1 -1
- package/dist/codegen/index.js +64 -29
- package/dist/codegen/index.js.map +1 -1
- package/dist/core/index.js +13 -2
- package/dist/core/index.js.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/meta.d.ts +11 -0
- package/dist/internal/meta.d.ts.map +1 -1
- package/dist/internal/zx.d.ts +14 -0
- package/dist/internal/zx.d.ts.map +1 -1
- package/dist/legacy/index.js +13 -2
- package/dist/legacy/index.js.map +1 -1
- package/dist/mini/index.js +15 -4
- package/dist/mini/index.js.map +1 -1
- package/dist/mini/server/index.js +13 -2
- package/dist/mini/server/index.js.map +1 -1
- package/dist/public/cli/commands.d.ts +12 -1
- package/dist/public/cli/commands.d.ts.map +1 -1
- package/dist/public/codegen/discover.d.ts +7 -9
- package/dist/public/codegen/discover.d.ts.map +1 -1
- package/dist/public/codegen/generate.d.ts.map +1 -1
- package/dist/public/mini/zx.d.ts +2 -0
- package/dist/public/mini/zx.d.ts.map +1 -1
- package/dist/server/index.js +13 -2
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/meta.ts +26 -0
- package/src/internal/zx.ts +18 -2
- package/src/public/cli/commands.ts +37 -15
- package/src/public/codegen/discover.ts +8 -26
- package/src/public/codegen/generate.ts +93 -36
- package/src/public/mini/zx.ts +3 -2
package/dist/internal/meta.d.ts
CHANGED
|
@@ -20,4 +20,15 @@ export type ZodvexModelMeta = {
|
|
|
20
20
|
export type ZodvexMeta = ZodvexFunctionMeta | ZodvexModelMeta;
|
|
21
21
|
export declare function attachMeta(target: object, meta: ZodvexMeta): void;
|
|
22
22
|
export declare function readMeta(target: unknown): ZodvexMeta | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Attaches a provenance brand to a codec instance. Codegen reads this at
|
|
25
|
+
* discovery time to match a function-embedded codec to its importable twin
|
|
26
|
+
* by *declared* identity instead of inferring it from structure. Stored
|
|
27
|
+
* non-enumerably so it never leaks into user data, and survives
|
|
28
|
+
* `.optional()` / `.nullable()` wrapping (codegen unwraps to the codec).
|
|
29
|
+
* See `docs/decisions/2026-06-08-codec-provenance-brands.md`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function attachCodecBrand(target: object, brand: string): void;
|
|
32
|
+
/** Reads a codec's provenance brand, or undefined if unbranded. */
|
|
33
|
+
export declare function readCodecBrand(target: unknown): string | undefined;
|
|
23
34
|
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/internal/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAI1C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,UAAU,CAAC,EAAE,QAAQ,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,2BAA2B,CAAA;IAC9C,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,QAAQ,CAAA;QACb,MAAM,EAAE,QAAQ,CAAA;QAChB,MAAM,EAAE,QAAQ,CAAA;QAChB,QAAQ,EAAE,QAAQ,CAAA;QAClB,YAAY,EAAE,QAAQ,CAAA;KACvB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,eAAe,CAAA;AAE7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAOjE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAKhE"}
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/internal/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAI1C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,UAAU,CAAC,EAAE,QAAQ,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,2BAA2B,CAAA;IAC9C,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,QAAQ,CAAA;QACb,MAAM,EAAE,QAAQ,CAAA;QAChB,MAAM,EAAE,QAAQ,CAAA;QAChB,QAAQ,EAAE,QAAQ,CAAA;QAClB,YAAY,EAAE,QAAQ,CAAA;KACvB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,eAAe,CAAA;AAE7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAOjE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAKhE;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOpE;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlE"}
|
package/dist/internal/zx.d.ts
CHANGED
|
@@ -77,6 +77,13 @@ declare function id<TableName extends string>(tableName: TableName): ZxId<TableN
|
|
|
77
77
|
* @param wire - Zod schema for the wire format (stored in Convex)
|
|
78
78
|
* @param runtime - Zod schema for the runtime format (used in code)
|
|
79
79
|
* @param transforms - Encode/decode functions
|
|
80
|
+
* @param opts.brand - Optional provenance brand. When set, codegen matches a
|
|
81
|
+
* function-embedded instance of this codec to its importable twin (an
|
|
82
|
+
* exported const or model field with the same brand) by *declared* identity
|
|
83
|
+
* rather than inferring it from structure — collision-free and namespaced
|
|
84
|
+
* across factories. Useful for codec factories like `tagged()` / `sensitive()`
|
|
85
|
+
* whose every call returns a fresh instance. See
|
|
86
|
+
* `docs/decisions/2026-06-08-codec-provenance-brands.md`.
|
|
80
87
|
*
|
|
81
88
|
* @example
|
|
82
89
|
* ```typescript
|
|
@@ -89,11 +96,18 @@ declare function id<TableName extends string>(tableName: TableName): ZxId<TableN
|
|
|
89
96
|
* encode: (value) => ({ encrypted: encrypt(value) })
|
|
90
97
|
* }
|
|
91
98
|
* )
|
|
99
|
+
*
|
|
100
|
+
* // Branded factory codec — codegen matches inline instances by brand
|
|
101
|
+
* function tagged(inner, name) {
|
|
102
|
+
* return zx.codec(wire(inner), runtime(inner), transforms, { brand: `tagged:${name}` })
|
|
103
|
+
* }
|
|
92
104
|
* ```
|
|
93
105
|
*/
|
|
94
106
|
declare function codec<W extends $ZodType, R extends $ZodType, WO = zoutput<W>, RI = zoutput<R>>(wire: W, runtime: R, transforms: {
|
|
95
107
|
decode: (wire: WO) => RI;
|
|
96
108
|
encode: (runtime: RI) => WO;
|
|
109
|
+
}, opts?: {
|
|
110
|
+
brand?: string;
|
|
97
111
|
}): FullZodvexCodec<W, R>;
|
|
98
112
|
/**
|
|
99
113
|
* Minimal model shape accepted by zx helpers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zx.d.ts","sourceRoot":"","sources":["../../src/internal/zx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"zx.d.ts","sourceRoot":"","sources":["../../src/internal/zx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,UAAU,EAEf,KAAK,QAAQ,EAEb,KAAK,MAAM,IAAI,OAAO,EACvB,MAAM,YAAY,CAAA;AAEnB;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACpF,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEnB,MAAM,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAExE;;;;;;;;;;;;;GAaG;AACH,iBAAS,IAAI,IAAI,MAAM,CAWtB;AAED;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,SAAS,SAAS,MAAM,IAAI,CAAC,CAAC,SAAS,GACtD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG;IAChC,UAAU,EAAE,SAAS,CAAA;CACtB,CAAA;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,iBAAS,EAAE,CAAC,SAAS,SAAS,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAoB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,iBAAS,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EACrF,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,EACV,UAAU,EAAE;IACV,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAA;IACxB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAA;CAC5B,EACD,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAIvB;AAED;;;GAGG;AACH,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAiDD;;;;;;;GAOG;AACH,iBAAS,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,CAY3C;AAED;;;GAGG;AACH,iBAAS,GAAG,CAAC,KAAK,EAAE,YAAY,OAS/B;AAED;;;GAGG;AACH,iBAAS,MAAM,CAAC,KAAK,EAAE,YAAY,OASlC;AAED;;;GAGG;AACH,iBAAS,QAAQ,CAAC,KAAK,EAAE,YAAY,OASpC;AAiBD;;GAEG;AACH,iBAAS,cAAc;;;;;;;kBAStB;AAED;;GAEG;AACH,iBAAS,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,UAAU,EAAE,CAAC;;;;;;kBAQ1D;AAED;;;;GAIG;AACH,eAAO,MAAM,EAAE;IACb;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;CAEK,CAAA"}
|
package/dist/legacy/index.js
CHANGED
|
@@ -442,6 +442,15 @@ function attachMeta(target, meta) {
|
|
|
442
442
|
configurable: false
|
|
443
443
|
});
|
|
444
444
|
}
|
|
445
|
+
var CODEC_BRAND_KEY = "__zodvexCodecBrand";
|
|
446
|
+
function attachCodecBrand(target, brand) {
|
|
447
|
+
Object.defineProperty(target, CODEC_BRAND_KEY, {
|
|
448
|
+
value: brand,
|
|
449
|
+
enumerable: false,
|
|
450
|
+
writable: false,
|
|
451
|
+
configurable: false
|
|
452
|
+
});
|
|
453
|
+
}
|
|
445
454
|
function containsNativeZodDate(schema) {
|
|
446
455
|
if (schema instanceof $ZodDate) return true;
|
|
447
456
|
if (schema instanceof $ZodCodec) return false;
|
|
@@ -846,8 +855,10 @@ function id(tableName) {
|
|
|
846
855
|
branded._tableName = tableName;
|
|
847
856
|
return branded;
|
|
848
857
|
}
|
|
849
|
-
function codec(wire, runtime, transforms) {
|
|
850
|
-
|
|
858
|
+
function codec(wire, runtime, transforms, opts) {
|
|
859
|
+
const built = zodvexCodec(wire, runtime, transforms);
|
|
860
|
+
if (opts?.brand) attachCodecBrand(built, opts.brand);
|
|
861
|
+
return built;
|
|
851
862
|
}
|
|
852
863
|
function sharedWeakMap(name) {
|
|
853
864
|
const key = /* @__PURE__ */ Symbol.for(`zodvex.zx.cache.${name}`);
|