@bilig/workbook 0.55.0 → 0.58.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.
package/dist/model.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { formula } from './formula.js';
2
2
  import { collectWorkbookRefs, createWorkbookFindApi } from './find.js';
3
3
  import { createWorkbookCheckApi } from './check.js';
4
- import { normalizeOptionalWorkbookActionInput, normalizeWorkbookActionInputDescription, } from './input.js';
4
+ import { normalizeOptionalWorkbookActionInput, normalizeWorkbookActionInput, normalizeWorkbookActionInputDescription, } from './input.js';
5
5
  import { isWorkbookOp } from './guards.js';
6
6
  export function defineModel(config) {
7
7
  const name = normalizeRequiredName(config.name, 'Workbook model name');
@@ -11,16 +11,19 @@ export function defineModel(config) {
11
11
  throw new Error(`Workbook model ${name} must define at least one action`);
12
12
  }
13
13
  actionNames.forEach((actionName) => {
14
- const normalizedActionName = normalizeRequiredName(actionName, `Workbook model ${name} action name`);
15
- normalizeActionDefinition(name, normalizedActionName, config.actions[actionName]);
14
+ normalizeRequiredName(actionName, `Workbook model ${name} action name`);
16
15
  });
17
- Object.freeze(config.actions);
16
+ const actions = {};
17
+ actionNames.forEach((actionName) => {
18
+ actions[actionName] = normalizeActionDefinition(name, actionName, config.actions[actionName]);
19
+ });
20
+ Object.freeze(actions);
18
21
  return Object.freeze({
19
22
  name,
20
23
  ...(description !== undefined ? { description } : {}),
21
24
  find: config.find,
22
25
  ...(config.checks !== undefined ? { checks: config.checks } : {}),
23
- actions: config.actions,
26
+ actions,
24
27
  });
25
28
  }
