@bilig/workbook 0.94.0 → 0.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +167 -438
  2. package/dist/command.d.ts +3 -0
  3. package/dist/command.js +4 -0
  4. package/dist/command.js.map +1 -0
  5. package/dist/features-public.d.ts +2 -0
  6. package/dist/features-public.js +3 -0
  7. package/dist/features-public.js.map +1 -0
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.js +3 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/model-plan-result.d.ts +1 -0
  12. package/dist/model-plan-result.js +17 -0
  13. package/dist/model-plan-result.js.map +1 -1
  14. package/dist/model.d.ts +1 -0
  15. package/dist/model.js +21 -14
  16. package/dist/model.js.map +1 -1
  17. package/dist/prepare.d.ts +22 -0
  18. package/dist/prepare.js +41 -0
  19. package/dist/prepare.js.map +1 -0
  20. package/dist/readback.d.ts +16 -0
  21. package/dist/readback.js +57 -4
  22. package/dist/readback.js.map +1 -1
  23. package/dist/requirements.d.ts +4 -3
  24. package/dist/requirements.js +50 -7
  25. package/dist/requirements.js.map +1 -1
  26. package/dist/result.d.ts +2 -2
  27. package/dist/result.js +1 -0
  28. package/dist/result.js.map +1 -1
  29. package/dist/run-apply.d.ts +17 -0
  30. package/dist/run-apply.js +274 -0
  31. package/dist/run-apply.js.map +1 -0
  32. package/dist/run-check-verification.d.ts +8 -0
  33. package/dist/run-check-verification.js +174 -0
  34. package/dist/run-check-verification.js.map +1 -0
  35. package/dist/run-data.d.ts +6 -0
  36. package/dist/run-data.js +120 -0
  37. package/dist/run-data.js.map +1 -0
  38. package/dist/run-description.js +12 -9
  39. package/dist/run-description.js.map +1 -1
  40. package/dist/run-runtime-boundary.js +35 -12
  41. package/dist/run-runtime-boundary.js.map +1 -1
  42. package/dist/run.d.ts +2 -2
  43. package/dist/run.js +4 -560
  44. package/dist/run.js.map +1 -1
  45. package/dist/runtime.d.ts +7 -0
  46. package/dist/runtime.js +8 -0
  47. package/dist/runtime.js.map +1 -0
  48. package/dist/schema.d.ts +22 -0
  49. package/dist/schema.js +581 -0
  50. package/dist/schema.js.map +1 -0
  51. package/dist/testing.d.ts +34 -0
  52. package/dist/testing.js +85 -0
  53. package/dist/testing.js.map +1 -0
  54. package/fixtures/command-bundle.json +28 -0
  55. package/fixtures/command-result.json +58 -0
  56. package/fixtures/invalid-plan.json +9 -0
  57. package/fixtures/readback-proof.json +64 -0
  58. package/fixtures/runtime-requirements.json +72 -0
  59. package/fixtures/strict-run-failure.json +11 -0
  60. package/fixtures/strict-run-success.json +118 -0
  61. package/fixtures/valid-plan.json +145 -0
  62. package/package.json +60 -4
