@bilig/workbook 0.64.0 → 0.67.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/README.md CHANGED
@@ -102,7 +102,7 @@ The main API is intentionally small:
102
102
  - descriptions: `describeModel`, `describeRef`, `describePlan`, `describePlanResult`, `describeRuntimeRequirements`, `checkRuntimeRequirements`, `checkRuntimeAdapter`, `describeRunResult`
103
103
  - transport data: `isWorkbookRefData`, `toWorkbookRefData`, `collectWorkbookRefData`, `hydrateWorkbookRef`, `hydrateWorkbookRefs`, `toPlanData`, `isPlanData`, `checkPlanData`, `hydratePlanData`, `verifyPlanData`
104
104
  - runtime handoff: `runWorkbookPlan`, `runWorkbookAction`, `WorkbookRunAdapter`
105
- - feature handoff: `defineWorkbookFeaturePlugin`, `checkWorkbookCommandRequest`, `normalizeWorkbookCommandRequest`, `checkWorkbookCommandReceipt`, `normalizeWorkbookCommandReceipt`, `workbookCommandReceiptOpsMatch`
105
+ - feature handoff: `defineWorkbookFeaturePlugin`, `checkWorkbookFeaturePlugin`, `checkWorkbookCommandRequest`, `normalizeWorkbookCommandRequest`, `checkWorkbookCommandReceipt`, `normalizeWorkbookCommandReceipt`, `workbookCommandReceiptOpsMatch`
106
106
  - low-level language: `WorkbookOp`, `WorkbookTxn`, `EngineOp`, `EngineOpBatch`, `isEngineOpBatch`
107
107
 
108
108
  Stable data helpers are exported for generic tool builders:
@@ -143,7 +143,10 @@ For full action handoff, use `toPlanData(plan)` before JSON transport. A runtime
143
143
  can call `checkPlanData(data)` to get structured path-based issues before
144
144
  hydration, call `hydratePlanData(data)` to regain frozen refs and helper
145
145
  methods, or pass the data directly to `describeRuntimeRequirements(data)` and
146
- `runWorkbookPlan(data, adapter)`. The hydrated plan exposes
146
+ `runWorkbookPlan(data, adapter)`. Invalid transported action input and check
147
+ proof keep nested JSON paths such as `input.rows[1]` and
148
+ `checks[0].proof.when`, so an agent can repair the exact payload field before
149
+ hydration. The hydrated plan exposes
147
150
  `refs: { refsUsed }` instead of the consumer's private model-shaped `refs`
148
151
  object, so transported execution stays generic.
149
152
 
@@ -156,7 +159,12 @@ can describe generic input with `json`, `object`, `array`, `string`, `number`,
156
159
  before running workbook model code. Omitted input is valid unless the top-level
157
160
  description sets `required: true`, so agents can distinguish an optional payload
158
161
  from a malformed payload. `planWorkbookAction` uses the same check when an action
159
- declares input metadata.
162
+ declares input metadata and preserves each failed input issue as a run error
163
+ with `path` and `issueCode`, so agents can branch without parsing messages.
164
+ JSON-safety failures keep the nested offending path too, such as
165
+ `input.items[2].amount`. Normalized payloads preserve consumer-owned JSON keys
166
+ as data, including names like `__proto__` and `constructor`, instead of letting
167
+ them affect object prototypes.
160
168
 
161
169
  ## Formulas
162
170
 
@@ -248,13 +256,18 @@ type WorkbookRunResult =
248
256
  ## Feature Handoff
249
257
 
250
258
  Feature command requests are plain data for runtimes that expose workbook
