@bilig/workbook 0.96.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 (44) hide show
  1. package/README.md +155 -449
  2. package/dist/features-public.d.ts +2 -0
  3. package/dist/features-public.js +3 -0
  4. package/dist/features-public.js.map +1 -0
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/model-plan-result.d.ts +1 -0
  9. package/dist/model-plan-result.js +17 -0
  10. package/dist/model-plan-result.js.map +1 -1
  11. package/dist/model.d.ts +1 -0
  12. package/dist/model.js +21 -14
  13. package/dist/model.js.map +1 -1
  14. package/dist/prepare.d.ts +22 -0
  15. package/dist/prepare.js +41 -0
  16. package/dist/prepare.js.map +1 -0
  17. package/dist/requirements.d.ts +4 -3
  18. package/dist/requirements.js +50 -7
  19. package/dist/requirements.js.map +1 -1
  20. package/dist/result.d.ts +2 -2
  21. package/dist/result.js +1 -0
  22. package/dist/result.js.map +1 -1
  23. package/dist/run-apply.d.ts +17 -0
  24. package/dist/run-apply.js +274 -0
  25. package/dist/run-apply.js.map +1 -0
  26. package/dist/run-check-verification.d.ts +8 -0
  27. package/dist/run-check-verification.js +174 -0
  28. package/dist/run-check-verification.js.map +1 -0
  29. package/dist/run-data.d.ts +6 -0
  30. package/dist/run-data.js +120 -0
  31. package/dist/run-data.js.map +1 -0
  32. package/dist/run-description.js +12 -9
  33. package/dist/run-description.js.map +1 -1
  34. package/dist/run.d.ts +2 -2
  35. package/dist/run.js +4 -560
  36. package/dist/run.js.map +1 -1
  37. package/dist/schema.d.ts +3 -2
  38. package/dist/schema.js +120 -7
  39. package/dist/schema.js.map +1 -1
  40. package/dist/testing.d.ts +34 -0
  41. package/dist/testing.js +85 -0
  42. package/dist/testing.js.map +1 -0
  43. package/fixtures/runtime-requirements.json +72 -0
  44. package/package.json +19 -4
package/dist/result.d.ts CHANGED
@@ -58,8 +58,8 @@ export interface WorkbookRunUnverified {
58
58
  readonly kind: WorkbookRunUnverifiedKind;
59
59
  readonly message: string;
60
60
  }
