@bilig/headless 0.8.0 → 0.8.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 (164) hide show
  1. package/README.md +15 -0
  2. package/dist/persistence.d.ts +1 -1
  3. package/dist/persistence.js +13 -11
  4. package/dist/persistence.js.map +1 -1
  5. package/dist/tracked-cell-index-changes.d.ts +1 -7
  6. package/dist/tracked-cell-index-changes.js +20 -434
  7. package/dist/tracked-cell-index-changes.js.map +1 -1
  8. package/dist/tracked-cell-lazy-physical-changes.d.ts +21 -0
  9. package/dist/tracked-cell-lazy-physical-changes.js +333 -0
  10. package/dist/tracked-cell-lazy-physical-changes.js.map +1 -0
  11. package/dist/tracked-cell-value-read.d.ts +18 -0
  12. package/dist/tracked-cell-value-read.js +46 -0
  13. package/dist/tracked-cell-value-read.js.map +1 -0
  14. package/dist/tracked-engine-event-refs.d.ts +1 -1
  15. package/dist/tracked-engine-event-refs.js +14 -4
  16. package/dist/tracked-engine-event-refs.js.map +1 -1
  17. package/dist/tracked-index-source-order.d.ts +5 -0
  18. package/dist/tracked-index-source-order.js +15 -0
  19. package/dist/tracked-index-source-order.js.map +1 -0
  20. package/dist/work-paper-address-format.d.ts +33 -0
  21. package/dist/work-paper-address-format.js +116 -0
  22. package/dist/work-paper-address-format.js.map +1 -0
  23. package/dist/work-paper-axis-helpers.d.ts +26 -0
  24. package/dist/work-paper-axis-helpers.js +104 -0
  25. package/dist/work-paper-axis-helpers.js.map +1 -0
  26. package/dist/work-paper-capability-checks.d.ts +17 -0
  27. package/dist/work-paper-capability-checks.js +101 -0
  28. package/dist/work-paper-capability-checks.js.map +1 -0
  29. package/dist/work-paper-capability-operations.d.ts +34 -0
  30. package/dist/work-paper-capability-operations.js +70 -0
  31. package/dist/work-paper-capability-operations.js.map +1 -0
  32. package/dist/work-paper-capability-surface.d.ts +97 -0
  33. package/dist/work-paper-capability-surface.js +236 -0
  34. package/dist/work-paper-capability-surface.js.map +1 -0
  35. package/dist/work-paper-cell-content-setter.d.ts +37 -0
  36. package/dist/work-paper-cell-content-setter.js +87 -0
  37. package/dist/work-paper-cell-content-setter.js.map +1 -0
  38. package/dist/work-paper-cell-mutation-refs.d.ts +23 -0
  39. package/dist/work-paper-cell-mutation-refs.js +50 -0
  40. package/dist/work-paper-cell-mutation-refs.js.map +1 -0
  41. package/dist/work-paper-cell-read.d.ts +41 -0
  42. package/dist/work-paper-cell-read.js +54 -0
  43. package/dist/work-paper-cell-read.js.map +1 -0
  44. package/dist/work-paper-clipboard-operations.d.ts +24 -0
  45. package/dist/work-paper-clipboard-operations.js +56 -0
  46. package/dist/work-paper-clipboard-operations.js.map +1 -0
  47. package/dist/work-paper-clipboard.d.ts +13 -0
  48. package/dist/work-paper-clipboard.js +19 -0
  49. package/dist/work-paper-clipboard.js.map +1 -0
  50. package/dist/work-paper-config.d.ts +11 -0
  51. package/dist/work-paper-config.js +247 -0
  52. package/dist/work-paper-config.js.map +1 -0
  53. package/dist/work-paper-date-time.d.ts +4 -0
  54. package/dist/work-paper-date-time.js +38 -0
  55. package/dist/work-paper-date-time.js.map +1 -0
  56. package/dist/work-paper-dependency-refs.d.ts +11 -0
  57. package/dist/work-paper-dependency-refs.js +74 -0
  58. package/dist/work-paper-dependency-refs.js.map +1 -0
  59. package/dist/work-paper-emitter.d.ts +22 -0
  60. package/dist/work-paper-emitter.js +130 -0
  61. package/dist/work-paper-emitter.js.map +1 -0
  62. package/dist/work-paper-engine-event-tracker.d.ts +24 -0
  63. package/dist/work-paper-engine-event-tracker.js +92 -0
  64. package/dist/work-paper-engine-event-tracker.js.map +1 -0
  65. package/dist/work-paper-errors.d.ts +4 -0
  66. package/dist/work-paper-errors.js +7 -0
  67. package/dist/work-paper-errors.js.map +1 -1
  68. package/dist/work-paper-existing-numeric-fast-path.d.ts +31 -0
  69. package/dist/work-paper-existing-numeric-fast-path.js +120 -0
  70. package/dist/work-paper-existing-numeric-fast-path.js.map +1 -0
  71. package/dist/work-paper-fill-helpers.d.ts +8 -0
  72. package/dist/work-paper-fill-helpers.js +34 -0
  73. package/dist/work-paper-fill-helpers.js.map +1 -0
  74. package/dist/work-paper-formula-analysis.d.ts +18 -0
  75. package/dist/work-paper-formula-analysis.js +54 -0
  76. package/dist/work-paper-formula-analysis.js.map +1 -0
  77. package/dist/work-paper-formula-rewrite.d.ts +22 -0
  78. package/dist/work-paper-formula-rewrite.js +71 -0
  79. package/dist/work-paper-formula-rewrite.js.map +1 -0
  80. package/dist/work-paper-function-registry.d.ts +39 -0
  81. package/dist/work-paper-function-registry.js +66 -0
  82. package/dist/work-paper-function-registry.js.map +1 -0
  83. package/dist/work-paper-history-operations.d.ts +15 -0
  84. package/dist/work-paper-history-operations.js +14 -0
  85. package/dist/work-paper-history-operations.js.map +1 -0
  86. package/dist/work-paper-history.d.ts +50 -0
  87. package/dist/work-paper-history.js +136 -0
  88. package/dist/work-paper-history.js.map +1 -0
  89. package/dist/work-paper-internals.d.ts +24 -0
  90. package/dist/work-paper-internals.js +59 -0
  91. package/dist/work-paper-internals.js.map +1 -0
  92. package/dist/work-paper-literal-mutation-queue.d.ts +18 -0
  93. package/dist/work-paper-literal-mutation-queue.js +40 -0
  94. package/dist/work-paper-literal-mutation-queue.js.map +1 -0
  95. package/dist/work-paper-matrix-application.d.ts +31 -0
  96. package/dist/work-paper-matrix-application.js +85 -0
  97. package/dist/work-paper-matrix-application.js.map +1 -0
  98. package/dist/work-paper-mutation-queues.d.ts +29 -0
  99. package/dist/work-paper-mutation-queues.js +72 -0
  100. package/dist/work-paper-mutation-queues.js.map +1 -0
  101. package/dist/work-paper-named-expression-fast-path.d.ts +37 -0
  102. package/dist/work-paper-named-expression-fast-path.js +100 -0
  103. package/dist/work-paper-named-expression-fast-path.js.map +1 -0
  104. package/dist/work-paper-named-expression-helpers.d.ts +54 -0
  105. package/dist/work-paper-named-expression-helpers.js +179 -0
  106. package/dist/work-paper-named-expression-helpers.js.map +1 -0
  107. package/dist/work-paper-named-expression-operations.d.ts +39 -0
  108. package/dist/work-paper-named-expression-operations.js +82 -0
  109. package/dist/work-paper-named-expression-operations.js.map +1 -0
  110. package/dist/work-paper-public-surface.d.ts +73 -0
  111. package/dist/work-paper-public-surface.js +165 -0
  112. package/dist/work-paper-public-surface.js.map +1 -0
  113. package/dist/work-paper-read-operations.d.ts +52 -0
  114. package/dist/work-paper-read-operations.js +185 -0
  115. package/dist/work-paper-read-operations.js.map +1 -0
  116. package/dist/work-paper-runtime-adapters.d.ts +144 -0
  117. package/dist/work-paper-runtime-adapters.js +256 -0
  118. package/dist/work-paper-runtime-adapters.js.map +1 -0
  119. package/dist/work-paper-runtime-helpers.d.ts +27 -0
  120. package/dist/work-paper-runtime-helpers.js +305 -0
  121. package/dist/work-paper-runtime-helpers.js.map +1 -0
  122. package/dist/work-paper-runtime-surface.d.ts +137 -0
  123. package/dist/work-paper-runtime-surface.js +702 -0
  124. package/dist/work-paper-runtime-surface.js.map +1 -0
  125. package/dist/work-paper-runtime.d.ts +56 -285
  126. package/dist/work-paper-runtime.js +403 -4809
  127. package/dist/work-paper-runtime.js.map +1 -1
  128. package/dist/work-paper-scratch-evaluator.js +29 -26
  129. package/dist/work-paper-scratch-evaluator.js.map +1 -1
  130. package/dist/work-paper-sheet-dimension-cache.d.ts +36 -0
  131. package/dist/work-paper-sheet-dimension-cache.js +158 -0
  132. package/dist/work-paper-sheet-dimension-cache.js.map +1 -0
  133. package/dist/work-paper-sheet-initialization.d.ts +19 -0
  134. package/dist/work-paper-sheet-initialization.js +93 -0
  135. package/dist/work-paper-sheet-initialization.js.map +1 -0
  136. package/dist/work-paper-sheet-inspection.d.ts +66 -0
  137. package/dist/work-paper-sheet-inspection.js +204 -0
  138. package/dist/work-paper-sheet-inspection.js.map +1 -0
  139. package/dist/work-paper-sheet-operations.d.ts +59 -0
  140. package/dist/work-paper-sheet-operations.js +104 -0
  141. package/dist/work-paper-sheet-operations.js.map +1 -0
  142. package/dist/work-paper-sheet-read.d.ts +21 -0
  143. package/dist/work-paper-sheet-read.js +32 -0
  144. package/dist/work-paper-sheet-read.js.map +1 -0
  145. package/dist/work-paper-sheet-rename-fast-path.d.ts +18 -0
  146. package/dist/work-paper-sheet-rename-fast-path.js +43 -0
  147. package/dist/work-paper-sheet-rename-fast-path.js.map +1 -0
  148. package/dist/work-paper-static-api.d.ts +18 -0
  149. package/dist/work-paper-static-api.js +44 -0
  150. package/dist/work-paper-static-api.js.map +1 -0
  151. package/dist/work-paper-static-registry.d.ts +21 -0
  152. package/dist/work-paper-static-registry.js +150 -0
  153. package/dist/work-paper-static-registry.js.map +1 -0
  154. package/dist/work-paper-tracked-change-reducer.d.ts +41 -0
  155. package/dist/work-paper-tracked-change-reducer.js +281 -0
  156. package/dist/work-paper-tracked-change-reducer.js.map +1 -0
  157. package/dist/work-paper-tracked-event-helpers.d.ts +89 -0
  158. package/dist/work-paper-tracked-event-helpers.js +366 -0
  159. package/dist/work-paper-tracked-event-helpers.js.map +1 -0
  160. package/dist/work-paper-types.d.ts +6 -5
  161. package/dist/work-paper-visibility-snapshot.d.ts +36 -0
  162. package/dist/work-paper-visibility-snapshot.js +62 -0
  163. package/dist/work-paper-visibility-snapshot.js.map +1 -0
  164. package/package.json +13 -5
