@bilig/workbook 0.62.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
@@ -99,18 +99,23 @@ The main API is intentionally small:
99
99
  - formulas: `formula.add`, `formula.subtract`, `formula.multiply`, `formula.divide`, `formula.sum`, `formula.call`, `formula.raw`, `formula.text`, `formula.labels`
100
100
  - input: `checkInput`, `normalizeWorkbookActionInputDescription`
101
101
  - proof: `verifyPlan`, `verifyModel`, `verifyWorkbookReadbacks`
102
- - descriptions: `describeModel`, `describeRef`, `describePlan`, `describePlanResult`, `describeRuntimeRequirements`, `checkRuntimeAdapter`, `describeRunResult`
103
- - transport data: `isWorkbookRefData`, `toWorkbookRefData`, `collectWorkbookRefData`, `hydrateWorkbookRef`, `hydrateWorkbookRefs`, `toPlanData`, `isPlanData`, `hydratePlanData`, `verifyPlanData`
102
+ - descriptions: `describeModel`, `describeRef`, `describePlan`, `describePlanResult`, `describeRuntimeRequirements`, `checkRuntimeRequirements`, `checkRuntimeAdapter`, `describeRunResult`
103
+ - transport data: `isWorkbookRefData`, `toWorkbookRefData`, `collectWorkbookRefData`, `hydrateWorkbookRef`, `hydrateWorkbookRefs`, `toPlanData`, `isPlanData`, `checkPlanData`, `hydratePlanData`, `verifyPlanData`
104
104
  - runtime handoff: `runWorkbookPlan`, `runWorkbookAction`, `WorkbookRunAdapter`
105
+ - feature handoff: `defineWorkbookFeaturePlugin`, `checkWorkbookFeaturePlugin`, `checkWorkbookCommandRequest`, `normalizeWorkbookCommandRequest`, `checkWorkbookCommandReceipt`, `normalizeWorkbookCommandReceipt`, `workbookCommandReceiptOpsMatch`
105
106
  - low-level language: `WorkbookOp`, `WorkbookTxn`, `EngineOp`, `EngineOpBatch`, `isEngineOpBatch`
106
107
 
107
108
  Stable data helpers are exported for generic tool builders:
108
109
 
109
110
  - `workbookRefKinds`, `isWorkbookRefKind`, `isWorkbookRef`
110
111
  - `isWorkbookRefData`, `toWorkbookRefData`, `collectWorkbookRefData`, `hydrateWorkbookRef`, `hydrateWorkbookRefs`
112
+ - `isPlanData`, `checkPlanData`
111
113
  - `workbookRowOperators`, `workbookRowOperatorValueTypes`, `isWorkbookRowOperator`, `isWorkbookRowValueCompatible`
112
114
  - `builtInWorkbookCheckKinds`, `isBuiltInWorkbookCheckKind`
113
115
  - `workbookActionInputDescriptionKinds`, `isWorkbookActionInputDescriptionKind`, `isWorkbookActionInputDescription`, `isWorkbookActionInput`, `checkInput`
116
+ - `workbookRuntimeRequirementKinds`, `isWorkbookRuntimeRequirementKind`, `workbookRuntimeCapabilities`, `isWorkbookRuntimeCapability`, `checkRuntimeRequirements`
117
+ - `workbookCommandCategories`, `isWorkbookCommandCategory`, `workbookCommandExecutionModes`, `isWorkbookCommandExecutionMode`, `workbookCommandReceiptStatuses`, `isWorkbookCommandReceiptStatus`
118
+ - `workbookProjectionInterceptorPoints`, `isWorkbookProjectionInterceptorPoint`, `workbookUiContributionSlots`, `isWorkbookUiContributionSlot`, `checkWorkbookCommandRequest`
114
119
  - `workbookRunErrorCodes`, `isWorkbookRunErrorCode`
115
120
 
116
121
  ## Selectors
@@ -135,8 +140,9 @@ local helpers. `verifyPlanData(describePlan(plan))` checks transported plan data
135
140
  without requiring the consumer's private `refs` object shape.
136
141
 
137
142
  For full action handoff, use `toPlanData(plan)` before JSON transport. A runtime
138
- can call `hydratePlanData(data)` to regain frozen refs and helper methods, or
139
- pass the data directly to `describeRuntimeRequirements(data)` and
143
+ can call `checkPlanData(data)` to get structured path-based issues before
144
+ hydration, call `hydratePlanData(data)` to regain frozen refs and helper
145
+ methods, or pass the data directly to `describeRuntimeRequirements(data)` and
140
146
  `runWorkbookPlan(data, adapter)`. The hydrated plan exposes
141
147
  `refs: { refsUsed }` instead of the consumer's private model-shaped `refs`
142
148
  object, so transported execution stays generic.
@@ -150,7 +156,10 @@ can describe generic input with `json`, `object`, `array`, `string`, `number`,
150
156
  before running workbook model code. Omitted input is valid unless the top-level
151
157
  description sets `required: true`, so agents can distinguish an optional payload
152
158
  from a malformed payload. `planWorkbookAction` uses the same check when an action
153
- 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`.
154
163
 
155
164
  ## Formulas
156
165
 
@@ -195,7 +204,9 @@ const adapter = {
195
204
 
196
205
  `runWorkbookPlan` accepts either a live plan or transported plan data and
197
206
  refuses to call `apply` if static plan verification fails or if the adapter is
198
- missing a required method. Use `checkRuntimeAdapter(planOrRequirements,
207
+ missing a required method. Use `checkRuntimeRequirements(data)` when runtime
208
+ requirements crossed a JSON boundary and an agent needs path-based diagnostics
209
+ before trusting the handoff. Use `checkRuntimeAdapter(planOrRequirements,
199
210
  adapter)` when an agent wants to check `apply`, `read`, and `verifyChecks`
200
211
  coverage before calling the runtime. Check-only plans do not require `apply`;
201
212
  when runtime requirements contain only `read` or `verifyCheck`, `runWorkbookPlan`
@@ -237,6 +248,26 @@ type WorkbookRunResult =
237
248
  }
238
249
  ```
239
250
 
251
+ ## Feature Handoff
252
+
253
+ Feature command requests are plain data for runtimes that expose workbook
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,
262
+ execution-mode, receipt-status, projection-point, and UI-slot lists let tool
263
+ builders present and validate command contracts without importing a schema
264
+ framework.
265
+
266
+ Use `checkWorkbookCommandReceipt(data)` before trusting runtime command evidence.
267
+ It returns the same boring `{ status, issues }` shape for receipt fields such as
268
+ `status`, `featureId`, `commandId`, `previewOps`, `appliedOps`, `undo`,
269
+ `changedRanges`, `proof`, `metadata`, and `errors`.
270
+
240
271
  ## Low-Level Ops
241
272
 
242
273
  Most models should use the small action API: `writeFormula`, `writeValue`,
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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"}