@@ -1 +1 @@
1
- {"version":3,"file":"run-runtime-boundary.js","sourceRoot":"","sources":["../src/run-runtime-boundary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-runtime-boundary.js","sourceRoot":"","sources":["../src/run-runtime-boundary.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import type { WorkbookRef } from './find.js';
2
- import { type WorkbookActionInput } from './input.js';
2
+ import type { WorkbookActionInput } from './input.js';
3
3
  import { type WorkbookActionMap, type WorkbookActionPlan, type WorkbookModel } from './model.js';
4
4
  import type { EngineOp } from './ops.js';
5
5
  import { type WorkbookExecutablePlan, type WorkbookPlanId, type WorkbookPlanDataRefs } from './plan-data.js';
6
6
  import { type WorkbookRunReadback } from './readback.js';
7
- import { type WorkbookRunApplyCommandReceipt, type WorkbookCheckResult, type WorkbookRunError, type WorkbookRunResult, type WorkbookUndoRef } from './result.js';
7
+ import type { WorkbookCheckResult, WorkbookRunApplyCommandReceipt, WorkbookRunError, WorkbookRunResult, WorkbookUndoRef } from './result.js';
8
8
  type MaybePromise<T> = T | Promise<T>;
9
9
  export interface WorkbookRunApplyResult {
10
10
  readonly status: 'applied' | 'failed';
package/dist/run.js CHANGED
@@ -1,14 +1,12 @@
1
- import { isWorkbookOp } from './guards.js';
2
- import { normalizeWorkbookActionInput } from './input.js';
3
1
  import { planWorkbookAction } from './model.js';
4
- import { checkPlanData, hydratePlanData, isHydratedPlan, workbookPlanId, } from './plan-data.js';
2
+ import { checkPlanData, hydratePlanData, isHydratedPlan, } from './plan-data.js';
5
3
  import { verifyWorkbookReadbacks } from './readback.js';
6
4
  import { checkRuntimeAdapter } from './requirements.js';
7
- import { cloneWorkbookRunApplyCommandReceipts, cloneWorkbookRunApplyCommandReceiptsForSummary } from './run-command-receipts.js';
5
+ import { applyUnverified, changedAfterApply, changedAfterOptionalApply, describeApply, failedApplyResult, validateApplyResult, } from './run-apply.js';
6
+ import { unverifiedCheckErrors, verifyChecksWithAdapter } from './run-check-verification.js';
8
7
  import { errorMessage, failedRun, planDataRunError, runError } from './run-failure.js';
9
- import { adapterApplyMethod, adapterReadMethod, adapterVerifyChecksMethod, applyProofErrors, checkProofErrors, normalizeRunOptions, preApplyProofErrors, } from './run-runtime-boundary.js';
8
+ import { adapterApplyMethod, adapterReadMethod, applyProofErrors, checkProofErrors, normalizeRunOptions, preApplyProofErrors, } from './run-runtime-boundary.js';
10
9
  import { freezeWorkbookRunResult } from './run-result.js';
11
- import { isWorkbookRunErrorCode, } from './result.js';
12
10
  import { verifyPlan } from './verify.js';
13
11
  function readbackTargets(checks) {
14
12
  const targets = [];
@@ -36,458 +34,6 @@ function failedFromPlanIssues(plan) {
36
34
  checks: plan.checks,
37
35
  });
38
36
  }
39
- function changedAfterApply(plan, result) {
40
- if (result.appliedOps !== undefined) {
41
- return result.appliedOps.length > 0 || result.undo !== undefined ? plan.changed : [];
42
- }
43
- return plan.changed;
44
- }
45
- function changedAfterFailedApply(plan, result) {
46
- return result.undo !== undefined || (result.appliedOps !== undefined && result.appliedOps.length > 0) ? plan.changed : [];
47
- }
48
- function failedApplyResult(plan, result) {
49
- const errors = result.errors !== undefined && result.errors.length > 0
50
- ? result.errors
51
- : [runError('apply_failed', `Workbook action ${plan.modelName}.${plan.actionName} failed to apply`)];
52
- const apply = describeApply(result);
53
- return failedRun({
54
- errors,
55
- apply,
56
- changed: changedAfterFailedApply(plan, result),
57
- checks: plan.checks,
58
- ...(result.undo !== undefined ? { undo: result.undo } : {}),
59
- });
60
- }
61
- function checkLabel(check) {
62
- return check.target?.label ?? check.kind;
63
- }
64
- function canonicalJson(value) {
65
- return JSON.stringify(canonicalValue(value));
66
- }
67
- function canonicalValue(value) {
68
- if (Array.isArray(value)) {
69
- const descriptors = Object.getOwnPropertyDescriptors(value);
70
- return Array.from({ length: value.length }, (_, index) => {
71
- const descriptor = descriptors[String(index)];
72
- if (descriptor === undefined) {
73
- return undefined;
74
- }
75
- if (!('value' in descriptor)) {
76
- throw new Error('Accessor values cannot be canonicalized');
77
- }
78
- return canonicalValue(descriptor.value);
79
- });
80
- }
81
- if (typeof value === 'object' && value !== null) {
82
- return Object.fromEntries(Object.entries(Object.getOwnPropertyDescriptors(value))
83
- .filter(([, descriptor]) => descriptor.enumerable)
84
- .toSorted(([left], [right]) => left.localeCompare(right))
85
- .map(([key, descriptor]) => {
86
- if (!('value' in descriptor)) {
87
- throw new Error('Accessor values cannot be canonicalized');
88
- }
89
- return [key, canonicalValue(descriptor.value)];
90
- }));
91
- }
92
- return value;
93
- }
94
- function ownCheckValue(check, key) {
95
- const descriptor = Object.getOwnPropertyDescriptor(check, key);
96
- if (descriptor === undefined) {
97
- return undefined;
98
- }
99
- if (!('value' in descriptor)) {
100
- throw new Error(`Workbook check result ${String(key)} must be a data property`);
101
- }
102
- return descriptor.value;
103
- }
104
- function checkContract(check) {
105
- const kind = ownCheckValue(check, 'kind');
106
- const target = ownCheckValue(check, 'target');
107
- const refs = ownCheckValue(check, 'refs');
108
- const message = ownCheckValue(check, 'message');
109
- const expectation = ownCheckValue(check, 'expectation');
110
- if (kind === undefined || message === undefined) {
111
- throw new Error('invalid check contract');
112
- }
113
- return {
114
- kind,
115
- ...(target !== undefined ? { target } : {}),
116
- ...(refs !== undefined ? { refs } : {}),
117
- message,
118
- ...(expectation !== undefined ? { expectation } : {}),
119
- };
120
- }
121
- function cloneCheck(check) {
122
- const status = ownCheckValue(check, 'status');
123
- const kind = ownCheckValue(check, 'kind');
124
- const target = ownCheckValue(check, 'target');
125
- const refs = ownCheckValue(check, 'refs');
126
- const message = ownCheckValue(check, 'message');
127
- const expectation = ownCheckValue(check, 'expectation');
128
- const proof = ownCheckValue(check, 'proof');
129
- if (status === undefined || kind === undefined || message === undefined) {
130
- throw new Error('invalid check result');
131
- }
132
- return {
133
- status,
134
- kind,
135
- ...(target !== undefined ? { target } : {}),
136
- ...(refs !== undefined ? { refs } : {}),
137
- message,
138
- ...(expectation !== undefined ? { expectation } : {}),
139
- ...(proof !== undefined ? { proof: normalizeWorkbookActionInput(proof) } : {}),
140
- };
141
- }
142
- function checkContractMatches(expectedContract, actual) {
143
- try {
144
- return expectedContract === canonicalJson(checkContract(actual));
145
- }
146
- catch {
147
- return false;
148
- }
149
- }
150
- function isCheckStatus(value) {
151
- return value === 'planned' || value === 'passed' || value === 'failed';
152
- }
153
- function isRecord(value) {
154
- return typeof value === 'object' && value !== null && !Array.isArray(value);
155
- }
156
- function ownDataDescriptor(value, key) {
157
- const descriptor = Object.getOwnPropertyDescriptor(value, key);
158
- return descriptor !== undefined && 'value' in descriptor ? descriptor : undefined;
159
- }
160
- function isSafeNonNegativeInteger(value) {
161
- return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
162
- }
163
- function ownValue(value, key) {
164
- return ownDataDescriptor(value, key)?.value;
165
- }
166
- function arrayDataValues(value, guard) {
167
- if (!Array.isArray(value)) {
168
- return null;
169
- }
170
- if (firstAccessorPath(value, 'array') !== null) {
171
- return null;
172
- }
173
- const entries = [];
174
- for (let index = 0; index < value.length; index += 1) {
175
- const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
176
- if (descriptor === undefined || !descriptor.enumerable || !('value' in descriptor) || !guard(descriptor.value)) {
177
- return null;
178
- }
179
- entries.push(descriptor.value);
180
- }
181
- return entries;
182
- }
183
- function isWorkbookOpArray(value) {
184
- return arrayDataValues(value, isWorkbookOp) !== null;
185
- }
186
- function isWorkbookRunError(value) {
187
- if (!isRecord(value)) {
188
- return false;
189
- }
190
- const code = ownValue(value, 'code');
191
- const message = ownValue(value, 'message');
192
- const path = ownValue(value, 'path');
193
- const issueCode = ownValue(value, 'issueCode');
194
- return (isWorkbookRunErrorCode(code) &&
195
- typeof message === 'string' &&
196
- (path === undefined || typeof path === 'string') &&
197
- (issueCode === undefined || typeof issueCode === 'string'));
198
- }
199
- function isWorkbookRunErrorArray(value) {
200
- return arrayDataValues(value, isWorkbookRunError) !== null;
201
- }
202
- function cloneRunError(error) {
203
- const code = ownValue(error, 'code');
204
- const message = ownValue(error, 'message');
205
- const path = ownValue(error, 'path');
206
- const issueCode = ownValue(error, 'issueCode');
207
- if (!isWorkbookRunErrorCode(code) || typeof message !== 'string') {
208
- throw new Error('invalid run error');
209
- }
210
- return {
211
- code,
212
- message,
213
- ...(typeof path === 'string' ? { path } : {}),
214
- ...(typeof issueCode === 'string' ? { issueCode } : {}),
215
- };
216
- }
217
- function isWorkbookUndoRef(value) {
218
- if (!isRecord(value)) {
219
- return false;
220
- }
221
- const id = ownValue(value, 'id');
222
- const ops = ownValue(value, 'ops');
223
- return typeof id === 'string' && (ops === undefined || isWorkbookOpArray(ops));
224
- }
225
- function cloneUndoRef(undo) {
226
- const id = ownValue(undo, 'id');
227
- const ops = ownValue(undo, 'ops');
228
- if (typeof id !== 'string') {
229
- throw new Error('invalid undo metadata');
230
- }
231
- return {
232
- id,
233
- ...(isWorkbookOpArray(ops) ? { ops: cloneOps(ops) } : {}),
234
- };
235
- }
236
- function isWorkbookCheckResult(value) {
237
- if (!isRecord(value)) {
238
- return false;
239
- }
240
- return (isCheckStatus(ownValue(value, 'status')) &&
241
- typeof ownValue(value, 'kind') === 'string' &&
242
- typeof ownValue(value, 'message') === 'string');
243
- }
244
- function validateApplyResult(plan, value) {
245
- const rejected = (message) => ({
246
- status: 'invalid',
247
- result: failedRun({
248
- errors: [runError('runtime_rejected', message)],
249
- checks: plan.checks,
250
- }),
251
- });
252
- if (!isRecord(value)) {
253
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned an invalid apply result`);
254
- }
255
- const status = ownValue(value, 'status');
256
- if (status !== 'applied' && status !== 'failed') {
257
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned an invalid apply status`);
258
- }
259
- const rawPreviewOps = ownValue(value, 'previewOps');
260
- if (rawPreviewOps !== undefined && !isWorkbookOpArray(rawPreviewOps)) {
261
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid preview ops`);
262
- }
263
- let previewOps;
264
- try {
265
- previewOps = rawPreviewOps === undefined ? undefined : cloneOps(rawPreviewOps);
266
- }
267
- catch {
268
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid preview ops`);
269
- }
270
- const rawAppliedOps = ownValue(value, 'appliedOps');
271
- if (rawAppliedOps !== undefined && !isWorkbookOpArray(rawAppliedOps)) {
272
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid applied ops`);
273
- }
274
- let appliedOps;
275
- try {
276
- appliedOps = rawAppliedOps === undefined ? undefined : cloneOps(rawAppliedOps);
277
- }
278
- catch {
279
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid applied ops`);
280
- }
281
- const rawErrors = ownValue(value, 'errors');
282
- if (rawErrors !== undefined && !isWorkbookRunErrorArray(rawErrors)) {
283
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid apply errors`);
284
- }
285
- let errors;
286
- try {
287
- errors = rawErrors === undefined ? undefined : cloneRunErrors(rawErrors);
288
- }
289
- catch {
290
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid apply errors`);
291
- }
292
- if (status === 'applied' && errors !== undefined && errors.length > 0) {
293
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned applied with errors`);
294
- }
295
- const rawPlanId = ownValue(value, 'planId');
296
- if (rawPlanId !== undefined && typeof rawPlanId !== 'string') {
297
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid plan id`);
298
- }
299
- const expectedPlanId = rawPlanId === undefined ? undefined : workbookPlanId(plan);
300
- if (rawPlanId !== undefined && rawPlanId !== expectedPlanId) {
301
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned a plan id that does not match the executed plan`);
302
- }
303
- const rawBaseRevision = ownValue(value, 'baseRevision');
304
- if (rawBaseRevision !== undefined && !isSafeNonNegativeInteger(rawBaseRevision)) {
305
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid base revision`);
306
- }
307
- const rawRevision = ownValue(value, 'revision');
308
- if (rawRevision !== undefined && !isSafeNonNegativeInteger(rawRevision)) {
309
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid revision`);
310
- }
311
- if (isSafeNonNegativeInteger(rawBaseRevision) && isSafeNonNegativeInteger(rawRevision) && rawRevision < rawBaseRevision) {
312
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned a revision before its base revision`);
313
- }
314
- const rawCommandReceipts = ownValue(value, 'commandReceipts');
315
- let commandReceipts;
316
- if (rawCommandReceipts !== undefined) {
317
- try {
318
- commandReceipts = cloneWorkbookRunApplyCommandReceipts(plan, rawCommandReceipts, previewOps, appliedOps);
319
- }
320
- catch (error) {
321
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid command receipts: ${errorMessage(error)}`);
322
- }
323
- }
324
- const rawUndo = ownValue(value, 'undo');
325
- let undo;
326
- if (rawUndo !== undefined && !isWorkbookUndoRef(rawUndo)) {
327
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid undo metadata`);
328
- }
329
- if (rawUndo !== undefined) {
330
- try {
331
- undo = cloneUndoRef(rawUndo);
332
- }
333
- catch {
334
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid undo metadata`);
335
- }
336
- }
337
- let proof;
338
- const rawProof = ownValue(value, 'proof');
339
- try {
340
- proof = rawProof === undefined ? undefined : normalizeWorkbookActionInput(rawProof);
341
- }
342
- catch (error) {
343
- return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid apply proof: ${errorMessage(error)}`);
344
- }
345
- return {
346
- status: 'valid',
347
- result: {
348
- status,
349
- ...(typeof rawPlanId === 'string' ? { planId: rawPlanId } : {}),
350
- ...(isSafeNonNegativeInteger(rawBaseRevision) ? { baseRevision: rawBaseRevision } : {}),
351
- ...(isSafeNonNegativeInteger(rawRevision) ? { revision: rawRevision } : {}),
352
- ...(previewOps !== undefined ? { previewOps } : {}),
353
- ...(appliedOps !== undefined ? { appliedOps } : {}),
354
- ...(commandReceipts !== undefined ? { commandReceipts } : {}),
355
- ...(proof !== undefined ? { proof } : {}),
356
- ...(errors !== undefined ? { errors } : {}),
357
- ...(undo !== undefined ? { undo } : {}),
358
- },
359
- };
360
- }
361
- function cloneOps(ops) {
362
- const entries = arrayDataValues(ops, isWorkbookOp);
363
- if (entries === null) {
364
- throw new Error('invalid workbook op array');
365
- }
366
- return entries.map((op) => cloneOp(op));
367
- }
368
- function cloneRunErrors(errors) {
369
- const entries = arrayDataValues(errors, isWorkbookRunError);
370
- if (entries === null) {
371
- throw new Error('invalid run error array');
372
- }
373
- return entries.map((error) => cloneRunError(error));
374
- }
375
- function cloneOp(op) {
376
- const cloned = cloneData(op);
377
- if (!isWorkbookOp(cloned)) {
378
- throw new Error('invalid workbook op clone');
379
- }
380
- return cloned;
381
- }
382
- function opsMatch(left, right) {
383
- const leftOps = arrayDataValues(left, isWorkbookOp);
384
- const rightOps = arrayDataValues(right, isWorkbookOp);
385
- if (leftOps === null || rightOps === null || leftOps.length !== rightOps.length) {
386
- return false;
387
- }
388
- try {
389
- return leftOps.every((op, index) => {
390
- const other = rightOps[index];
391
- return other !== undefined && canonicalJson(op) === canonicalJson(other);
392
- });
393
- }
394
- catch {
395
- return false;
396
- }
397
- }
398
- function cloneData(value, seen = new WeakMap()) {
399
- if (typeof value !== 'object' || value === null) {
400
- return value;
401
- }
402
- const existing = seen.get(value);
403
- if (existing !== undefined) {
404
- return existing;
405
- }
406
- if (Array.isArray(value)) {
407
- const cloned = [];
408
- seen.set(value, cloned);
409
- const descriptors = Object.getOwnPropertyDescriptors(value);
410
- for (let index = 0; index < value.length; index += 1) {
411
- const descriptor = descriptors[String(index)];
412
- if (descriptor === undefined) {
413
- continue;
414
- }
415
- if (!('value' in descriptor)) {
416
- throw new Error('Transport data must not contain accessors');
417
- }
418
- cloned[index] = cloneData(descriptor.value, seen);
419
- }
420
- return cloned;
421
- }
422
- const cloned = Object.create(Object.getPrototypeOf(value));
423
- seen.set(value, cloned);
424
- Object.entries(Object.getOwnPropertyDescriptors(value)).forEach(([key, descriptor]) => {
425
- if (!descriptor.enumerable) {
426
- return;
427
- }
428
- if (!('value' in descriptor)) {
429
- throw new Error('Transport data must not contain accessors');
430
- }
431
- Object.defineProperty(cloned, key, {
432
- configurable: true,
433
- enumerable: true,
434
- value: cloneData(descriptor.value, seen),
435
- writable: true,
436
- });
437
- });
438
- return cloned;
439
- }
440
- function firstAccessorPath(value, path, seen = new WeakSet()) {
441
- if (typeof value !== 'object' || value === null) {
442
- return null;
443
- }
444
- if (seen.has(value)) {
445
- return null;
446
- }
447
- seen.add(value);
448
- for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(value))) {
449
- const childPath = Array.isArray(value) && /^\d+$/.test(key) ? `${path}[${key}]` : `${path}.${key}`;
450
- if (!('value' in descriptor)) {
451
- return childPath;
452
- }
453
- const nestedPath = firstAccessorPath(descriptor.value, childPath, seen);
454
- if (nestedPath !== null) {
455
- return nestedPath;
456
- }
457
- }
458
- return null;
459
- }
460
- function describeApply(result) {
461
- const matched = result.previewOps === undefined || result.appliedOps === undefined ? null : opsMatch(result.previewOps, result.appliedOps);
462
- return {
463
- matched,
464
- ...(result.planId !== undefined ? { planId: result.planId } : {}),
465
- ...(result.baseRevision !== undefined ? { baseRevision: result.baseRevision } : {}),
466
- ...(result.revision !== undefined ? { revision: result.revision } : {}),
467
- ...(result.previewOps !== undefined ? { previewOps: cloneOps(result.previewOps) } : {}),
468
- ...(result.appliedOps !== undefined ? { appliedOps: cloneOps(result.appliedOps) } : {}),
469
- ...(result.commandReceipts !== undefined
470
- ? { commandReceipts: cloneWorkbookRunApplyCommandReceiptsForSummary(result.commandReceipts) }
471
- : {}),
472
- ...(result.proof !== undefined ? { proof: normalizeWorkbookActionInput(result.proof) } : {}),
473
- };
474
- }
475
- function applyUnverified(plan, apply) {
476
- const unverified = [];
477
- if (apply.matched === null) {
478
- unverified.push({
479
- kind: 'apply',
480
- message: 'Adapter did not return both previewOps and appliedOps, so apply match is unverified',
481
- });
482
- }
483
- if (plan.commands.length > 0 && apply.commandReceipts === undefined) {
484
- unverified.push({
485
- kind: 'apply',
486
- message: 'Adapter did not return commandReceipts, so planned commands are not bound to materialized ops',
487
- });
488
- }
489
- return unverified;
490
- }
491
37
  function unverifiedProperty(unverified) {
492
38
  return unverified.length === 0 ? {} : { unverified };
493
39
  }
