@prisma-next/contract 0.3.0-dev.139 → 0.3.0-dev.140

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 (38) hide show
  1. package/dist/hashing-CVS9sXxd.mjs +215 -0
  2. package/dist/hashing-CVS9sXxd.mjs.map +1 -0
  3. package/dist/hashing.d.mts +38 -0
  4. package/dist/hashing.d.mts.map +1 -0
  5. package/dist/hashing.mjs +3 -0
  6. package/dist/testing.d.mts +28 -0
  7. package/dist/testing.d.mts.map +1 -0
  8. package/dist/testing.mjs +56 -0
  9. package/dist/testing.mjs.map +1 -0
  10. package/dist/{contract-types-C0y-Bn8M.d.mts → types-D-iOS0Ks.d.mts} +52 -53
  11. package/dist/types-D-iOS0Ks.d.mts.map +1 -0
  12. package/dist/types-DokLaU9G.mjs +30 -0
  13. package/dist/types-DokLaU9G.mjs.map +1 -0
  14. package/dist/types.d.mts +1 -1
  15. package/dist/types.mjs +2 -29
  16. package/dist/validate-contract.d.mts +1 -1
  17. package/dist/validate-contract.mjs +1 -1
  18. package/dist/{validate-domain-WfuBWGsF.mjs → validate-domain-CTQiBiei.mjs} +1 -1
  19. package/dist/{validate-domain-WfuBWGsF.mjs.map → validate-domain-CTQiBiei.mjs.map} +1 -1
  20. package/dist/validate-domain.mjs +1 -1
  21. package/package.json +8 -7
  22. package/schemas/data-contract-document-v1.json +0 -5
  23. package/src/canonicalization.ts +286 -0
  24. package/src/contract-types.ts +1 -1
  25. package/src/exports/hashing.ts +6 -0
  26. package/src/exports/testing.ts +1 -0
  27. package/src/hashing.ts +69 -0
  28. package/src/testing-factories.ts +93 -0
  29. package/src/types.ts +7 -7
  30. package/dist/contract-types-C0y-Bn8M.d.mts.map +0 -1
  31. package/dist/ir-BPkihpFL.d.mts +0 -86
  32. package/dist/ir-BPkihpFL.d.mts.map +0 -1
  33. package/dist/ir.d.mts +0 -2
  34. package/dist/ir.mjs +0 -52
  35. package/dist/ir.mjs.map +0 -1
  36. package/dist/types.mjs.map +0 -1
  37. package/src/exports/ir.ts +0 -1
  38. package/src/ir.ts +0 -131