@@ -0,0 +1,130 @@
1
+ export class WorkPaperEmitter {
2
+ listeners = {
3
+ sheetAdded: new Set(),
4
+ sheetRemoved: new Set(),
5
+ sheetRenamed: new Set(),
6
+ namedExpressionAdded: new Set(),
7
+ namedExpressionRemoved: new Set(),
8
+ valuesUpdated: new Set(),
9
+ evaluationSuspended: new Set(),
10
+ evaluationResumed: new Set(),
11
+ };
12
+ detailedListeners = {
13
+ sheetAdded: new Set(),
14
+ sheetRemoved: new Set(),
15
+ sheetRenamed: new Set(),
16
+ namedExpressionAdded: new Set(),
17
+ namedExpressionRemoved: new Set(),
18
+ valuesUpdated: new Set(),
19
+ evaluationSuspended: new Set(),
20
+ evaluationResumed: new Set(),
21
+ };
22
+ on(eventName, listener) {
23
+ this.listeners[eventName].add(listener);
24
+ }
25
+ off(eventName, listener) {
26
+ this.listeners[eventName].delete(listener);
27
+ }
28
+ once(eventName, listener) {
29
+ const wrapper = (...args) => {
30
+ this.off(eventName, wrapper);
31
+ listener(...args);
32
+ };
33
+ this.on(eventName, wrapper);
34
+ }
35
+ onDetailed(eventName, listener) {
36
+ this.detailedListeners[eventName].add(listener);
37
+ }
38
+ offDetailed(eventName, listener) {
39
+ this.detailedListeners[eventName].delete(listener);
40
+ }
41
+ onceDetailed(eventName, listener) {
42
+ const wrapper = (payload) => {
43
+ this.offDetailed(eventName, wrapper);
44
+ listener(payload);
45
+ };
46
+ this.onDetailed(eventName, wrapper);
47
+ }
48
+ hasListeners(eventName) {
49
+ return this.listeners[eventName].size > 0 || this.detailedListeners[eventName].size > 0;
50
+ }
51
+ hasAnyListeners() {
52
+ return (Object.values(this.listeners).some((listeners) => listeners.size > 0) ||
53
+ Object.values(this.detailedListeners).some((listeners) => listeners.size > 0));
54
+ }
55
+ emitDetailed(event) {
56
+ this.dispatchDetailed(event);
57
+ }
58
+ dispatchDetailed(event) {
59
+ switch (event.eventName) {
60
+ case 'sheetAdded':
61
+ this.listeners.sheetAdded.forEach((listener) => {
62
+ listener(event.payload.sheetName);
63
+ });
64
+ this.detailedListeners.sheetAdded.forEach((listener) => {
65
+ listener(event.payload);
66
+ });
67
+ return;
68
+ case 'sheetRemoved':
69
+ this.listeners.sheetRemoved.forEach((listener) => {
70
+ listener(event.payload.sheetName, event.payload.changes);
71
+ });
72
+ this.detailedListeners.sheetRemoved.forEach((listener) => {
73
+ listener(event.payload);
74
+ });
75
+ return;
76
+ case 'sheetRenamed':
77
+ this.listeners.sheetRenamed.forEach((listener) => {
78
+ listener(event.payload.oldName, event.payload.newName);
79
+ });
80
+ this.detailedListeners.sheetRenamed.forEach((listener) => {
81
+ listener(event.payload);
82
+ });
83
+ return;
84
+ case 'namedExpressionAdded':
85
+ this.listeners.namedExpressionAdded.forEach((listener) => {
86
+ listener(event.payload.name, event.payload.changes);
87
+ });
88
+ this.detailedListeners.namedExpressionAdded.forEach((listener) => {
89
+ listener(event.payload);
90
+ });
91
+ return;
92
+ case 'namedExpressionRemoved':
93
+ this.listeners.namedExpressionRemoved.forEach((listener) => {
94
+ listener(event.payload.name, event.payload.changes);
95
+ });
96
+ this.detailedListeners.namedExpressionRemoved.forEach((listener) => {
97
+ listener(event.payload);
98
+ });
99
+ return;
100
+ case 'valuesUpdated':
101
+ this.listeners.valuesUpdated.forEach((listener) => {
102
+ listener(event.payload.changes);
103
+ });
104
+ this.detailedListeners.valuesUpdated.forEach((listener) => {
105
+ listener(event.payload);
106
+ });
107
+ return;
108
+ case 'evaluationSuspended':
109
+ this.listeners.evaluationSuspended.forEach((listener) => {
110
+ listener();
111
+ });
112
+ this.detailedListeners.evaluationSuspended.forEach((listener) => {
113
+ listener(event.payload);
114
+ });
115
+ return;
116
+ case 'evaluationResumed':
117
+ this.listeners.evaluationResumed.forEach((listener) => {
118
+ listener(event.payload.changes);
119
+ });
120
+ this.detailedListeners.evaluationResumed.forEach((listener) => {
121
+ listener(event.payload);
122
+ });
123
+ }
124
+ }
125
+ clear() {
126
+ Object.values(this.listeners).forEach((listeners) => listeners.clear());
127
+ Object.values(this.detailedListeners).forEach((listeners) => listeners.clear());
128
+ }
129
+ }
130
+ //# sourceMappingURL=work-paper-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-paper-emitter.js","sourceRoot":"","sources":["../src/work-paper-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { SpreadsheetEngine } from '@bilig/core';
2
+ import { type TrackedEngineEvent } from './tracked-engine-event-refs.js';
3
+ import type { WorkPaperCellChange } from './work-paper-types.js';
4
+ export declare class WorkPaperEngineEventTracker {
5
+ private trackedEvents;
6
+ private pendingLazyTrackedChanges;
7
+ private captureEnabled;
8
+ private retainedEventIndicesDepth;
9
+ private unsubscribe;
10
+ get hasTrackedEvents(): boolean;
11
+ get hasPendingLazyChanges(): boolean;
12
+ get isCaptureEnabled(): boolean;
13
+ setCaptureEnabled(enabled: boolean): void;
14
+ attach(engine: SpreadsheetEngine): void;
15
+ dispose(): void;
16
+ clearEvents(): void;
17
+ drain(): TrackedEngineEvent[];
18
+ withRetainedIndices<T>(callback: () => T): T;
19
+ withCaptureDisabled<T>(callback: () => T): T;
20
+ trackLazyChanges(changes: WorkPaperCellChange[]): void;
21
+ materializePendingLazyChanges(options?: {
22
+ readonly preservePositions?: boolean;
23
+ }): void;
24
+ }
@@ -0,0 +1,92 @@
1
+ import { detachTrackedIndexChanges, hasDeferredTrackedIndexChanges } from './tracked-cell-index-changes.js';
2
+ import { captureTrackedEngineEvent } from './tracked-engine-event-refs.js';
3
+ import { WorkPaperOperationError } from './work-paper-errors.js';
4
+ function hasTrackedEngineSubscription(value) {
5
+ return typeof value === 'object' && value !== null && typeof Reflect.get(value, 'subscribeTracked') === 'function';
6
+ }
7
+ export class WorkPaperEngineEventTracker {
8
+ trackedEvents = [];
9
+ pendingLazyTrackedChanges = [];
10
+ captureEnabled = true;
11
+ retainedEventIndicesDepth = 0;
12
+ unsubscribe = null;
13
+ get hasTrackedEvents() {
14
+ return this.trackedEvents.length > 0;
15
+ }
16
+ get hasPendingLazyChanges() {
17
+ return this.pendingLazyTrackedChanges.length > 0;
18
+ }
19
+ get isCaptureEnabled() {
20
+ return this.captureEnabled;
21
+ }
22
+ setCaptureEnabled(enabled) {
23
+ this.captureEnabled = enabled;
24
+ }
25
+ attach(engine) {
26
+ this.unsubscribe?.();
27
+ this.trackedEvents = [];
28
+ if (!hasTrackedEngineSubscription(engine.events)) {
29
+ throw new WorkPaperOperationError('Tracked engine event subscription is unavailable');
30
+ }
31
+ this.unsubscribe = engine.events.subscribeTracked((event) => {
32
+ if (!this.captureEnabled) {
33
+ return;
34
+ }
35
+ this.trackedEvents.push(captureTrackedEngineEvent(event, {
36
+ borrowChangedCellIndexViews: this.retainedEventIndicesDepth > 0,
37
+ cloneChangedCellIndices: this.retainedEventIndicesDepth === 0,
38
+ }));
39
+ });
40
+ }
41
+ dispose() {
42
+ this.materializePendingLazyChanges();
43
+ this.unsubscribe?.();
44
+ this.unsubscribe = null;
45
+ this.clearEvents();
46
+ }
47
+ clearEvents() {
48
+ this.trackedEvents = [];
49
+ }
50
+ drain() {
51
+ const events = this.trackedEvents;
52
+ this.trackedEvents = [];
53
+ return events;
54
+ }
55
+ withRetainedIndices(callback) {
56
+ this.retainedEventIndicesDepth += 1;
57
+ try {
58
+ return callback();
59
+ }
60
+ finally {
61
+ this.retainedEventIndicesDepth -= 1;
62
+ }
63
+ }
64
+ withCaptureDisabled(callback) {
65
+ const previous = this.captureEnabled;
66
+ this.captureEnabled = false;
67
+ this.trackedEvents = [];
68
+ try {
69
+ return callback();
70
+ }
71
+ finally {
72
+ this.captureEnabled = previous;
73
+ this.trackedEvents = [];
74
+ }
75
+ }
76
+ trackLazyChanges(changes) {
77
+ if (hasDeferredTrackedIndexChanges(changes)) {
78
+ this.pendingLazyTrackedChanges.push(changes);
79
+ }
80
+ }
81
+ materializePendingLazyChanges(options = {}) {
82
+ if (this.pendingLazyTrackedChanges.length === 0) {
83
+ return;
84
+ }
85
+ const pending = this.pendingLazyTrackedChanges;
86
+ this.pendingLazyTrackedChanges = [];
87
+ for (let index = 0; index < pending.length; index += 1) {
88
+ detachTrackedIndexChanges(pending[index], options.preservePositions === undefined ? {} : { preservePositions: options.preservePositions });
89
+ }
90
+ }
91
+ }
92
+ //# sourceMappingURL=work-paper-engine-event-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-paper-engine-event-tracker.js","sourceRoot":"","sources":["../src/work-paper-engine-event-tracker.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ export declare class WorkPaperConfigValueTooSmallError extends BaseWorkPaperErro
11
11
  export declare class WorkPaperEvaluationSuspendedError extends BaseWorkPaperError {
12
12
  constructor(message?: string);
13
13
  }
