@bilig/workbook 0.86.0 → 0.90.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.
@@ -0,0 +1,368 @@
1
+ import { isLiteralInput } from '@bilig/protocol';
2
+ import { isWorkbookRowOperator, isWorkbookRowValueCompatible } from './selectors.js';
3
+ const workbookRefDataKinds = Object.freeze(['range', 'name', 'table', 'column', 'rows']);
4
+ const workbookRefDataKindSet = new Set(workbookRefDataKinds);
5
+ function refDataIssue(code, path, message) {
6
+ return Object.freeze({
7
+ code,
8
+ path,
9
+ message,
10
+ });
11
+ }
12
+ function invalidType(path, label) {
13
+ return refDataIssue('invalid_type', path, `${label} must be an object`);
14
+ }
15
+ function isRefDataObject(value) {
16
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
17
+ }
18
+ function isWorkbookRefDataKind(value) {
19
+ return typeof value === 'string' && workbookRefDataKindSet.has(value);
20
+ }
21
+ function ownDataDescriptor(value, key) {
22
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
23
+ if (descriptor === undefined || !descriptor.enumerable) {
24
+ return undefined;
25
+ }
26
+ return descriptor;
27
+ }
28
+ function ownDataValue(value, key) {
29
+ const descriptor = ownDataDescriptor(value, key);
30
+ return descriptor !== undefined && 'value' in descriptor ? descriptor.value : undefined;
31
+ }
32
+ function pushRequiredStringIssue(issues, value, path, key) {
33
+ const fieldPath = `${path}.${key}`;
34
+ const descriptor = ownDataDescriptor(value, key);
35
+ if (descriptor === undefined) {
36
+ issues.push(refDataIssue('missing_field', fieldPath, `Workbook ref data ${fieldPath} is required`));
37
+ return;
38
+ }
39
+ if (!('value' in descriptor)) {
40
+ issues.push(refDataIssue('invalid_field', fieldPath, `Workbook ref data ${fieldPath} must be a data property`));
41
+ return;
42
+ }
43
+ if (typeof descriptor.value !== 'string') {
44
+ issues.push(refDataIssue('invalid_field', fieldPath, `Workbook ref data ${fieldPath} must be a string`));
45
+ }
46
+ }
47
+ function pushOptionalStringIssue(issues, value, path, key) {
48
+ const fieldPath = `${path}.${key}`;
49
+ const descriptor = ownDataDescriptor(value, key);
50
+ if (descriptor === undefined) {
51
+ return;
52
+ }
53
+ if (!('value' in descriptor)) {
54
+ issues.push(refDataIssue('invalid_field', fieldPath, `Workbook ref data ${fieldPath} must be a data property`));
55
+ return;
56
+ }
57
+ if (typeof descriptor.value !== 'string') {
58
+ issues.push(refDataIssue('invalid_field', fieldPath, `Workbook ref data ${fieldPath} must be a string`));
59
+ }
60
+ }
61
+ function pushOptionalStringArrayIssue(issues, value, path, key) {
62
+ const fieldPath = `${path}.${key}`;
63
+ const descriptor = ownDataDescriptor(value, key);
64
+ if (descriptor === undefined) {
65
+ return;
66
+ }
67
+ if (!('value' in descriptor)) {
68
+ issues.push(refDataIssue('invalid_field', fieldPath, `Workbook ref data ${fieldPath} must be a data property`));
69
+ return;
70
+ }
71
+ if (!Array.isArray(descriptor.value)) {
72
+ issues.push(refDataIssue('invalid_field', fieldPath, `Workbook ref data ${fieldPath} must be an array`));
73
+ return;
74
+ }
75
+ const arrayDescriptors = Object.getOwnPropertyDescriptors(descriptor.value);
76
+ for (let index = 0; index < descriptor.value.length; index += 1) {
77
+ const entryPath = `${fieldPath}[${index}]`;
78
+ const entry = arrayDescriptors[String(index)];
79
+ if (entry === undefined || !entry.enumerable || !('value' in entry)) {
80
+ issues.push(refDataIssue('invalid_field', entryPath, `Workbook ref data ${entryPath} must be a data property`));
81
+ continue;
82
+ }
83
+ if (typeof entry.value !== 'string') {
84
+ issues.push(refDataIssue('invalid_field', entryPath, `Workbook ref data ${entryPath} must be a string`));
85
+ }
86
+ }
87
+ }
88
+ function pushBaseRefDataIssues(issues, value, path) {
89
+ pushRequiredStringIssue(issues, value, path, 'kind');
90
+ pushRequiredStringIssue(issues, value, path, 'id');
91
+ pushRequiredStringIssue(issues, value, path, 'label');
92
+ const kind = ownDataValue(value, 'kind');
93
+ if (!isWorkbookRefDataKind(kind)) {
94
+ if (typeof kind === 'string') {
95
+ issues.push(refDataIssue('invalid_field', `${path}.kind`, `Workbook ref data ${path}.kind must be a workbook ref kind`));
96
+ }
97
+ return undefined;
98
+ }
99
+ return kind;
100
+ }
101
+ function pushRangeIssues(issues, value, path) {
102
+ if (!isRefDataObject(value)) {
103
+ issues.push(invalidType(path, `Workbook ref data ${path}`));
104
+ return;
105
+ }
106
+ pushRequiredStringIssue(issues, value, path, 'sheetName');
107
+ pushRequiredStringIssue(issues, value, path, 'startAddress');
108
+ pushRequiredStringIssue(issues, value, path, 'endAddress');
109
+ }
110
+ function pushNameRefDataIssues(issues, value, path) {
111
+ pushRequiredStringIssue(issues, value, path, 'name');
112
+ }
113
+ function pushTableRefDataIssues(issues, value, path) {
114
+ pushOptionalStringIssue(issues, value, path, 'name');
115
+ pushOptionalStringIssue(issues, value, path, 'sheetName');
116
+ pushOptionalStringArrayIssue(issues, value, path, 'headers');
117
+ }
118
+ function pushRowsWhereIssues(issues, value, path) {
119
+ if (!isRefDataObject(value)) {
120
+ issues.push(invalidType(path, `Workbook ref data ${path}`));
121
+ return;
122
+ }
123
+ pushRequiredStringIssue(issues, value, path, 'column');
124
+ const op = ownDataValue(value, 'op');
125
+ if (!isWorkbookRowOperator(op)) {
126
+ const descriptor = ownDataDescriptor(value, 'op');
127
+ issues.push(refDataIssue(descriptor === undefined ? 'missing_field' : 'invalid_field', `${path}.op`, `Workbook ref data ${path}.op must be a workbook row operator`));
128
+ return;
129
+ }
130
+ const rowValue = ownDataValue(value, 'value');
131
+ if (!isLiteralInput(rowValue)) {
132
+ const descriptor = ownDataDescriptor(value, 'value');
133
+ issues.push(refDataIssue(descriptor === undefined ? 'missing_field' : 'invalid_field', `${path}.value`, `Workbook ref data ${path}.value must be a finite JSON literal`));
134
+ return;
135
+ }
136
+ if (!isWorkbookRowValueCompatible(op, rowValue)) {
137
+ issues.push(refDataIssue('invalid_field', `${path}.value`, `Workbook ref data ${path}.value is not compatible with row operator ${op}`));
138
+ }
139
+ }
140
+ function pushRowsRefDataIssues(issues, value, path) {
141
+ pushOptionalStringIssue(issues, value, path, 'sheetName');
142
+ const table = ownDataDescriptor(value, 'table');
143
+ if (table !== undefined) {
144
+ if (!('value' in table)) {
145
+ issues.push(refDataIssue('invalid_field', `${path}.table`, `Workbook ref data ${path}.table must be a data property`));
146
+ }
147
+ else {
148
+ pushRefDataIssues(issues, table.value, `${path}.table`);
149
+ if (isRefDataObject(table.value) && ownDataValue(table.value, 'kind') !== 'table') {
150
+ issues.push(refDataIssue('invalid_field', `${path}.table.kind`, `Workbook ref data ${path}.table must be a table ref`));
151
+ }
152
+ }
153
+ }
154
+ pushRowsWhereIssues(issues, ownDataValue(value, 'where'), `${path}.where`);
155
+ }
156
+ function pushColumnRefDataIssues(issues, value, path) {
157
+ pushRequiredStringIssue(issues, value, path, 'name');
158
+ const table = ownDataValue(value, 'table');
159
+ pushRefDataIssues(issues, table, `${path}.table`);
160
+ if (isRefDataObject(table) && ownDataValue(table, 'kind') !== 'table') {
161
+ issues.push(refDataIssue('invalid_field', `${path}.table.kind`, `Workbook ref data ${path}.table must be a table ref`));
162
+ }
163
+ const rows = ownDataDescriptor(value, 'rows');
164
+ if (rows !== undefined) {
165
+ if (!('value' in rows)) {
166
+ issues.push(refDataIssue('invalid_field', `${path}.rows`, `Workbook ref data ${path}.rows must be a data property`));
167
+ }
168
+ else {
169
+ pushRefDataIssues(issues, rows.value, `${path}.rows`);
170
+ if (isRefDataObject(rows.value) && ownDataValue(rows.value, 'kind') !== 'rows') {
171
+ issues.push(refDataIssue('invalid_field', `${path}.rows.kind`, `Workbook ref data ${path}.rows must be a rows ref`));
172
+ }
173
+ }
174
+ }
175
+ }
176
+ function pushRefDataIssues(issues, value, path) {
177
+ if (!isRefDataObject(value)) {
178
+ issues.push(invalidType(path, `Workbook ref data ${path}`));
179
+ return;
180
+ }
181
+ const kind = pushBaseRefDataIssues(issues, value, path);
182
+ switch (kind) {
183
+ case 'range':
184
+ pushRangeIssues(issues, ownDataValue(value, 'range'), `${path}.range`);
185
+ return;
186
+ case 'name':
187
+ pushNameRefDataIssues(issues, value, path);
188
+ return;
189
+ case 'table':
190
+ pushTableRefDataIssues(issues, value, path);
191
+ return;
192
+ case 'column':
193
+ pushColumnRefDataIssues(issues, value, path);
194
+ return;
195
+ case 'rows':
196
+ pushRowsRefDataIssues(issues, value, path);
197
+ return;
198
+ case undefined:
199
+ return;
200
+ }
201
+ }
202
+ function freezeRefData(value, seen = new WeakSet()) {
203
+ if (typeof value !== 'object' || value === null) {
204
+ return value;
205
+ }
206
+ if (seen.has(value)) {
207
+ return value;
208
+ }
209
+ seen.add(value);
210
+ Object.values(Object.getOwnPropertyDescriptors(value)).forEach((descriptor) => {
211
+ if ('value' in descriptor) {
212
+ freezeRefData(descriptor.value, seen);
213
+ }
214
+ });
215
+ return Object.freeze(value);
216
+ }
217
+ function requiredStringValue(value, key) {
218
+ const raw = ownDataValue(value, key);
219
+ if (typeof raw !== 'string') {
220
+ throw new Error(`Workbook ref data ${key} is invalid`);
221
+ }
222
+ return raw;
223
+ }
224
+ function optionalStringValue(value, key) {
225
+ const raw = ownDataValue(value, key);
226
+ if (raw === undefined) {
227
+ return undefined;
228
+ }
229
+ if (typeof raw !== 'string') {
230
+ throw new Error(`Workbook ref data ${key} is invalid`);
231
+ }
232
+ return raw;
233
+ }
234
+ function optionalStringArrayValue(value, key) {
235
+ const raw = ownDataValue(value, key);
236
+ if (raw === undefined) {
237
+ return undefined;
238
+ }
239
+ if (!Array.isArray(raw)) {
240
+ throw new Error(`Workbook ref data ${key} is invalid`);
241
+ }
242
+ const entries = [];
243
+ const descriptors = Object.getOwnPropertyDescriptors(raw);
244
+ for (let index = 0; index < raw.length; index += 1) {
245
+ const entry = descriptors[String(index)];
246
+ if (entry === undefined || !entry.enumerable || !('value' in entry) || typeof entry.value !== 'string') {
247
+ throw new Error(`Workbook ref data ${key} is invalid`);
248
+ }
249
+ entries.push(entry.value);
250
+ }
251
+ return Object.freeze(entries);
252
+ }
253
+ function normalizeRangeData(value) {
254
+ if (!isRefDataObject(value)) {
255
+ throw new Error('Workbook ref data range is invalid');
256
+ }
257
+ return Object.freeze({
258
+ sheetName: requiredStringValue(value, 'sheetName'),
259
+ startAddress: requiredStringValue(value, 'startAddress'),
260
+ endAddress: requiredStringValue(value, 'endAddress'),
261
+ });
262
+ }
263
+ function normalizeRowsWhere(value) {
264
+ if (!isRefDataObject(value)) {
265
+ throw new Error('Workbook ref data where is invalid');
266
+ }
267
+ const op = ownDataValue(value, 'op');
268
+ const rowValue = ownDataValue(value, 'value');
269
+ if (!isWorkbookRowOperator(op) || !isLiteralInput(rowValue) || !isWorkbookRowValueCompatible(op, rowValue)) {
270
+ throw new Error('Workbook ref data where is invalid');
271
+ }
272
+ return Object.freeze({
273
+ column: requiredStringValue(value, 'column'),
274
+ op,
275
+ value: rowValue,
276
+ });
277
+ }
278
+ function normalizeRefData(value) {
279
+ if (!isRefDataObject(value)) {
280
+ throw new Error('Workbook ref data is invalid');
281
+ }
282
+ const kind = ownDataValue(value, 'kind');
283
+ if (!isWorkbookRefDataKind(kind)) {
284
+ throw new Error('Workbook ref data kind is invalid');
285
+ }
286
+ const id = requiredStringValue(value, 'id');
287
+ const label = requiredStringValue(value, 'label');
288
+ switch (kind) {
289
+ case 'range':
290
+ return Object.freeze({
291
+ kind,
292
+ id,
293
+ label,
294
+ range: normalizeRangeData(ownDataValue(value, 'range')),
295
+ });
296
+ case 'name':
297
+ return Object.freeze({
298
+ kind,
299
+ id,
300
+ label,
301
+ name: requiredStringValue(value, 'name'),
302
+ });
303
+ case 'table': {
304
+ const name = optionalStringValue(value, 'name');
305
+ const sheetName = optionalStringValue(value, 'sheetName');
306
+ const headers = optionalStringArrayValue(value, 'headers');
307
+ return Object.freeze({
308
+ kind,
309
+ id,
310
+ label,
311
+ ...(name !== undefined ? { name } : {}),
312
+ ...(sheetName !== undefined ? { sheetName } : {}),
313
+ ...(headers !== undefined ? { headers } : {}),
314
+ });
315
+ }
316
+ case 'column': {
317
+ const table = normalizeRefData(ownDataValue(value, 'table'));
318
+ if (table.kind !== 'table') {
319
+ throw new Error('Workbook ref data table is invalid');
320
+ }
321
+ const rowsValue = ownDataValue(value, 'rows');
322
+ const rows = rowsValue === undefined ? undefined : normalizeRefData(rowsValue);
323
+ if (rows !== undefined && rows.kind !== 'rows') {
324
+ throw new Error('Workbook ref data rows is invalid');
325
+ }
326
+ return Object.freeze({
327
+ kind,
328
+ id,
329
+ label,
330
+ table,
331
+ ...(rows !== undefined ? { rows } : {}),
332
+ name: requiredStringValue(value, 'name'),
333
+ });
334
+ }
335
+ case 'rows': {
336
+ const tableValue = ownDataValue(value, 'table');
337
+ const table = tableValue === undefined ? undefined : normalizeRefData(tableValue);
338
+ if (table !== undefined && table.kind !== 'table') {
339
+ throw new Error('Workbook ref data table is invalid');
340
+ }
341
+ const sheetName = optionalStringValue(value, 'sheetName');
342
+ return Object.freeze({
343
+ kind,
344
+ id,
345
+ label,
346
+ ...(sheetName !== undefined ? { sheetName } : {}),
347
+ ...(table !== undefined ? { table } : {}),
348
+ where: normalizeRowsWhere(ownDataValue(value, 'where')),
349
+ });
350
+ }
351
+ }
352
+ }
353
+ export function checkWorkbookRefData(value) {
354
+ const issues = [];
355
+ pushRefDataIssues(issues, value, 'ref');
356
+ if (issues.length > 0) {
357
+ return Object.freeze({
358
+ status: 'invalid',
359
+ issues: Object.freeze(issues),
360
+ });
361
+ }
362
+ return Object.freeze({
363
+ status: 'valid',
364
+ ref: freezeRefData(normalizeRefData(value)),
365
+ issues: Object.freeze([]),
366
+ });
367
+ }
368
+ //# sourceMappingURL=ref-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-data.js","sourceRoot":"","sources":["../src/ref-data.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bilig/workbook",
3
- "version": "0.86.0",
3
+ "version": "0.90.0",
4
4
  "description": "Agent-first workbook model API and transport-neutral workbook operation language for bilig.",
