@bilig/workbook 0.67.11 → 0.67.13

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,250 @@
1
+ import { formatAddress, parseCellAddress } from '@bilig/formula';
2
+ import { isLiteralInput } from '@bilig/protocol';
3
+ export const workbookRowOperators = Object.freeze([
4
+ 'eq',
5
+ 'neq',
6
+ 'contains',
7
+ 'startsWith',
8
+ 'gt',
9
+ 'gte',
10
+ 'lt',
11
+ 'lte',
12
+ ]);
13
+ const WORKBOOK_ROW_OPERATOR_SET = new Set(workbookRowOperators);
14
+ export const workbookRowOperatorValueTypes = Object.freeze({
15
+ eq: Object.freeze(['number', 'string', 'boolean', 'null']),
16
+ neq: Object.freeze(['number', 'string', 'boolean', 'null']),
17
+ contains: Object.freeze(['string']),
18
+ startsWith: Object.freeze(['string']),
19
+ gt: Object.freeze(['number', 'string']),
20
+ gte: Object.freeze(['number', 'string']),
21
+ lt: Object.freeze(['number', 'string']),
22
+ lte: Object.freeze(['number', 'string']),
23
+ });
24
+ function selectorObject(value, label) {
25
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
26
+ throw new Error(`${label} must be an object`);
27
+ }
28
+ return value;
29
+ }
30
+ function optionalDataValue(value, key, label) {
31
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
32
+ if (descriptor === undefined) {
33
+ return { status: 'missing' };
34
+ }
35
+ if (!('value' in descriptor)) {
36
+ throw new Error(`${label} must be a data property`);
37
+ }
38
+ return {
39
+ status: 'present',
40
+ value: descriptor.value,
41
+ };
42
+ }
43
+ function requiredDataValue(value, key, label) {
44
+ const property = optionalDataValue(value, key, label);
45
+ if (property.status === 'missing') {
46
+ throw new Error(`${label} is required`);
47
+ }
48
+ return property.value;
49
+ }
50
+ export function cleanIdPart(value) {
51
+ const cleaned = value
52
+ .trim()
53
+ .replaceAll(/[^A-Za-z0-9_]+/g, '_')
54
+ .replace(/^_+|_+$/g, '');
55
+ return cleaned === '' ? 'ref' : cleaned;
56
+ }
57
+ export function requiredSelectorText(value, field) {
58
+ if (typeof value !== 'string') {
59
+ throw new Error(`Workbook selector ${field} must be a string`);
60
+ }
61
+ const trimmed = value.trim();
62
+ if (trimmed === '') {
63
+ throw new Error(`Workbook selector ${field} cannot be empty`);
64
+ }
65
+ return trimmed;
66
+ }
67
+ function optionalSelectorText(property, field) {
68
+ if (property.status === 'missing') {
69
+ return undefined;
70
+ }
71
+ return requiredSelectorText(property.value, field);
72
+ }
73
+ function normalizeHeaders(headers) {
74
+ if (headers === undefined) {
75
+ return undefined;
76
+ }
77
+ if (!Array.isArray(headers)) {
78
+ throw new Error('Workbook table headers must be an array');
79
+ }
80
+ if (headers.length === 0) {
81
+ throw new Error('Workbook table headers cannot be empty');
82
+ }
83
+ const normalized = [];
84
+ for (let index = 0; index < headers.length; index += 1) {
85
+ const descriptor = Object.getOwnPropertyDescriptor(headers, String(index));
86
+ if (descriptor === undefined || !descriptor.enumerable) {
87
+ throw new Error('Workbook table headers must contain only data strings');
88
+ }
89
+ if (!('value' in descriptor)) {
90
+ throw new Error(`Workbook table headers[${index}] must be a data property`);
91
+ }
92
+ normalized.push(requiredSelectorText(descriptor.value, 'table header'));
93
+ }
94
+ normalized.sort((left, right) => left.localeCompare(right));
95
+ for (let index = 1; index < normalized.length; index += 1) {
96
+ if (normalized[index] === normalized[index - 1]) {
97
+ throw new Error(`Workbook table headers cannot contain duplicates: ${normalized[index]}`);
98
+ }
99
+ }
100
+ return Object.freeze(normalized);
101
+ }
102
+ function normalizeCellAddress(value, field) {
103
+ const raw = requiredSelectorText(value, field);
104
+ try {
105
+ const parsed = parseCellAddress(raw);
106
+ if (parsed.sheetName !== undefined) {
107
+ throw new Error('qualified');
108
+ }
109
+ return {
110
+ row: parsed.row,
111
+ col: parsed.col,
112
+ text: formatAddress(parsed.row, parsed.col),
113
+ };
114
+ }
115
+ catch {
116
+ throw new Error(`Workbook range ${field} is invalid: ${raw}`);
117
+ }
118
+ }
119
+ function assertRangeOrder(start, end) {
120
+ if (end.row < start.row || end.col < start.col) {
121
+ throw new Error('Workbook range endAddress must not be before startAddress');
122
+ }
123
+ }
124
+ export function isWorkbookRowOperator(value) {
125
+ return typeof value === 'string' && WORKBOOK_ROW_OPERATOR_SET.has(value);
126
+ }
127
+ function normalizeRowOperator(value) {
128
+ if (!isWorkbookRowOperator(value)) {
129
+ throw new Error(`Unsupported workbook row operator: ${String(value)}`);
130
+ }
131
+ return value;
132
+ }
133
+ function workbookRowValueType(value) {
134
+ if (value === null) {
135
+ return 'null';
136
+ }
137
+ if (typeof value === 'number') {
138
+ return 'number';
139
+ }
140
+ if (typeof value === 'string') {
141
+ return 'string';
142
+ }
143
+ return 'boolean';
144
+ }
145
+ export function isWorkbookRowValueCompatible(op, value) {
146
+ const accepted = workbookRowOperatorValueTypes[op];
147
+ return accepted.includes(workbookRowValueType(value));
148
+ }
149
+ function acceptedValueTypeLabel(types) {
150
+ if (types.length === 1) {
151
+ return types[0];
152
+ }
153
+ if (types.length === 2) {
154
+ return `${types[0]} or ${types[1]}`;
155
+ }
156
+ return `${types.slice(0, -1).join(', ')}, or ${types[types.length - 1]}`;
157
+ }
158
+ function normalizeRowsValue(value, op) {
159
+ if (!isLiteralInput(value)) {
160
+ throw new Error('Workbook rows selector value must be a finite JSON literal');
161
+ }
162
+ if (!isWorkbookRowValueCompatible(op, value)) {
163
+ throw new Error(`Workbook rows selector operator ${op} requires a ${acceptedValueTypeLabel(workbookRowOperatorValueTypes[op])} value`);
164
+ }
165
+ return value;
166
+ }
167
+ export function literalIdPart(value) {
168
+ const source = JSON.stringify(value) ?? 'null';
169
+ let encoded = '';
170
+ for (const char of source) {
171
+ encoded += /[A-Za-z0-9]/.test(char) ? char : `_${char.charCodeAt(0).toString(16)}`;
172
+ }
173
+ return cleanIdPart(`${typeof value}_${encoded}`);
174
+ }
175
+ export function literalLabel(value) {
176
+ return JSON.stringify(value);
177
+ }
178
+ export function normalizeRangeRef(input) {
179
+ const source = selectorObject(input, 'Workbook range selector');
180
+ const startAddress = optionalDataValue(source, 'startAddress', 'Workbook range selector startAddress');
181
+ if (startAddress.status === 'present') {
182
+ const sheetName = requiredSelectorText(requiredDataValue(source, 'sheetName', 'Workbook range selector sheetName'), 'sheet name');
183
+ const start = normalizeCellAddress(startAddress.value, 'startAddress');
184
+ const endAddress = optionalDataValue(source, 'endAddress', 'Workbook range selector endAddress');
185
+ const end = normalizeCellAddress(endAddress.status === 'present' ? endAddress.value : startAddress.value, 'endAddress');
186
+ assertRangeOrder(start, end);
187
+ return {
188
+ sheetName,
189
+ startAddress: start.text,
190
+ endAddress: end.text,
191
+ };
192
+ }
193
+ const address = optionalDataValue(source, 'address', 'Workbook range selector address');
194
+ if (address.status === 'present') {
195
+ const sheetName = requiredSelectorText(requiredDataValue(source, 'sheetName', 'Workbook range selector sheetName'), 'sheet name');
196
+ const normalizedAddress = normalizeCellAddress(address.value, 'address');
197
+ return {
198
+ sheetName,
199
+ startAddress: normalizedAddress.text,
200
+ endAddress: normalizedAddress.text,
201
+ };
202
+ }
203
+ throw new Error('Workbook range selector must include address or startAddress');
204
+ }
205
+ export function normalizeTableSelector(options) {
206
+ const source = selectorObject(options, 'Workbook table selector');
207
+ const tableName = optionalSelectorText(optionalDataValue(source, 'name', 'Workbook table selector name'), 'table name');
208
+ const sheetName = optionalSelectorText(optionalDataValue(source, 'sheetName', 'Workbook table selector sheetName'), 'sheet name');
209
+ const headers = normalizeHeaders(optionalDataValue(source, 'headers', 'Workbook table selector headers').value);
210
+ if (tableName === undefined && sheetName === undefined && headers === undefined) {
211
+ throw new Error('Workbook table selector needs a name, sheet name, or headers');
212
+ }
213
+ return {
214
+ ...(tableName !== undefined ? { name: tableName } : {}),
215
+ ...(sheetName !== undefined ? { sheetName } : {}),
216
+ ...(headers !== undefined ? { headers } : {}),
217
+ };
218
+ }
219
+ export function normalizeColumnSelector(options) {
220
+ const source = selectorObject(options, 'Workbook column selector');
221
+ const table = requiredDataValue(source, 'table', 'Workbook column selector table');
222
+ const rows = optionalDataValue(source, 'rows', 'Workbook column selector rows');
223
+ const name = requiredSelectorText(requiredDataValue(source, 'name', 'Workbook column selector name'), 'column name');
224
+ return {
225
+ table,
226
+ ...(rows.status === 'present' ? { rows: rows.value } : {}),
227
+ name,
228
+ };
229
+ }
230
+ export function normalizeRowsSelector(options) {
231
+ const source = selectorObject(options, 'Workbook rows selector');
232
+ const sheetName = optionalSelectorText(optionalDataValue(source, 'sheetName', 'Workbook rows selector sheetName'), 'sheet name');
233
+ const table = optionalDataValue(source, 'table', 'Workbook rows selector table');
234
+ if (table.status === 'missing' && sheetName === undefined) {
235
+ throw new Error('Workbook rows selector requires a table or sheet name');
236
+ }
237
+ const where = selectorObject(requiredDataValue(source, 'where', 'Workbook rows selector where'), 'Workbook rows selector where');
238
+ const column = requiredSelectorText(requiredDataValue(where, 'column', 'Workbook rows selector where.column'), 'row column');
239
+ const op = normalizeRowOperator(requiredDataValue(where, 'op', 'Workbook rows selector where.op'));
240
+ return {
241
+ ...(sheetName !== undefined ? { sheetName } : {}),
242
+ ...(table.status === 'present' ? { table: table.value } : {}),
243
+ where: Object.freeze({
244
+ column,
245
+ op,
246
+ value: normalizeRowsValue(requiredDataValue(where, 'value', 'Workbook rows selector where.value'), op),
247
+ }),
248
+ };
249
+ }
250
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../src/selectors.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.67.11",
3
+ "version": "0.67.13",
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__/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__/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.67.11",
47
- "@bilig/protocol": "0.67.11"
46
+ "@bilig/formula": "0.67.13",
47
+ "@bilig/protocol": "0.67.13"
48
48
  },
49
49
  "engines": {
50
50
  "node": ">=22.0.0"