61
- export type WorkbookRunErrorCode = 'invalid_model' | 'invalid_plan' | 'invalid_plan_data' | 'invalid_run_options' | 'action_not_found' | 'invalid_action_input' | 'find_failed' | 'checks_failed' | 'action_failed' | 'ref_not_in_refs' | 'duplicate_ref' | 'command_target_not_resolved' | 'formula_input_not_resolved' | 'formula_input_not_labeled' | 'formula_label_not_resolved' | 'formula_label_not_used' | 'invalid_formula' | 'change_target_not_resolved' | 'check_status_not_planned' | 'check_target_not_resolved' | 'check_ref_not_resolved' | 'check_expectation_input_not_resolved' | 'check_expectation_input_not_labeled' | 'check_expectation_label_not_resolved' | 'check_expectation_label_not_used' | 'invalid_check_expectation_formula' | 'invalid_workbook_op' | 'op_target_mismatch' | 'missing_concrete_op' | 'missing_workbook_op' | 'adapter_missing_capability' | 'apply_not_verified' | 'plan_not_verified' | 'apply_mismatch' | 'apply_failed' | 'readback_failed' | 'readback_invalid' | 'readback_duplicate' | 'readback_missing' | 'readback_unexpected' | 'value_mismatch' | 'formula_mismatch' | 'invalid_check_verification' | 'check_verification_failed' | 'check_failed' | 'check_not_verified' | 'runtime_rejected';
62
- export declare const workbookRunErrorCodes: readonly ("invalid_action_input" | "invalid_model" | "invalid_plan" | "invalid_plan_data" | "invalid_run_options" | "action_not_found" | "find_failed" | "checks_failed" | "action_failed" | "ref_not_in_refs" | "duplicate_ref" | "command_target_not_resolved" | "formula_input_not_resolved" | "formula_input_not_labeled" | "formula_label_not_resolved" | "formula_label_not_used" | "invalid_formula" | "change_target_not_resolved" | "check_status_not_planned" | "check_target_not_resolved" | "check_ref_not_resolved" | "check_expectation_input_not_resolved" | "check_expectation_input_not_labeled" | "check_expectation_label_not_resolved" | "check_expectation_label_not_used" | "invalid_check_expectation_formula" | "invalid_workbook_op" | "op_target_mismatch" | "missing_concrete_op" | "missing_workbook_op" | "adapter_missing_capability" | "apply_not_verified" | "plan_not_verified" | "apply_mismatch" | "apply_failed" | "readback_failed" | "readback_invalid" | "readback_duplicate" | "readback_missing" | "readback_unexpected" | "value_mismatch" | "formula_mismatch" | "invalid_check_verification" | "check_verification_failed" | "check_failed" | "check_not_verified" | "runtime_rejected")[];
61
+ export type WorkbookRunErrorCode = 'invalid_model' | 'invalid_plan' | 'invalid_plan_data' | 'invalid_run_options' | 'invalid_action_name' | 'action_not_found' | 'invalid_action_input' | 'find_failed' | 'checks_failed' | 'action_failed' | 'ref_not_in_refs' | 'duplicate_ref' | 'command_target_not_resolved' | 'formula_input_not_resolved' | 'formula_input_not_labeled' | 'formula_label_not_resolved' | 'formula_label_not_used' | 'invalid_formula' | 'change_target_not_resolved' | 'check_status_not_planned' | 'check_target_not_resolved' | 'check_ref_not_resolved' | 'check_expectation_input_not_resolved' | 'check_expectation_input_not_labeled' | 'check_expectation_label_not_resolved' | 'check_expectation_label_not_used' | 'invalid_check_expectation_formula' | 'invalid_workbook_op' | 'op_target_mismatch' | 'missing_concrete_op' | 'missing_workbook_op' | 'adapter_missing_capability' | 'apply_not_verified' | 'plan_not_verified' | 'apply_mismatch' | 'apply_failed' | 'readback_failed' | 'readback_invalid' | 'readback_duplicate' | 'readback_missing' | 'readback_unexpected' | 'value_mismatch' | 'formula_mismatch' | 'invalid_check_verification' | 'check_verification_failed' | 'check_failed' | 'check_not_verified' | 'runtime_rejected';
62
+ export declare const workbookRunErrorCodes: readonly ("invalid_action_input" | "invalid_model" | "invalid_plan" | "invalid_plan_data" | "invalid_run_options" | "invalid_action_name" | "action_not_found" | "find_failed" | "checks_failed" | "action_failed" | "ref_not_in_refs" | "duplicate_ref" | "command_target_not_resolved" | "formula_input_not_resolved" | "formula_input_not_labeled" | "formula_label_not_resolved" | "formula_label_not_used" | "invalid_formula" | "change_target_not_resolved" | "check_status_not_planned" | "check_target_not_resolved" | "check_ref_not_resolved" | "check_expectation_input_not_resolved" | "check_expectation_input_not_labeled" | "check_expectation_label_not_resolved" | "check_expectation_label_not_used" | "invalid_check_expectation_formula" | "invalid_workbook_op" | "op_target_mismatch" | "missing_concrete_op" | "missing_workbook_op" | "adapter_missing_capability" | "apply_not_verified" | "plan_not_verified" | "apply_mismatch" | "apply_failed" | "readback_failed" | "readback_invalid" | "readback_duplicate" | "readback_missing" | "readback_unexpected" | "value_mismatch" | "formula_mismatch" | "invalid_check_verification" | "check_verification_failed" | "check_failed" | "check_not_verified" | "runtime_rejected")[];
63
63
  export declare function isWorkbookRunErrorCode(value: unknown): value is WorkbookRunErrorCode;
