@overkill-dev/engine 0.0.1 → 0.0.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.
Files changed (192) hide show
  1. package/LICENSE +21 -0
  2. package/assertion-protocol/assertion-evaluation.d.ts +13 -0
  3. package/assertion-protocol/assertion-evaluation.d.ts.map +1 -0
  4. package/assertion-protocol/assertion-evaluation.js +6 -0
  5. package/assertion-protocol/assertion-evaluation.js.map +1 -0
  6. package/assertion-protocol/assertion-node-shape.d.ts +71 -0
  7. package/assertion-protocol/assertion-node-shape.d.ts.map +1 -0
  8. package/assertion-protocol/assertion-node.d.ts +97 -0
  9. package/assertion-protocol/assertion-node.d.ts.map +1 -0
  10. package/assertion-protocol/assertion-node.js +33 -0
  11. package/assertion-protocol/assertion-node.js.map +1 -0
  12. package/assertion-protocol/assertion-reference.d.ts +73 -0
  13. package/assertion-protocol/assertion-reference.d.ts.map +1 -0
  14. package/assertion-protocol/assertion-reference.js +49 -0
  15. package/assertion-protocol/assertion-reference.js.map +1 -0
  16. package/assertion-protocol/assertions/boolean.d.ts +11 -0
  17. package/assertion-protocol/assertions/boolean.d.ts.map +1 -0
  18. package/assertion-protocol/assertions/boolean.js +12 -0
  19. package/assertion-protocol/assertions/boolean.js.map +1 -0
  20. package/assertion-protocol/assertions/collection.d.ts +22 -0
  21. package/assertion-protocol/assertions/collection.d.ts.map +1 -0
  22. package/assertion-protocol/assertions/collection.js +21 -0
  23. package/assertion-protocol/assertions/collection.js.map +1 -0
  24. package/assertion-protocol/assertions/dispatch.d.ts +88 -0
  25. package/assertion-protocol/assertions/dispatch.d.ts.map +1 -0
  26. package/assertion-protocol/assertions/dispatch.js +47 -0
  27. package/assertion-protocol/assertions/dispatch.js.map +1 -0
  28. package/assertion-protocol/assertions/equality.d.ts +17 -0
  29. package/assertion-protocol/assertions/equality.d.ts.map +1 -0
  30. package/assertion-protocol/assertions/equality.js +24 -0
  31. package/assertion-protocol/assertions/equality.js.map +1 -0
  32. package/assertion-protocol/assertions/fail.d.ts +13 -0
  33. package/assertion-protocol/assertions/fail.d.ts.map +1 -0
  34. package/assertion-protocol/assertions/fail.js +8 -0
  35. package/assertion-protocol/assertions/fail.js.map +1 -0
  36. package/assertion-protocol/assertions/numeric.d.ts +29 -0
  37. package/assertion-protocol/assertions/numeric.d.ts.map +1 -0
  38. package/assertion-protocol/assertions/numeric.js +43 -0
  39. package/assertion-protocol/assertions/numeric.js.map +1 -0
  40. package/assertion-protocol/assertions/partial.d.ts +14 -0
  41. package/assertion-protocol/assertions/partial.d.ts.map +1 -0
  42. package/assertion-protocol/assertions/partial.js +17 -0
  43. package/assertion-protocol/assertions/partial.js.map +1 -0
  44. package/assertion-protocol/assertions/presence.d.ts +17 -0
  45. package/assertion-protocol/assertions/presence.d.ts.map +1 -0
  46. package/assertion-protocol/assertions/presence.js +20 -0
  47. package/assertion-protocol/assertions/presence.js.map +1 -0
  48. package/assertion-protocol/assertions/string.d.ts +28 -0
  49. package/assertion-protocol/assertions/string.d.ts.map +1 -0
  50. package/assertion-protocol/assertions/string.js +33 -0
  51. package/assertion-protocol/assertions/string.js.map +1 -0
  52. package/assertion-protocol/assertions/type-shape.d.ts +42 -0
  53. package/assertion-protocol/assertions/type-shape.d.ts.map +1 -0
  54. package/assertion-protocol/assertions/type-shape.js +43 -0
  55. package/assertion-protocol/assertions/type-shape.js.map +1 -0
  56. package/assertion-protocol/collection-count.d.ts +6 -0
  57. package/assertion-protocol/collection-count.d.ts.map +1 -0
  58. package/assertion-protocol/collection-count.js +42 -0
  59. package/assertion-protocol/collection-count.js.map +1 -0
  60. package/assertion-protocol/evaluation.d.ts +32 -0
  61. package/assertion-protocol/evaluation.d.ts.map +1 -0
  62. package/assertion-protocol/evaluation.js +170 -0
  63. package/assertion-protocol/evaluation.js.map +1 -0
  64. package/assertion-protocol/partial-matching.d.ts +4 -0
  65. package/assertion-protocol/partial-matching.d.ts.map +1 -0
  66. package/assertion-protocol/partial-matching.js +13 -0
  67. package/assertion-protocol/partial-matching.js.map +1 -0
  68. package/assertion-protocol/source-location.d.ts +6 -0
  69. package/assertion-protocol/source-location.d.ts.map +1 -0
  70. package/assertion-protocol/source-location.js +76 -0
  71. package/assertion-protocol/source-location.js.map +1 -0
  72. package/assertion-protocol/thrown-error-record.d.ts +8 -0
  73. package/assertion-protocol/thrown-error-record.d.ts.map +1 -0
  74. package/assertion-protocol/thrown-error-record.js +17 -0
  75. package/assertion-protocol/thrown-error-record.js.map +1 -0
  76. package/assertion-protocol/thrown-matcher.d.ts +51 -0
  77. package/assertion-protocol/thrown-matcher.d.ts.map +1 -0
  78. package/assertion-protocol/thrown-matcher.js +201 -0
  79. package/assertion-protocol/thrown-matcher.js.map +1 -0
  80. package/compare/comparison-result.d.ts +25 -0
  81. package/compare/comparison-result.d.ts.map +1 -0
  82. package/compare/comparison-result.js +47 -0
  83. package/compare/comparison-result.js.map +1 -0
  84. package/compare/comparison-state.d.ts +7 -0
  85. package/compare/comparison-state.d.ts.map +1 -0
  86. package/compare/comparison-state.js +20 -0
  87. package/compare/comparison-state.js.map +1 -0
  88. package/compare/comparison.d.ts +12 -0
  89. package/compare/comparison.d.ts.map +1 -0
  90. package/compare/comparison.js +78 -0
  91. package/compare/comparison.js.map +1 -0
  92. package/compare/diff-path.d.ts +8 -0
  93. package/compare/diff-path.d.ts.map +1 -0
  94. package/compare/diff-path.js +37 -0
  95. package/compare/diff-path.js.map +1 -0
  96. package/compare/raw-comparison.d.ts +24 -0
  97. package/compare/raw-comparison.d.ts.map +1 -0
  98. package/compare/raw-comparison.js +285 -0
  99. package/compare/raw-comparison.js.map +1 -0
  100. package/compare/serialized-value-classification.d.ts +12 -0
  101. package/compare/serialized-value-classification.d.ts.map +1 -0
  102. package/compare/serialized-value-classification.js +99 -0
  103. package/compare/serialized-value-classification.js.map +1 -0
  104. package/compare/serialized-value-shape.d.ts +143 -0
  105. package/compare/serialized-value-shape.d.ts.map +1 -0
  106. package/compare/serialized-value-shape.js +12 -0
  107. package/compare/serialized-value-shape.js.map +1 -0
  108. package/compare/serialized-value-state.d.ts +12 -0
  109. package/compare/serialized-value-state.d.ts.map +1 -0
  110. package/compare/serialized-value-state.js +55 -0
  111. package/compare/serialized-value-state.js.map +1 -0
  112. package/compare/serialized-value.d.ts +11 -0
  113. package/compare/serialized-value.d.ts.map +1 -0
  114. package/compare/serialized-value.js +389 -0
  115. package/compare/serialized-value.js.map +1 -0
  116. package/compare/structured-diff.d.ts +4 -0
  117. package/compare/structured-diff.d.ts.map +1 -0
  118. package/compare/structured-diff.js +382 -0
  119. package/compare/structured-diff.js.map +1 -0
  120. package/compare/value-classification.d.ts +26 -0
  121. package/compare/value-classification.d.ts.map +1 -0
  122. package/compare/value-classification.js +112 -0
  123. package/compare/value-classification.js.map +1 -0
  124. package/diff/binary-diff.d.ts +4 -0
  125. package/diff/binary-diff.d.ts.map +1 -0
  126. package/diff/binary-diff.js +49 -0
  127. package/diff/binary-diff.js.map +1 -0
  128. package/diff/diff-shape.d.ts +117 -0
  129. package/diff/diff-shape.d.ts.map +1 -0
  130. package/diff/string-diff.d.ts +3 -0
  131. package/diff/string-diff.d.ts.map +1 -0
  132. package/diff/string-diff.js +22 -0
  133. package/diff/string-diff.js.map +1 -0
  134. package/engine/assertion-facade.d.ts +50 -0
  135. package/engine/assertion-facade.d.ts.map +1 -0
  136. package/engine/assertion-facade.js +361 -0
  137. package/engine/assertion-facade.js.map +1 -0
  138. package/engine/case-execution.d.ts +10 -0
  139. package/engine/case-execution.d.ts.map +1 -0
  140. package/engine/case-execution.js +408 -0
  141. package/engine/case-execution.js.map +1 -0
  142. package/engine/custom-assertion-recording.d.ts +33 -0
  143. package/engine/custom-assertion-recording.d.ts.map +1 -0
  144. package/engine/custom-assertion-recording.js +175 -0
  145. package/engine/custom-assertion-recording.js.map +1 -0
  146. package/engine/engine.d.ts +24 -0
  147. package/engine/engine.d.ts.map +1 -0
  148. package/engine/engine.js +33 -0
  149. package/engine/engine.js.map +1 -0
  150. package/engine/execution.d.ts +16 -0
  151. package/engine/execution.d.ts.map +1 -0
  152. package/engine/execution.js +223 -0
  153. package/engine/execution.js.map +1 -0
  154. package/engine/identity.d.ts +12 -0
  155. package/engine/identity.d.ts.map +1 -0
  156. package/engine/identity.js +20 -0
  157. package/engine/identity.js.map +1 -0
  158. package/engine/reporter.d.ts +103 -0
  159. package/engine/reporter.d.ts.map +1 -0
  160. package/engine/reporter.js +177 -0
  161. package/engine/reporter.js.map +1 -0
  162. package/engine/require-assertion-facade.d.ts +21 -0
  163. package/engine/require-assertion-facade.d.ts.map +1 -0
  164. package/engine/require-assertion-facade.js +127 -0
  165. package/engine/require-assertion-facade.js.map +1 -0
  166. package/engine/run-if-main.d.ts +20 -0
  167. package/engine/run-if-main.d.ts.map +1 -0
  168. package/engine/run-if-main.js +30 -0
  169. package/engine/run-if-main.js.map +1 -0
  170. package/engine/run-result.d.ts +110 -0
  171. package/engine/run-result.d.ts.map +1 -0
  172. package/engine/run-result.js +13 -0
  173. package/engine/run-result.js.map +1 -0
  174. package/engine/test-node.d.ts +88 -0
  175. package/engine/test-node.d.ts.map +1 -0
  176. package/engine/test-node.js +103 -0
  177. package/engine/test-node.js.map +1 -0
  178. package/engine/test-plan.d.ts +20 -0
  179. package/engine/test-plan.d.ts.map +1 -0
  180. package/engine/test-plan.js +115 -0
  181. package/engine/test-plan.js.map +1 -0
  182. package/package.json +78 -6
  183. package/packages/engine/assertion-protocol.entry-point.d.ts +9 -0
  184. package/packages/engine/assertion-protocol.entry-point.d.ts.map +1 -0
  185. package/packages/engine/assertion-protocol.entry-point.js +4 -0
  186. package/packages/engine/assertion-protocol.entry-point.js.map +1 -0
  187. package/packages/engine/engine.entry-point.d.ts +39 -0
  188. package/packages/engine/engine.entry-point.d.ts.map +1 -0
  189. package/packages/engine/engine.entry-point.js +47 -0
  190. package/packages/engine/engine.entry-point.js.map +1 -0
  191. package/readme.md +121 -5
  192. package/sbom.cdx.json +67 -0
