@manifesto-ai/core 2.6.0 → 2.6.1

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 (182) hide show
  1. package/README.md +4 -4
  2. package/dist/index.d.ts +1749 -19
  3. package/dist/index.js +18456 -36
  4. package/dist/index.js.map +1 -1
  5. package/package.json +2 -2
  6. package/dist/__tests__/apply.test.d.ts +0 -2
  7. package/dist/__tests__/apply.test.d.ts.map +0 -1
  8. package/dist/__tests__/apply.test.js +0 -320
  9. package/dist/__tests__/apply.test.js.map +0 -1
  10. package/dist/__tests__/defaults.test.d.ts +0 -2
  11. package/dist/__tests__/defaults.test.d.ts.map +0 -1
  12. package/dist/__tests__/defaults.test.js +0 -74
  13. package/dist/__tests__/defaults.test.js.map +0 -1
  14. package/dist/__tests__/jcs.test.d.ts +0 -2
  15. package/dist/__tests__/jcs.test.d.ts.map +0 -1
  16. package/dist/__tests__/jcs.test.js +0 -45
  17. package/dist/__tests__/jcs.test.js.map +0 -1
  18. package/dist/core/apply.d.ts +0 -17
  19. package/dist/core/apply.d.ts.map +0 -1
  20. package/dist/core/apply.js +0 -198
  21. package/dist/core/apply.js.map +0 -1
  22. package/dist/core/compute.d.ts +0 -17
  23. package/dist/core/compute.d.ts.map +0 -1
  24. package/dist/core/compute.js +0 -305
  25. package/dist/core/compute.js.map +0 -1
  26. package/dist/core/compute.test.d.ts +0 -2
  27. package/dist/core/compute.test.d.ts.map +0 -1
  28. package/dist/core/compute.test.js +0 -950
  29. package/dist/core/compute.test.js.map +0 -1
  30. package/dist/core/explain.d.ts +0 -14
  31. package/dist/core/explain.d.ts.map +0 -1
  32. package/dist/core/explain.js +0 -78
  33. package/dist/core/explain.js.map +0 -1
  34. package/dist/core/index.d.ts +0 -5
  35. package/dist/core/index.d.ts.map +0 -1
  36. package/dist/core/index.js +0 -5
  37. package/dist/core/index.js.map +0 -1
  38. package/dist/core/validate.d.ts +0 -16
  39. package/dist/core/validate.d.ts.map +0 -1
  40. package/dist/core/validate.js +0 -361
  41. package/dist/core/validate.js.map +0 -1
  42. package/dist/core/validate.test.d.ts +0 -2
  43. package/dist/core/validate.test.d.ts.map +0 -1
  44. package/dist/core/validate.test.js +0 -719
  45. package/dist/core/validate.test.js.map +0 -1
  46. package/dist/core/validation-utils.d.ts +0 -20
  47. package/dist/core/validation-utils.d.ts.map +0 -1
  48. package/dist/core/validation-utils.js +0 -351
  49. package/dist/core/validation-utils.js.map +0 -1
  50. package/dist/errors.d.ts +0 -30
  51. package/dist/errors.d.ts.map +0 -1
  52. package/dist/errors.js +0 -51
  53. package/dist/errors.js.map +0 -1
  54. package/dist/evaluator/computed.d.ts +0 -14
  55. package/dist/evaluator/computed.d.ts.map +0 -1
  56. package/dist/evaluator/computed.js +0 -60
  57. package/dist/evaluator/computed.js.map +0 -1
  58. package/dist/evaluator/context.d.ts +0 -62
  59. package/dist/evaluator/context.d.ts.map +0 -1
  60. package/dist/evaluator/context.js +0 -44
  61. package/dist/evaluator/context.js.map +0 -1
  62. package/dist/evaluator/dag.d.ts +0 -30
  63. package/dist/evaluator/dag.d.ts.map +0 -1
  64. package/dist/evaluator/dag.js +0 -121
  65. package/dist/evaluator/dag.js.map +0 -1
  66. package/dist/evaluator/expr.d.ts +0 -11
  67. package/dist/evaluator/expr.d.ts.map +0 -1
  68. package/dist/evaluator/expr.js +0 -1030
  69. package/dist/evaluator/expr.js.map +0 -1
  70. package/dist/evaluator/expr.test.d.ts +0 -2
  71. package/dist/evaluator/expr.test.d.ts.map +0 -1
  72. package/dist/evaluator/expr.test.js +0 -1235
  73. package/dist/evaluator/expr.test.js.map +0 -1
  74. package/dist/evaluator/flow.d.ts +0 -36
  75. package/dist/evaluator/flow.d.ts.map +0 -1
  76. package/dist/evaluator/flow.js +0 -390
  77. package/dist/evaluator/flow.js.map +0 -1
  78. package/dist/evaluator/flow.test.d.ts +0 -2
  79. package/dist/evaluator/flow.test.d.ts.map +0 -1
  80. package/dist/evaluator/flow.test.js +0 -499
  81. package/dist/evaluator/flow.test.js.map +0 -1
  82. package/dist/evaluator/index.d.ts +0 -6
  83. package/dist/evaluator/index.d.ts.map +0 -1
  84. package/dist/evaluator/index.js +0 -6
  85. package/dist/evaluator/index.js.map +0 -1
  86. package/dist/factories.d.ts +0 -22
  87. package/dist/factories.d.ts.map +0 -1
  88. package/dist/factories.js +0 -44
  89. package/dist/factories.js.map +0 -1
  90. package/dist/index.d.ts.map +0 -1
  91. package/dist/index.test.d.ts +0 -2
  92. package/dist/index.test.d.ts.map +0 -1
  93. package/dist/index.test.js +0 -14
  94. package/dist/index.test.js.map +0 -1
  95. package/dist/schema/action.d.ts +0 -14
  96. package/dist/schema/action.d.ts.map +0 -1
  97. package/dist/schema/action.js +0 -30
  98. package/dist/schema/action.js.map +0 -1
  99. package/dist/schema/common.d.ts +0 -37
  100. package/dist/schema/common.d.ts.map +0 -1
  101. package/dist/schema/common.js +0 -20
  102. package/dist/schema/common.js.map +0 -1
  103. package/dist/schema/computed.d.ts +0 -23
  104. package/dist/schema/computed.d.ts.map +0 -1
  105. package/dist/schema/computed.js +0 -34
  106. package/dist/schema/computed.js.map +0 -1
  107. package/dist/schema/defaults.d.ts +0 -12
  108. package/dist/schema/defaults.d.ts.map +0 -1
  109. package/dist/schema/defaults.js +0 -19
  110. package/dist/schema/defaults.js.map +0 -1
  111. package/dist/schema/domain.d.ts +0 -50
  112. package/dist/schema/domain.d.ts.map +0 -1
  113. package/dist/schema/domain.js +0 -60
  114. package/dist/schema/domain.js.map +0 -1
  115. package/dist/schema/expr.d.ts +0 -483
  116. package/dist/schema/expr.d.ts.map +0 -1
  117. package/dist/schema/expr.js +0 -445
  118. package/dist/schema/expr.js.map +0 -1
  119. package/dist/schema/field.d.ts +0 -48
  120. package/dist/schema/field.d.ts.map +0 -1
  121. package/dist/schema/field.js +0 -31
  122. package/dist/schema/field.js.map +0 -1
  123. package/dist/schema/flow.d.ts +0 -103
  124. package/dist/schema/flow.d.ts.map +0 -1
  125. package/dist/schema/flow.js +0 -82
  126. package/dist/schema/flow.js.map +0 -1
  127. package/dist/schema/host-context.d.ts +0 -12
  128. package/dist/schema/host-context.d.ts.map +0 -1
  129. package/dist/schema/host-context.js +0 -23
  130. package/dist/schema/host-context.js.map +0 -1
  131. package/dist/schema/index.d.ts +0 -15
  132. package/dist/schema/index.d.ts.map +0 -1
  133. package/dist/schema/index.js +0 -28
  134. package/dist/schema/index.js.map +0 -1
  135. package/dist/schema/patch.d.ts +0 -59
  136. package/dist/schema/patch.d.ts.map +0 -1
  137. package/dist/schema/patch.js +0 -60
  138. package/dist/schema/patch.js.map +0 -1
  139. package/dist/schema/result.d.ts +0 -142
  140. package/dist/schema/result.d.ts.map +0 -1
  141. package/dist/schema/result.js +0 -94
  142. package/dist/schema/result.js.map +0 -1
  143. package/dist/schema/snapshot.d.ts +0 -153
  144. package/dist/schema/snapshot.d.ts.map +0 -1
  145. package/dist/schema/snapshot.js +0 -160
  146. package/dist/schema/snapshot.js.map +0 -1
  147. package/dist/schema/trace.d.ts +0 -98
  148. package/dist/schema/trace.d.ts.map +0 -1
  149. package/dist/schema/trace.js +0 -90
  150. package/dist/schema/trace.js.map +0 -1
  151. package/dist/schema/type-spec.d.ts +0 -34
  152. package/dist/schema/type-spec.d.ts.map +0 -1
  153. package/dist/schema/type-spec.js +0 -40
  154. package/dist/schema/type-spec.js.map +0 -1
  155. package/dist/utils/canonical.d.ts +0 -37
  156. package/dist/utils/canonical.d.ts.map +0 -1
  157. package/dist/utils/canonical.js +0 -122
  158. package/dist/utils/canonical.js.map +0 -1
  159. package/dist/utils/canonical.test.d.ts +0 -2
  160. package/dist/utils/canonical.test.d.ts.map +0 -1
  161. package/dist/utils/canonical.test.js +0 -183
  162. package/dist/utils/canonical.test.js.map +0 -1
  163. package/dist/utils/hash.d.ts +0 -55
  164. package/dist/utils/hash.d.ts.map +0 -1
  165. package/dist/utils/hash.js +0 -183
  166. package/dist/utils/hash.js.map +0 -1
  167. package/dist/utils/hash.test.d.ts +0 -2
  168. package/dist/utils/hash.test.d.ts.map +0 -1
  169. package/dist/utils/hash.test.js +0 -253
  170. package/dist/utils/hash.test.js.map +0 -1
  171. package/dist/utils/index.d.ts +0 -4
  172. package/dist/utils/index.d.ts.map +0 -1
  173. package/dist/utils/index.js +0 -4
  174. package/dist/utils/index.js.map +0 -1
  175. package/dist/utils/path.d.ts +0 -42
  176. package/dist/utils/path.d.ts.map +0 -1
  177. package/dist/utils/path.js +0 -170
  178. package/dist/utils/path.js.map +0 -1
  179. package/dist/utils/path.test.d.ts +0 -2
  180. package/dist/utils/path.test.d.ts.map +0 -1
  181. package/dist/utils/path.test.js +0 -248
  182. package/dist/utils/path.test.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manifesto-ai/core",