26
29
  export function inspectModel(model) {
@@ -48,6 +51,9 @@ function normalizeOptionalDescription(value, label) {
48
51
  if (value === undefined) {
49
52
  return undefined;
50
53
  }
54
+ if (typeof value !== 'string') {
55
+ throw new Error(`${label} must be a string`);
56
+ }
51
57
  const description = value.trim();
52
58
  if (description === '') {
53
59
  throw new Error(`${label} cannot be empty`);
@@ -57,32 +63,37 @@ function normalizeOptionalDescription(value, label) {
57
63
  function isActionConfig(definition) {
58
64
  return typeof definition === 'object' && definition !== null;
59
65
  }
66
+ function ownPropertyValue(value, key) {
67
+ return Object.getOwnPropertyDescriptor(value, key)?.value;
68
+ }
69
+ function ownActionRun(definition) {
70
+ const run = ownPropertyValue(definition, 'run');
71
+ if (typeof run !== 'function') {
72
+ return undefined;
73
+ }
74
+ return (context) => {
75
+ Reflect.apply(run, undefined, [context]);
76
+ };
77
+ }
60
78
  function normalizeActionDefinition(modelName, actionName, definition) {
61
79
  if (typeof definition === 'function') {
62
- return;
80
+ return definition;
63
81
  }
64
- if (!isActionConfig(definition) || typeof definition.run !== 'function') {
82
+ if (!isActionConfig(definition)) {
65
83
  throw new Error(`Workbook model ${modelName} action ${actionName} must be a function or action object with run`);
66
84
  }
67
- const description = normalizeOptionalDescription(definition.description, `Workbook model ${modelName} action ${actionName} description`);
68
- const input = definition.input === undefined ? undefined : normalizeWorkbookActionInputDescription(definition.input);
69
- if (description !== undefined) {
70
- Object.defineProperty(definition, 'description', {
71
- value: description,
72
- enumerable: true,
73
- configurable: false,
74
- writable: false,
75
- });
76
- }
77
- if (input !== undefined) {
78
- Object.defineProperty(definition, 'input', {
79
- value: input,
80
- enumerable: true,
81
- configurable: false,
82
- writable: false,
83
- });
85
+ const run = ownActionRun(definition);
86
+ if (run === undefined) {
87
+ throw new Error(`Workbook model ${modelName} action ${actionName} must be a function or action object with run`);
84
88
  }
85
- Object.freeze(definition);
89
+ const description = normalizeOptionalDescription(ownPropertyValue(definition, 'description'), `Workbook model ${modelName} action ${actionName} description`);
90
+ const inputValue = ownPropertyValue(definition, 'input');
91
+ const input = inputValue === undefined ? undefined : normalizeWorkbookActionInputDescription(inputValue);
92
+ return Object.freeze({
93
+ ...(description !== undefined ? { description } : {}),
94
+ ...(input !== undefined ? { input } : {}),
95
+ run,
96
+ });
86
97
  }
87
98
  function actionRunner(definition) {
88
99
  return typeof definition === 'function' ? definition : definition.run;
@@ -91,8 +102,9 @@ function inspectAction(name, definition) {
91
102
  if (definition === undefined || typeof definition === 'function') {
92
103
  return { name };
93
104
  }
94
- const description = normalizeOptionalDescription(definition.description, `Workbook action ${name} description`);
95
- const input = definition.input === undefined ? undefined : normalizeWorkbookActionInputDescription(definition.input);
105
+ const description = normalizeOptionalDescription(ownPropertyValue(definition, 'description'), `Workbook action ${name} description`);
106
+ const inputValue = ownPropertyValue(definition, 'input');
107
+ const input = inputValue === undefined ? undefined : normalizeWorkbookActionInputDescription(inputValue);
96
108
  return {
97
109
  name,
98
110
  ...(description !== undefined ? { description } : {}),
@@ -129,6 +141,96 @@ function commandTarget(command) {
129
141
  function cloneWorkbookOp(op) {
130
142
  return structuredClone(op);
131
143
  }
144
+ function freezeWorkbookOp(op) {
145
+ return Object.freeze(cloneWorkbookOp(op));
146
+ }
147
+ function freezeActionCommand(command) {
148
+ switch (command.kind) {
149
+ case 'writeFormula':
150
+ return Object.freeze({
151
+ kind: 'writeFormula',
152
+ target: command.target,
153
+ formula: command.formula,
154
+ inputs: Object.freeze([...command.inputs]),
155
+ });
156
+ case 'writeValue':
157
+ return Object.freeze({
158
+ kind: 'writeValue',
159
+ target: command.target,
160
+ value: command.value,
161
+ });
162
+ case 'format':
163
+ return Object.freeze({
164
+ kind: 'format',
165
+ target: command.target,
166
+ ...(command.style !== undefined ? { style: Object.freeze(structuredClone(command.style)) } : {}),
167
+ ...(command.numberFormat !== undefined ? { numberFormat: command.numberFormat } : {}),
168
+ });
169
+ case 'clear':
170
+ return Object.freeze({
171
+ kind: 'clear',
172
+ target: command.target,
173
+ });
174
+ case 'op':
175
+ return Object.freeze({
176
+ kind: 'op',
177
+ op: freezeWorkbookOp(command.op),
178
+ ...(command.target !== undefined ? { target: command.target } : {}),
179
+ ...(command.message !== undefined ? { message: command.message } : {}),
180
+ });
181
+ }
182
+ }
183
+ function freezeCheckExpectation(check) {
184
+ if (check.expectation === undefined) {
185
+ return undefined;
186
+ }
187
+ if (check.expectation.kind === 'formulaEquals') {
188
+ return Object.freeze({
189
+ ...check.expectation,
190
+ inputs: Object.freeze([...check.expectation.inputs]),
191
+ });
192
+ }
193
+ return Object.freeze({ ...check.expectation });
194
+ }
195
+ function freezeCheckResult(check) {
196
+ const expectation = freezeCheckExpectation(check);
197
+ const proof = check.proof === undefined ? undefined : normalizeWorkbookActionInput(check.proof);
198
+ return Object.freeze({
199
+ status: check.status,
200
+ kind: check.kind,
201
+ ...(check.target !== undefined ? { target: check.target } : {}),
202
+ ...(check.refs !== undefined ? { refs: Object.freeze([...check.refs]) } : {}),
203
+ message: check.message,
204
+ ...(expectation !== undefined ? { expectation } : {}),
205
+ ...(proof !== undefined ? { proof } : {}),
206
+ });
207
+ }
208
+ function freezeChangeSummary(change) {
209
+ return Object.freeze({
210
+ kind: change.kind,
211
+ ...(change.target !== undefined ? { target: change.target } : {}),
212
+ message: change.message,
213
+ });
214
+ }
215
+ function isFreezableRefContainer(value) {
216
+ const prototype = Object.getPrototypeOf(value);
217
+ return Array.isArray(value) || prototype === Object.prototype || prototype === null;
218
+ }
219
+ function freezeRefs(refs, seen = new WeakSet()) {
220
+ if (typeof refs !== 'object' || refs === null) {
221
+ return refs;
222
+ }
223
+ if (seen.has(refs)) {
224
+ return refs;
225
+ }
226
+ seen.add(refs);
227
+ Object.values(Object.getOwnPropertyDescriptors(refs)).forEach((descriptor) => {
228
+ if ('value' in descriptor) {
229
+ freezeRefs(descriptor.value, seen);
230
+ }
231
+ });
232
+ return isFreezableRefContainer(refs) ? Object.freeze(refs) : refs;
233
+ }
132
234
  function createCheckWorkbook(input) {
133
235
  return Object.freeze({
134
236
  ...createWorkbookFindApi(),
@@ -266,24 +368,29 @@ function actionNotFound(modelName, actionName) {
266
368
  };
267
369
  }
268
370
  function createActionPlan(modelName, actionName, input, refs, commands, ops, checks) {
269
- return {
371
+ const plannedCommands = Object.freeze(commands.map(freezeActionCommand));
372
+ const plannedOps = Object.freeze(ops.map(freezeWorkbookOp));
373
+ const plannedChecks = Object.freeze(checks.map(freezeCheckResult));
374
+ const plannedRefs = freezeRefs(refs);
375
+ const plannedChanged = Object.freeze(plannedCommands.map((command) => {
376
+ const target = commandTarget(command);
377
+ return freezeChangeSummary({
378
+ kind: command.kind,
379
+ ...(target !== undefined ? { target } : {}),
380
+ message: commandMessage(command),
381
+ });
382
+ }));
383
+ return Object.freeze({
270
384
  modelName,
271
385
  actionName,
272
386
  ...inputProperty(input),
273
- refs,
274
- refsUsed: collectWorkbookRefs(refs),
275
- commands,
276
- ops,
277
- changed: commands.map((command) => {
278
- const target = commandTarget(command);
279
- return {
280
- kind: command.kind,
281
- ...(target !== undefined ? { target } : {}),
282
- message: commandMessage(command),
283
- };
284
- }),
285
- checks,
286
- };
387
+ refs: plannedRefs,
388
+ refsUsed: Object.freeze([...collectWorkbookRefs(plannedRefs)]),
389
+ commands: plannedCommands,
390
+ ops: plannedOps,
391
+ changed: plannedChanged,
392
+ checks: plannedChecks,
393
+ });
287
394
  }
288
395
  export function planWorkbookAction(model, actionName, input) {
289
396
  let normalizedInput;
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/ops.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { CellRangeRef, CellNumberFormatRecord, CellStyleRecord, CellStylePatch, LiteralInput, WorkbookAutoFilterSnapshot, WorkbookCommentThreadSnapshot, WorkbookChartSnapshot, WorkbookConditionalFormatSnapshot, WorkbookDataValidationSnapshot, WorkbookImageSnapshot, WorkbookMergeRangeSnapshot, WorkbookNoteSnapshot, WorkbookRangeProtectionSnapshot, WorkbookSheetProtectionSnapshot, WorkbookShapeSnapshot, WorkbookAxisEntrySnapshot, WorkbookCalculationSettingsSnapshot, WorkbookDefinedNameValueSnapshot, WorkbookPivotValueSnapshot, WorkbookTableSnapshot, WorkbookVolatileContextSnapshot } from '@bilig/protocol';
1
+ import type { CellRangeRef, CellNumberFormatRecord, CellStyleRecord, CellStylePatch, LiteralInput, WorkbookAutoFilterSnapshot, WorkbookCommentThreadSnapshot, WorkbookChartSnapshot, WorkbookConditionalFormatSnapshot, WorkbookDataValidationSnapshot, WorkbookHyperlinkSnapshot, WorkbookImageSnapshot, WorkbookMergeRangeSnapshot, WorkbookNoteSnapshot, WorkbookRangeProtectionSnapshot, WorkbookSheetProtectionSnapshot, WorkbookShapeSnapshot, WorkbookSheetConditionalFormatArtifactsSnapshot, WorkbookAxisEntrySnapshot, WorkbookCalculationSettingsSnapshot, WorkbookDefinedNameValueSnapshot, WorkbookPivotValueSnapshot, WorkbookTableSnapshot, WorkbookVolatileContextSnapshot } from '@bilig/protocol';
2
2
  export type ReplicaId = string;
3
3
  export type OpId = string;
4
4
  export interface Clock {
@@ -23,6 +23,8 @@ export interface WorkbookDataValidationOp extends WorkbookDataValidationSnapshot
23
23
  export interface WorkbookConditionalFormatOp extends WorkbookConditionalFormatSnapshot {
24
24
  style: CellStylePatch;
25
25
  }
26
+ export interface WorkbookSheetConditionalFormatArtifactsOp extends WorkbookSheetConditionalFormatArtifactsSnapshot {
27
+ }
26
28
  export interface WorkbookSheetProtectionOp extends WorkbookSheetProtectionSnapshot {
27
29
  }
28
30
  export interface WorkbookRangeProtectionOp extends WorkbookRangeProtectionSnapshot {
@@ -31,6 +33,8 @@ export interface WorkbookCommentThreadOp extends WorkbookCommentThreadSnapshot {
31
33
  }
32
34
  export interface WorkbookNoteOp extends WorkbookNoteSnapshot {
33
35
  }
36
+ export interface WorkbookHyperlinkOp extends WorkbookHyperlinkSnapshot {
37
+ }
34
38
  export interface WorkbookChartOp extends WorkbookChartSnapshot {
35
39
  }
36
40
  export interface WorkbookImageOp extends WorkbookImageSnapshot {
@@ -105,6 +109,8 @@ export type WorkbookOp = {
105
109
  count: number;
106
110
  size: number | null;
107
111
  hidden: boolean | null;
112
+ filterHidden?: boolean | null;
113
+ geometry?: Omit<WorkbookAxisEntrySnapshot, 'id' | 'index' | 'size' | 'hidden' | 'filterHidden'>;
108
114
  } | {
109
115
  kind: 'updateColumnMetadata';
110
116
  sheetName: string;
@@ -163,6 +169,13 @@ export type WorkbookOp = {
163
169
  kind: 'deleteConditionalFormat';
164
170
  id: string;
165
171
  sheetName: string;
172
+ } | {
173
+ kind: 'setConditionalFormatArtifacts';
174
+ sheetName: string;
175
+ artifacts: WorkbookSheetConditionalFormatArtifactsOp;
176
+ } | {
177
+ kind: 'clearConditionalFormatArtifacts';
178
+ sheetName: string;
166
179
  } | {
167
180
  kind: 'upsertRangeProtection';
168
181
  protection: WorkbookRangeProtectionOp;
@@ -184,6 +197,13 @@ export type WorkbookOp = {
184
197
  kind: 'deleteNote';
185
198
  sheetName: string;
186
199
  address: string;
200
+ } | {
201
+ kind: 'upsertHyperlink';
202
+ hyperlink: WorkbookHyperlinkOp;
203
+ } | {
204
+ kind: 'deleteHyperlink';
205
+ sheetName: string;
206
+ address: string;
187
207
  } | {
188
208
  kind: 'setCellValue';
189
209
  sheetName: string;
package/dist/readback.js CHANGED
@@ -55,10 +55,11 @@ function formulaMismatch(check, expected, actual) {
55
55
  : `${check.target?.label ?? check.kind} expected formula ${expected} but read ${actual ?? 'null'}`,
56
56
  });
57
57
  }
58
- function checked(check, status) {
58
+ function checked(check, status, proof) {
59
59
  return {
60
60
  ...check,
61
61
  status,
62
+ ...(proof !== undefined ? { proof } : {}),
62
63
  };
63
64
  }
64
65
  function verifyCheck(check, readbacks) {
@@ -86,7 +87,12 @@ function verifyCheck(check, readbacks) {
86
87
  issue: valueMismatch(check, check.expectation.value, actual),
87
88
  };
88
89
  }
89
- return { check: checked(check, 'passed') };
90
+ return {
91
+ check: checked(check, 'passed', {
92
+ source: 'readback',
93
+ value: actual,
94
+ }),
95
+ };
90
96
  }
91
97
  const actual = hasFormula(readback) ? readback.formula : undefined;
92
98
  if (actual !== check.expectation.formula) {
@@ -95,7 +101,12 @@ function verifyCheck(check, readbacks) {
95
101
  issue: formulaMismatch(check, check.expectation.formula, actual),
96
102
  };
97
103
  }
98
- return { check: checked(check, 'passed') };
104
+ return {
105
+ check: checked(check, 'passed', {
106
+ source: 'readback',
107
+ formula: actual,
108
+ }),
109
+ };
99
110
  }
100
111
  export function verifyWorkbookReadbacks(checks, readbacks) {
101
112
  const expectedTargets = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"readback.js","sourceRoot":"","sources":["../src/readback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readback.js","sourceRoot":"","sources":["../src/readback.ts"],"names":[],"mappings":"AA2BA,SAAS,MAAM,CAAC,GAAgB;IAC9B,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAA;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,QAA6B;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,YAAY,CAAC,SAAmD,EAAE,MAAmB;IAC5F,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,QAAQ,CAAC,QAA6B;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,UAAU,CAAC,QAA6B;IAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,KAAK,CAAC,KAA4B;IACzC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAA0B;IACjD,OAAO,KAAK,CAAC;QACX,IAAI,EAAE,kBAAkB;QACxB,KAAK;QACL,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,kBAAkB;KAChE,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA6B;IACvD,OAAO,KAAK,CAAC;QACX,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,iDAAiD;KACnF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAA0B,EAAE,QAAsB,EAAE,MAAqB;IAC9F,OAAO,KAAK,CAAC;QACX,IAAI,EAAE,gBAAgB;QACtB,KAAK;QACL,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,QAAQ;QACR,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,EACL,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,wBAAwB;YAC9D,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,mBAAmB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;KAC3H,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAA0B,EAAE,QAAgB,EAAE,MAAiC;IACtG,OAAO,KAAK,CAAC;QACX,IAAI,EAAE,kBAAkB;QACxB,KAAK;QACL,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,QAAQ;QACR,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,EACL,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,0BAA0B;YAChE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,qBAAqB,QAAQ,aAAa,MAAM,IAAI,MAAM,EAAE;KACvG,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,OAAO,CACd,KAA0B,EAC1B,MAAqC,EACrC,KAAoC;IAEpC,OAAO;QACL,GAAG,KAAK;QACR,MAAM;QACN,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAClB,KAA0B,EAC1B,SAAmD;IAEnD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC/B,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;SAC9B,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC/B,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;SAC9B,CAAA;IACH,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9D,IAAI,MAAM,KAAK,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACvC,OAAO;gBACL,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAC/B,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;aAC7D,CAAA;QACH,CAAC;QACD,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE;gBAC9B,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,MAAM;aACd,CAAC;SACH,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,IAAI,MAAM,KAAK,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzC,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC/B,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;SACjE,CAAA;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE;YAC9B,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,MAAM;SAChB,CAAC;KACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAsC,EACtC,SAAyC;IAEzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACzC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAA;IAC/D,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACjD,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;QACvD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,cAAc,GAA0B,EAAE,CAAA;IAChD,MAAM,MAAM,GAA4B,EAAE,CAAA;IAE1C,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;QACnD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QACjD,MAAM,EAAE,cAAc;QACtB,MAAM;KACP,CAAA;AACH,CAAC"}
package/dist/result.d.ts CHANGED
@@ -29,8 +29,19 @@ export interface WorkbookUndoRef {
29
29
  readonly id: string;
30
30
  readonly ops?: readonly EngineOp[];
31
31
  }
32
- export type WorkbookRunErrorCode = 'action_not_found' | 'invalid_action_input' | 'find_failed' | 'checks_failed' | 'action_failed' | 'duplicate_ref' | 'command_target_not_resolved' | 'formula_input_not_resolved' | 'invalid_formula' | 'change_target_not_resolved' | 'check_status_not_planned' | 'check_target_not_resolved' | 'check_ref_not_resolved' | 'check_expectation_input_not_resolved' | 'invalid_check_expectation_formula' | 'invalid_workbook_op' | 'op_target_mismatch' | 'missing_concrete_op' | 'missing_workbook_op' | 'apply_failed' | 'readback_failed' | 'readback_missing' | 'readback_unexpected' | 'value_mismatch' | 'formula_mismatch' | 'invalid_check_verification' | 'check_verification_failed' | 'check_failed' | 'check_not_verified' | 'runtime_rejected';
33
- export declare const workbookRunErrorCodes: readonly ("action_not_found" | "invalid_action_input" | "find_failed" | "checks_failed" | "action_failed" | "duplicate_ref" | "command_target_not_resolved" | "formula_input_not_resolved" | "invalid_formula" | "change_target_not_resolved" | "check_status_not_planned" | "check_target_not_resolved" | "check_ref_not_resolved" | "check_expectation_input_not_resolved" | "invalid_check_expectation_formula" | "invalid_workbook_op" | "op_target_mismatch" | "missing_concrete_op" | "missing_workbook_op" | "apply_failed" | "readback_failed" | "readback_missing" | "readback_unexpected" | "value_mismatch" | "formula_mismatch" | "invalid_check_verification" | "check_verification_failed" | "check_failed" | "check_not_verified" | "runtime_rejected")[];
32
+ export interface WorkbookRunApplySummary {
33
+ readonly matched: boolean | null;
34
+ readonly previewOps?: readonly EngineOp[];
35
+ readonly appliedOps?: readonly EngineOp[];
36
+ readonly proof?: WorkbookActionInput;
37
+ }
38
+ export type WorkbookRunUnverifiedKind = 'apply';
39
+ export interface WorkbookRunUnverified {
40
+ readonly kind: WorkbookRunUnverifiedKind;
41
+ readonly message: string;
42
+ }
43
+ export type WorkbookRunErrorCode = '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' | 'invalid_formula' | 'change_target_not_resolved' | 'check_status_not_planned' | 'check_target_not_resolved' | 'check_ref_not_resolved' | 'check_expectation_input_not_resolved' | 'invalid_check_expectation_formula' | 'invalid_workbook_op' | 'op_target_mismatch' | 'missing_concrete_op' | 'missing_workbook_op' | 'apply_not_verified' | 'apply_mismatch' | 'apply_failed' | 'readback_failed' | 'readback_missing' | 'readback_unexpected' | 'value_mismatch' | 'formula_mismatch' | 'invalid_check_verification' | 'check_verification_failed' | 'check_failed' | 'check_not_verified' | 'runtime_rejected';
44
+ export declare const workbookRunErrorCodes: readonly ("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" | "invalid_formula" | "change_target_not_resolved" | "check_status_not_planned" | "check_target_not_resolved" | "check_ref_not_resolved" | "check_expectation_input_not_resolved" | "invalid_check_expectation_formula" | "invalid_workbook_op" | "op_target_mismatch" | "missing_concrete_op" | "missing_workbook_op" | "apply_not_verified" | "apply_mismatch" | "apply_failed" | "readback_failed" | "readback_missing" | "readback_unexpected" | "value_mismatch" | "formula_mismatch" | "invalid_check_verification" | "check_verification_failed" | "check_failed" | "check_not_verified" | "runtime_rejected")[];
34
45
  export declare function isWorkbookRunErrorCode(value: unknown): value is WorkbookRunErrorCode;
35
46
  export interface WorkbookRunError {
36
47
  readonly code: WorkbookRunErrorCode;
@@ -38,11 +49,15 @@ export interface WorkbookRunError {
38
49
  }
39
50
  export type WorkbookRunResult = {
40
51
  readonly status: 'done';
52
+ readonly apply?: WorkbookRunApplySummary;
41
53
  readonly changed: readonly WorkbookChangeSummary[];
42
54
  readonly checks: readonly WorkbookCheckResult[];
43
55
  readonly undo?: WorkbookUndoRef;
56
+ readonly unverified?: readonly WorkbookRunUnverified[];
44
57
  } | {
45
58
  readonly status: 'failed';
46
59
  readonly errors: readonly WorkbookRunError[];
60
+ readonly apply?: WorkbookRunApplySummary;
47
61
  readonly checks: readonly WorkbookCheckResult[];
62
+ readonly unverified?: readonly WorkbookRunUnverified[];
48
63
  };
package/dist/result.js CHANGED
@@ -4,6 +4,7 @@ export const workbookRunErrorCodes = Object.freeze([
4
4
  'find_failed',
5
5
  'checks_failed',
6
6
  'action_failed',
7
+ 'ref_not_in_refs',
7
8
  'duplicate_ref',
8
9
  'command_target_not_resolved',
9
10
  'formula_input_not_resolved',
@@ -18,6 +19,8 @@ export const workbookRunErrorCodes = Object.freeze([
18
19
  'op_target_mismatch',
19
20
  'missing_concrete_op',
20
21
  'missing_workbook_op',
22
+ 'apply_not_verified',
23
+ 'apply_mismatch',
21
24
  'apply_failed',
22
25
  'readback_failed',
23
26
  'readback_missing',
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAuEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,kBAAkB;IAClB,sBAAsB;IACtB,aAAa;IACb,eAAe;IACf,eAAe;IACf,eAAe;IACf,6BAA6B;IAC7B,4BAA4B;IAC5B,iBAAiB;IACjB,4BAA4B;IAC5B,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,sCAAsC;IACtC,mCAAmC;IACnC,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,cAAc;IACd,iBAAiB;IACjB,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":"AAwFA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,kBAAkB;IAClB,sBAAsB;IACtB,aAAa;IACb,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,6BAA6B;IAC7B,4BAA4B;IAC5B,iBAAiB;IACjB,4BAA4B;IAC5B,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,sCAAsC;IACtC,mCAAmC;IACnC,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,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"}
package/dist/run.d.ts CHANGED
@@ -1,19 +1,26 @@
1
1
  import type { WorkbookRef } from './find.js';
2
2
  import { type WorkbookActionInput } from './input.js';
3
3
  import { type WorkbookActionMap, type WorkbookActionPlan, type WorkbookModel } from './model.js';
4
+ import type { EngineOp } from './ops.js';
4
5
  import { type WorkbookRunReadback } from './readback.js';
5
6
  import { type WorkbookCheckResult, type WorkbookRunError, type WorkbookRunResult, type WorkbookUndoRef } from './result.js';
6
7
  type MaybePromise<T> = T | Promise<T>;
7
8
  export interface WorkbookRunApplyResult {
8
9
  readonly status: 'applied' | 'failed';
10
+ readonly previewOps?: readonly EngineOp[];
11
+ readonly appliedOps?: readonly EngineOp[];
12
+ readonly proof?: WorkbookActionInput;
9
13
  readonly errors?: readonly WorkbookRunError[];
10
14
  readonly undo?: WorkbookUndoRef;
11
15
  }
16
+ export interface WorkbookRunOptions {
17
+ readonly requireApplyProof?: boolean;
18
+ }
12
19
  export interface WorkbookRunAdapter<Refs = unknown> {
13
20
  readonly apply: (plan: WorkbookActionPlan<Refs>) => MaybePromise<WorkbookRunApplyResult>;
14
21
  readonly read?: (targets: readonly WorkbookRef[], plan: WorkbookActionPlan<Refs>) => MaybePromise<readonly WorkbookRunReadback[]>;
15
22
  readonly verifyChecks?: (checks: readonly WorkbookCheckResult[], plan: WorkbookActionPlan<Refs>) => MaybePromise<readonly WorkbookCheckResult[]>;
16
23
  }
17
- export declare function runWorkbookPlan<Refs>(plan: WorkbookActionPlan<Refs>, adapter: WorkbookRunAdapter<Refs>): Promise<WorkbookRunResult>;
18
- export declare function runWorkbookAction<Refs, Actions extends WorkbookActionMap<Refs>>(model: WorkbookModel<Refs, Actions>, actionName: string, adapter: WorkbookRunAdapter<Refs>, input?: WorkbookActionInput): Promise<WorkbookRunResult>;
24
+ export declare function runWorkbookPlan<Refs>(plan: WorkbookActionPlan<Refs>, adapter: WorkbookRunAdapter<Refs>, options?: WorkbookRunOptions): Promise<WorkbookRunResult>;
25
+ export declare function runWorkbookAction<Refs, Actions extends WorkbookActionMap<Refs>>(model: WorkbookModel<Refs, Actions>, actionName: string, adapter: WorkbookRunAdapter<Refs>, input?: WorkbookActionInput, options?: WorkbookRunOptions): Promise<WorkbookRunResult>;
19
26
  export {};