251
- features to agents. Use `checkWorkbookCommandRequest(data)` before dispatching a
252
- transported request. It returns stable path issues such as `featureId`,
253
- `commandId`, `category`, `mode`, and `input`, and `normalizeWorkbookCommandRequest`
254
- returns the frozen request data for the runtime. The exported command category,
255
- execution-mode, receipt-status, projection-point, and UI-slot lists let tool
256
- builders present and validate command contracts without importing a schema
257
- framework.
259
+ features to agents. Use `checkWorkbookFeaturePlugin(data)` before registering
260
+ consumer-provided feature metadata. It returns stable path issues for commands,
261
+ projection interceptors, UI contributions, dependencies, lifecycle hooks, and
262
+ nested command input-description or UI metadata fields.
263
+
264
+ Use `checkWorkbookCommandRequest(data)` before dispatching a transported
265
+ request. It returns stable path issues such as `featureId`, `commandId`,
266
+ `category`, `mode`, and nested input paths like `input.rows[1]`, and
267
+ `normalizeWorkbookCommandRequest` returns the frozen request data for the
268
+ runtime. The exported command category, execution-mode, receipt-status,
269
+ projection-point, and UI-slot lists let tool builders present and validate
270
+ command contracts without importing a schema framework.
258
271
 
259
272
  Use `checkWorkbookCommandReceipt(data)` before trusting runtime command evidence.
260
273
  It returns the same boring `{ status, issues }` shape for receipt fields such as