5
5
  "keywords": [
6
6
  "agent-first",
@@ -43,8 +43,8 @@
43
43
  "test": "cd ../.. && tsx scripts/run-vitest.ts --run packages/workbook/src/__tests__/guards.test.ts packages/workbook/src/__tests__/model-api.test.ts packages/workbook/src/__tests__/model-verification-api.test.ts packages/workbook/src/__tests__/transport-api.test.ts packages/workbook/src/__tests__/low-level-op-api.test.ts packages/workbook/src/__tests__/check-api.test.ts packages/workbook/src/__tests__/format-api.test.ts packages/workbook/src/__tests__/formula-api.test.ts packages/workbook/src/__tests__/action-input-api.test.ts packages/workbook/src/__tests__/action-metadata-api.test.ts packages/workbook/src/__tests__/features-api.test.ts packages/workbook/src/__tests__/command-bundle-api.test.ts packages/workbook/src/__tests__/run-api.test.ts packages/workbook/src/__tests__/run-proof-boundary.test.ts packages/workbook/src/__tests__/requirements-api.test.ts packages/workbook/src/__tests__/plan-refs-api.test.ts"
44
44
  },
45
45
  "dependencies": {
46
- "@bilig/formula": "0.86.0",
47
- "@bilig/protocol": "0.86.0"
46
+ "@bilig/formula": "0.90.0",
47
+ "@bilig/protocol": "0.90.0"
48
48
  },
49
49
  "engines": {
50
50
  "node": ">=22.0.0"