@bilig/workbook 0.64.0 → 0.66.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:
@@ -156,7 +156,10 @@ can describe generic input with `json`, `object`, `array`, `string`, `number`,
156
156
  before running workbook model code. Omitted input is valid unless the top-level
157
157
  description sets `required: true`, so agents can distinguish an optional payload
158
158
  from a malformed payload. `planWorkbookAction` uses the same check when an action
159
- declares input metadata.
159
+ declares input metadata and preserves each failed input issue as a run error
160
+ with `path` and `issueCode`, so agents can branch without parsing messages.
161
+ JSON-safety failures keep the nested offending path too, such as
162
+ `input.items[2].amount`.
160
163
 
161
164
  ## Formulas
162
165
 
@@ -248,10 +251,14 @@ type WorkbookRunResult =
248
251
  ## Feature Handoff
249
252
 
250
253
  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,
254
+ features to agents. Use `checkWorkbookFeaturePlugin(data)` before registering
255
+ consumer-provided feature metadata. It returns stable path issues for commands,
256
+ projection interceptors, UI contributions, dependencies, and lifecycle hooks.
257
+
258
+ Use `checkWorkbookCommandRequest(data)` before dispatching a transported
259
+ request. It returns stable path issues such as `featureId`, `commandId`,
260
+ `category`, `mode`, and `input`, and `normalizeWorkbookCommandRequest` returns
261
+ the frozen request data for the runtime. The exported command category,
255
262
  execution-mode, receipt-status, projection-point, and UI-slot lists let tool
256
263
  builders present and validate command contracts without importing a schema
257
264
  framework.
package/dist/check.d.ts CHANGED
@@ -19,7 +19,7 @@ export interface WorkbookCheckApi {
19
19
  readonly custom: (options: WorkbookCustomCheckOptions) => WorkbookCheckResult;
20
20
  }
21
21
  export type WorkbookBuiltInCheckKind = 'exists' | 'noFormulaErrors' | 'valueEquals' | 'formulaEquals';
22
- export declare const builtInWorkbookCheckKinds: readonly ("valueEquals" | "formulaEquals" | "exists" | "noFormulaErrors")[];
22
+ export declare const builtInWorkbookCheckKinds: readonly ("exists" | "noFormulaErrors" | "valueEquals" | "formulaEquals")[];
23
23
  export declare function isBuiltInWorkbookCheckKind(value: unknown): value is WorkbookBuiltInCheckKind;
24
24
  export declare function createWorkbookCheckResult(kind: string, target: WorkbookRef, message: string): WorkbookCheckResult;
25
25
  export declare function createWorkbookCustomCheck(options: WorkbookCustomCheckOptions): WorkbookCheckResult;