@@ -152,6 +152,8 @@ export type WorkbookRunResultDescription = {
152
152
  export interface WorkbookRunErrorDescription {
153
153
  readonly code: WorkbookRunErrorCode;
154
154
  readonly message: string;
155
+ readonly path?: string;
156
+ readonly issueCode?: string;
155
157
  }
156
158
  export declare function describeModel<Refs, Actions extends WorkbookActionMap<Refs>>(model: WorkbookModel<Refs, Actions>): WorkbookModelDescription;
157
159
  export declare function describeRef(ref: WorkbookRef): WorkbookRefDescription;
package/dist/describe.js CHANGED
@@ -155,6 +155,8 @@ function describeError(error) {
155
155
  return {
156
156
  code: error.code,
157
157
  message: error.message,
158
+ ...(error.path !== undefined ? { path: error.path } : {}),
159
+ ...(error.issueCode !== undefined ? { issueCode: error.issueCode } : {}),
158
160
  };
159
161
  }
160
162
  function describeUndo(undo) {
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import type { CellRangeRef, CellStylePatch, CellStyleRecord, LiteralInput } from '@bilig/protocol';
2
+ import { type WorkbookCommandCategory, type WorkbookFeatureId, type WorkbookProjectionInterceptorPoint, type WorkbookUiContributionSlot } from './features.js';
3
+ import { type WorkbookActionInput, type WorkbookActionInputDescription } from './input.js';
4
+ export interface WorkbookFeatureLifecycleContext {
5
+ readonly featureId: WorkbookFeatureId;
6
+ readonly activeFeatures: readonly WorkbookFeatureId[];
7
+ }
8
+ export interface WorkbookCommandDescriptor {
9
+ readonly id: string;
10
+ readonly featureId: WorkbookFeatureId;
11
+ readonly category: WorkbookCommandCategory;
12
+ readonly label: string;
13
+ readonly description?: string;
14
+ readonly input?: WorkbookActionInputDescription;
15
+ }
16
+ export interface WorkbookCellDisplayProjection {
17
+ readonly value?: LiteralInput;
18
+ readonly text?: string;
19
+ readonly metadata?: WorkbookActionInput;
20
+ }
21
+ export interface WorkbookCellStyleProjection {
22
+ readonly style?: CellStylePatch | CellStyleRecord;
23
+ readonly metadata?: WorkbookActionInput;
24
+ }
25
+ export interface WorkbookRangeChromeProjection {
26
+ readonly id: string;
27
+ readonly featureId: WorkbookFeatureId;
28
+ readonly source: 'workbook-metadata' | 'command-preview' | 'runtime';
29
+ readonly range: CellRangeRef;
30
+ readonly role: string;
31
+ readonly label?: string;
32
+ readonly metadata?: WorkbookActionInput;
33
+ }
34
+ export interface WorkbookRowVisibilityProjection {
35
+ readonly hidden?: boolean;
36
+ readonly metadata?: WorkbookActionInput;
37
+ }
38
+ export interface WorkbookCommandMetadataProjection {
39
+ readonly label?: string;
40
+ readonly changedRanges?: readonly CellRangeRef[];
41
+ readonly semanticTargets?: readonly WorkbookActionInput[];
42
+ readonly metadata?: WorkbookActionInput;
43
+ }
44
+ export interface WorkbookProjectionContext {
45
+ readonly featureId: WorkbookFeatureId;
46
+ }
47
+ export interface WorkbookProjectionInterceptorRegistration {
48
+ readonly id: string;
49
+ readonly featureId: WorkbookFeatureId;
50
+ readonly point: WorkbookProjectionInterceptorPoint;
51
+ readonly priority?: number;
52
+ readonly label?: string;
53
+ }
54
+ export interface WorkbookUiContribution {
55
+ readonly id: string;
56
+ readonly featureId: WorkbookFeatureId;
57
+ readonly slot: WorkbookUiContributionSlot;
58
+ readonly label: string;
59
+ readonly order?: number;
60
+ readonly metadata?: WorkbookActionInput;
61
+ }
62
+ export interface WorkbookFeatureRegistration {
63
+ readonly commands: readonly WorkbookCommandDescriptor[];
64
+ readonly projectionInterceptors: readonly WorkbookProjectionInterceptorRegistration[];
65
+ readonly uiContributions: readonly WorkbookUiContribution[];
66
+ }
67
+ export interface WorkbookFeaturePlugin extends WorkbookFeatureRegistration {
68
+ readonly id: WorkbookFeatureId;
69
+ readonly version: string;
70
+ readonly dependsOn?: readonly WorkbookFeatureId[];
71
+ readonly register?: (context: WorkbookFeatureLifecycleContext) => void;
72
+ readonly activate?: (context: WorkbookFeatureLifecycleContext) => void;
73
+ readonly dispose?: (context: WorkbookFeatureLifecycleContext) => void;
74
+ }
75
+ export type WorkbookFeaturePluginIssueCode = 'invalid_feature_plugin';
76
+ export interface WorkbookFeaturePluginIssue {
77
+ readonly code: WorkbookFeaturePluginIssueCode;
78
+ readonly path: string;
79
+ readonly message: string;
80
+ }
81
+ export type WorkbookFeaturePluginCheckResult = {
82
+ readonly status: 'valid';
83
+ readonly plugin: WorkbookFeaturePlugin;
84
+ readonly issues: readonly [];
85
+ } | {
86
+ readonly status: 'invalid';
87
+ readonly issues: readonly WorkbookFeaturePluginIssue[];
88
+ };
89
+ export declare function checkWorkbookFeaturePlugin(value: unknown): WorkbookFeaturePluginCheckResult;
90
+ export declare function defineWorkbookFeaturePlugin(plugin: WorkbookFeaturePlugin): WorkbookFeaturePlugin;
91
+ export declare function normalizeWorkbookCommandDescriptor(descriptor: WorkbookCommandDescriptor, expectedFeatureId?: WorkbookFeatureId): WorkbookCommandDescriptor;
@@ -0,0 +1,351 @@
1
+ import { isWorkbookCommandCategory, isWorkbookProjectionInterceptorPoint, isWorkbookUiContributionSlot, normalizeWorkbookFeatureId, } from './features.js';
2
+ import { WorkbookActionInputError, isWorkbookActionInput, isWorkbookActionInputDescription, normalizeWorkbookActionInput, normalizeWorkbookActionInputDescription, } from './input.js';
3
+ export function checkWorkbookFeaturePlugin(value) {
4
+ if (!isRecord(value)) {
5
+ return {
6
+ status: 'invalid',
7
+ issues: Object.freeze([featurePluginIssue('plugin', 'Workbook feature plugin must be an object')]),
8
+ };
9
+ }
10
+ const issues = [];
11
+ const pluginId = pushRequiredFeaturePluginStringIssue(issues, value['id'], 'id', 'Workbook feature id');
12
+ pushRequiredFeaturePluginStringIssue(issues, value['version'], 'version', 'Workbook feature version');
13
+ pushFeaturePluginDependencyIssues(issues, value['dependsOn']);
14
+ readFeaturePluginArray(issues, value['commands'], 'commands', 'Workbook feature commands').forEach((command, index) => {
15
+ pushFeaturePluginCommandIssues(issues, command, index, pluginId);
16
+ });
17
+ readFeaturePluginArray(issues, value['projectionInterceptors'], 'projectionInterceptors', 'Workbook feature projection interceptors').forEach((interceptor, index) => {
18
+ pushFeaturePluginProjectionIssues(issues, interceptor, index, pluginId);
19
+ });
20
+ readFeaturePluginArray(issues, value['uiContributions'], 'uiContributions', 'Workbook feature UI contributions').forEach((contribution, index) => {
21
+ pushFeaturePluginUiContributionIssues(issues, contribution, index, pluginId);
22
+ });
23
+ pushFeaturePluginLifecycleIssue(issues, value['register'], 'register');
24
+ pushFeaturePluginLifecycleIssue(issues, value['activate'], 'activate');
25
+ pushFeaturePluginLifecycleIssue(issues, value['dispose'], 'dispose');
26
+ if (issues.length > 0) {
27
+ return {
28
+ status: 'invalid',
29
+ issues: Object.freeze(issues),
30
+ };
31
+ }
32
+ if (!isWorkbookFeaturePluginRecord(value)) {
33
+ return {
34
+ status: 'invalid',
35
+ issues: Object.freeze([featurePluginIssue('plugin', 'Workbook feature plugin is invalid')]),
36
+ };
37
+ }
38
+ return {
39
+ status: 'valid',
40
+ plugin: normalizedFeaturePlugin(value),
41
+ issues: Object.freeze([]),
42
+ };
43
+ }
44
+ export function defineWorkbookFeaturePlugin(plugin) {
45
+ const check = checkWorkbookFeaturePlugin(plugin);
46
+ if (check.status === 'invalid') {
47
+ const [firstIssue] = check.issues;
48
+ throw new Error(firstIssue === undefined ? 'Workbook feature plugin is invalid' : `Workbook feature plugin is invalid: ${firstIssue.message}`);
49
+ }
50
+ return check.plugin;
51
+ }
52
+ export function normalizeWorkbookCommandDescriptor(descriptor, expectedFeatureId) {
53
+ const featureId = normalizeWorkbookFeatureId(descriptor.featureId, 'Workbook command feature id');
54
+ if (expectedFeatureId !== undefined && featureId !== expectedFeatureId) {
55
+ throw new Error(`Workbook command ${descriptor.id} feature id ${featureId} does not match plugin ${expectedFeatureId}`);
56
+ }
57
+ const id = normalizeRequiredString(descriptor.id, 'Workbook command id');
58
+ const label = normalizeRequiredString(descriptor.label, `Workbook command ${id} label`);
59
+ const description = descriptor.description === undefined ? undefined : normalizeRequiredString(descriptor.description, `Workbook command ${id} description`);
60
+ const input = descriptor.input === undefined ? undefined : normalizeWorkbookActionInputDescription(descriptor.input);
61
+ if (!isWorkbookCommandCategory(descriptor.category)) {
62
+ throw new Error(`Workbook command ${id} category is invalid`);
63
+ }
64
+ return Object.freeze({
65
+ id,
66
+ featureId,
67
+ category: descriptor.category,
68
+ label,
69
+ ...(description !== undefined ? { description } : {}),
70
+ ...(input !== undefined ? { input } : {}),
71
+ });
72
+ }
73
+ function featurePluginIssue(path, message) {
74
+ return Object.freeze({
75
+ code: 'invalid_feature_plugin',
76
+ path,
77
+ message,
78
+ });
79
+ }
80
+ function errorMessage(error) {
81
+ return error instanceof Error ? error.message : String(error);
82
+ }
83
+ function inputPath(basePath, error) {
84
+ if (!(error instanceof WorkbookActionInputError)) {
85
+ return basePath;
86
+ }
87
+ if (error.path === 'input') {
88
+ return basePath;
89
+ }
90
+ if (error.path.startsWith('input.')) {
91
+ return `${basePath}${error.path.slice('input'.length)}`;
92
+ }
93
+ if (error.path.startsWith('input[')) {
94
+ return `${basePath}${error.path.slice('input'.length)}`;
95
+ }
96
+ return basePath;
97
+ }
98
+ function pushFeaturePluginInputDescriptionIssue(issues, value, path, label) {
99
+ if (value === undefined) {
100
+ return;
101
+ }
102
+ try {
103
+ normalizeWorkbookActionInputDescription(value);
104
+ }
105
+ catch (error) {
106
+ issues.push(featurePluginIssue(inputPath(path, error), `${label} input description is invalid: ${errorMessage(error)}`));
107
+ }
108
+ }
109
+ function pushFeaturePluginInputIssue(issues, value, path, label) {
110
+ if (value === undefined) {
111
+ return;
112
+ }
113
+ try {
114
+ normalizeWorkbookActionInput(value);
115
+ }
116
+ catch (error) {
117
+ issues.push(featurePluginIssue(inputPath(path, error), `${label} metadata is invalid: ${errorMessage(error)}`));
118
+ }
119
+ }
120
+ function pushRequiredFeaturePluginStringIssue(issues, value, path, label) {
121
+ if (typeof value !== 'string') {
122
+ issues.push(featurePluginIssue(path, `${label} must be a string`));
123
+ return undefined;
124
+ }
125
+ const normalized = value.trim();
126
+ if (normalized === '') {
127
+ issues.push(featurePluginIssue(path, `${label} cannot be empty`));
128
+ return undefined;
129
+ }
130
+ if (normalized !== value) {
131
+ issues.push(featurePluginIssue(path, `${label} must not have leading or trailing whitespace`));
132
+ return undefined;
133
+ }
134
+ return normalized;
135
+ }
136
+ function pushOptionalFeaturePluginStringIssue(issues, value, path, label) {
137
+ if (value === undefined) {
138
+ return;
139
+ }
140
+ pushRequiredFeaturePluginStringIssue(issues, value, path, label);
141
+ }
142
+ function readFeaturePluginArray(issues, value, path, label) {
143
+ if (!Array.isArray(value)) {
144
+ issues.push(featurePluginIssue(path, `${label} must be an array`));
145
+ return [];
146
+ }
147
+ return value;
148
+ }
149
+ function pushFeaturePluginDependencyIssues(issues, value) {
150
+ if (value === undefined) {
151
+ return;
152
+ }
153
+ if (!Array.isArray(value)) {
154
+ issues.push(featurePluginIssue('dependsOn', 'Workbook feature dependencies must be an array'));
155
+ return;
156
+ }
157
+ value.forEach((dependency, index) => {
158
+ pushRequiredFeaturePluginStringIssue(issues, dependency, `dependsOn[${index}]`, 'Workbook feature dependency');
159
+ });
160
+ }
161
+ function pushFeaturePluginCommandIssues(issues, command, index, pluginId) {
162
+ const path = `commands[${index}]`;
163
+ if (!isRecord(command)) {
164
+ issues.push(featurePluginIssue(path, 'Workbook command must be an object'));
165
+ return;
166
+ }
167
+ const commandId = pushRequiredFeaturePluginStringIssue(issues, command['id'], `${path}.id`, 'Workbook command id');
168
+ const featureId = pushRequiredFeaturePluginStringIssue(issues, command['featureId'], `${path}.featureId`, 'Workbook command feature id');
169
+ if (pluginId !== undefined && featureId !== undefined && featureId !== pluginId) {
170
+ issues.push(featurePluginIssue(`${path}.featureId`, `Workbook command ${commandId ?? path} feature id ${featureId} does not match plugin ${pluginId}`));
171
+ }
172
+ if (!isWorkbookCommandCategory(command['category'])) {
173
+ issues.push(featurePluginIssue(`${path}.category`, `Workbook command ${commandId ?? path} category is invalid`));
174
+ }
175
+ pushRequiredFeaturePluginStringIssue(issues, command['label'], `${path}.label`, `Workbook command ${commandId ?? path} label`);
176
+ pushOptionalFeaturePluginStringIssue(issues, command['description'], `${path}.description`, `Workbook command ${commandId ?? path} description`);
177
+ pushFeaturePluginInputDescriptionIssue(issues, command['input'], `${path}.input`, `Workbook command ${commandId ?? path}`);
178
+ }
179
+ function pushFeaturePluginProjectionIssues(issues, interceptor, index, pluginId) {
180
+ const path = `projectionInterceptors[${index}]`;
181
+ if (!isRecord(interceptor)) {
182
+ issues.push(featurePluginIssue(path, 'Workbook projection interceptor must be an object'));
183
+ return;
184
+ }
185
+ const id = pushRequiredFeaturePluginStringIssue(issues, interceptor['id'], `${path}.id`, 'Workbook projection interceptor id');
186
+ const featureId = pushRequiredFeaturePluginStringIssue(issues, interceptor['featureId'], `${path}.featureId`, 'Workbook projection interceptor feature id');
187
+ if (pluginId !== undefined && featureId !== undefined && featureId !== pluginId) {
188
+ issues.push(featurePluginIssue(`${path}.featureId`, `Workbook projection interceptor ${id ?? path} feature id ${featureId} does not match plugin ${pluginId}`));
189
+ }
190
+ if (!isWorkbookProjectionInterceptorPoint(interceptor['point'])) {
191
+ issues.push(featurePluginIssue(`${path}.point`, `Workbook projection interceptor ${id ?? path} point is invalid`));
192
+ }
193
+ if (interceptor['priority'] !== undefined && !isSafeInteger(interceptor['priority'])) {
194
+ issues.push(featurePluginIssue(`${path}.priority`, `Workbook projection interceptor ${id ?? path} priority is invalid`));
195
+ }
196
+ pushOptionalFeaturePluginStringIssue(issues, interceptor['label'], `${path}.label`, `Workbook projection interceptor ${id ?? path} label`);
197
+ }
198
+ function pushFeaturePluginUiContributionIssues(issues, contribution, index, pluginId) {
199
+ const path = `uiContributions[${index}]`;
200
+ if (!isRecord(contribution)) {
201
+ issues.push(featurePluginIssue(path, 'Workbook UI contribution must be an object'));
202
+ return;
203
+ }
204
+ const id = pushRequiredFeaturePluginStringIssue(issues, contribution['id'], `${path}.id`, 'Workbook UI contribution id');
205
+ const featureId = pushRequiredFeaturePluginStringIssue(issues, contribution['featureId'], `${path}.featureId`, 'Workbook UI contribution feature id');
206
+ if (pluginId !== undefined && featureId !== undefined && featureId !== pluginId) {
207
+ issues.push(featurePluginIssue(`${path}.featureId`, `Workbook UI contribution ${id ?? path} feature id ${featureId} does not match plugin ${pluginId}`));
208
+ }
209
+ if (!isWorkbookUiContributionSlot(contribution['slot'])) {
210
+ issues.push(featurePluginIssue(`${path}.slot`, `Workbook UI contribution ${id ?? path} slot is invalid`));
211
+ }
212
+ pushRequiredFeaturePluginStringIssue(issues, contribution['label'], `${path}.label`, `Workbook UI contribution ${id ?? path} label`);
213
+ if (contribution['order'] !== undefined && !isSafeInteger(contribution['order'])) {
214
+ issues.push(featurePluginIssue(`${path}.order`, `Workbook UI contribution ${id ?? path} order is invalid`));
215
+ }
216
+ pushFeaturePluginInputIssue(issues, contribution['metadata'], `${path}.metadata`, `Workbook UI contribution ${id ?? path}`);
217
+ }
218
+ function pushFeaturePluginLifecycleIssue(issues, value, path) {
219
+ if (value !== undefined && typeof value !== 'function') {
220
+ issues.push(featurePluginIssue(path, `Workbook feature ${path} must be a function`));
221
+ }
222
+ }
223
+ function normalizedFeaturePlugin(plugin) {
224
+ const id = normalizeWorkbookFeatureId(plugin.id);
225
+ const version = normalizeRequiredString(plugin.version, `Workbook feature ${id} version`);
226
+ const dependsOn = plugin.dependsOn?.map((dependency) => normalizeWorkbookFeatureId(dependency, `Workbook feature ${id} dependency`));
227
+ const commands = plugin.commands.map((command) => normalizeWorkbookCommandDescriptor(command, id));
228
+ const projectionInterceptors = plugin.projectionInterceptors.map((interceptor) => normalizeProjectionInterceptor(interceptor, id));
229
+ const uiContributions = plugin.uiContributions.map((contribution) => normalizeUiContribution(contribution, id));
230
+ return Object.freeze({
231
+ id,
232
+ version,
233
+ ...(dependsOn !== undefined ? { dependsOn: Object.freeze([...dependsOn]) } : {}),
234
+ commands: Object.freeze(commands),
235
+ projectionInterceptors: Object.freeze(projectionInterceptors),
236
+ uiContributions: Object.freeze(uiContributions),
237
+ ...(plugin.register !== undefined ? { register: plugin.register } : {}),
238
+ ...(plugin.activate !== undefined ? { activate: plugin.activate } : {}),
239
+ ...(plugin.dispose !== undefined ? { dispose: plugin.dispose } : {}),
240
+ });
241
+ }
242
+ function normalizeProjectionInterceptor(interceptor, expectedFeatureId) {
243
+ const featureId = normalizeWorkbookFeatureId(interceptor.featureId, 'Workbook projection interceptor feature id');
244
+ if (featureId !== expectedFeatureId) {
245
+ throw new Error(`Workbook projection interceptor ${interceptor.id} feature id ${featureId} does not match plugin ${expectedFeatureId}`);
246
+ }
247
+ const id = normalizeRequiredString(interceptor.id, 'Workbook projection interceptor id');
248
+ if (!isWorkbookProjectionInterceptorPoint(interceptor.point)) {
249
+ throw new Error(`Workbook projection interceptor ${id} point is invalid`);
250
+ }
251
+ const label = interceptor.label === undefined ? undefined : normalizeRequiredString(interceptor.label, `Workbook projection interceptor ${id} label`);
252
+ if (interceptor.priority !== undefined && !isSafeInteger(interceptor.priority)) {
253
+ throw new Error(`Workbook projection interceptor ${id} priority is invalid`);
254
+ }
255
+ return Object.freeze({
256
+ id,
257
+ featureId,
258
+ point: interceptor.point,
259
+ ...(interceptor.priority !== undefined ? { priority: interceptor.priority } : {}),
260
+ ...(label !== undefined ? { label } : {}),
261
+ });
262
+ }
263
+ function normalizeUiContribution(contribution, expectedFeatureId) {
264
+ const featureId = normalizeWorkbookFeatureId(contribution.featureId, 'Workbook UI contribution feature id');
265
+ if (featureId !== expectedFeatureId) {
266
+ throw new Error(`Workbook UI contribution ${contribution.id} feature id ${featureId} does not match plugin ${expectedFeatureId}`);
267
+ }
268
+ const id = normalizeRequiredString(contribution.id, 'Workbook UI contribution id');
269
+ const label = normalizeRequiredString(contribution.label, `Workbook UI contribution ${id} label`);
270
+ if (!isWorkbookUiContributionSlot(contribution.slot)) {
271
+ throw new Error(`Workbook UI contribution ${id} slot is invalid`);
272
+ }
273
+ if (contribution.order !== undefined && !isSafeInteger(contribution.order)) {
274
+ throw new Error(`Workbook UI contribution ${id} order is invalid`);
275
+ }
276
+ if (contribution.metadata !== undefined && !isWorkbookActionInput(contribution.metadata)) {
277
+ throw new Error(`Workbook UI contribution ${id} metadata is invalid`);
278
+ }
279
+ return Object.freeze({
280
+ id,
281
+ featureId,
282
+ slot: contribution.slot,
283
+ label,
284
+ ...(contribution.order !== undefined ? { order: contribution.order } : {}),
285
+ ...(contribution.metadata !== undefined ? { metadata: normalizeWorkbookActionInput(contribution.metadata) } : {}),
286
+ });
287
+ }
288
+ function isWorkbookFeaturePluginRecord(value) {
289
+ return (isRecord(value) &&
290
+ typeof value['id'] === 'string' &&
291
+ typeof value['version'] === 'string' &&
292
+ (value['dependsOn'] === undefined || (Array.isArray(value['dependsOn']) && value['dependsOn'].every(isString))) &&
293
+ Array.isArray(value['commands']) &&
294
+ value['commands'].every(isWorkbookCommandDescriptorRecord) &&
295
+ Array.isArray(value['projectionInterceptors']) &&
296
+ value['projectionInterceptors'].every(isWorkbookProjectionInterceptorRecord) &&
297
+ Array.isArray(value['uiContributions']) &&
298
+ value['uiContributions'].every(isWorkbookUiContributionRecord) &&
299
+ isOptionalLifecycleHook(value['register']) &&
300
+ isOptionalLifecycleHook(value['activate']) &&
301
+ isOptionalLifecycleHook(value['dispose']));
302
+ }
303
+ function isWorkbookCommandDescriptorRecord(value) {
304
+ return (isRecord(value) &&
305
+ typeof value['id'] === 'string' &&
306
+ typeof value['featureId'] === 'string' &&
307
+ isWorkbookCommandCategory(value['category']) &&
308
+ typeof value['label'] === 'string' &&
309
+ (value['description'] === undefined || typeof value['description'] === 'string') &&
310
+ (value['input'] === undefined || isWorkbookActionInputDescription(value['input'])));
311
+ }
312
+ function isWorkbookProjectionInterceptorRecord(value) {
313
+ return (isRecord(value) &&
314
+ typeof value['id'] === 'string' &&
315
+ typeof value['featureId'] === 'string' &&
316
+ isWorkbookProjectionInterceptorPoint(value['point']) &&
317
+ (value['priority'] === undefined || isSafeInteger(value['priority'])) &&
318
+ (value['label'] === undefined || typeof value['label'] === 'string'));
319
+ }
320
+ function isWorkbookUiContributionRecord(value) {
321
+ return (isRecord(value) &&
322
+ typeof value['id'] === 'string' &&
323
+ typeof value['featureId'] === 'string' &&
324
+ isWorkbookUiContributionSlot(value['slot']) &&
325
+ typeof value['label'] === 'string' &&
326
+ (value['order'] === undefined || isSafeInteger(value['order'])) &&
327
+ (value['metadata'] === undefined || isWorkbookActionInput(value['metadata'])));
328
+ }
329
+ function isString(value) {
330
+ return typeof value === 'string';
331
+ }
332
+ function isOptionalLifecycleHook(value) {
333
+ return value === undefined || typeof value === 'function';
334
+ }
335
+ function isSafeInteger(value) {
336
+ return typeof value === 'number' && Number.isSafeInteger(value) && Number.isFinite(value);
337
+ }
338
+ function isRecord(value) {
339
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
340
+ }
341
+ function normalizeRequiredString(value, label) {
342
+ const normalized = value.trim();
343
+ if (normalized === '') {
344
+ throw new Error(`${label} cannot be empty`);
345
+ }
346
+ if (normalized !== value) {
347
+ throw new Error(`${label} must not have leading or trailing whitespace`);
348
+ }
349
+ return normalized;
350
+ }
351
+ //# sourceMappingURL=feature-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-plugin.js","sourceRoot":"","sources":["../src/feature-plugin.ts"],"names":[],"mappings":"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"}