@@ -0,0 +1,215 @@
1
+ import { t as bigintJsonReplacer } from "./types-DokLaU9G.mjs";
2
+ import { isArrayEqual } from "@prisma-next/utils/array-equal";
3
+ import { createHash } from "node:crypto";
4
+
5
+ //#region src/canonicalization.ts
6
+ const TOP_LEVEL_ORDER = [
7
+ "schemaVersion",
8
+ "canonicalVersion",
9
+ "targetFamily",
10
+ "target",
11
+ "profileHash",
12
+ "roots",
13
+ "models",
14
+ "storage",
15
+ "execution",
16
+ "capabilities",
17
+ "extensionPacks",
18
+ "meta"
19
+ ];
20
+ function isDefaultValue(value) {
21
+ if (value === false) return true;
22
+ if (value === null) return false;
23
+ if (value instanceof Date) return false;
24
+ if (Array.isArray(value) && value.length === 0) return true;
25
+ if (typeof value === "object" && value !== null) return Object.keys(value).length === 0;
26
+ return false;
27
+ }
28
+ function omitDefaults(obj, path) {
29
+ if (obj === null || typeof obj !== "object") return obj;
30
+ if (obj instanceof Date) return obj;
31
+ if (Array.isArray(obj)) return obj.map((item) => omitDefaults(item, path));
32
+ const result = {};
33
+ for (const [key, value] of Object.entries(obj)) {
34
+ const currentPath = [...path, key];
35
+ if (key === "_generated") continue;
36
+ if (key === "nullable" && value === false) continue;
37
+ if (key === "generated" && value === false) continue;
38
+ if ((key === "onDelete" || key === "onUpdate") && value === "noAction") continue;
39
+ if (isDefaultValue(value)) {
40
+ const isRequiredModels = isArrayEqual(currentPath, ["models"]);
41
+ const isRequiredTables = isArrayEqual(currentPath, ["storage", "tables"]);
42
+ const isRequiredCollections = isArrayEqual(currentPath, ["storage", "collections"]);
43
+ const isCollectionEntry = currentPath.length === 3 && isArrayEqual([currentPath[0], currentPath[1]], ["storage", "collections"]);
44
+ const isRequiredRoots = isArrayEqual(currentPath, ["roots"]);
45
+ const isRequiredExtensionPacks = isArrayEqual(currentPath, ["extensionPacks"]);
46
+ const isRequiredCapabilities = isArrayEqual(currentPath, ["capabilities"]);
47
+ const isRequiredMeta = isArrayEqual(currentPath, ["meta"]);
48
+ const isRequiredExecutionDefaults = isArrayEqual(currentPath, [
49
+ "execution",
50
+ "mutations",
51
+ "defaults"
52
+ ]);
53
+ const isExtensionNamespace = currentPath.length === 2 && currentPath[0] === "extensionPacks";
54
+ const isModelRelations = currentPath.length === 3 && isArrayEqual([currentPath[0], currentPath[2]], ["models", "relations"]);
55
+ const isModelStorage = currentPath.length === 3 && isArrayEqual([currentPath[0], currentPath[2]], ["models", "storage"]);
56
+ const isTableUniques = currentPath.length === 4 && isArrayEqual([
57
+ currentPath[0],
58
+ currentPath[1],
59
+ currentPath[3]
60
+ ], [
61
+ "storage",
62
+ "tables",
63
+ "uniques"
64
+ ]);
65
+ const isTableIndexes = currentPath.length === 4 && isArrayEqual([
66
+ currentPath[0],
67
+ currentPath[1],
68
+ currentPath[3]
69
+ ], [
70
+ "storage",
71
+ "tables",
72
+ "indexes"
73
+ ]);
74
+ const isTableForeignKeys = currentPath.length === 4 && isArrayEqual([
75
+ currentPath[0],
76
+ currentPath[1],
77
+ currentPath[3]
78
+ ], [
79
+ "storage",
80
+ "tables",
81
+ "foreignKeys"
82
+ ]);
83
+ const isFkBooleanField = currentPath.length === 5 && currentPath[0] === "storage" && currentPath[1] === "tables" && currentPath[3] === "foreignKeys" && (key === "constraint" || key === "index");
84
+ if (!isRequiredModels && !isRequiredTables && !isRequiredCollections && !isCollectionEntry && !isRequiredRoots && !isRequiredExtensionPacks && !isRequiredCapabilities && !isRequiredMeta && !isRequiredExecutionDefaults && !isExtensionNamespace && !isModelRelations && !isModelStorage && !isTableUniques && !isTableIndexes && !isTableForeignKeys && !isFkBooleanField) continue;
85
+ }
86
+ result[key] = omitDefaults(value, currentPath);
87
+ }
88
+ return result;
89
+ }
90
+ function sortObjectKeys(obj) {
91
+ if (obj === null || typeof obj !== "object") return obj;
92
+ if (obj instanceof Date) return obj;
93
+ if (Array.isArray(obj)) return obj.map((item) => sortObjectKeys(item));
94
+ const sorted = {};
95
+ const keys = Object.keys(obj).sort();
96
+ for (const key of keys) sorted[key] = sortObjectKeys(obj[key]);
97
+ return sorted;
98
+ }
99
+ function sortIndexesAndUniques(storage) {
100
+ if (!storage || typeof storage !== "object") return storage;
101
+ const storageObj = storage;
102
+ if (!storageObj.tables || typeof storageObj.tables !== "object") return storage;
103
+ const tables = storageObj.tables;
104
+ const result = { ...storageObj };
105
+ result.tables = {};
106
+ const sortedTableNames = Object.keys(tables).sort();
107
+ for (const tableName of sortedTableNames) {
108
+ const table = tables[tableName];
109
+ if (!table || typeof table !== "object") {
110
+ result.tables[tableName] = table;
111
+ continue;
112
+ }
113
+ const tableObj = table;
114
+ const sortedTable = { ...tableObj };
115
+ if (Array.isArray(tableObj.indexes)) sortedTable.indexes = [...tableObj.indexes].sort((a, b) => {
116
+ const nameA = a?.name || "";
117
+ const nameB = b?.name || "";
118
+ return nameA.localeCompare(nameB);
119
+ });
120
+ if (Array.isArray(tableObj.uniques)) sortedTable.uniques = [...tableObj.uniques].sort((a, b) => {
121
+ const nameA = a?.name || "";
122
+ const nameB = b?.name || "";
123
+ return nameA.localeCompare(nameB);
124
+ });
125
+ result.tables[tableName] = sortedTable;
126
+ }
127
+ return result;
128
+ }
129
+ function orderTopLevel(obj) {
130
+ const ordered = {};
131
+ const remaining = new Set(Object.keys(obj));
132
+ for (const key of TOP_LEVEL_ORDER) if (remaining.has(key)) {
133
+ ordered[key] = obj[key];
134
+ remaining.delete(key);
135
+ }
136
+ for (const key of Array.from(remaining).sort()) ordered[key] = obj[key];
137
+ return ordered;
138
+ }
139
+ function canonicalizeContractToObject(input) {
140
+ const i = input;
141
+ const withDefaultsOmitted = omitDefaults({
142
+ ...i["schemaVersion"] !== void 0 ? { schemaVersion: i["schemaVersion"] } : {},
143
+ targetFamily: i["targetFamily"],
144
+ target: i["target"],
145
+ ...i["profileHash"] !== void 0 ? { profileHash: i["profileHash"] } : {},
146
+ roots: i["roots"],
147
+ models: i["models"],
148
+ storage: i["storage"],
149
+ ...i["execution"] !== void 0 ? { execution: i["execution"] } : {},
150
+ extensionPacks: i["extensionPacks"],
151
+ capabilities: i["capabilities"],
152
+ meta: i["meta"]
153
+ }, []);
154
+ const withSortedIndexes = sortIndexesAndUniques(withDefaultsOmitted["storage"]);
155
+ return orderTopLevel(sortObjectKeys({
156
+ ...withDefaultsOmitted,
157
+ storage: withSortedIndexes
158
+ }));
159
+ }
160
+ function canonicalizeContract(input) {
161
+ return JSON.stringify(canonicalizeContractToObject(input), bigintJsonReplacer, 2);
162
+ }
163
+
164
+ //#endregion
165
+ //#region src/hashing.ts
166
+ const SCHEMA_VERSION = "1";
167
+ function sha256(content) {
168
+ const hash = createHash("sha256");
169
+ hash.update(content);
170
+ return `sha256:${hash.digest("hex")}`;
171
+ }
172
+ function computeStorageHash(args) {
173
+ return sha256(canonicalizeContract({
174
+ schemaVersion: SCHEMA_VERSION,
175
+ targetFamily: args.targetFamily,
176
+ target: args.target,
177
+ storage: args.storage,
178
+ roots: {},
179
+ models: {},
180
+ extensionPacks: {},
181
+ capabilities: {},
182
+ meta: {}
183
+ }));
184
+ }
185
+ function computeExecutionHash(args) {
186
+ return sha256(canonicalizeContract({
187
+ schemaVersion: SCHEMA_VERSION,
188
+ targetFamily: args.targetFamily,
189
+ target: args.target,
190
+ execution: args.execution,
191
+ roots: {},
192
+ models: {},
193
+ storage: {},
194
+ extensionPacks: {},
195
+ capabilities: {},
196
+ meta: {}
197
+ }));
198
+ }
199
+ function computeProfileHash(args) {
200
+ return sha256(canonicalizeContract({
201
+ schemaVersion: SCHEMA_VERSION,
202
+ targetFamily: args.targetFamily,
203
+ target: args.target,
204
+ capabilities: args.capabilities,
205
+ roots: {},
206
+ models: {},
207
+ storage: {},
208
+ extensionPacks: {},
209
+ meta: {}
210
+ }));
211
+ }
212
+
213
+ //#endregion
214
+ export { canonicalizeContractToObject as a, canonicalizeContract as i, computeProfileHash as n, computeStorageHash as r, computeExecutionHash as t };
215
+ //# sourceMappingURL=hashing-CVS9sXxd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashing-CVS9sXxd.mjs","names":["result: Record<string, unknown>","sorted: Record<string, unknown>","result: StorageObject","sortedTable: TableObject","ordered: Record<string, unknown>"],"sources":["../src/canonicalization.ts","../src/hashing.ts"],"sourcesContent":["import { isArrayEqual } from '@prisma-next/utils/array-equal';\n\nimport type { StorageBase } from './types';\nimport { bigintJsonReplacer } from './types';\n\nconst TOP_LEVEL_ORDER = [\n 'schemaVersion',\n 'canonicalVersion',\n 'targetFamily',\n 'target',\n 'profileHash',\n 'roots',\n 'models',\n 'storage',\n 'execution',\n 'capabilities',\n 'extensionPacks',\n 'meta',\n] as const;\n\nfunction isDefaultValue(value: unknown): boolean {\n if (value === false) return true;\n if (value === null) return false;\n if (value instanceof Date) return false;\n if (Array.isArray(value) && value.length === 0) return true;\n if (typeof value === 'object' && value !== null) {\n const keys = Object.keys(value);\n return keys.length === 0;\n }\n return false;\n}\n\nfunction omitDefaults(obj: unknown, path: readonly string[]): unknown {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n if (obj instanceof Date) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => omitDefaults(item, path));\n }\n\n const result: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n const currentPath = [...path, key];\n\n if (key === '_generated') {\n continue;\n }\n\n if (key === 'nullable' && value === false) {\n continue;\n }\n\n if (key === 'generated' && value === false) {\n continue;\n }\n\n if ((key === 'onDelete' || key === 'onUpdate') && value === 'noAction') {\n continue;\n }\n\n if (isDefaultValue(value)) {\n const isRequiredModels = isArrayEqual(currentPath, ['models']);\n const isRequiredTables = isArrayEqual(currentPath, ['storage', 'tables']);\n const isRequiredCollections = isArrayEqual(currentPath, ['storage', 'collections']);\n const isCollectionEntry =\n currentPath.length === 3 &&\n isArrayEqual([currentPath[0], currentPath[1]], ['storage', 'collections']);\n const isRequiredRoots = isArrayEqual(currentPath, ['roots']);\n const isRequiredExtensionPacks = isArrayEqual(currentPath, ['extensionPacks']);\n const isRequiredCapabilities = isArrayEqual(currentPath, ['capabilities']);\n const isRequiredMeta = isArrayEqual(currentPath, ['meta']);\n const isRequiredExecutionDefaults = isArrayEqual(currentPath, [\n 'execution',\n 'mutations',\n 'defaults',\n ]);\n const isExtensionNamespace = currentPath.length === 2 && currentPath[0] === 'extensionPacks';\n const isModelRelations =\n currentPath.length === 3 &&\n isArrayEqual([currentPath[0], currentPath[2]], ['models', 'relations']);\n const isModelStorage =\n currentPath.length === 3 &&\n isArrayEqual([currentPath[0], currentPath[2]], ['models', 'storage']);\n const isTableUniques =\n currentPath.length === 4 &&\n isArrayEqual(\n [currentPath[0], currentPath[1], currentPath[3]],\n ['storage', 'tables', 'uniques'],\n );\n const isTableIndexes =\n currentPath.length === 4 &&\n isArrayEqual(\n [currentPath[0], currentPath[1], currentPath[3]],\n ['storage', 'tables', 'indexes'],\n );\n const isTableForeignKeys =\n currentPath.length === 4 &&\n isArrayEqual(\n [currentPath[0], currentPath[1], currentPath[3]],\n ['storage', 'tables', 'foreignKeys'],\n );\n\n const isFkBooleanField =\n currentPath.length === 5 &&\n currentPath[0] === 'storage' &&\n currentPath[1] === 'tables' &&\n currentPath[3] === 'foreignKeys' &&\n (key === 'constraint' || key === 'index');\n\n if (\n !isRequiredModels &&\n !isRequiredTables &&\n !isRequiredCollections &&\n !isCollectionEntry &&\n !isRequiredRoots &&\n !isRequiredExtensionPacks &&\n !isRequiredCapabilities &&\n !isRequiredMeta &&\n !isRequiredExecutionDefaults &&\n !isExtensionNamespace &&\n !isModelRelations &&\n !isModelStorage &&\n !isTableUniques &&\n !isTableIndexes &&\n !isTableForeignKeys &&\n !isFkBooleanField\n ) {\n continue;\n }\n }\n\n result[key] = omitDefaults(value, currentPath);\n }\n\n return result;\n}\n\nfunction sortObjectKeys(obj: unknown): unknown {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n if (obj instanceof Date) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => sortObjectKeys(item));\n }\n\n const sorted: Record<string, unknown> = {};\n const keys = Object.keys(obj).sort();\n for (const key of keys) {\n sorted[key] = sortObjectKeys((obj as Record<string, unknown>)[key]);\n }\n\n return sorted;\n}\n\ntype StorageObject = {\n tables?: Record<string, unknown>;\n [key: string]: unknown;\n};\n\ntype TableObject = {\n indexes?: unknown[];\n uniques?: unknown[];\n [key: string]: unknown;\n};\n\nfunction sortIndexesAndUniques(storage: unknown): unknown {\n if (!storage || typeof storage !== 'object') {\n return storage;\n }\n\n const storageObj = storage as StorageObject;\n if (!storageObj.tables || typeof storageObj.tables !== 'object') {\n return storage;\n }\n\n const tables = storageObj.tables;\n const result: StorageObject = { ...storageObj };\n\n result.tables = {};\n const sortedTableNames = Object.keys(tables).sort();\n for (const tableName of sortedTableNames) {\n const table = tables[tableName];\n if (!table || typeof table !== 'object') {\n result.tables[tableName] = table;\n continue;\n }\n\n const tableObj = table as TableObject;\n const sortedTable: TableObject = { ...tableObj };\n\n if (Array.isArray(tableObj.indexes)) {\n sortedTable.indexes = [...tableObj.indexes].sort((a, b) => {\n const nameA = (a as { name?: string })?.name || '';\n const nameB = (b as { name?: string })?.name || '';\n return nameA.localeCompare(nameB);\n });\n }\n\n if (Array.isArray(tableObj.uniques)) {\n sortedTable.uniques = [...tableObj.uniques].sort((a, b) => {\n const nameA = (a as { name?: string })?.name || '';\n const nameB = (b as { name?: string })?.name || '';\n return nameA.localeCompare(nameB);\n });\n }\n\n result.tables[tableName] = sortedTable;\n }\n\n return result;\n}\n\nfunction orderTopLevel(obj: Record<string, unknown>): Record<string, unknown> {\n const ordered: Record<string, unknown> = {};\n const remaining = new Set(Object.keys(obj));\n\n for (const key of TOP_LEVEL_ORDER) {\n if (remaining.has(key)) {\n ordered[key] = obj[key];\n remaining.delete(key);\n }\n }\n\n for (const key of Array.from(remaining).sort()) {\n ordered[key] = obj[key];\n }\n\n return ordered;\n}\n\nexport type CanonicalContractInput = {\n readonly schemaVersion?: string | undefined;\n readonly targetFamily: string;\n readonly target: string;\n readonly profileHash?: string | undefined;\n readonly roots: Record<string, string>;\n readonly models: Record<string, unknown>;\n // StorageBase is an interface without an index signature, so it is not\n // assignable to Record<string, unknown>. The union allows callers to pass\n // either the typed StorageBase or a plain record.\n readonly storage: StorageBase | Record<string, unknown>;\n readonly execution?: Record<string, unknown> | undefined;\n readonly extensionPacks: Record<string, unknown>;\n readonly capabilities: Record<string, Record<string, boolean>>;\n readonly meta: Record<string, unknown>;\n};\n\nexport function canonicalizeContractToObject(\n input: CanonicalContractInput,\n): Record<string, unknown> {\n const i = input as Record<string, unknown>;\n const normalized: Record<string, unknown> = {\n ...(i['schemaVersion'] !== undefined ? { schemaVersion: i['schemaVersion'] } : {}),\n targetFamily: i['targetFamily'],\n target: i['target'],\n ...(i['profileHash'] !== undefined ? { profileHash: i['profileHash'] } : {}),\n roots: i['roots'],\n models: i['models'],\n storage: i['storage'],\n ...(i['execution'] !== undefined ? { execution: i['execution'] } : {}),\n extensionPacks: i['extensionPacks'],\n capabilities: i['capabilities'],\n meta: i['meta'],\n };\n\n const withDefaultsOmitted = omitDefaults(normalized, []) as Record<string, unknown>;\n const withSortedIndexes = sortIndexesAndUniques(withDefaultsOmitted['storage']);\n const withSortedStorage = { ...withDefaultsOmitted, storage: withSortedIndexes };\n const withSortedKeys = sortObjectKeys(withSortedStorage) as Record<string, unknown>;\n return orderTopLevel(withSortedKeys);\n}\n\nexport function canonicalizeContract(input: CanonicalContractInput): string {\n return JSON.stringify(canonicalizeContractToObject(input), bigintJsonReplacer, 2);\n}\n","import { createHash } from 'node:crypto';\nimport { canonicalizeContract } from './canonicalization';\nimport type { ExecutionHashBase, ProfileHashBase, StorageHashBase } from './types';\n\nconst SCHEMA_VERSION = '1';\n\nfunction sha256(content: string): string {\n const hash = createHash('sha256');\n hash.update(content);\n return `sha256:${hash.digest('hex')}`;\n}\n\nexport function computeStorageHash(args: {\n target: string;\n targetFamily: string;\n storage: Record<string, unknown>;\n}): StorageHashBase<string> {\n const canonical = canonicalizeContract({\n schemaVersion: SCHEMA_VERSION,\n targetFamily: args.targetFamily,\n target: args.target,\n storage: args.storage,\n roots: {},\n models: {},\n extensionPacks: {},\n capabilities: {},\n meta: {},\n });\n return sha256(canonical) as StorageHashBase<string>;\n}\n\nexport function computeExecutionHash(args: {\n target: string;\n targetFamily: string;\n execution: Record<string, unknown>;\n}): ExecutionHashBase<string> {\n const canonical = canonicalizeContract({\n schemaVersion: SCHEMA_VERSION,\n targetFamily: args.targetFamily,\n target: args.target,\n execution: args.execution,\n roots: {},\n models: {},\n storage: {},\n extensionPacks: {},\n capabilities: {},\n meta: {},\n });\n return sha256(canonical) as ExecutionHashBase<string>;\n}\n\nexport function computeProfileHash(args: {\n target: string;\n targetFamily: string;\n capabilities: Record<string, Record<string, boolean>>;\n}): ProfileHashBase<string> {\n const canonical = canonicalizeContract({\n schemaVersion: SCHEMA_VERSION,\n targetFamily: args.targetFamily,\n target: args.target,\n capabilities: args.capabilities,\n roots: {},\n models: {},\n storage: {},\n extensionPacks: {},\n meta: {},\n });\n return sha256(canonical) as ProfileHashBase<string>;\n}\n"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { D as ProfileHashBase, M as StorageHashBase, f as ExecutionHashBase, j as StorageBase } from "./types-D-iOS0Ks.mjs";
2
+
3
+ //#region src/canonicalization.d.ts
4
+ type CanonicalContractInput = {
5
+ readonly schemaVersion?: string | undefined;
6
+ readonly targetFamily: string;
7
+ readonly target: string;
8
+ readonly profileHash?: string | undefined;
9
+ readonly roots: Record<string, string>;
10
+ readonly models: Record<string, unknown>;
11
+ readonly storage: StorageBase | Record<string, unknown>;
12
+ readonly execution?: Record<string, unknown> | undefined;
13
+ readonly extensionPacks: Record<string, unknown>;
14
+ readonly capabilities: Record<string, Record<string, boolean>>;
15
+ readonly meta: Record<string, unknown>;
16
+ };
17
+ declare function canonicalizeContractToObject(input: CanonicalContractInput): Record<string, unknown>;
18
+ declare function canonicalizeContract(input: CanonicalContractInput): string;
19
+ //#endregion
20
+ //#region src/hashing.d.ts
21
+ declare function computeStorageHash(args: {
22
+ target: string;
23
+ targetFamily: string;
24
+ storage: Record<string, unknown>;
25
+ }): StorageHashBase<string>;
26
+ declare function computeExecutionHash(args: {
27
+ target: string;
28
+ targetFamily: string;
29
+ execution: Record<string, unknown>;
30
+ }): ExecutionHashBase<string>;
31
+ declare function computeProfileHash(args: {
32
+ target: string;
33
+ targetFamily: string;
34
+ capabilities: Record<string, Record<string, boolean>>;
35
+ }): ProfileHashBase<string>;
36
+ //#endregion
37
+ export { type CanonicalContractInput, canonicalizeContract, canonicalizeContractToObject, computeExecutionHash, computeProfileHash, computeStorageHash };
38
+ //# sourceMappingURL=hashing.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashing.d.mts","names":[],"sources":["../src/canonicalization.ts","../src/hashing.ts"],"sourcesContent":[],"mappings":";;;KAiPY,sBAAA;;EAAA,SAAA,YAAA,EAAA,MAAsB;EAKhB,SAAA,MAAA,EAAA,MAAA;EACC,SAAA,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAIC,SAAA,KAAA,EALF,MAKE,CAAA,MAAA,EAAA,MAAA,CAAA;EAAc,SAAA,MAAA,EAJf,MAIe,CAAA,MAAA,EAAA,OAAA,CAAA;EACX,SAAA,OAAA,EADH,WACG,GADW,MACX,CAAA,MAAA,EAAA,OAAA,CAAA;EACI,SAAA,SAAA,CAAA,EADJ,MACI,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,SAAA;EACa,SAAA,cAAA,EADb,MACa,CAAA,MAAA,EAAA,OAAA,CAAA;EAAf,SAAA,YAAA,EAAA,MAAA,CAAA,MAAA,EAAe,MAAf,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;EACR,SAAA,IAAA,EAAA,MAAA,CAAA,MAAA,EAAA,OAAA,CAAA;CAAM;AAGP,iBAAA,4BAAA,CACP,KAAA,EAAA,sBACA,CAAA,EAAN,MAAM,CAAA,MAAA,EAAA,OAAA,CAAA;AAuBO,iBAAA,oBAAA,CAA4B,KAAA,EAAA,sBAAsB,CAAA,EAAA,MAAA;;;iBC/QlD,kBAAA;;EDqOJ,YAAA,EAAA,MAAA;EAKM,OAAA,ECvOP,MDuOO,CAAA,MAAA,EAAA,OAAA,CAAA;CACC,CAAA,ECvOf,eDuOe,CAAA,MAAA,CAAA;AAIC,iBC5NJ,oBAAA,CD4NI,IAAA,EAAA;EAAc,MAAA,EAAA,MAAA;EACX,YAAA,EAAA,MAAA;EACI,SAAA,EC3Nd,MD2Nc,CAAA,MAAA,EAAA,OAAA,CAAA;CACa,CAAA,EC3NpC,iBD2NoC,CAAA,MAAA,CAAA;AAAf,iBC3MT,kBAAA,CD2MS,IAAA,EAAA;EACR,MAAA,EAAA,MAAA;EAAM,YAAA,EAAA,MAAA;EAGP,YAAA,EC5MA,MD4MA,CAAA,MAAA,EC5Me,MD4Ma,CAAA,MAAA,EACnC,OAAA,CAAA,CAAA;AAwBT,CAAA,CAAA,ECpOI,eDoOY,CAAA,MAAA,CAAoB"}
@@ -0,0 +1,3 @@
1
+ import { a as canonicalizeContractToObject, i as canonicalizeContract, n as computeProfileHash, r as computeStorageHash, t as computeExecutionHash } from "./hashing-CVS9sXxd.mjs";
2
+
3
+ export { canonicalizeContract, canonicalizeContractToObject, computeExecutionHash, computeProfileHash, computeStorageHash };
@@ -0,0 +1,28 @@
1
+ import { $ as ContractModel, D as ProfileHashBase, J as Contract, M as StorageHashBase, g as ExecutionSection, j as StorageBase, pt as ModelStorageBase } from "./types-D-iOS0Ks.mjs";
2
+
3
+ //#region src/testing-factories.d.ts
4
+ type ContractOverrides<TStorage extends StorageBase = StorageBase, TModels extends Record<string, ContractModel> = Record<string, ContractModel>> = {
5
+ target?: string;
6
+ targetFamily?: string;
7
+ roots?: Record<string, string>;
8
+ models?: TModels;
9
+ storage?: Omit<TStorage, 'storageHash'>;
10
+ capabilities?: Record<string, Record<string, boolean>>;
11
+ extensionPacks?: Record<string, unknown>;
12
+ execution?: ExecutionSection;
13
+ profileHash?: ProfileHashBase<string>;
14
+ meta?: Record<string, unknown>;
15
+ };
16
+ declare const DUMMY_HASH: StorageHashBase<"sha256:test">;
17
+ declare function createContract<TStorage extends StorageBase = StorageBase, TModels extends Record<string, ContractModel> = Record<string, ContractModel>>(overrides?: ContractOverrides<TStorage, TModels>): Contract<TStorage, TModels>;
18
+ type SqlStorageLike = StorageBase & {
19
+ readonly tables: Record<string, unknown>;
20
+ readonly types?: Record<string, unknown>;
21
+ };
22
+ type SqlModelLike = ContractModel<ModelStorageBase & {
23
+ table: string;
24
+ }>;
25
+ declare function createSqlContract(overrides?: ContractOverrides<SqlStorageLike, Record<string, SqlModelLike>>): Contract<SqlStorageLike, Record<string, SqlModelLike>>;
26
+ //#endregion
27
+ export { DUMMY_HASH, createContract, createSqlContract };
28
+ //# sourceMappingURL=testing.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.mts","names":[],"sources":["../src/testing-factories.ts"],"sourcesContent":[],"mappings":";;;AAG8E,KAGzE,iBAAA,CAAA,iBACc,WADG,GACW,WADX,EAAA,gBAEJ,MAFI,CAAA,MAAA,EAEW,aAFX,CAAA,GAE4B,MAF5B,CAAA,MAAA,EAE2C,aAF3C,CAAA,CAAA,GAAA;EACH,MAAA,CAAA,EAAA,MAAA;EAAc,YAAA,CAAA,EAAA,MAAA;EACA,KAAA,CAAA,EAIvB,MAJuB,CAAA,MAAA,EAAA,MAAA,CAAA;EAAf,MAAA,CAAA,EAKP,OALO;EAA+C,OAAA,CAAA,EAMrD,IANqD,CAMhD,QANgD,EAAA,aAAA,CAAA;EAAf,YAAA,CAAA,EAOjC,MAPiC,CAAA,MAAA,EAOlB,MAPkB,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;EAIxC,cAAA,CAAA,EAIS,MAJT,CAAA,MAAA,EAAA,OAAA,CAAA;EACC,SAAA,CAAA,EAIG,gBAJH;EACM,WAAA,CAAA,EAID,eAJC,CAAA,MAAA,CAAA;EAAL,IAAA,CAAA,EAKH,MALG,CAAA,MAAA,EAAA,OAAA,CAAA;CACoB;cAO1B,UAPW,EAOyB,eAPzB,CAAA,aAAA,CAAA;AACE,iBAQH,cARG,CAAA,iBASA,WATA,GASc,WATd,EAAA,gBAUD,MAVC,CAAA,MAAA,EAUc,aAVd,CAAA,GAU+B,MAV/B,CAAA,MAAA,EAU8C,aAV9C,CAAA,CAAA,CAAA,SAAA,CAAA,EAWN,iBAXM,CAWY,QAXZ,EAWsB,OAXtB,CAAA,CAAA,EAWsC,QAXtC,CAW+C,QAX/C,EAWyD,OAXzD,CAAA;KA0Dd,cAAA,GAAiB,WAzDR,GAAA;EACE,SAAA,MAAA,EAyDG,MAzDH,CAAA,MAAA,EAAA,OAAA,CAAA;EACP,SAAA,KAAA,CAAA,EAyDU,MAzDV,CAAA,MAAA,EAAA,OAAA,CAAA;CAAM;AAAA,KA4DV,YAAA,GAAe,aAzDsB,CAyDR,gBAzDlB,GAAA;EAEA,KAAA,EAAA,MAAA;CACG,CAAA;AAAc,iBAwDjB,iBAAA,CAxDiB,SAAA,CAAA,EAyDpB,iBAzDoB,CAyDF,cAzDE,EAyDc,MAzDd,CAAA,MAAA,EAyD6B,YAzD7B,CAAA,CAAA,CAAA,EA0D9B,QA1D8B,CA0DrB,cA1DqB,EA0DL,MA1DK,CAAA,MAAA,EA0DU,YA1DV,CAAA,CAAA"}
@@ -0,0 +1,56 @@
1
+ import { n as coreHash } from "./types-DokLaU9G.mjs";
2
+ import { n as computeProfileHash, r as computeStorageHash, t as computeExecutionHash } from "./hashing-CVS9sXxd.mjs";
3
+
4
+ //#region src/testing-factories.ts
5
+ const DUMMY_HASH = coreHash("sha256:test");
6
+ function createContract(overrides = {}) {
7
+ const target = overrides.target ?? "postgres";
8
+ const targetFamily = overrides.targetFamily ?? "sql";
9
+ const capabilities = overrides.capabilities ?? {};
10
+ const rawStorage = overrides.storage ?? { tables: {} };
11
+ const storageHash = computeStorageHash({
12
+ target,
13
+ targetFamily,
14
+ storage: rawStorage
15
+ });
16
+ const storage = {
17
+ ...rawStorage,
18
+ storageHash
19
+ };
20
+ const computedProfileHash = overrides.profileHash ?? computeProfileHash({
21
+ target,
22
+ targetFamily,
23
+ capabilities
24
+ });
25
+ return {
26
+ target,
27
+ targetFamily,
28
+ roots: overrides.roots ?? {},
29
+ models: overrides.models ?? {},
30
+ storage,
31
+ capabilities,
32
+ extensionPacks: overrides.extensionPacks ?? {},
33
+ ...overrides.execution !== void 0 ? { execution: {
34
+ ...overrides.execution,
35
+ executionHash: computeExecutionHash({
36
+ target,
37
+ targetFamily,
38
+ execution: overrides.execution
39
+ })
40
+ } } : {},
41
+ profileHash: computedProfileHash,
42
+ meta: overrides.meta ?? {}
43
+ };
44
+ }
45
+ function createSqlContract(overrides = {}) {
46
+ return createContract({
47
+ target: "postgres",
48
+ targetFamily: "sql",
49
+ storage: overrides.storage ?? { tables: {} },
50
+ ...overrides
51
+ });
52
+ }
53
+
54
+ //#endregion
55
+ export { DUMMY_HASH, createContract, createSqlContract };
56
+ //# sourceMappingURL=testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.mjs","names":[],"sources":["../src/testing-factories.ts"],"sourcesContent":["import type { Contract } from './contract-types';\nimport type { ContractModel, ModelStorageBase } from './domain-types';\nimport { computeExecutionHash, computeProfileHash, computeStorageHash } from './hashing';\nimport type { ExecutionSection, ProfileHashBase, StorageBase } from './types';\nimport { coreHash } from './types';\n\ntype ContractOverrides<\n TStorage extends StorageBase = StorageBase,\n TModels extends Record<string, ContractModel> = Record<string, ContractModel>,\n> = {\n target?: string;\n targetFamily?: string;\n roots?: Record<string, string>;\n models?: TModels;\n storage?: Omit<TStorage, 'storageHash'>;\n capabilities?: Record<string, Record<string, boolean>>;\n extensionPacks?: Record<string, unknown>;\n execution?: ExecutionSection;\n profileHash?: ProfileHashBase<string>;\n meta?: Record<string, unknown>;\n};\n\nconst DUMMY_HASH = coreHash('sha256:test');\n\nexport function createContract<\n TStorage extends StorageBase = StorageBase,\n TModels extends Record<string, ContractModel> = Record<string, ContractModel>,\n>(overrides: ContractOverrides<TStorage, TModels> = {}): Contract<TStorage, TModels> {\n const target = overrides.target ?? 'postgres';\n const targetFamily = overrides.targetFamily ?? 'sql';\n const capabilities = overrides.capabilities ?? {};\n\n const rawStorage =\n overrides.storage ?? ({ tables: {} } as unknown as Omit<TStorage, 'storageHash'>);\n\n const storageHash = computeStorageHash({\n target,\n targetFamily,\n storage: rawStorage as Record<string, unknown>,\n });\n\n const storage = {\n ...rawStorage,\n storageHash,\n } as TStorage;\n\n const computedProfileHash =\n overrides.profileHash ?? computeProfileHash({ target, targetFamily, capabilities });\n\n return {\n target,\n targetFamily,\n roots: overrides.roots ?? {},\n models: (overrides.models ?? {}) as TModels,\n storage,\n capabilities,\n extensionPacks: overrides.extensionPacks ?? {},\n ...(overrides.execution !== undefined\n ? {\n execution: {\n ...overrides.execution,\n executionHash: computeExecutionHash({\n target,\n targetFamily,\n execution: overrides.execution,\n }),\n },\n }\n : {}),\n profileHash: computedProfileHash,\n meta: overrides.meta ?? {},\n };\n}\n\ntype SqlStorageLike = StorageBase & {\n readonly tables: Record<string, unknown>;\n readonly types?: Record<string, unknown>;\n};\n\ntype SqlModelLike = ContractModel<ModelStorageBase & { table: string }>;\n\nexport function createSqlContract(\n overrides: ContractOverrides<SqlStorageLike, Record<string, SqlModelLike>> = {},\n): Contract<SqlStorageLike, Record<string, SqlModelLike>> {\n return createContract<SqlStorageLike, Record<string, SqlModelLike>>({\n target: 'postgres',\n targetFamily: 'sql',\n storage: overrides.storage ?? { tables: {} },\n ...overrides,\n });\n}\n\nexport { DUMMY_HASH };\n"],"mappings":";;;;AAsBA,MAAM,aAAa,SAAS,cAAc;AAE1C,SAAgB,eAGd,YAAkD,EAAE,EAA+B;CACnF,MAAM,SAAS,UAAU,UAAU;CACnC,MAAM,eAAe,UAAU,gBAAgB;CAC/C,MAAM,eAAe,UAAU,gBAAgB,EAAE;CAEjD,MAAM,aACJ,UAAU,WAAY,EAAE,QAAQ,EAAE,EAAE;CAEtC,MAAM,cAAc,mBAAmB;EACrC;EACA;EACA,SAAS;EACV,CAAC;CAEF,MAAM,UAAU;EACd,GAAG;EACH;EACD;CAED,MAAM,sBACJ,UAAU,eAAe,mBAAmB;EAAE;EAAQ;EAAc;EAAc,CAAC;AAErF,QAAO;EACL;EACA;EACA,OAAO,UAAU,SAAS,EAAE;EAC5B,QAAS,UAAU,UAAU,EAAE;EAC/B;EACA;EACA,gBAAgB,UAAU,kBAAkB,EAAE;EAC9C,GAAI,UAAU,cAAc,SACxB,EACE,WAAW;GACT,GAAG,UAAU;GACb,eAAe,qBAAqB;IAClC;IACA;IACA,WAAW,UAAU;IACtB,CAAC;GACH,EACF,GACD,EAAE;EACN,aAAa;EACb,MAAM,UAAU,QAAQ,EAAE;EAC3B;;AAUH,SAAgB,kBACd,YAA6E,EAAE,EACvB;AACxD,QAAO,eAA6D;EAClE,QAAQ;EACR,cAAc;EACd,SAAS,UAAU,WAAW,EAAE,QAAQ,EAAE,EAAE;EAC5C,GAAG;EACJ,CAAC"}
@@ -1,4 +1,3 @@
1
- import { t as ContractIR } from "./ir-BPkihpFL.mjs";
2
1
  import { OperationRegistry } from "@prisma-next/operations";