3
- "version": "2.6.0",
3
+ "version": "2.6.1",
4
4
  "description": "Manifesto Core - Pure semantic calculator for deterministic state computation",
5
5
  "author": "eggplantiny <eggplantiny@gmail.com>",
6
6
  "license": "MIT",
@@ -38,7 +38,7 @@
38
38
  "typescript": "^5.9.3"
39
39
  },
40
40
  "scripts": {
41
- "build": "tsc",
41
+ "build": "tsup",
42
42
  "dev": "tsc --watch",
43
43
  "clean": "rm -rf dist",
44
44
  "lint": "echo 'lint not configured'",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=apply.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/apply.test.ts"],"names":[],"mappings":""}
@@ -1,320 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { apply } from "../core/apply.js";
3
- import { createSnapshot } from "../factories.js";
4
- const HOST_CONTEXT = { now: 0, randomSeed: "seed" };
5
- describe("apply", () => {
6
- it("should surface computed evaluation errors as values", () => {
7
- const schema = {
8
- id: "manifesto:test",
9
- version: "1.0.0",
10
- hash: "test-hash",
11
- types: {},
12
- state: {
13
- fields: {
14
- dummy: { type: "string", required: true },
15
- },
16
- },
17
- computed: {
18
- fields: {
19
- "computed.a": {
20
- expr: { kind: "get", path: "computed.b" },
21
- deps: ["computed.b"],
22
- },
23
- "computed.b": {
24
- expr: { kind: "get", path: "computed.a" },
25
- deps: ["computed.a"],
26
- },
27
- },
28
- },
29
- actions: {
30
- noop: { flow: { kind: "halt", reason: "noop" } },
31
- },
32
- };
33
- const snapshot = createSnapshot({ dummy: "initial" }, schema.hash, HOST_CONTEXT);
34
- const result = apply(schema, snapshot, [{ op: "set", path: "dummy", value: "updated" }], HOST_CONTEXT);
35
- expect(result.data).toEqual({ dummy: "updated" });
36
- expect(result.system.status).toBe("error");
37
- expect(result.system.lastError?.code).toBe("CYCLIC_DEPENDENCY");
38
- expect(result.computed).toEqual({});
39
- });
40
- it("should record errors for unknown patch paths", () => {
41
- const schema = {
42
- id: "manifesto:test",
43
- version: "1.0.0",
44
- hash: "test-hash",
45
- types: {},
46
- state: {
47
- fields: {
48
- dummy: { type: "string", required: true },
49
- },
50
- },
51
- computed: { fields: {} },
52
- actions: {
53
- noop: { flow: { kind: "halt", reason: "noop" } },
54
- },
55
- };
56
- const snapshot = createSnapshot({ dummy: "initial" }, schema.hash, HOST_CONTEXT);
57
- const result = apply(schema, snapshot, [{ op: "set", path: "missing", value: "value" }], HOST_CONTEXT);
58
- expect(result.data).toEqual({ dummy: "initial" });
59
- expect(result.system.status).toBe("error");
60
- expect(result.system.lastError?.code).toBe("PATH_NOT_FOUND");
61
- });
62
- it("should preserve dotted record keys in patch paths", () => {
63
- const schema = {
64
- id: "manifesto:test",
65
- version: "1.0.0",
66
- hash: "test-hash",
67
- types: {},
68
- state: {
69
- fields: {
70
- history: {
71
- type: "object",
72
- required: true,
73
- fields: {
74
- files: {
75
- type: "object",
76
- required: false,
77
- fields: {
78
- "file:///proof.lean": { type: "string", required: false },
79
- "TACTIC_FAILED:simp": { type: "string", required: false },
80
- },
81
- },
82
- },
83
- },
84
- },
85
- },
86
- computed: { fields: {} },
87
- actions: {
88
- noop: { flow: { kind: "halt", reason: "noop" } },
89
- },
90
- };
91
- const snapshot = createSnapshot({ history: { files: {} } }, schema.hash, HOST_CONTEXT);
92
- const result = apply(schema, snapshot, [{ op: "set", path: "history.files.file:///proof\\.lean", value: "recorded" }], HOST_CONTEXT);
93
- expect(result.data).toEqual({
94
- history: {
95
- files: {
96
- "file:///proof.lean": "recorded",
97
- },
98
- },
99
- });
100
- expect(result.system.status).toBe("idle");
101
- expect(result.system.lastError).toBeNull();
102
- });
103
- it("should record errors for invalid patch value types", () => {
104
- const schema = {
105
- id: "manifesto:test",
106
- version: "1.0.0",
107
- hash: "test-hash",
108
- types: {},
109
- state: {
110
- fields: {
111
- dummy: { type: "string", required: true },
112
- },
113
- },
114
- computed: { fields: {} },
115
- actions: {
116
- noop: { flow: { kind: "halt", reason: "noop" } },
117
- },
118
- };
119
- const snapshot = createSnapshot({ dummy: "initial" }, schema.hash, HOST_CONTEXT);
120
- const result = apply(schema, snapshot, [{ op: "set", path: "dummy", value: 42 }], HOST_CONTEXT);
121
- expect(result.data).toEqual({ dummy: "initial" });
122
- expect(result.system.status).toBe("error");
123
- expect(result.system.lastError?.code).toBe("TYPE_MISMATCH");
124
- });
125
- it("should ignore patches to computed and meta", () => {
126
- const schema = {
127
- id: "manifesto:test",
128
- version: "1.0.0",
129
- hash: "test-hash",
130
- types: {},
131
- state: {
132
- fields: {
133
- count: { type: "number", required: true },
134
- },
135
- },
136
- computed: {
137
- fields: {
138
- "computed.double": {
139
- expr: {
140
- kind: "mul",
141
- left: { kind: "get", path: "count" },
142
- right: { kind: "lit", value: 2 },
143
- },
144
- deps: ["count"],
145
- },
146
- },
147
- },
148
- actions: {
149
- noop: { flow: { kind: "halt", reason: "noop" } },
150
- },
151
- };
152
- const snapshot = createSnapshot({ count: 2 }, schema.hash, HOST_CONTEXT);
153
- const result = apply(schema, snapshot, [
154
- { op: "set", path: "computed.double", value: 999 },
155
- { op: "set", path: "meta.version", value: 999 },
156
- { op: "set", path: "count", value: 3 },
157
- ], HOST_CONTEXT);
158
- expect(result.data).toEqual({ count: 3 });
159
- expect(result.computed["computed.double"]).toBe(6);
160
- expect(result.meta.version).toBe(snapshot.meta.version + 1);
161
- });
162
- it("should record errors for merge patches on non-object fields", () => {
163
- const schema = {
164
- id: "manifesto:test",
165
- version: "1.0.0",
166
- hash: "test-hash",
167
- types: {},
168
- state: {
169
- fields: {
170
- name: { type: "string", required: true },
171
- },
172
- },
173
- computed: { fields: {} },
174
- actions: {
175
- noop: { flow: { kind: "halt", reason: "noop" } },
176
- },
177
- };
178
- const snapshot = createSnapshot({ name: "initial" }, schema.hash, HOST_CONTEXT);
179
- const result = apply(schema, snapshot, [{ op: "merge", path: "name", value: { extra: "value" } }], HOST_CONTEXT);
180
- expect(result.data).toEqual({ name: "initial" });
181
- expect(result.system.status).toBe("error");
182
- expect(result.system.lastError?.code).toBe("TYPE_MISMATCH");
183
- });
184
- it("should allow merge on platform namespace paths not declared in StateSpec", () => {
185
- const schema = {
186
- id: "manifesto:test",
187
- version: "1.0.0",
188
- hash: "test-hash",
189
- types: {},
190
- state: {
191
- fields: {
192
- count: { type: "number", required: true },
193
- },
194
- },
195
- computed: { fields: {} },
196
- actions: {
197
- noop: { flow: { kind: "halt", reason: "noop" } },
198
- },
199
- };
200
- const snapshot = createSnapshot({ count: 1 }, schema.hash, HOST_CONTEXT);
201
- const result = apply(schema, snapshot, [{ op: "merge", path: "$mel.guards.intent", value: { addTodo: "intent-1" } }], HOST_CONTEXT);
202
- expect(result.data).toEqual({
203
- count: 1,
204
- $mel: {
205
- guards: {
206
- intent: {
207
- addTodo: "intent-1",
208
- },
209
- },
210
- },
211
- });
212
- expect(result.system.status).toBe("idle");
213
- expect(result.system.lastError).toBeNull();
214
- });
215
- it("should record TYPE_MISMATCH for non-object values at platform namespace root", () => {
216
- const schema = {
217
- id: "manifesto:test",
218
- version: "1.0.0",
219
- hash: "test-hash",
220
- types: {},
221
- state: {
222
- fields: {
223
- count: { type: "number", required: true },
224
- },
225
- },
226
- computed: { fields: {} },
227
- actions: {
228
- noop: { flow: { kind: "halt", reason: "noop" } },
229
- },
230
- };
231
- const snapshot = createSnapshot({ count: 1 }, schema.hash, HOST_CONTEXT);
232
- const result = apply(schema, snapshot, [{ op: "set", path: "$mel", value: "invalid" }], HOST_CONTEXT);
233
- expect(result.data).toEqual({ count: 1 });
234
- expect(result.system.status).toBe("error");
235
- expect(result.system.lastError?.code).toBe("TYPE_MISMATCH");
236
- });
237
- it("should create missing object paths for merge targets", () => {
238
- const schema = {
239
- id: "manifesto:test",
240
- version: "1.0.0",
241
- hash: "test-hash",
242
- types: {},
243
- state: {
244
- fields: {
245
- profile: {
246
- type: "object",
247
- required: false,
248
- fields: {
249
- meta: {
250
- type: "object",
251
- required: false,
252
- fields: {
253
- source: { type: "string", required: false },
254
- },
255
- },
256
- },
257
- },
258
- },
259
- },
260
- computed: { fields: {} },
261
- actions: {
262
- noop: { flow: { kind: "halt", reason: "noop" } },
263
- },
264
- };
265
- const snapshot = createSnapshot({}, schema.hash, HOST_CONTEXT);
266
- const result = apply(schema, snapshot, [{ op: "merge", path: "profile.meta", value: { source: "import" } }], HOST_CONTEXT);
267
- expect(result.data).toEqual({
268
- profile: {
269
- meta: {
270
- source: "import",
271
- },
272
- },
273
- });
274
- expect(result.system.status).toBe("idle");
275
- expect(result.system.lastError).toBeNull();
276
- });
277
- it("should record TYPE_MISMATCH when merge target path resolves to non-object runtime value", () => {
278
- const schema = {
279
- id: "manifesto:test",
280
- version: "1.0.0",
281
- hash: "test-hash",
282
- types: {},
283
- state: {
284
- fields: {
285
- profile: {
286
- type: "object",
287
- required: false,
288
- fields: {
289
- meta: {
290
- type: "object",
291
- required: false,
292
- fields: {
293
- source: { type: "string", required: false },
294
- },
295
- },
296
- },
297
- },
298
- },
299
- },
300
- computed: { fields: {} },
301
- actions: {
302
- noop: { flow: { kind: "halt", reason: "noop" } },
303
- },
304
- };
305
- const snapshot = createSnapshot({
306
- profile: {
307
- meta: "not-object",
308
- },
309
- }, schema.hash, HOST_CONTEXT);
310
- const result = apply(schema, snapshot, [{ op: "merge", path: "profile.meta", value: { source: "import" } }], HOST_CONTEXT);
311
- expect(result.data).toEqual({
312
- profile: {
313
- meta: "not-object",
314
- },
315
- });
316
- expect(result.system.status).toBe("error");
317
- expect(result.system.lastError?.code).toBe("TYPE_MISMATCH");
318
- });
319
- });
320
- //# sourceMappingURL=apply.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply.test.js","sourceRoot":"","sources":["../../src/__tests__/apply.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAEpD,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;aACF;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,YAAY,EAAE;wBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;wBACzC,IAAI,EAAE,CAAC,YAAY,CAAC;qBACrB;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;wBACzC,IAAI,EAAE,CAAC,YAAY,CAAC;qBACrB;iBACF;aACF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAChD,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAChD,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE;4BACN,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,KAAK;gCACf,MAAM,EAAE;oCACN,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;oCACzD,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;iCAC1D;6BACF;yBACF;qBACF;iBACF;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,oCAAoC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAC9E,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAC1B,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,oBAAoB,EAAE,UAAU;iBACjC;aACF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACzC,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;aACF;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,iBAAiB,EAAE;wBACjB,IAAI,EAAE;4BACJ,IAAI,EAAE,KAAK;4BACX,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;4BACpC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;yBACjC;wBACD,IAAI,EAAE,CAAC,OAAO,CAAC;qBAChB;iBACF;aACF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR;YACE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE;YAClD,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE;YAC/C,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;SACvC,EACD,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACzC;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAC1D,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,EAC7E,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE,CAAC;YACR,IAAI,EAAE;gBACJ,MAAM,EAAE;oBACN,MAAM,EAAE;wBACN,OAAO,EAAE,UAAU;qBACpB;iBACF;aACF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAC/C,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,KAAK;wBACf,MAAM,EAAE;4BACN,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,KAAK;gCACf,MAAM,EAAE;oCACN,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;iCAC5C;6BACF;yBACF;qBACF;iBACF;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,EACpE,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAC1B,OAAO,EAAE;gBACP,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ;iBACjB;aACF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,GAAG,EAAE;QACjG,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,KAAK;wBACf,MAAM,EAAE;4BACN,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,KAAK;gCACf,MAAM,EAAE;oCACN,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;iCAC5C;6BACF;yBACF;qBACF;iBACF;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;aACjD;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAC7B;YACE,OAAO,EAAE;gBACP,IAAI,EAAE,YAAY;aACnB;SACS,EACZ,MAAM,CAAC,IAAI,EACX,YAAY,CACb,CAAC;QACF,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,EACN,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,EACpE,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAC1B,OAAO,EAAE;gBACP,IAAI,EAAE,YAAY;aACnB;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=defaults.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/defaults.test.ts"],"names":[],"mappings":""}
@@ -1,74 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { extractDefaults } from "../schema/defaults.js";
3
- describe("extractDefaults", () => {
4
- it("returns empty object for empty fields", () => {
5
- const stateSpec = { fields: {} };
6
- expect(extractDefaults(stateSpec)).toEqual({});
7
- });
8
- it("extracts fields with defaults", () => {
9
- const stateSpec = {
10
- fields: {
11
- count: { type: "number", required: true, default: 0 },
12
- name: { type: "string", required: true, default: "untitled" },
13
- },
14
- };
15
- expect(extractDefaults(stateSpec)).toEqual({
16
- count: 0,
17
- name: "untitled",
18
- });
19
- });
20
- it("skips fields without defaults", () => {
21
- const stateSpec = {
22
- fields: {
23
- title: { type: "string", required: true },
24
- count: { type: "number", required: true, default: 0 },
25
- },
26
- };
27
- expect(extractDefaults(stateSpec)).toEqual({ count: 0 });
28
- });
29
- it("handles mixed fields with and without defaults", () => {
30
- const stateSpec = {
31
- fields: {
32
- status: { type: "string", required: true, default: "idle" },
33
- user: { type: "object", required: false },
34
- items: { type: "array", required: true, default: [] },
35
- },
36
- };
37
- expect(extractDefaults(stateSpec)).toEqual({
38
- status: "idle",
39
- items: [],
40
- });
41
- });
42
- it("preserves complex default values (objects, arrays)", () => {
43
- const stateSpec = {
44
- fields: {
45
- config: {
46
- type: "object",
47
- required: true,
48
- default: { theme: "dark", lang: "en" },
49
- },
50
- tags: {
51
- type: "array",
52
- required: true,
53
- default: ["a", "b"],
54
- },
55
- },
56
- };
57
- expect(extractDefaults(stateSpec)).toEqual({
58
- config: { theme: "dark", lang: "en" },
59
- tags: ["a", "b"],
60
- });
61
- });
62
- it("is deterministic — same input produces same output", () => {
63
- const stateSpec = {
64
- fields: {
65
- count: { type: "number", required: true, default: 0 },
66
- name: { type: "string", required: true, default: "test" },
67
- },
68
- };
69
- const result1 = extractDefaults(stateSpec);
70
- const result2 = extractDefaults(stateSpec);
71
- expect(result1).toEqual(result2);
72
- });
73
- });
74
- //# sourceMappingURL=defaults.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.test.js","sourceRoot":"","sources":["../../src/__tests__/defaults.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=jcs.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jcs.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/jcs.test.ts"],"names":[],"mappings":""}
@@ -1,45 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { toJcs } from "../utils/canonical.js";
3
- describe("toJcs", () => {
4
- it("should serialize -0 as 0", () => {
5
- expect(toJcs(-0)).toBe("0");
6
- });
7
- it("should use exponent form for large and small numbers", () => {
8
- expect(toJcs(1e21)).toBe("1e+21");
9
- expect(toJcs(1e-7)).toBe("1e-7");
10
- });
11
- it("should omit undefined and symbol object properties", () => {
12
- const sym = Symbol("x");
13
- const value = { b: 1, a: undefined, c: sym, d: null };
14
- expect(toJcs(value)).toBe('{"b":1,"d":null}');
15
- });
16
- it("should convert non-serializable array items to null", () => {
17
- const sym = Symbol("x");
18
- const fn = () => { };
19
- expect(toJcs([1, undefined, fn, sym, 2])).toBe("[1,null,null,null,2]");
20
- });
21
- it("should escape control characters in strings", () => {
22
- const value = { text: "line\nbreak\tend" };
23
- expect(toJcs(value)).toBe("{\"text\":\"line\\nbreak\\tend\"}");
24
- });
25
- it("should order keys by code point, including surrogate pairs", () => {
26
- const keyA = "\uD834\uDD1E";
27
- const keyB = "\uD834\uDD1F";
28
- const value = {
29
- [keyB]: 2,
30
- a: 3,
31
- [keyA]: 1,
32
- };
33
- const expected = `{"a":3,${JSON.stringify(keyA)}:1,${JSON.stringify(keyB)}:2}`;
34
- expect(toJcs(value)).toBe(expected);
35
- });
36
- it("should escape quotes and backslashes", () => {
37
- const value = { text: "quote\"slash\\end" };
38
- expect(toJcs(value)).toBe("{\"text\":\"quote\\\"slash\\\\end\"}");
39
- });
40
- it("should escape null character", () => {
41
- const value = { text: "nul\u0000end" };
42
- expect(toJcs(value)).toBe("{\"text\":\"nul\\u0000end\"}");
43
- });
44
- });
45
- //# sourceMappingURL=jcs.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jcs.test.js","sourceRoot":"","sources":["../../src/__tests__/jcs.test.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { DomainSchema } from "../schema/domain.js";
2
- import type { Snapshot } from "../schema/snapshot.js";
3
- import type { Patch } from "../schema/patch.js";
4
- import type { HostContext } from "../schema/host-context.js";
5
- /**
6
- * Apply patches to a snapshot
7
- *
8
- * This function:
9
- * 1. Applies all patches to the data
10
- * 2. Recomputes all computed values
11
- * 3. Increments the version number
12
- * 4. Updates the timestamp
13
- *
14
- * Note: Version and timestamp are Core-owned - Host MUST NOT modify these directly.
15
- */
16
- export declare function apply(schema: DomainSchema, snapshot: Snapshot, patches: readonly Patch[], context: HostContext): Snapshot;
17
- //# sourceMappingURL=apply.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/core/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAY7D;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CACnB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,SAAS,KAAK,EAAE,EACzB,OAAO,EAAE,WAAW,GACnB,QAAQ,CAkKV"}