64
64
  export interface WorkbookRunError {
65
65
  readonly code: WorkbookRunErrorCode;
package/dist/result.js CHANGED
@@ -3,6 +3,7 @@ export const workbookRunErrorCodes = Object.freeze([
3
3
  'invalid_plan',
4
4
  'invalid_plan_data',
5
5
  'invalid_run_options',
6
+ 'invalid_action_name',
6
7
  'action_not_found',
7
8
  'invalid_action_input',
8
9
  'find_failed',
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAyHA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,kBAAkB;IAClB,sBAAsB;IACtB,aAAa;IACb,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,6BAA6B;IAC7B,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;IAC5B,wBAAwB;IACxB,iBAAiB;IACjB,4BAA4B;IAC5B,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,sCAAsC;IACtC,qCAAqC;IACrC,sCAAsC;IACtC,kCAAkC;IAClC,mCAAmC;IACnC,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,4BAA4B;IAC5B,oBAAoB;IACpB,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,qBAAqB;IACrB,gBAAgB;IAChB,kBAAkB;IAClB,4BAA4B;IAC5B,2BAA2B;IAC3B,cAAc;IACd,oBAAoB;IACpB,kBAAkB;CACuB,CAAC,CAAA;AAE5C,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;AAC1F,CAAC"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AA0HA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,sBAAsB;IACtB,aAAa;IACb,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,6BAA6B;IAC7B,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;IAC5B,wBAAwB;IACxB,iBAAiB;IACjB,4BAA4B;IAC5B,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,sCAAsC;IACtC,qCAAqC;IACrC,sCAAsC;IACtC,kCAAkC;IAClC,mCAAmC;IACnC,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,4BAA4B;IAC5B,oBAAoB;IACpB,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,qBAAqB;IACrB,gBAAgB;IAChB,kBAAkB;IAClB,4BAA4B;IAC5B,2BAA2B;IAC3B,cAAc;IACd,oBAAoB;IACpB,kBAAkB;CACuB,CAAC,CAAA;AAE5C,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;AAC1F,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { WorkbookActionPlan } from './model.js';
2
+ import type { WorkbookChangeSummary, WorkbookRunApplySummary, WorkbookRunResult, WorkbookRunUnverified } from './result.js';
3
+ import type { WorkbookRunApplyResult } from './run.js';
4
+ type ApplyValidation = {
5
+ readonly status: 'valid';
6
+ readonly result: WorkbookRunApplyResult;
7
+ } | {
8
+ readonly status: 'invalid';
9
+ readonly result: WorkbookRunResult;
10
+ };
11
+ export declare function changedAfterApply(plan: WorkbookActionPlan, result: Pick<WorkbookRunApplyResult, 'appliedOps' | 'undo'>): readonly WorkbookChangeSummary[];
12
+ export declare function changedAfterOptionalApply(plan: WorkbookActionPlan, result: WorkbookRunApplyResult | undefined): readonly WorkbookChangeSummary[];
13
+ export declare function failedApplyResult(plan: WorkbookActionPlan, result: WorkbookRunApplyResult): WorkbookRunResult;
14
+ export declare function validateApplyResult(plan: WorkbookActionPlan, value: unknown): ApplyValidation;
15
+ export declare function describeApply(result: WorkbookRunApplyResult): WorkbookRunApplySummary;
16
+ export declare function applyUnverified(plan: WorkbookActionPlan, apply: WorkbookRunApplySummary): readonly WorkbookRunUnverified[];
17
+ export {};
@@ -0,0 +1,274 @@
1
+ import { isWorkbookOp } from './guards.js';
2
+ import { normalizeWorkbookActionInput } from './input.js';
3
+ import { workbookPlanId } from './plan-data.js';
4
+ import { cloneWorkbookRunApplyCommandReceipts, cloneWorkbookRunApplyCommandReceiptsForSummary } from './run-command-receipts.js';
5
+ import { cloneData, arrayDataValues, canonicalJson, isRecord, ownValue } from './run-data.js';
6
+ import { errorMessage, failedRun, runError } from './run-failure.js';
7
+ import { isWorkbookRunErrorCode } from './result.js';
8
+ export function changedAfterApply(plan, result) {
9
+ if (result.appliedOps !== undefined) {
10
+ return result.appliedOps.length > 0 || result.undo !== undefined ? plan.changed : [];
11
+ }
12
+ return plan.changed;
13
+ }
14
+ function changedAfterFailedApply(plan, result) {
15
+ return result.undo !== undefined || (result.appliedOps !== undefined && result.appliedOps.length > 0) ? plan.changed : [];
16
+ }
17
+ export function changedAfterOptionalApply(plan, result) {
18
+ return result === undefined ? [] : changedAfterApply(plan, result);
19
+ }
20
+ export function failedApplyResult(plan, result) {
21
+ const errors = result.errors !== undefined && result.errors.length > 0
22
+ ? result.errors
23
+ : [runError('apply_failed', `Workbook action ${plan.modelName}.${plan.actionName} failed to apply`)];
24
+ const apply = describeApply(result);
25
+ return failedRun({
26
+ errors,
27
+ apply,
28
+ changed: changedAfterFailedApply(plan, result),
29
+ checks: plan.checks,
30
+ ...(result.undo !== undefined ? { undo: result.undo } : {}),
31
+ });
32
+ }
33
+ export function validateApplyResult(plan, value) {
34
+ const rejected = (message) => ({
35
+ status: 'invalid',
36
+ result: failedRun({
37
+ errors: [runError('runtime_rejected', message)],
38
+ checks: plan.checks,
39
+ }),
40
+ });
41
+ if (!isRecord(value)) {
42
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned an invalid apply result`);
43
+ }
44
+ const status = ownValue(value, 'status');
45
+ if (status !== 'applied' && status !== 'failed') {
46
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned an invalid apply status`);
47
+ }
48
+ const rawPreviewOps = ownValue(value, 'previewOps');
49
+ if (rawPreviewOps !== undefined && !isWorkbookOpArray(rawPreviewOps)) {
50
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid preview ops`);
51
+ }
52
+ let previewOps;
53
+ try {
54
+ previewOps = rawPreviewOps === undefined ? undefined : cloneOps(rawPreviewOps);
55
+ }
56
+ catch {
57
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid preview ops`);
58
+ }
59
+ const rawAppliedOps = ownValue(value, 'appliedOps');
60
+ if (rawAppliedOps !== undefined && !isWorkbookOpArray(rawAppliedOps)) {
61
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid applied ops`);
62
+ }
63
+ let appliedOps;
64
+ try {
65
+ appliedOps = rawAppliedOps === undefined ? undefined : cloneOps(rawAppliedOps);
66
+ }
67
+ catch {
68
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid applied ops`);
69
+ }
70
+ const rawErrors = ownValue(value, 'errors');
71
+ if (rawErrors !== undefined && !isWorkbookRunErrorArray(rawErrors)) {
72
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid apply errors`);
73
+ }
74
+ let errors;
75
+ try {
76
+ errors = rawErrors === undefined ? undefined : cloneRunErrors(rawErrors);
77
+ }
78
+ catch {
79
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid apply errors`);
80
+ }
81
+ if (status === 'applied' && errors !== undefined && errors.length > 0) {
82
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned applied with errors`);
83
+ }
84
+ const rawPlanId = ownValue(value, 'planId');
85
+ if (rawPlanId !== undefined && typeof rawPlanId !== 'string') {
86
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid plan id`);
87
+ }
88
+ const expectedPlanId = rawPlanId === undefined ? undefined : workbookPlanId(plan);
89
+ if (rawPlanId !== undefined && rawPlanId !== expectedPlanId) {
90
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned a plan id that does not match the executed plan`);
91
+ }
92
+ const rawBaseRevision = ownValue(value, 'baseRevision');
93
+ if (rawBaseRevision !== undefined && !isSafeNonNegativeInteger(rawBaseRevision)) {
94
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid base revision`);
95
+ }
96
+ const rawRevision = ownValue(value, 'revision');
97
+ if (rawRevision !== undefined && !isSafeNonNegativeInteger(rawRevision)) {
98
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid revision`);
99
+ }
100
+ if (isSafeNonNegativeInteger(rawBaseRevision) && isSafeNonNegativeInteger(rawRevision) && rawRevision < rawBaseRevision) {
101
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned a revision before its base revision`);
102
+ }
103
+ const rawCommandReceipts = ownValue(value, 'commandReceipts');
104
+ let commandReceipts;
105
+ if (rawCommandReceipts !== undefined) {
106
+ try {
107
+ commandReceipts = cloneWorkbookRunApplyCommandReceipts(plan, rawCommandReceipts, previewOps, appliedOps);
108
+ }
109
+ catch (error) {
110
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid command receipts: ${errorMessage(error)}`);
111
+ }
112
+ }
113
+ const rawUndo = ownValue(value, 'undo');
114
+ let undo;
115
+ if (rawUndo !== undefined && !isWorkbookUndoRef(rawUndo)) {
116
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid undo metadata`);
117
+ }
118
+ if (rawUndo !== undefined) {
119
+ try {
120
+ undo = cloneUndoRef(rawUndo);
121
+ }
122
+ catch {
123
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid undo metadata`);
124
+ }
125
+ }
126
+ let proof;
127
+ const rawProof = ownValue(value, 'proof');
128
+ try {
129
+ proof = rawProof === undefined ? undefined : normalizeWorkbookActionInput(rawProof);
130
+ }
131
+ catch (error) {
132
+ return rejected(`Workbook action ${plan.modelName}.${plan.actionName} returned invalid apply proof: ${errorMessage(error)}`);
133
+ }
134
+ return {
135
+ status: 'valid',
136
+ result: {
137
+ status,
138
+ ...(typeof rawPlanId === 'string' ? { planId: rawPlanId } : {}),
139
+ ...(isSafeNonNegativeInteger(rawBaseRevision) ? { baseRevision: rawBaseRevision } : {}),
140
+ ...(isSafeNonNegativeInteger(rawRevision) ? { revision: rawRevision } : {}),
141
+ ...(previewOps !== undefined ? { previewOps } : {}),
142
+ ...(appliedOps !== undefined ? { appliedOps } : {}),
143
+ ...(commandReceipts !== undefined ? { commandReceipts } : {}),
144
+ ...(proof !== undefined ? { proof } : {}),
145
+ ...(errors !== undefined ? { errors } : {}),
146
+ ...(undo !== undefined ? { undo } : {}),
147
+ },
148
+ };
149
+ }
150
+ export function describeApply(result) {
151
+ const matched = result.previewOps === undefined || result.appliedOps === undefined ? null : opsMatch(result.previewOps, result.appliedOps);
152
+ return {
153
+ matched,
154
+ ...(result.planId !== undefined ? { planId: result.planId } : {}),
155
+ ...(result.baseRevision !== undefined ? { baseRevision: result.baseRevision } : {}),
156
+ ...(result.revision !== undefined ? { revision: result.revision } : {}),
157
+ ...(result.previewOps !== undefined ? { previewOps: cloneOps(result.previewOps) } : {}),
158
+ ...(result.appliedOps !== undefined ? { appliedOps: cloneOps(result.appliedOps) } : {}),
159
+ ...(result.commandReceipts !== undefined
160
+ ? { commandReceipts: cloneWorkbookRunApplyCommandReceiptsForSummary(result.commandReceipts) }
161
+ : {}),
162
+ ...(result.proof !== undefined ? { proof: normalizeWorkbookActionInput(result.proof) } : {}),
163
+ };
164
+ }
165
+ export function applyUnverified(plan, apply) {
166
+ const unverified = [];
167
+ if (apply.matched === null) {
168
+ unverified.push({
169
+ kind: 'apply',
170
+ message: 'Adapter did not return both previewOps and appliedOps, so apply match is unverified',
171
+ });
172
+ }
173
+ if (plan.commands.length > 0 && apply.commandReceipts === undefined) {
174
+ unverified.push({
175
+ kind: 'apply',
176
+ message: 'Adapter did not return commandReceipts, so planned commands are not bound to materialized ops',
177
+ });
178
+ }
179
+ return unverified;
180
+ }
181
+ function isSafeNonNegativeInteger(value) {
182
+ return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
183
+ }
184
+ function isWorkbookOpArray(value) {
185
+ return arrayDataValues(value, isWorkbookOp) !== null;
186
+ }
187
+ function isWorkbookRunError(value) {
188
+ if (!isRecord(value)) {
189
+ return false;
190
+ }
191
+ const code = ownValue(value, 'code');
192
+ const message = ownValue(value, 'message');
193
+ const path = ownValue(value, 'path');
194
+ const issueCode = ownValue(value, 'issueCode');
195
+ return (isWorkbookRunErrorCode(code) &&
196
+ typeof message === 'string' &&
197
+ (path === undefined || typeof path === 'string') &&
198
+ (issueCode === undefined || typeof issueCode === 'string'));
199
+ }
200
+ function isWorkbookRunErrorArray(value) {
201
+ return arrayDataValues(value, isWorkbookRunError) !== null;
202
+ }
203
+ function cloneRunError(error) {
204
+ const code = ownValue(error, 'code');
205
+ const message = ownValue(error, 'message');
206
+ const path = ownValue(error, 'path');
207
+ const issueCode = ownValue(error, 'issueCode');
208
+ if (!isWorkbookRunErrorCode(code) || typeof message !== 'string') {
209
+ throw new Error('invalid run error');
210
+ }
211
+ return {
212
+ code,
213
+ message,
214
+ ...(typeof path === 'string' ? { path } : {}),
215
+ ...(typeof issueCode === 'string' ? { issueCode } : {}),
216
+ };
217
+ }
218
+ function isWorkbookUndoRef(value) {
219
+ if (!isRecord(value)) {
220
+ return false;
221
+ }
222
+ const id = ownValue(value, 'id');
223
+ const ops = ownValue(value, 'ops');
224
+ return typeof id === 'string' && (ops === undefined || isWorkbookOpArray(ops));
225
+ }
226
+ function cloneUndoRef(undo) {
227
+ const id = ownValue(undo, 'id');
228
+ const ops = ownValue(undo, 'ops');
229
+ if (typeof id !== 'string') {
230
+ throw new Error('invalid undo metadata');
231
+ }
232
+ return {
233
+ id,
234
+ ...(isWorkbookOpArray(ops) ? { ops: cloneOps(ops) } : {}),
235
+ };
236
+ }
237
+ function cloneOps(ops) {
238
+ const entries = arrayDataValues(ops, isWorkbookOp);
239
+ if (entries === null) {
240
+ throw new Error('invalid workbook op array');
241
+ }
242
+ return entries.map((op) => cloneOp(op));
243
+ }
244
+ function cloneRunErrors(errors) {
245
+ const entries = arrayDataValues(errors, isWorkbookRunError);
246
+ if (entries === null) {
247
+ throw new Error('invalid run error array');
248
+ }
249
+ return entries.map((error) => cloneRunError(error));
250
+ }
251
+ function cloneOp(op) {
252
+ const cloned = cloneData(op);
253
+ if (!isWorkbookOp(cloned)) {
254
+ throw new Error('invalid workbook op clone');
255
+ }
256
+ return cloned;
257
+ }
258
+ function opsMatch(left, right) {
259
+ const leftOps = arrayDataValues(left, isWorkbookOp);
260
+ const rightOps = arrayDataValues(right, isWorkbookOp);
261
+ if (leftOps === null || rightOps === null || leftOps.length !== rightOps.length) {
262
+ return false;
263
+ }
264
+ try {
265
+ return leftOps.every((op, index) => {
266
+ const other = rightOps[index];
267
+ return other !== undefined && canonicalJson(op) === canonicalJson(other);
268
+ });
269
+ }
270
+ catch {
271
+ return false;
272
+ }
273
+ }
274
+ //# sourceMappingURL=run-apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-apply.js","sourceRoot":"","sources":["../src/run-apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { WorkbookCheckResult, WorkbookRunError } from './result.js';
2
+ import type { WorkbookActionPlan } from './model.js';
3
+ import type { WorkbookRunAdapter } from './run.js';
4
+ export declare function verifyChecksWithAdapter<Refs>(checks: readonly WorkbookCheckResult[], plan: WorkbookActionPlan<Refs>, adapter: WorkbookRunAdapter<Refs>): Promise<{
5
+ readonly checks: readonly WorkbookCheckResult[];
6
+ readonly errors: readonly WorkbookRunError[];
7
+ }>;
8
+ export declare function unverifiedCheckErrors(checks: readonly WorkbookCheckResult[]): readonly WorkbookRunError[];
@@ -0,0 +1,174 @@
1
+ import { normalizeWorkbookActionInput } from './input.js';
2
+ import { adapterVerifyChecksMethod } from './run-runtime-boundary.js';
3
+ import { canonicalJson, isRecord, ownValue } from './run-data.js';
4
+ import { errorMessage, runError } from './run-failure.js';
5
+ export async function verifyChecksWithAdapter(checks, plan, adapter) {
6
+ const verifyChecks = adapterVerifyChecksMethod(adapter);
7
+ if (verifyChecks === undefined) {
8
+ return { checks, errors: [] };
9
+ }
10
+ const originalChecks = checks.map(cloneCheck);
11
+ const originalContracts = originalChecks.map((check) => canonicalJson(checkContract(check)));
12
+ const originalKinds = originalChecks.map((check) => check.kind);
13
+ const verifierInput = originalChecks.map(cloneCheck);
14
+ let verified;
15
+ try {
16
+ verified = await Reflect.apply(verifyChecks, adapter, [verifierInput, plan]);
17
+ }
18
+ catch (error) {
19
+ return {
20
+ checks: originalChecks,
21
+ errors: [runError('check_verification_failed', errorMessage(error))],
22
+ };
23
+ }
24
+ const validation = validateVerifiedChecks(originalContracts, originalKinds, verified);
25
+ if (validation.status === 'invalid') {
26
+ return {
27
+ checks: originalChecks,
28
+ errors: [validation.error],
29
+ };
30
+ }
31
+ const verifiedChecks = validation.checks;
32
+ const failedChecks = verifiedChecks.filter((check) => check.status === 'failed');
33
+ if (failedChecks.length > 0) {
34
+ return {
35
+ checks: verifiedChecks,
36
+ errors: failedChecks.map((check) => runError('check_failed', `${check.target?.label ?? check.kind} failed check ${check.kind}: ${check.message}`)),
37
+ };
38
+ }
39
+ return { checks: verifiedChecks, errors: [] };
40
+ }
41
+ export function unverifiedCheckErrors(checks) {
42
+ return checks
43
+ .filter((check) => check.status === 'planned')
44
+ .map((check) => runError('check_not_verified', `${checkLabel(check)} did not verify check ${check.kind}: ${check.message}`));
45
+ }
46
+ function validateVerifiedChecks(originalContracts, originalKinds, verified) {
47
+ if (!Array.isArray(verified)) {
48
+ return {
49
+ status: 'invalid',
50
+ error: runError('invalid_check_verification', 'Check verifier did not return a check array'),
51
+ };
52
+ }
53
+ if (verified.length !== originalContracts.length) {
54
+ return {
55
+ status: 'invalid',
56
+ error: runError('invalid_check_verification', `Check verifier returned ${String(verified.length)} checks for ${String(originalContracts.length)} planned checks`),
57
+ };
58
+ }
59
+ const verifiedChecks = [];
60
+ for (let index = 0; index < originalContracts.length; index += 1) {
61
+ const expectedContract = originalContracts[index];
62
+ const expectedKind = originalKinds[index] ?? 'check';
63
+ const descriptor = Object.getOwnPropertyDescriptor(verified, String(index));
64
+ const actual = descriptor !== undefined && descriptor.enumerable && 'value' in descriptor ? descriptor.value : undefined;
65
+ if (expectedContract === undefined || !isRecord(actual)) {
66
+ return {
67
+ status: 'invalid',
68
+ error: runError('invalid_check_verification', `Check verifier returned an invalid check at index ${String(index)}`),
69
+ };
70
+ }
71
+ if (!isCheckStatus(ownValue(actual, 'status'))) {
72
+ return {
73
+ status: 'invalid',
74
+ error: runError('invalid_check_verification', `Check verifier returned an invalid status at index ${String(index)}`),
75
+ };
76
+ }
77
+ if (!isWorkbookCheckResult(actual)) {
78
+ return {
79
+ status: 'invalid',
80
+ error: runError('invalid_check_verification', `Check verifier returned an invalid check at index ${String(index)}`),
81
+ };
82
+ }
83
+ if (!checkContractMatches(expectedContract, actual)) {
84
+ return {
85
+ status: 'invalid',
86
+ error: runError('invalid_check_verification', `Check verifier changed the check contract at index ${String(index)} for ${expectedKind}`),
87
+ };
88
+ }
89
+ try {
90
+ verifiedChecks.push(cloneCheck(actual));
91
+ }
92
+ catch (error) {
93
+ return {
94
+ status: 'invalid',
95
+ error: runError('invalid_check_verification', `Check verifier returned invalid proof at index ${String(index)}: ${errorMessage(error)}`),
96
+ };
97
+ }
98
+ }
99
+ return {
100
+ status: 'valid',
101
+ checks: verifiedChecks,
102
+ };
103
+ }
104
+ function checkLabel(check) {
105
+ return check.target?.label ?? check.kind;
106
+ }
107
+ function ownCheckValue(check, key) {
108
+ const descriptor = Object.getOwnPropertyDescriptor(check, key);
109
+ if (descriptor === undefined) {
110
+ return undefined;
111
+ }
112
+ if (!('value' in descriptor)) {
113
+ throw new Error(`Workbook check result ${String(key)} must be a data property`);
114
+ }
115
+ return descriptor.value;
116
+ }
117
+ function checkContract(check) {
118
+ const kind = ownCheckValue(check, 'kind');
119
+ const target = ownCheckValue(check, 'target');
120
+ const refs = ownCheckValue(check, 'refs');
121
+ const message = ownCheckValue(check, 'message');
122
+ const expectation = ownCheckValue(check, 'expectation');
123
+ if (kind === undefined || message === undefined) {
124
+ throw new Error('invalid check contract');
125
+ }
126
+ return {
127
+ kind,
128
+ ...(target !== undefined ? { target } : {}),
129
+ ...(refs !== undefined ? { refs } : {}),
130
+ message,
131
+ ...(expectation !== undefined ? { expectation } : {}),
132
+ };
133
+ }
134
+ function cloneCheck(check) {
135
+ const status = ownCheckValue(check, 'status');
136
+ const kind = ownCheckValue(check, 'kind');
137
+ const target = ownCheckValue(check, 'target');
138
+ const refs = ownCheckValue(check, 'refs');
139
+ const message = ownCheckValue(check, 'message');
140
+ const expectation = ownCheckValue(check, 'expectation');
141
+ const proof = ownCheckValue(check, 'proof');
142
+ if (status === undefined || kind === undefined || message === undefined) {
143
+ throw new Error('invalid check result');
144
+ }
145
+ return {
146
+ status,
147
+ kind,
148
+ ...(target !== undefined ? { target } : {}),
149
+ ...(refs !== undefined ? { refs } : {}),
150
+ message,
151
+ ...(expectation !== undefined ? { expectation } : {}),
152
+ ...(proof !== undefined ? { proof: normalizeWorkbookActionInput(proof) } : {}),
153
+ };
154
+ }
155
+ function checkContractMatches(expectedContract, actual) {
156
+ try {
157
+ return expectedContract === canonicalJson(checkContract(actual));
158
+ }
159
+ catch {
160
+ return false;
161
+ }
162
+ }
163
+ function isCheckStatus(value) {
164
+ return value === 'planned' || value === 'passed' || value === 'failed';
165
+ }
166
+ function isWorkbookCheckResult(value) {
167
+ if (!isRecord(value)) {
168
+ return false;
169
+ }
170
+ return (isCheckStatus(ownValue(value, 'status')) &&
171
+ typeof ownValue(value, 'kind') === 'string' &&
172
+ typeof ownValue(value, 'message') === 'string');
173
+ }
174
+ //# sourceMappingURL=run-check-verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-check-verification.js","sourceRoot":"","sources":["../src/run-check-verification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function canonicalJson(value: unknown): string;
2
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
3
+ export declare function ownDataDescriptor(value: object, key: string): PropertyDescriptor | undefined;
4
+ export declare function ownValue(value: object, key: string): unknown;
5
+ export declare function arrayDataValues<T>(value: unknown, guard: (entry: unknown) => entry is T): readonly T[] | null;
6
+ export declare function cloneData(value: unknown, seen?: WeakMap<object, unknown>): unknown;