3
2
 
4
3
  //#region src/domain-types.d.ts
@@ -60,6 +59,50 @@ type HasModelsWithRelations = {
60
59
  type ReferenceRelationKeys<TContract extends HasModelsWithRelations, ModelName extends string & keyof TContract['models']> = { [K in keyof TContract['models'][ModelName]['relations']]: TContract['models'][ModelName]['relations'][K] extends ContractReferenceRelation ? K : never }[keyof TContract['models'][ModelName]['relations']];
61
60
  type EmbedRelationKeys<TContract extends HasModelsWithRelations, ModelName extends string & keyof TContract['models']> = { [K in keyof TContract['models'][ModelName]['relations']]: TContract['models'][ModelName]['relations'][K] extends ContractReferenceRelation ? never : K }[keyof TContract['models'][ModelName]['relations']];
62
61
  //#endregion
62
+ //#region src/contract-types.d.ts
63
+ /**
64
+ * Execution section for the unified contract (ADR 182).
65
+ *
66
+ * Unlike the legacy {@link import('./types').ExecutionSection}, this type
67
+ * requires `executionHash` — when an execution section is present, its
68
+ * hash must be too (consistent with `StorageBase.storageHash`).
69
+ *
70
+ * @template THash Literal hash string type for type-safe hash tracking.
71
+ */
72
+ type ContractExecutionSection<THash extends string = string> = {
73
+ readonly executionHash: ExecutionHashBase<THash>;
74
+ readonly mutations: {
75
+ readonly defaults: ReadonlyArray<ExecutionMutationDefault>;
76
+ };
77
+ };
78
+ /**
79
+ * Unified contract representation (ADR 182).
80
+ *
81
+ * A `Contract` is the canonical in-memory representation of a data contract.
82
+ * It is model-first (domain models carry their own storage bridge) and
83
+ * family-parameterized (SQL, Mongo, etc. specialize via `TStorage` and model
84
+ * storage generics on `ContractModel`).
85
+ *
86
+ * JSON persistence fields (`schemaVersion`, `sources`) are not represented
87
+ * here — they are handled at the serialization boundary.
88
+ *
89
+ * @template TStorage Family-specific storage block (extends {@link StorageBase}).
90
+ * @template TModels Record of model name → {@link ContractModel} with
91
+ * family-specific model storage.
92
+ */
93
+ interface Contract<TStorage extends StorageBase = StorageBase, TModels extends Record<string, ContractModel> = Record<string, ContractModel>> {
94
+ readonly target: string;
95
+ readonly targetFamily: string;
96
+ readonly roots: Record<string, string>;
97
+ readonly models: TModels;
98
+ readonly storage: TStorage;
99
+ readonly capabilities: Record<string, Record<string, boolean>>;
100
+ readonly extensionPacks: Record<string, unknown>;
101
+ readonly execution?: ContractExecutionSection;
102
+ readonly profileHash: ProfileHashBase<string>;
103
+ readonly meta: Record<string, unknown>;
104
+ }
105
+ //#endregion
63
106
  //#region src/types.d.ts
64
107
  /**
65
108
  * Unique symbol used as the key for branding types.
@@ -374,25 +417,25 @@ interface TargetFamilyHook {
374
417
  readonly id: string;
375
418
  /**
376
419
  * Validates that all type IDs in the contract come from referenced extension packs.
377
- * @param ir - Contract IR to validate
420
+ * @param contract - Contract to validate
378
421
  * @param ctx - Validation context with operation registry and extension IDs
379
422
  */
380
- validateTypes(ir: ContractIR, ctx: ValidationContext): void;
423
+ validateTypes(contract: Contract, ctx: ValidationContext): void;
381
424
  /**
382
425
  * Validates family-specific contract structure.
383
- * @param ir - Contract IR to validate
426
+ * @param contract - Contract to validate
384
427
  */
385
- validateStructure(ir: ContractIR): void;
428
+ validateStructure(contract: Contract): void;
386
429
  /**
387
430
  * Generates contract.d.ts file content.
388
- * @param ir - Contract IR
431
+ * @param contract - Contract
389
432
  * @param codecTypeImports - Array of codec type import specs
390
433
  * @param operationTypeImports - Array of operation type import specs
391
434
  * @param hashes - Contract hash values (storageHash, executionHash, profileHash)
392
435
  * @param options - Additional options including parameterized type renderers
393
436
  * @returns Generated TypeScript type definitions as string
394
437
  */
395
- generateContractTypes(ir: ContractIR, codecTypeImports: ReadonlyArray<TypesImportSpec>, operationTypeImports: ReadonlyArray<TypesImportSpec>, hashes: {
438
+ generateContractTypes(contract: Contract, codecTypeImports: ReadonlyArray<TypesImportSpec>, operationTypeImports: ReadonlyArray<TypesImportSpec>, hashes: {
396
439
  readonly storageHash: string;
397
440
  readonly executionHash?: string;
398
441
  readonly profileHash: string;
@@ -464,49 +507,5 @@ interface ParameterizedCodecDescriptor {
464
507
  readonly typesImport?: TypesImportSpec;
465
508
  }
466
509
  //#endregion
467
- //#region src/contract-types.d.ts
468
- /**
469
- * Execution section for the unified contract (ADR 182).
470
- *
471
- * Unlike the legacy {@link import('./types').ExecutionSection}, this type
472
- * requires `executionHash` — when an execution section is present, its
473
- * hash must be too (consistent with `StorageBase.storageHash`).
474
- *
475
- * @template THash Literal hash string type for type-safe hash tracking.
476
- */
477
- type ContractExecutionSection<THash extends string = string> = {
478
- readonly executionHash: ExecutionHashBase<THash>;
479
- readonly mutations: {
480
- readonly defaults: ReadonlyArray<ExecutionMutationDefault>;
481
- };
482
- };
483
- /**
484
- * Unified contract representation (ADR 182).
485
- *
486
- * A `Contract` is the canonical in-memory representation of a data contract.
487
- * It is model-first (domain models carry their own storage bridge) and
488
- * family-parameterized (SQL, Mongo, etc. specialize via `TStorage` and model
489
- * storage generics on `ContractModel`).
490
- *
491
- * JSON persistence fields (`schemaVersion`, `sources`) are not represented
492
- * here — they are handled at the serialization boundary.
493
- *
494
- * @template TStorage Family-specific storage block (extends {@link StorageBase}).
495
- * @template TModels Record of model name → {@link ContractModel} with
496
- * family-specific model storage.
497
- */
498
- interface Contract<TStorage extends StorageBase = StorageBase, TModels extends Record<string, ContractModel> = Record<string, ContractModel>> {
499
- readonly target: string;
500
- readonly targetFamily: string;
501
- readonly roots: Record<string, string>;
502
- readonly models: TModels;
503
- readonly storage: TStorage;
504
- readonly capabilities: Record<string, Record<string, boolean>>;
505
- readonly extensionPacks: Record<string, unknown>;
506
- readonly execution?: ContractExecutionSection;
507
- readonly profileHash?: ProfileHashBase<string>;
508
- readonly meta: Record<string, unknown>;
509
- }
510
- //#endregion
511
- export { ContractModel as $, RenderTypeContext as A, TypeRenderEntry as B, JsonPrimitive as C, PlanMeta as D, ParameterizedCodecDescriptor as E, TaggedBigInt as F, coreHash as G, TypesImportSpec as H, TaggedLiteralValue as I, isTaggedRaw as J, isDocumentContract as K, TaggedRaw as L, Source as M, StorageBase as N, PlanRefs as O, StorageHashBase as P, ContractField as Q, TargetFamilyHook as R, GeneratedValueSpec as S, ParamDescriptor as T, ValidationContext as U, TypeRenderer as V, bigintJsonReplacer as W, ContractDiscriminator as X, profileHash as Y, ContractEmbedRelation as Z, ExecutionPlan as _, ColumnDefault as a, DomainEmbedRelation as at, FieldType as b, ContractBase as c, DomainReferenceRelation as ct, DocIndex as d, DomainVariantEntry as dt, ContractReferenceRelation as et, DocumentContract as f, EmbedRelationKeys as ft, ExecutionMutationDefaultValue as g, ExecutionMutationDefault as h, Brand as i, DomainDiscriminator as it, ResultType as j, ProfileHashBase as k, ContractMarkerRecord as l, DomainRelation as lt, ExecutionHashBase as m, ReferenceRelationKeys as mt, ContractExecutionSection as n, ContractRelationOn as nt, ColumnDefaultLiteralInputValue as o, DomainField as ot, DocumentStorage as p, ModelStorageBase as pt, isTaggedBigInt as q, $ as r, ContractVariantEntry as rt, ColumnDefaultLiteralValue as s, DomainModel as st, Contract as t, ContractRelation as tt, DocCollection as u, DomainRelationOn as ut, ExecutionSection as v, JsonValue as w, GenerateContractTypesOptions as x, Expr as y, TypeRenderContext as z };
512
- //# sourceMappingURL=contract-types-C0y-Bn8M.d.mts.map
510
+ export { ContractModel as $, Source as A, TypesImportSpec as B, ParamDescriptor as C, ProfileHashBase as D, PlanRefs as E, TaggedRaw as F, isTaggedBigInt as G, bigintJsonReplacer as H, TargetFamilyHook as I, Contract as J, isTaggedRaw as K, TypeRenderContext as L, StorageHashBase as M, TaggedBigInt as N, RenderTypeContext as O, TaggedLiteralValue as P, ContractField as Q, TypeRenderEntry as R, JsonValue as S, PlanMeta as T, coreHash as U, ValidationContext as V, isDocumentContract as W, ContractDiscriminator as X, ContractExecutionSection as Y, ContractEmbedRelation as Z, Expr as _, ColumnDefaultLiteralValue as a, DomainEmbedRelation as at, GeneratedValueSpec as b, DocCollection as c, DomainReferenceRelation as ct, DocumentStorage as d, DomainVariantEntry as dt, ContractReferenceRelation as et, ExecutionHashBase as f, EmbedRelationKeys as ft, ExecutionSection as g, ExecutionPlan as h, ColumnDefaultLiteralInputValue as i, DomainDiscriminator as it, StorageBase as j, ResultType as k, DocIndex as l, DomainRelation as lt, ExecutionMutationDefaultValue as m, ReferenceRelationKeys as mt, Brand as n, ContractRelationOn as nt, ContractBase as o, DomainField as ot, ExecutionMutationDefault as p, ModelStorageBase as pt, profileHash as q, ColumnDefault as r, ContractVariantEntry as rt, ContractMarkerRecord as s, DomainModel as st, $ as t, ContractRelation as tt, DocumentContract as u, DomainRelationOn as ut, FieldType as v, ParameterizedCodecDescriptor as w, JsonPrimitive as x, GenerateContractTypesOptions as y, TypeRenderer as z };
511
+ //# sourceMappingURL=types-D-iOS0Ks.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-D-iOS0Ks.d.mts","names":[],"sources":["../src/domain-types.ts","../src/contract-types.ts","../src/types.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ //#region src/types.ts
2
+ function coreHash(value) {
3
+ return value;
4
+ }
5
+ function profileHash(value) {
6
+ return value;
7
+ }
8
+ function isTaggedBigInt(value) {
9
+ return typeof value === "object" && value !== null && value.$type === "bigint" && typeof value.value === "string";
10
+ }
11
+ function bigintJsonReplacer(_key, value) {
12
+ if (typeof value === "bigint") return {
13
+ $type: "bigint",
14
+ value: value.toString()
15
+ };
16
+ return value;
17
+ }
18
+ function isTaggedRaw(value) {
19
+ return typeof value === "object" && value !== null && value.$type === "raw" && "value" in value;
20
+ }
21
+ /**
22
+ * Type guard to check if a contract is a Document contract
23
+ */
24
+ function isDocumentContract(contract) {
25
+ return typeof contract === "object" && contract !== null && "targetFamily" in contract && contract.targetFamily === "document";
26
+ }
27
+
28
+ //#endregion
29
+ export { isTaggedRaw as a, isTaggedBigInt as i, coreHash as n, profileHash as o, isDocumentContract as r, bigintJsonReplacer as t };
30
+ //# sourceMappingURL=types-DokLaU9G.mjs.map