@@ -0,0 +1,389 @@
1
+ import { defaultSerializationBudget as serializedValueBudget } from "./serialized-value-shape.js";
2
+ import { constructorName, isArrayBufferValue, isArrayBufferView, isBufferValue, isDateValue, isErrorValue, isPromiseValue, isRegExpValue, isWeakMapValue, isWeakSetValue, prototypeIs } from "./serialized-value-classification.js";
3
+ import { accountValue, createState, nextReferenceId, referenceFor, truncation } from "./serialized-value-state.js";
4
+ export const defaultSerializationBudget = serializedValueBudget;
5
+ function symbolText(value) {
6
+ const globalKey = Symbol.keyFor(value);
7
+ if (globalKey !== undefined) {
8
+ return `Symbol.for(${globalKey})`;
9
+ }
10
+ return value.toString();
11
+ }
12
+ function serializePropertyKey(key) {
13
+ return typeof key === 'symbol'
14
+ ? { kind: 'symbol', value: symbolText(key) }
15
+ : { kind: 'string', value: String(key) };
16
+ }
17
+ function propertyKeySortText(key) {
18
+ return `${key.kind}:${key.value}`;
19
+ }
20
+ function sortProperties(entries) {
21
+ return entries.toSorted(function compareEntries(first, second) {
22
+ return propertyKeySortText(first.key).localeCompare(propertyKeySortText(second.key));
23
+ });
24
+ }
25
+ function objectDescriptors(value) {
26
+ try {
27
+ return {
28
+ descriptors: Object.getOwnPropertyDescriptors(value),
29
+ kind: 'available'
30
+ };
31
+ }
32
+ catch (error) {
33
+ return {
34
+ kind: 'unavailable',
35
+ reason: error instanceof Error ? error.message : 'object introspection failed'
36
+ };
37
+ }
38
+ }
39
+ function truncateString(value, state) {
40
+ if (Buffer.byteLength(value, 'utf8') <= state.budget.stringBytes) {
41
+ return { kind: 'string', truncation: null, value };
42
+ }
43
+ let output = '';
44
+ for (const character of value) {
45
+ const nextOutput = `${output}${character}`;
46
+ if (Buffer.byteLength(nextOutput, 'utf8') > state.budget.stringBytes) {
47
+ break;
48
+ }
49
+ output = nextOutput;
50
+ }
51
+ return {
52
+ kind: 'string',
53
+ truncation: truncation('string-bytes', state.budget.stringBytes),
54
+ value: output
55
+ };
56
+ }
57
+ function serializeNumber(value) {
58
+ if (Object.is(value, -0)) {
59
+ return { kind: 'number', value: '-0' };
60
+ }
61
+ if (Number.isNaN(value)) {
62
+ return { kind: 'number', value: 'NaN' };
63
+ }
64
+ if (value === Number.POSITIVE_INFINITY) {
65
+ return { kind: 'number', value: 'Infinity' };
66
+ }
67
+ if (value === Number.NEGATIVE_INFINITY) {
68
+ return { kind: 'number', value: '-Infinity' };
69
+ }
70
+ return { kind: 'number', value };
71
+ }
72
+ function serializeEmptyPrimitive(value) {
73
+ if (value === null) {
74
+ return { kind: 'null' };
75
+ }
76
+ if (value === undefined) {
77
+ return { kind: 'undefined' };
78
+ }
79
+ return null;
80
+ }
81
+ function serializeScalarPrimitive(value) {
82
+ if (typeof value === 'boolean') {
83
+ return { kind: 'boolean', value };
84
+ }
85
+ if (typeof value === 'number') {
86
+ return serializeNumber(value);
87
+ }
88
+ if (typeof value === 'bigint') {
89
+ return { kind: 'bigint', value: value.toString() };
90
+ }
91
+ return null;
92
+ }
93
+ function serializeTextPrimitive(value, state) {
94
+ if (typeof value === 'string') {
95
+ return truncateString(value, state);
96
+ }
97
+ if (typeof value === 'symbol') {
98
+ return { kind: 'symbol', value: symbolText(value) };
99
+ }
100
+ return null;
101
+ }
102
+ function serializePrimitive(value, state) {
103
+ return serializeEmptyPrimitive(value) ?? serializeScalarPrimitive(value) ?? serializeTextPrimitive(value, state);
104
+ }
105
+ function isSerializableObject(value) {
106
+ return value !== null && typeof value === 'object';
107
+ }
108
+ function objectPropertyEntries(value, state, depth, serialize) {
109
+ const descriptorResult = objectDescriptors(value);
110
+ if (descriptorResult.kind === 'unavailable') {
111
+ return [
112
+ {
113
+ key: { kind: 'string', value: '<introspection>' },
114
+ value: { kind: 'unavailable', reason: descriptorResult.reason }
115
+ }
116
+ ];
117
+ }
118
+ const { descriptors } = descriptorResult;
119
+ const keys = Reflect.ownKeys(descriptors).filter(function isEnumerableDataKey(key) {
120
+ const descriptor = descriptors[key];
121
+ return descriptor?.enumerable === true;
122
+ });
123
+ const visibleKeys = keys.slice(0, state.budget.objectEntries);
124
+ return sortProperties(visibleKeys.map(function serializeEntry(key) {
125
+ const descriptor = descriptors[key];
126
+ const keyValue = serializePropertyKey(key);
127
+ if (descriptor === undefined || !Object.hasOwn(descriptor, 'value')) {
128
+ return {
129
+ key: keyValue,
130
+ value: { kind: 'unavailable', reason: 'accessor property was not invoked' }
131
+ };
132
+ }
133
+ return {
134
+ key: keyValue,
135
+ value: serialize(descriptor.value, state, depth + 1)
136
+ };
137
+ }));
138
+ }
139
+ function propertyTruncation(value, state) {
140
+ const descriptorResult = objectDescriptors(value);
141
+ if (descriptorResult.kind === 'unavailable') {
142
+ return null;
143
+ }
144
+ const keys = Reflect.ownKeys(descriptorResult.descriptors);
145
+ const enumerableKeys = keys.filter(function isEnumerableKey(key) {
146
+ return descriptorResult.descriptors[key]?.enumerable === true;
147
+ });
148
+ return enumerableKeys.length > state.budget.objectEntries
149
+ ? truncation('object-entries', state.budget.objectEntries)
150
+ : null;
151
+ }
152
+ function bytesFrom(value) {
153
+ if (value instanceof ArrayBuffer) {
154
+ return new Uint8Array(value);
155
+ }
156
+ return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
157
+ }
158
+ function serializedBytes(value, state) {
159
+ const bytes = bytesFrom(value);
160
+ const visibleBytes = Array.from(bytes.slice(0, state.budget.arrayEntries));
161
+ return {
162
+ byteLength: bytes.byteLength,
163
+ bytes: visibleBytes,
164
+ truncation: bytes.byteLength > visibleBytes.length
165
+ ? truncation('array-entries', state.budget.arrayEntries)
166
+ : null
167
+ };
168
+ }
169
+ function serializeArray(value, state, depth, serialize) {
170
+ const visibleLength = Math.min(value.length, state.budget.arrayEntries);
171
+ const entries = [];
172
+ for (let index = 0; index < visibleLength; index += 1) {
173
+ if (Object.hasOwn(value, index)) {
174
+ entries.push({
175
+ key: { kind: 'string', value: String(index) },
176
+ value: serialize(value[index], state, depth + 1)
177
+ });
178
+ }
179
+ else {
180
+ entries.push({
181
+ key: { kind: 'string', value: String(index) },
182
+ value: { kind: 'unavailable', reason: 'array hole' }
183
+ });
184
+ }
185
+ }
186
+ return {
187
+ entries,
188
+ kind: 'array',
189
+ length: value.length,
190
+ truncation: value.length > visibleLength ? truncation('array-entries', state.budget.arrayEntries) : null
191
+ };
192
+ }
193
+ function mapEntries(value, state) {
194
+ try {
195
+ const entries = Array.from(value);
196
+ return entries.slice(0, state.budget.objectEntries);
197
+ }
198
+ catch {
199
+ return null;
200
+ }
201
+ }
202
+ function serializeMap(value, state, depth, serialize) {
203
+ const entries = mapEntries(value, state);
204
+ if (entries === null) {
205
+ return { kind: 'unavailable', reason: 'map introspection failed' };
206
+ }
207
+ return {
208
+ entries: entries.map(function serializeEntry([key, entryValue]) {
209
+ return {
210
+ key: serialize(key, state, depth + 1),
211
+ value: serialize(entryValue, state, depth + 1)
212
+ };
213
+ }),
214
+ kind: 'map',
215
+ size: value.size,
216
+ truncation: value.size > entries.length ? truncation('object-entries', state.budget.objectEntries) : null
217
+ };
218
+ }
219
+ function setValues(value, state) {
220
+ try {
221
+ return Array.from(value).slice(0, state.budget.objectEntries);
222
+ }
223
+ catch {
224
+ return null;
225
+ }
226
+ }
227
+ function serializeSet(value, state, depth, serialize) {
228
+ const values = setValues(value, state);
229
+ if (values === null) {
230
+ return { kind: 'unavailable', reason: 'set introspection failed' };
231
+ }
232
+ return {
233
+ kind: 'set',
234
+ size: value.size,
235
+ truncation: value.size > values.length ? truncation('object-entries', state.budget.objectEntries) : null,
236
+ values: values.map(function serializeSetValue(valueEntry) {
237
+ return serialize(valueEntry, state, depth + 1);
238
+ })
239
+ };
240
+ }
241
+ function serializeFunction(value, state) {
242
+ const reference = referenceFor(state, value);
243
+ if (reference !== null) {
244
+ return { kind: 'circular', reference };
245
+ }
246
+ return {
247
+ id: nextReferenceId(state) - 1,
248
+ kind: 'function',
249
+ name: value.name === undefined || value.name.length === 0 ? null : value.name
250
+ };
251
+ }
252
+ function isMapValue(value) {
253
+ return prototypeIs(value, Map.prototype);
254
+ }
255
+ function isSetValue(value) {
256
+ return prototypeIs(value, Set.prototype);
257
+ }
258
+ function typedArrayLength(value) {
259
+ const lengthValue = Reflect.get(value, 'length');
260
+ return typeof lengthValue === 'number' ? lengthValue : value.byteLength;
261
+ }
262
+ function serializeArrayObject(value, context) {
263
+ return Array.isArray(value) ? serializeArray(value, context.state, context.depth, context.serialize) : null;
264
+ }
265
+ function serializeBufferObject(value, context) {
266
+ return isBufferValue(value)
267
+ ? {
268
+ constructorName: 'Buffer',
269
+ kind: 'typed-array',
270
+ length: value.length,
271
+ ...serializedBytes(value, context.state)
272
+ }
273
+ : null;
274
+ }
275
+ function serializeArrayBufferViewObject(value, context) {
276
+ if (!isArrayBufferView(value)) {
277
+ return null;
278
+ }
279
+ return value instanceof DataView
280
+ ? { kind: 'data-view', ...serializedBytes(value, context.state) }
281
+ : {
282
+ constructorName: constructorName(value),
283
+ kind: 'typed-array',
284
+ length: typedArrayLength(value),
285
+ ...serializedBytes(value, context.state)
286
+ };
287
+ }
288
+ function serializeArrayBufferObject(value, context) {
289
+ return isArrayBufferValue(value) ? { kind: 'array-buffer', ...serializedBytes(value, context.state) } : null;
290
+ }
291
+ function serializeMapObject(value, context) {
292
+ return isMapValue(value) ? serializeMap(value, context.state, context.depth, context.serialize) : null;
293
+ }
294
+ function serializeSetObject(value, context) {
295
+ return isSetValue(value) ? serializeSet(value, context.state, context.depth, context.serialize) : null;
296
+ }
297
+ function serializeDateObject(value) {
298
+ if (!isDateValue(value)) {
299
+ return null;
300
+ }
301
+ const time = value.getTime();
302
+ return { kind: 'date', value: Number.isNaN(time) ? null : value.toISOString() };
303
+ }
304
+ function serializeRegExpObject(value) {
305
+ return isRegExpValue(value) ? { flags: value.flags, kind: 'regexp', source: value.source } : null;
306
+ }
307
+ function serializeErrorObject(value, context) {
308
+ return isErrorValue(value)
309
+ ? {
310
+ entries: objectPropertyEntries(value, context.state, context.depth, context.serialize),
311
+ kind: 'error',
312
+ message: value.message,
313
+ name: value.name,
314
+ truncation: propertyTruncation(value, context.state)
315
+ }
316
+ : null;
317
+ }
318
+ function serializeOpaqueObject(value) {
319
+ if (isPromiseValue(value)) {
320
+ return { kind: 'opaque', type: 'promise' };
321
+ }
322
+ if (isWeakMapValue(value)) {
323
+ return { kind: 'opaque', type: 'weak-map' };
324
+ }
325
+ return isWeakSetValue(value) ? { kind: 'opaque', type: 'weak-set' } : null;
326
+ }
327
+ const objectSerializers = [
328
+ serializeArrayObject,
329
+ serializeBufferObject,
330
+ serializeArrayBufferViewObject,
331
+ serializeArrayBufferObject,
332
+ serializeMapObject,
333
+ serializeSetObject,
334
+ serializeDateObject,
335
+ serializeRegExpObject,
336
+ serializeErrorObject,
337
+ serializeOpaqueObject
338
+ ];
339
+ function specializedObject(value, context) {
340
+ for (const serializer of objectSerializers) {
341
+ const serialized = serializer(value, context);
342
+ if (serialized !== null) {
343
+ return serialized;
344
+ }
345
+ }
346
+ return null;
347
+ }
348
+ function plainObject(value, context) {
349
+ return {
350
+ constructorName: constructorName(value),
351
+ entries: objectPropertyEntries(value, context.state, context.depth, context.serialize),
352
+ kind: 'object',
353
+ truncation: propertyTruncation(value, context.state)
354
+ };
355
+ }
356
+ function serializeObject(value, state, depth, serialize) {
357
+ if (depth > state.budget.depth) {
358
+ return {
359
+ kind: 'unavailable',
360
+ reason: `depth budget reached: ${state.budget.depth}`
361
+ };
362
+ }
363
+ const reference = referenceFor(state, value);
364
+ if (reference !== null) {
365
+ return { kind: 'circular', reference };
366
+ }
367
+ const context = { depth, serialize, state };
368
+ return specializedObject(value, context) ?? plainObject(value, context);
369
+ }
370
+ function serializeAny(value, state, depth) {
371
+ const primitive = serializePrimitive(value, state);
372
+ if (primitive !== null) {
373
+ return accountValue(state, primitive);
374
+ }
375
+ if (typeof value === 'function') {
376
+ return accountValue(state, serializeFunction(value, state));
377
+ }
378
+ if (isSerializableObject(value)) {
379
+ return accountValue(state, serializeObject(value, state, depth, serializeAny));
380
+ }
381
+ return accountValue(state, { kind: 'unavailable', reason: `unsupported value type: ${typeof value}` });
382
+ }
383
+ export function serializeValue(value) {
384
+ return serializeAny(value, createState(defaultSerializationBudget), 0);
385
+ }
386
+ export function serializeValueWithBudget(value, budget) {
387
+ return serializeAny(value, createState(budget), 0);
388
+ }
389
+ //# sourceMappingURL=serialized-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialized-value.js","sourceRoot":"","sources":["../../../../source/compare/serialized-value.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type ComparisonResult } from './comparison-result.ts';
2
+ export declare function exactStructuredDiff(actual: unknown, expected: unknown): ComparisonResult;
3
+ export declare function partialStructuredDiff(actual: unknown, expected: unknown): ComparisonResult;
4
+ //# sourceMappingURL=structured-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-diff.d.ts","sourceRoot":"","sources":["../../../../source/compare/structured-diff.ts"],"names":[],"mappings":"AAOA,OAAO,EAMH,KAAK,gBAAgB,EACxB,MAAM,wBAAwB,CAAC;AAuiBhC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAExF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAE1F"}