14
+ export declare class WorkPaperEvaluationTimeoutError extends BaseWorkPaperError {
15
+ readonly timeoutMs: number;
16
+ constructor(timeoutMs: number);
17
+ }
14
18
  export declare class WorkPaperExpectedOneOfValuesError extends BaseWorkPaperError {
15
19
  constructor(values: string, paramName: string);
16
20
  }
@@ -19,6 +19,13 @@ export class WorkPaperEvaluationSuspendedError extends BaseWorkPaperError {
19
19
  super('WorkPaperEvaluationSuspendedError', message);
20
20
  }
21
21
  }
22
+ export class WorkPaperEvaluationTimeoutError extends BaseWorkPaperError {
23
+ timeoutMs;
24
+ constructor(timeoutMs) {
25
+ super('WorkPaperEvaluationTimeoutError', `Workbook evaluation timed out after ${timeoutMs}ms`);
26
+ this.timeoutMs = timeoutMs;
27
+ }
28
+ }
22
29
  export class WorkPaperExpectedOneOfValuesError extends BaseWorkPaperError {
23
30
  constructor(values, paramName) {
24
31
  super('WorkPaperExpectedOneOfValuesError', `Expected one of ${values} for config parameter: ${paramName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"work-paper-errors.js","sourceRoot":"","sources":["../src/work-paper-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"work-paper-errors.js","sourceRoot":"","sources":["../src/work-paper-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { type SheetRecord, type SpreadsheetEngine } from '@bilig/core';
2
+ import type { TrackedEngineEvent } from './tracked-engine-event-refs.js';
3
+ import type { WorkPaperCellAddress, WorkPaperCellChange, WorkPaperChange } from './work-paper-types.js';
4
+ export interface WorkPaperExistingNumericFastPathRuntime {
5
+ readonly canUseTrackedMutationFastPath: () => boolean;
6
+ readonly getEngine: () => SpreadsheetEngine;
7
+ readonly hasPendingLazyTrackedChanges: () => boolean;
8
+ readonly materializePendingLazyTrackedChanges: () => void;
9
+ readonly hasTrackedEngineEvents: () => boolean;
10
+ readonly drainTrackedEngineEvents: () => readonly TrackedEngineEvent[];
11
+ readonly clearTrackedEngineEvents: () => void;
12
+ readonly getEngineEventCaptureEnabled: () => boolean;
13
+ readonly setEngineEventCaptureEnabled: (enabled: boolean) => void;
14
+ readonly hasPendingBatchOps: () => boolean;
15
+ readonly flushPendingBatchOps: () => void;
16
+ readonly messageOf: (error: unknown, fallback: string) => string;
17
+ readonly trackedA1: (row: number, col: number) => string;
18
+ readonly orderChanges: (changes: WorkPaperCellChange[], explicitChangedCount: number | undefined) => WorkPaperChange[];
19
+ readonly computeTrackedChangesWithoutVisibilityCache: (events: readonly TrackedEngineEvent[], options: {
20
+ readonly preferLazyPublicChanges?: boolean;
21
+ }) => WorkPaperChange[];
22
+ readonly hasValuesUpdatedListeners: () => boolean;
23
+ readonly emitValuesUpdated: (changes: WorkPaperChange[]) => void;
24
+ }
25
+ export interface ExistingNumericWorkPaperCellContentsRequest {
26
+ readonly sheet: SheetRecord;
27
+ readonly address: WorkPaperCellAddress;
28
+ readonly cellIndex: number;
29
+ readonly value: number;
30
+ }
31
+ export declare function trySetExistingNumericWorkPaperCellContentsWithTrackedFastPath(runtime: WorkPaperExistingNumericFastPathRuntime, request: ExistingNumericWorkPaperCellContentsRequest): WorkPaperChange[] | null;
@@ -0,0 +1,120 @@
1
+ import { ValueTag } from '@bilig/protocol';
2
+ import { WORKPAPER_PUBLIC_ERROR_NAMES } from './work-paper-config.js';
3
+ import { WorkPaperOperationError } from './work-paper-errors.js';
4
+ import { trackedEventFromExistingNumericMutationResult, tryBuildDirectExistingNumericTrackedChanges, } from './work-paper-tracked-event-helpers.js';
5
+ const FAST_EXISTING_NUMERIC_LITERAL_FLAGS = 2 /* CellFlags.HasFormula */ | 4 /* CellFlags.JsOnly */ | 8 /* CellFlags.InCycle */ | 64 /* CellFlags.SpillChild */ | 128 /* CellFlags.PivotOutput */;
6
+ export function trySetExistingNumericWorkPaperCellContentsWithTrackedFastPath(runtime, request) {
7
+ if (!runtime.canUseTrackedMutationFastPath() || request.sheet.structureVersion !== 1) {
8
+ return null;
9
+ }
10
+ const engine = runtime.getEngine();
11
+ const cellStore = engine.workbook.cellStore;
12
+ if (cellStore.sheetIds[request.cellIndex] !== request.address.sheet ||
13
+ cellStore.rows[request.cellIndex] !== request.address.row ||
14
+ cellStore.cols[request.cellIndex] !== request.address.col ||
15
+ (cellStore.formulaIds[request.cellIndex] ?? 0) !== 0 ||
16
+ ((cellStore.flags[request.cellIndex] ?? 0) & FAST_EXISTING_NUMERIC_LITERAL_FLAGS) !== 0 ||
17
+ cellStore.tags[request.cellIndex] !== ValueTag.Number) {
18
+ return null;
19
+ }
20
+ const existingNumericMutationEngine = engine;
21
+ if (typeof existingNumericMutationEngine.tryApplyExistingNumericCellMutationAt !== 'function') {
22
+ return null;
23
+ }
24
+ if (runtime.hasPendingLazyTrackedChanges()) {
25
+ runtime.materializePendingLazyTrackedChanges();
26
+ }
27
+ if (runtime.hasTrackedEngineEvents()) {
28
+ runtime.drainTrackedEngineEvents();
29
+ }
30
+ let result = null;
31
+ const oldNumericValue = cellStore.numbers[request.cellIndex] ?? 0;
32
+ const previousCaptureEnabled = runtime.getEngineEventCaptureEnabled();
33
+ runtime.setEngineEventCaptureEnabled(false);
34
+ try {
35
+ if (runtime.hasPendingBatchOps()) {
36
+ runtime.flushPendingBatchOps();
37
+ }
38
+ result = existingNumericMutationEngine.tryApplyExistingNumericCellMutationAt({
39
+ sheetId: request.address.sheet,
40
+ row: request.address.row,
41
+ col: request.address.col,
42
+ cellIndex: request.cellIndex,
43
+ value: request.value,
44
+ emitTracked: false,
45
+ trustedExistingNumericLiteral: true,
46
+ oldNumericValue,
47
+ });
48
+ }
49
+ catch (error) {
50
+ if (error instanceof Error && WORKPAPER_PUBLIC_ERROR_NAMES.has(error.name)) {
51
+ throw error;
52
+ }
53
+ throw new WorkPaperOperationError(runtime.messageOf(error, 'Mutation failed'));
54
+ }
55
+ finally {
56
+ runtime.setEngineEventCaptureEnabled(previousCaptureEnabled);
57
+ }
58
+ if (!result) {
59
+ return null;
60
+ }
61
+ if (runtime.hasTrackedEngineEvents()) {
62
+ runtime.clearTrackedEngineEvents();
63
+ }
64
+ if (result.changedCellIndices === undefined &&
65
+ result.changedCellCount === 2 &&
66
+ result.firstChangedCellIndex === request.cellIndex &&
67
+ result.secondChangedCellIndex !== undefined &&
68
+ result.secondChangedNumericValue !== undefined &&
69
+ result.secondChangedRow !== undefined &&
70
+ result.secondChangedCol !== undefined) {
71
+ const changes = [
72
+ {
73
+ kind: 'cell',
74
+ address: { sheet: request.address.sheet, row: request.address.row, col: request.address.col },
75
+ sheetName: request.sheet.name,
76
+ a1: runtime.trackedA1(request.address.row, request.address.col),
77
+ newValue: { tag: ValueTag.Number, value: request.value },
78
+ },
79
+ {
80
+ kind: 'cell',
81
+ address: { sheet: request.address.sheet, row: result.secondChangedRow, col: result.secondChangedCol },
82
+ sheetName: request.sheet.name,
83
+ a1: runtime.trackedA1(result.secondChangedRow, result.secondChangedCol),
84
+ newValue: { tag: ValueTag.Number, value: result.secondChangedNumericValue },
85
+ },
86
+ ];
87
+ if (runtime.hasValuesUpdatedListeners()) {
88
+ runtime.emitValuesUpdated(changes);
89
+ }
90
+ return changes;
91
+ }
92
+ let changes = tryBuildDirectExistingNumericTrackedChanges({
93
+ result,
94
+ address: request.address,
95
+ cellIndex: request.cellIndex,
96
+ isPhysicalSheet: true,
97
+ sheetName: request.sheet.name,
98
+ value: request.value,
99
+ cellStore,
100
+ strings: engine.strings,
101
+ trackedA1: (row, col) => runtime.trackedA1(row, col),
102
+ orderChanges: (changesToOrder, explicitChangedCount) => runtime.orderChanges(changesToOrder, explicitChangedCount),
103
+ });
104
+ if (changes === null) {
105
+ const shouldEmitValuesUpdated = runtime.hasValuesUpdatedListeners();
106
+ const events = [trackedEventFromExistingNumericMutationResult(result)];
107
+ changes = runtime.computeTrackedChangesWithoutVisibilityCache(events, {
108
+ preferLazyPublicChanges: !shouldEmitValuesUpdated,
109
+ });
110
+ if (changes.length > 0 && shouldEmitValuesUpdated) {
111
+ runtime.emitValuesUpdated(changes);
112
+ }
113
+ return changes;
114
+ }
115
+ if (changes.length > 0 && runtime.hasValuesUpdatedListeners()) {
116
+ runtime.emitValuesUpdated(changes);
117
+ }
118
+ return changes;
119
+ }
120
+ //# sourceMappingURL=work-paper-existing-numeric-fast-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-paper-existing-numeric-fast-path.js","sourceRoot":"","sources":["../src/work-paper-existing-numeric-fast-path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { RawCellContent, WorkPaperCellRange } from './work-paper-types.js';
2
+ export declare function buildWorkPaperNullMatrixForRange(range: WorkPaperCellRange): RawCellContent[][];
3
+ export declare function buildWorkPaperFillRangeData(input: {
4
+ readonly source: WorkPaperCellRange;
5
+ readonly target: WorkPaperCellRange;
6
+ readonly sourceSerialized: RawCellContent[][];
7
+ readonly offsetsFromTarget: boolean;
8
+ }): RawCellContent[][];
@@ -0,0 +1,34 @@
1
+ import { translateFormulaReferences } from '@bilig/formula';
2
+ export function buildWorkPaperNullMatrixForRange(range) {
3
+ const height = range.end.row - range.start.row + 1;
4
+ const width = range.end.col - range.start.col + 1;
5
+ return Array.from({ length: height }, () => Array.from({ length: width }, () => null));
6
+ }
7
+ export function buildWorkPaperFillRangeData(input) {
8
+ const targetHeight = input.target.end.row - input.target.start.row + 1;
9
+ const targetWidth = input.target.end.col - input.target.start.col + 1;
10
+ const sourceHeight = Math.max(input.sourceSerialized.length, 1);
11
+ const sourceWidth = Math.max(input.sourceSerialized[0]?.length ?? 0, 1);
12
+ const output = [];
13
+ for (let rowOffset = 0; rowOffset < targetHeight; rowOffset += 1) {
14
+ const row = [];
15
+ for (let colOffset = 0; colOffset < targetWidth; colOffset += 1) {
16
+ const targetRow = input.target.start.row + rowOffset;
17
+ const targetCol = input.target.start.col + colOffset;
18
+ const sourceRow = (((targetRow - (input.offsetsFromTarget ? input.target.start.row : input.source.start.row)) % sourceHeight) + sourceHeight) %
19
+ sourceHeight;
20
+ const sourceCol = (((targetCol - (input.offsetsFromTarget ? input.target.start.col : input.source.start.col)) % sourceWidth) + sourceWidth) %
21
+ sourceWidth;
22
+ const raw = input.sourceSerialized[sourceRow]?.[sourceCol] ?? null;
23
+ if (typeof raw === 'string' && raw.startsWith('=')) {
24
+ row.push(`=${translateFormulaReferences(raw.slice(1), targetRow - (input.source.start.row + sourceRow), targetCol - (input.source.start.col + sourceCol))}`);
25
+ }
26
+ else {
27
+ row.push(raw);
28
+ }
29
+ }
30
+ output.push(row);
31
+ }
32
+ return output;
33
+ }
34
+ //# sourceMappingURL=work-paper-fill-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-paper-fill-helpers.js","sourceRoot":"","sources":["../src/work-paper-fill-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CellValue } from '@bilig/protocol';
2
+ import { type WorkPaperScratchWorkbook } from './work-paper-scratch-evaluator.js';
3
+ import type { SerializedWorkPaperNamedExpression, WorkPaperConfig, WorkPaperSheets } from './work-paper-types.js';
4
+ export interface WorkPaperFormulaAnalysisHooks {
5
+ readonly messageOf: (error: unknown, fallback: string) => string;
6
+ }
7
+ export declare function normalizeWorkPaperFormula(formula: string, hooks: WorkPaperFormulaAnalysisHooks): string;
8
+ export declare function calculateWorkPaperFormula(args: {
9
+ readonly createWorkbook: (config: WorkPaperConfig) => WorkPaperScratchWorkbook;
10
+ readonly config: WorkPaperConfig;
11
+ readonly serializedSheets: WorkPaperSheets;
12
+ readonly namedExpressions: readonly SerializedWorkPaperNamedExpression[];
13
+ readonly formula: string;
14
+ readonly scope?: number;
15
+ readonly messageOf: (error: unknown, fallback: string) => string;
16
+ }): CellValue | CellValue[][];
17
+ export declare function getWorkPaperNamedExpressionsFromFormula(formula: string, hooks: WorkPaperFormulaAnalysisHooks): string[];
18
+ export declare function validateWorkPaperFormula(formula: string): boolean;
@@ -0,0 +1,54 @@
1
+ import { parseFormula, serializeFormula } from '@bilig/formula';
2
+ import { WorkPaperNotAFormulaError, WorkPaperParseError } from './work-paper-errors.js';
3
+ import { collectFormulaNameRefs, stripLeadingEquals } from './work-paper-runtime-helpers.js';
4
+ import { compareSheetNames } from './work-paper-sheet-inspection.js';
5
+ import { calculateWorkPaperFormulaInScratchWorkbook } from './work-paper-scratch-evaluator.js';
6
+ export function normalizeWorkPaperFormula(formula, hooks) {
7
+ if (!formula.trim().startsWith('=')) {
8
+ throw new WorkPaperNotAFormulaError();
9
+ }
10
+ try {
11
+ return `=${serializeFormula(parseFormula(stripLeadingEquals(formula)))}`;
12
+ }
13
+ catch (error) {
14
+ throw new WorkPaperParseError(hooks.messageOf(error, 'Unable to normalize formula'));
15
+ }
16
+ }
17
+ export function calculateWorkPaperFormula(args) {
18
+ if (!args.formula.trim().startsWith('=')) {
19
+ throw new WorkPaperNotAFormulaError();
20
+ }
21
+ try {
22
+ return calculateWorkPaperFormulaInScratchWorkbook(args);
23
+ }
24
+ catch (error) {
25
+ throw new WorkPaperParseError(args.messageOf(error, 'Unable to calculate formula'));
26
+ }
27
+ }
28
+ export function getWorkPaperNamedExpressionsFromFormula(formula, hooks) {
29
+ if (!formula.trim().startsWith('=')) {
30
+ throw new WorkPaperNotAFormulaError();
31
+ }
32
+ try {
33
+ const parsed = parseFormula(stripLeadingEquals(formula));
34
+ const names = new Set();
35
+ collectFormulaNameRefs(parsed, names);
36
+ return [...names].toSorted(compareSheetNames);
37
+ }
38
+ catch (error) {
39
+ throw new WorkPaperParseError(hooks.messageOf(error, 'Unable to inspect formula'));
40
+ }
41
+ }
42
+ export function validateWorkPaperFormula(formula) {
43
+ if (!formula.trim().startsWith('=')) {
44
+ return false;
45
+ }
46
+ try {
47
+ parseFormula(stripLeadingEquals(formula));
48
+ return true;
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ }
54
+ //# sourceMappingURL=work-paper-formula-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-paper-formula-analysis.js","sourceRoot":"","sources":["../src/work-paper-formula-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACvF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,0CAA0C,EAAiC,MAAM,mCAAmC,CAAA;AAO7H,MAAM,UAAU,yBAAyB,CAAC,OAAe,EAAE,KAAoC;IAC7F,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,yBAAyB,EAAE,CAAA;IACvC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,gBAAgB,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC,CAAA;IACtF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAQzC;IACC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,yBAAyB,EAAE,CAAA;IACvC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,0CAA0C,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC,CAAA;IACrF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,OAAe,EAAE,KAAoC;IAC3G,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,yBAAyB,EAAE,CAAA;IACvC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;QAC/B,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACrC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC,CAAA;IACpF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC;QACH,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ export interface WorkPaperFormulaNamedExpressionBinding {
2
+ readonly publicName: string;
3
+ readonly internalName: string;
4
+ readonly scope?: number;
5
+ }
6
+ export interface WorkPaperFormulaFunctionBinding {
7
+ readonly publicName: string;
8
+ readonly internalName: string;
9
+ }
10
+ export declare function rewriteWorkPaperFormulaForStorage(input: {
11
+ readonly formula: string;
12
+ readonly ownerSheetId: number;
13
+ readonly namedExpressions: ReadonlyMap<string, WorkPaperFormulaNamedExpressionBinding>;
14
+ readonly functionAliasLookup: ReadonlyMap<string, WorkPaperFormulaFunctionBinding>;
15
+ readonly messageOf: (error: unknown, fallback: string) => string;
16
+ }): string;
17
+ export declare function restorePublicWorkPaperFormula(input: {
18
+ readonly formula: string;
19
+ readonly ownerSheetId: number;
20
+ readonly namedExpressions: ReadonlyMap<string, WorkPaperFormulaNamedExpressionBinding>;
21
+ readonly internalFunctionLookup: ReadonlyMap<string, WorkPaperFormulaFunctionBinding>;
22
+ }): string;