@@ -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,315 @@
1
+ import { isWorkbookCommandCategory, isWorkbookProjectionInterceptorPoint, isWorkbookUiContributionSlot, normalizeWorkbookFeatureId, } from './features.js';
2
+ import { 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 pushRequiredFeaturePluginStringIssue(issues, value, path, label) {
81
+ if (typeof value !== 'string') {
82
+ issues.push(featurePluginIssue(path, `${label} must be a string`));
83
+ return undefined;
84
+ }
85
+ const normalized = value.trim();
86
+ if (normalized === '') {
87
+ issues.push(featurePluginIssue(path, `${label} cannot be empty`));
88
+ return undefined;
89
+ }
90
+ if (normalized !== value) {
91
+ issues.push(featurePluginIssue(path, `${label} must not have leading or trailing whitespace`));
92
+ return undefined;
93
+ }
94
+ return normalized;
95
+ }
96
+ function pushOptionalFeaturePluginStringIssue(issues, value, path, label) {
97
+ if (value === undefined) {
98
+ return;
99
+ }
100
+ pushRequiredFeaturePluginStringIssue(issues, value, path, label);
101
+ }
102
+ function readFeaturePluginArray(issues, value, path, label) {
103
+ if (!Array.isArray(value)) {
104
+ issues.push(featurePluginIssue(path, `${label} must be an array`));
105
+ return [];
106
+ }
107
+ return value;
108
+ }
109
+ function pushFeaturePluginDependencyIssues(issues, value) {
110
+ if (value === undefined) {
111
+ return;
112
+ }
113
+ if (!Array.isArray(value)) {
114
+ issues.push(featurePluginIssue('dependsOn', 'Workbook feature dependencies must be an array'));
115
+ return;
116
+ }
117
+ value.forEach((dependency, index) => {
118
+ pushRequiredFeaturePluginStringIssue(issues, dependency, `dependsOn[${index}]`, 'Workbook feature dependency');
119
+ });
120
+ }
121
+ function pushFeaturePluginCommandIssues(issues, command, index, pluginId) {
122
+ const path = `commands[${index}]`;
123
+ if (!isRecord(command)) {
124
+ issues.push(featurePluginIssue(path, 'Workbook command must be an object'));
125
+ return;
126
+ }
127
+ const commandId = pushRequiredFeaturePluginStringIssue(issues, command['id'], `${path}.id`, 'Workbook command id');
128
+ const featureId = pushRequiredFeaturePluginStringIssue(issues, command['featureId'], `${path}.featureId`, 'Workbook command feature id');
129
+ if (pluginId !== undefined && featureId !== undefined && featureId !== pluginId) {
130
+ issues.push(featurePluginIssue(`${path}.featureId`, `Workbook command ${commandId ?? path} feature id ${featureId} does not match plugin ${pluginId}`));
131
+ }
132
+ if (!isWorkbookCommandCategory(command['category'])) {
133
+ issues.push(featurePluginIssue(`${path}.category`, `Workbook command ${commandId ?? path} category is invalid`));
134
+ }
135
+ pushRequiredFeaturePluginStringIssue(issues, command['label'], `${path}.label`, `Workbook command ${commandId ?? path} label`);
136
+ pushOptionalFeaturePluginStringIssue(issues, command['description'], `${path}.description`, `Workbook command ${commandId ?? path} description`);
137
+ if (command['input'] !== undefined && !isWorkbookActionInputDescription(command['input'])) {
138
+ issues.push(featurePluginIssue(`${path}.input`, `Workbook command ${commandId ?? path} input description is invalid`));
139
+ }
140
+ }
141
+ function pushFeaturePluginProjectionIssues(issues, interceptor, index, pluginId) {
142
+ const path = `projectionInterceptors[${index}]`;
143
+ if (!isRecord(interceptor)) {
144
+ issues.push(featurePluginIssue(path, 'Workbook projection interceptor must be an object'));
145
+ return;
146
+ }
147
+ const id = pushRequiredFeaturePluginStringIssue(issues, interceptor['id'], `${path}.id`, 'Workbook projection interceptor id');
148
+ const featureId = pushRequiredFeaturePluginStringIssue(issues, interceptor['featureId'], `${path}.featureId`, 'Workbook projection interceptor feature id');
149
+ if (pluginId !== undefined && featureId !== undefined && featureId !== pluginId) {
150
+ issues.push(featurePluginIssue(`${path}.featureId`, `Workbook projection interceptor ${id ?? path} feature id ${featureId} does not match plugin ${pluginId}`));
151
+ }
152
+ if (!isWorkbookProjectionInterceptorPoint(interceptor['point'])) {
153
+ issues.push(featurePluginIssue(`${path}.point`, `Workbook projection interceptor ${id ?? path} point is invalid`));
154
+ }
155
+ if (interceptor['priority'] !== undefined && !isSafeInteger(interceptor['priority'])) {
156
+ issues.push(featurePluginIssue(`${path}.priority`, `Workbook projection interceptor ${id ?? path} priority is invalid`));
157
+ }
158
+ pushOptionalFeaturePluginStringIssue(issues, interceptor['label'], `${path}.label`, `Workbook projection interceptor ${id ?? path} label`);
159
+ }
160
+ function pushFeaturePluginUiContributionIssues(issues, contribution, index, pluginId) {
161
+ const path = `uiContributions[${index}]`;
162
+ if (!isRecord(contribution)) {
163
+ issues.push(featurePluginIssue(path, 'Workbook UI contribution must be an object'));
164
+ return;
165
+ }
166
+ const id = pushRequiredFeaturePluginStringIssue(issues, contribution['id'], `${path}.id`, 'Workbook UI contribution id');
167
+ const featureId = pushRequiredFeaturePluginStringIssue(issues, contribution['featureId'], `${path}.featureId`, 'Workbook UI contribution feature id');
168
+ if (pluginId !== undefined && featureId !== undefined && featureId !== pluginId) {
169
+ issues.push(featurePluginIssue(`${path}.featureId`, `Workbook UI contribution ${id ?? path} feature id ${featureId} does not match plugin ${pluginId}`));
170
+ }
171
+ if (!isWorkbookUiContributionSlot(contribution['slot'])) {
172
+ issues.push(featurePluginIssue(`${path}.slot`, `Workbook UI contribution ${id ?? path} slot is invalid`));
173
+ }
174
+ pushRequiredFeaturePluginStringIssue(issues, contribution['label'], `${path}.label`, `Workbook UI contribution ${id ?? path} label`);
175
+ if (contribution['order'] !== undefined && !isSafeInteger(contribution['order'])) {
176
+ issues.push(featurePluginIssue(`${path}.order`, `Workbook UI contribution ${id ?? path} order is invalid`));
177
+ }
178
+ if (contribution['metadata'] !== undefined && !isWorkbookActionInput(contribution['metadata'])) {
179
+ issues.push(featurePluginIssue(`${path}.metadata`, `Workbook UI contribution ${id ?? path} metadata is invalid`));
180
+ }
181
+ }
182
+ function pushFeaturePluginLifecycleIssue(issues, value, path) {
183
+ if (value !== undefined && typeof value !== 'function') {
184
+ issues.push(featurePluginIssue(path, `Workbook feature ${path} must be a function`));
185
+ }
186
+ }
187
+ function normalizedFeaturePlugin(plugin) {
188
+ const id = normalizeWorkbookFeatureId(plugin.id);
189
+ const version = normalizeRequiredString(plugin.version, `Workbook feature ${id} version`);
190
+ const dependsOn = plugin.dependsOn?.map((dependency) => normalizeWorkbookFeatureId(dependency, `Workbook feature ${id} dependency`));
191
+ const commands = plugin.commands.map((command) => normalizeWorkbookCommandDescriptor(command, id));
192
+ const projectionInterceptors = plugin.projectionInterceptors.map((interceptor) => normalizeProjectionInterceptor(interceptor, id));
193
+ const uiContributions = plugin.uiContributions.map((contribution) => normalizeUiContribution(contribution, id));
194
+ return Object.freeze({
195
+ id,
196
+ version,
197
+ ...(dependsOn !== undefined ? { dependsOn: Object.freeze([...dependsOn]) } : {}),
198
+ commands: Object.freeze(commands),
199
+ projectionInterceptors: Object.freeze(projectionInterceptors),
200
+ uiContributions: Object.freeze(uiContributions),
201
+ ...(plugin.register !== undefined ? { register: plugin.register } : {}),
202
+ ...(plugin.activate !== undefined ? { activate: plugin.activate } : {}),
203
+ ...(plugin.dispose !== undefined ? { dispose: plugin.dispose } : {}),
204
+ });
205
+ }
206
+ function normalizeProjectionInterceptor(interceptor, expectedFeatureId) {
207
+ const featureId = normalizeWorkbookFeatureId(interceptor.featureId, 'Workbook projection interceptor feature id');
208
+ if (featureId !== expectedFeatureId) {
209
+ throw new Error(`Workbook projection interceptor ${interceptor.id} feature id ${featureId} does not match plugin ${expectedFeatureId}`);
210
+ }
211
+ const id = normalizeRequiredString(interceptor.id, 'Workbook projection interceptor id');
212
+ if (!isWorkbookProjectionInterceptorPoint(interceptor.point)) {
213
+ throw new Error(`Workbook projection interceptor ${id} point is invalid`);
214
+ }
215
+ const label = interceptor.label === undefined ? undefined : normalizeRequiredString(interceptor.label, `Workbook projection interceptor ${id} label`);
216
+ if (interceptor.priority !== undefined && !isSafeInteger(interceptor.priority)) {
217
+ throw new Error(`Workbook projection interceptor ${id} priority is invalid`);
218
+ }
219
+ return Object.freeze({
220
+ id,
221
+ featureId,
222
+ point: interceptor.point,
223
+ ...(interceptor.priority !== undefined ? { priority: interceptor.priority } : {}),
224
+ ...(label !== undefined ? { label } : {}),
225
+ });
226
+ }
227
+ function normalizeUiContribution(contribution, expectedFeatureId) {
228
+ const featureId = normalizeWorkbookFeatureId(contribution.featureId, 'Workbook UI contribution feature id');
229
+ if (featureId !== expectedFeatureId) {
230
+ throw new Error(`Workbook UI contribution ${contribution.id} feature id ${featureId} does not match plugin ${expectedFeatureId}`);
231
+ }
232
+ const id = normalizeRequiredString(contribution.id, 'Workbook UI contribution id');
233
+ const label = normalizeRequiredString(contribution.label, `Workbook UI contribution ${id} label`);
234
+ if (!isWorkbookUiContributionSlot(contribution.slot)) {
235
+ throw new Error(`Workbook UI contribution ${id} slot is invalid`);
236
+ }
237
+ if (contribution.order !== undefined && !isSafeInteger(contribution.order)) {
238
+ throw new Error(`Workbook UI contribution ${id} order is invalid`);
239
+ }
240
+ if (contribution.metadata !== undefined && !isWorkbookActionInput(contribution.metadata)) {
241
+ throw new Error(`Workbook UI contribution ${id} metadata is invalid`);
242
+ }
243
+ return Object.freeze({
244
+ id,
245
+ featureId,
246
+ slot: contribution.slot,
247
+ label,
248
+ ...(contribution.order !== undefined ? { order: contribution.order } : {}),
249
+ ...(contribution.metadata !== undefined ? { metadata: normalizeWorkbookActionInput(contribution.metadata) } : {}),
250
+ });
251
+ }
252
+ function isWorkbookFeaturePluginRecord(value) {
253
+ return (isRecord(value) &&
254
+ typeof value['id'] === 'string' &&
255
+ typeof value['version'] === 'string' &&
256
+ (value['dependsOn'] === undefined || (Array.isArray(value['dependsOn']) && value['dependsOn'].every(isString))) &&
257
+ Array.isArray(value['commands']) &&
258
+ value['commands'].every(isWorkbookCommandDescriptorRecord) &&
259
+ Array.isArray(value['projectionInterceptors']) &&
260
+ value['projectionInterceptors'].every(isWorkbookProjectionInterceptorRecord) &&
261
+ Array.isArray(value['uiContributions']) &&
262
+ value['uiContributions'].every(isWorkbookUiContributionRecord) &&
263
+ isOptionalLifecycleHook(value['register']) &&
264
+ isOptionalLifecycleHook(value['activate']) &&
265
+ isOptionalLifecycleHook(value['dispose']));
266
+ }
267
+ function isWorkbookCommandDescriptorRecord(value) {
268
+ return (isRecord(value) &&
269
+ typeof value['id'] === 'string' &&
270
+ typeof value['featureId'] === 'string' &&
271
+ isWorkbookCommandCategory(value['category']) &&
272
+ typeof value['label'] === 'string' &&
273
+ (value['description'] === undefined || typeof value['description'] === 'string') &&
274
+ (value['input'] === undefined || isWorkbookActionInputDescription(value['input'])));
275
+ }
276
+ function isWorkbookProjectionInterceptorRecord(value) {
277
+ return (isRecord(value) &&
278
+ typeof value['id'] === 'string' &&
279
+ typeof value['featureId'] === 'string' &&
280
+ isWorkbookProjectionInterceptorPoint(value['point']) &&
281
+ (value['priority'] === undefined || isSafeInteger(value['priority'])) &&
282
+ (value['label'] === undefined || typeof value['label'] === 'string'));
283
+ }
284
+ function isWorkbookUiContributionRecord(value) {
285
+ return (isRecord(value) &&
286
+ typeof value['id'] === 'string' &&
287
+ typeof value['featureId'] === 'string' &&
288
+ isWorkbookUiContributionSlot(value['slot']) &&
289
+ typeof value['label'] === 'string' &&
290
+ (value['order'] === undefined || isSafeInteger(value['order'])) &&
291
+ (value['metadata'] === undefined || isWorkbookActionInput(value['metadata'])));
292
+ }
293
+ function isString(value) {
294
+ return typeof value === 'string';
295
+ }
296
+ function isOptionalLifecycleHook(value) {
297
+ return value === undefined || typeof value === 'function';
298
+ }
299
+ function isSafeInteger(value) {
300
+ return typeof value === 'number' && Number.isSafeInteger(value) && Number.isFinite(value);
301
+ }
302
+ function isRecord(value) {
303
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
304
+ }
305
+ function normalizeRequiredString(value, label) {
306
+ const normalized = value.trim();
307
+ if (normalized === '') {
308
+ throw new Error(`${label} cannot be empty`);
309
+ }
310
+ if (normalized !== value) {
311
+ throw new Error(`${label} must not have leading or trailing whitespace`);
312
+ }
313
+ return normalized;
314
+ }
315
+ //# 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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"}