@@ -498,108 +44,6 @@ function needsApply(capabilities) {
498
44
  capability === 'clear' ||
499
45
  capability === 'applyOp');
500
46
  }
501
- function changedAfterOptionalApply(plan, result) {
502
- return result === undefined ? [] : changedAfterApply(plan, result);
503
- }
504
- function validateVerifiedChecks(originalContracts, originalKinds, verified) {
505
- if (!Array.isArray(verified)) {
506
- return {
507
- status: 'invalid',
508
- error: runError('invalid_check_verification', 'Check verifier did not return a check array'),
509
- };
510
- }
511
- if (verified.length !== originalContracts.length) {
512
- return {
513
- status: 'invalid',
514
- error: runError('invalid_check_verification', `Check verifier returned ${String(verified.length)} checks for ${String(originalContracts.length)} planned checks`),
515
- };
516
- }
517
- const verifiedChecks = [];
518
- for (let index = 0; index < originalContracts.length; index += 1) {
519
- const expectedContract = originalContracts[index];
520
- const expectedKind = originalKinds[index] ?? 'check';
521
- const descriptor = Object.getOwnPropertyDescriptor(verified, String(index));
522
- const actual = descriptor !== undefined && descriptor.enumerable && 'value' in descriptor ? descriptor.value : undefined;
523
- if (expectedContract === undefined || !isRecord(actual)) {
524
- return {
525
- status: 'invalid',
526
- error: runError('invalid_check_verification', `Check verifier returned an invalid check at index ${String(index)}`),
527
- };
528
- }
529
- if (!isCheckStatus(ownValue(actual, 'status'))) {
530
- return {
531
- status: 'invalid',
532
- error: runError('invalid_check_verification', `Check verifier returned an invalid status at index ${String(index)}`),
533
- };
534
- }
535
- if (!isWorkbookCheckResult(actual)) {
536
- return {
537
- status: 'invalid',
538
- error: runError('invalid_check_verification', `Check verifier returned an invalid check at index ${String(index)}`),
539
- };
540
- }
541
- if (!checkContractMatches(expectedContract, actual)) {
542
- return {
543
- status: 'invalid',
544
- error: runError('invalid_check_verification', `Check verifier changed the check contract at index ${String(index)} for ${expectedKind}`),
545
- };
546
- }
547
- try {
548
- verifiedChecks.push(cloneCheck(actual));
549
- }
550
- catch (error) {
551
- return {
552
- status: 'invalid',
553
- error: runError('invalid_check_verification', `Check verifier returned invalid proof at index ${String(index)}: ${errorMessage(error)}`),
554
- };
555
- }
556
- }
557
- return {
558
- status: 'valid',
559
- checks: verifiedChecks,
560
- };
561
- }
562
- async function verifyChecksWithAdapter(checks, plan, adapter) {
563
- const verifyChecks = adapterVerifyChecksMethod(adapter);
564
- if (verifyChecks === undefined) {
565
- return { checks, errors: [] };
566
- }
567
- const originalChecks = checks.map(cloneCheck);
568
- const originalContracts = originalChecks.map((check) => canonicalJson(checkContract(check)));
569
- const originalKinds = originalChecks.map((check) => check.kind);
570
- const verifierInput = originalChecks.map(cloneCheck);
571
- let verified;
572
- try {
573
- verified = await Reflect.apply(verifyChecks, adapter, [verifierInput, plan]);
574
- }
575
- catch (error) {
576
- return {
577
- checks: originalChecks,
578
- errors: [runError('check_verification_failed', errorMessage(error))],
579
- };
580
- }
581
- const validation = validateVerifiedChecks(originalContracts, originalKinds, verified);
582
- if (validation.status === 'invalid') {
583
- return {
584
- checks: originalChecks,
585
- errors: [validation.error],
586
- };
587
- }
588
- const verifiedChecks = validation.checks;
589
- const failedChecks = verifiedChecks.filter((check) => check.status === 'failed');
590
- if (failedChecks.length > 0) {
591
- return {
592
- checks: verifiedChecks,
593
- errors: failedChecks.map((check) => runError('check_failed', `${check.target?.label ?? check.kind} failed check ${check.kind}: ${check.message}`)),
594
- };
595
- }
596
- return { checks: verifiedChecks, errors: [] };
597
- }
598
- function unverifiedCheckErrors(checks) {
599
- return checks
600
- .filter((check) => check.status === 'planned')
601
- .map((check) => runError('check_not_verified', `${checkLabel(check)} did not verify check ${check.kind}: ${check.message}`));
602
- }
603
47
  async function runLiveWorkbookPlan(plan, adapter, options = {}) {
604
48
  const invalidPlan = failedFromPlanIssues(plan);
605
49
  if (invalidPlan !== null) {