@beehexa/hexasync-template-engine 2608.21.2 → 2610.3.1

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.
Files changed (69) hide show
  1. package/dist/capabilityPolicy.d.ts +29 -0
  2. package/dist/capabilityPolicy.d.ts.map +1 -0
  3. package/dist/capabilityPolicy.js +46 -0
  4. package/dist/capabilityPolicy.js.map +1 -0
  5. package/dist/compositeFlow.d.ts +23 -0
  6. package/dist/compositeFlow.d.ts.map +1 -0
  7. package/dist/compositeFlow.js +350 -0
  8. package/dist/compositeFlow.js.map +1 -0
  9. package/dist/connectionEditing.d.ts +124 -0
  10. package/dist/connectionEditing.d.ts.map +1 -0
  11. package/dist/connectionEditing.js +122 -0
  12. package/dist/connectionEditing.js.map +1 -0
  13. package/dist/editDiagnostics.d.ts +80 -0
  14. package/dist/editDiagnostics.d.ts.map +1 -0
  15. package/dist/editDiagnostics.js +130 -0
  16. package/dist/editDiagnostics.js.map +1 -0
  17. package/dist/extensionRegistry.d.ts +31 -0
  18. package/dist/extensionRegistry.d.ts.map +1 -0
  19. package/dist/extensionRegistry.js +48 -0
  20. package/dist/extensionRegistry.js.map +1 -0
  21. package/dist/index.d.ts +17 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +17 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/layout.d.ts +414 -0
  26. package/dist/layout.d.ts.map +1 -0
  27. package/dist/layout.js +460 -0
  28. package/dist/layout.js.map +1 -0
  29. package/dist/nodeExtensions.d.ts +17 -0
  30. package/dist/nodeExtensions.d.ts.map +1 -0
  31. package/dist/nodeExtensions.js +39 -0
  32. package/dist/nodeExtensions.js.map +1 -0
  33. package/dist/nodeResolution.d.ts +29 -0
  34. package/dist/nodeResolution.d.ts.map +1 -0
  35. package/dist/nodeResolution.js +77 -0
  36. package/dist/nodeResolution.js.map +1 -0
  37. package/dist/presentationOverlay.d.ts +29 -0
  38. package/dist/presentationOverlay.d.ts.map +1 -0
  39. package/dist/presentationOverlay.js +128 -0
  40. package/dist/presentationOverlay.js.map +1 -0
  41. package/dist/presentationReconciliation.d.ts +59 -0
  42. package/dist/presentationReconciliation.d.ts.map +1 -0
  43. package/dist/presentationReconciliation.js +54 -0
  44. package/dist/presentationReconciliation.js.map +1 -0
  45. package/dist/presentationStorage.d.ts +168 -0
  46. package/dist/presentationStorage.d.ts.map +1 -0
  47. package/dist/presentationStorage.js +405 -0
  48. package/dist/presentationStorage.js.map +1 -0
  49. package/dist/semanticTransactions.d.ts +107 -0
  50. package/dist/semanticTransactions.d.ts.map +1 -0
  51. package/dist/semanticTransactions.js +86 -0
  52. package/dist/semanticTransactions.js.map +1 -0
  53. package/dist/stepFormEditing.d.ts +47 -0
  54. package/dist/stepFormEditing.d.ts.map +1 -0
  55. package/dist/stepFormEditing.js +259 -0
  56. package/dist/stepFormEditing.js.map +1 -0
  57. package/dist/themeStyles.d.ts +26 -0
  58. package/dist/themeStyles.d.ts.map +1 -0
  59. package/dist/themeStyles.js +71 -0
  60. package/dist/themeStyles.js.map +1 -0
  61. package/dist/visualResources.d.ts +30 -0
  62. package/dist/visualResources.d.ts.map +1 -0
  63. package/dist/visualResources.js +89 -0
  64. package/dist/visualResources.js.map +1 -0
  65. package/dist/vnextFlow.d.ts +57 -0
  66. package/dist/vnextFlow.d.ts.map +1 -0
  67. package/dist/vnextFlow.js +333 -0
  68. package/dist/vnextFlow.js.map +1 -0
  69. package/package.json +16 -12
@@ -0,0 +1,107 @@
1
+ export type Revision = string | number;
2
+ export type Stage = 'source' | 'overlay' | 'reproject' | 'selection';
3
+ export type RecoveryStage = Stage | 'manual';
4
+ export type Direction = 'undo' | 'redo';
5
+ export interface RevisionedPatch<P> {
6
+ readonly beforeRevision: Revision;
7
+ readonly afterRevision: Revision;
8
+ readonly forwardPatch: P;
9
+ readonly inversePatch: P;
10
+ }
11
+ export interface SemanticTransaction<S, O, T> {
12
+ readonly operationName: string;
13
+ readonly source: RevisionedPatch<S>;
14
+ readonly overlay: RevisionedPatch<O>;
15
+ readonly selection: Readonly<{
16
+ before?: T;
17
+ after?: T;
18
+ }>;
19
+ }
20
+ export interface Diagnostic {
21
+ readonly code: string;
22
+ readonly severity: 'error';
23
+ readonly message: string;
24
+ readonly expectedRevisions?: Readonly<{
25
+ source: Revision;
26
+ overlay: Revision;
27
+ }>;
28
+ readonly actualRevisions?: Readonly<{
29
+ source: Revision;
30
+ overlay: Revision;
31
+ }>;
32
+ }
33
+ interface Accepted<T> {
34
+ readonly status: 'accepted';
35
+ readonly revision: Revision;
36
+ readonly source?: T;
37
+ readonly overlay?: T;
38
+ }
39
+ interface Rejected {
40
+ readonly status: 'rejected';
41
+ readonly revision?: Revision;
42
+ readonly diagnostics?: readonly Diagnostic[];
43
+ }
44
+ type PatchResult<T> = Accepted<T> | Rejected;
45
+ export interface Recovery<S, O, T> {
46
+ readonly transaction: SemanticTransaction<S, O, T>;
47
+ readonly direction: Direction;
48
+ readonly completedStages: readonly Stage[];
49
+ readonly nextStage: RecoveryStage;
50
+ readonly expectedRevisions: Readonly<{
51
+ source: Revision;
52
+ overlay: Revision;
53
+ }>;
54
+ readonly recoverable: boolean;
55
+ }
56
+ export interface ApplyInput<S, O, T, SS, OS, G> {
57
+ readonly transaction: SemanticTransaction<S, O, T>;
58
+ readonly currentRevisions: Readonly<{
59
+ source: Revision;
60
+ overlay: Revision;
61
+ }>;
62
+ readonly applySourcePatch: (r: Readonly<{
63
+ patch: S;
64
+ expectedRevision: Revision;
65
+ }>) => PatchResult<SS>;
66
+ readonly applyOverlayPatch: (r: Readonly<{
67
+ patch: O;
68
+ expectedRevision: Revision;
69
+ }>) => PatchResult<OS>;
70
+ readonly reproject: (r: Readonly<{
71
+ source: SS | undefined;
72
+ overlay: OS | undefined;
73
+ }>) => G;
74
+ readonly isSelectionCompatible: (r: Readonly<{
75
+ preferred: T;
76
+ graph: G;
77
+ }>) => boolean;
78
+ readonly restoreSelection: (r: Readonly<{
79
+ preferred: T;
80
+ graph: G;
81
+ }>) => T | undefined;
82
+ }
83
+ export interface ResumeInput<S, O, T, SS, OS, G> extends Omit<ApplyInput<S, O, T, SS, OS, G>, 'transaction'> {
84
+ readonly recovery: Recovery<S, O, T>;
85
+ }
86
+ export declare function recordAcceptedEdit<S, O, T>(input: Readonly<{
87
+ acceptedEdit: SemanticTransaction<S, O, T>;
88
+ }>): Readonly<{
89
+ status: 'recorded';
90
+ transaction: SemanticTransaction<S, O, T> & Readonly<Record<string, unknown>>;
91
+ diagnostics: readonly never[];
92
+ }>;
93
+ export declare const undo: <S, O, T, SS, OS, G>(input: ApplyInput<S, O, T, SS, OS, G>) => Readonly<Record<string, unknown>>;
94
+ export declare const redo: <S, O, T, SS, OS, G>(input: ApplyInput<S, O, T, SS, OS, G>) => Readonly<Record<string, unknown>>;
95
+ export declare function resume<S, O, T, SS, OS, G>(input: ResumeInput<S, O, T, SS, OS, G>): Readonly<Record<string, unknown>> | Readonly<{
96
+ status: "failed";
97
+ direction: Direction;
98
+ operationName: string;
99
+ recovery: Recovery<S, O, T>;
100
+ diagnostics: readonly Readonly<{
101
+ code: "TRANSACTION_MANUAL_RECOVERY_REQUIRED";
102
+ severity: "error";
103
+ message: "This transaction cannot be resumed safely; reconcile host state manually.";
104
+ }>[];
105
+ }>;
106
+ export {};
107
+ //# sourceMappingURL=semanticTransactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semanticTransactions.d.ts","sourceRoot":"","sources":["../src/semanticTransactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ const row = (v) => v !== null && typeof v === 'object' && !Array.isArray(v);
2
+ const revision = (v) => (typeof v === 'string' && v.trim() !== '') || (typeof v === 'number' && Number.isFinite(v));
3
+ const immutable = (v, seen = new WeakMap()) => { if (v === null || typeof v !== 'object')
4
+ return v; const found = seen.get(v); if (found !== undefined)
5
+ return found; if (Array.isArray(v)) {
6
+ const out = [];
7
+ seen.set(v, out);
8
+ for (const x of v)
9
+ out.push(immutable(x, seen));
10
+ return Object.freeze(out);
11
+ } const out = {}; seen.set(v, out); for (const [k, x] of Object.entries(v))
12
+ out[k] = immutable(x, seen); return Object.freeze(out); };
13
+ function requirePatch(v, n) { if (!row(v))
14
+ throw new TypeError(`${n} must be an object.`); if (!revision(v.beforeRevision) || !revision(v.afterRevision))
15
+ throw new TypeError(`${n} revisions must be nonblank strings or finite numbers.`); if (!row(v.forwardPatch) || !row(v.inversePatch))
16
+ throw new TypeError(`${n} patches must be objects.`); }
17
+ export function recordAcceptedEdit(input) { if (!row(input) || !row(input.acceptedEdit))
18
+ throw new TypeError('acceptedEdit must be an object.'); const e = input.acceptedEdit; if (typeof e.operationName !== 'string' || e.operationName.trim() === '')
19
+ throw new TypeError('acceptedEdit.operationName must be nonblank.'); requirePatch(e.source, 'acceptedEdit.source'); requirePatch(e.overlay, 'acceptedEdit.overlay'); if (!row(e.selection))
20
+ throw new TypeError('acceptedEdit.selection must be an object.'); return Object.freeze({ status: 'recorded', transaction: immutable(e), diagnostics: Object.freeze([]) }); }
21
+ const failed = (s, e) => Object.freeze({ code: 'TRANSACTION_STAGE_FAILED', severity: 'error', message: `${s} stage failed${e instanceof Error && e.message ? `: ${e.message}` : '.'}` });
22
+ const malformed = (s) => Object.freeze({ code: 'TRANSACTION_ADAPTER_RESULT_INVALID', severity: 'error', message: `${s} adapter returned a malformed result.` });
23
+ const uncertain = (s, expected, actual) => Object.freeze({ code: 'TRANSACTION_REVISION_UNCERTAIN', severity: 'error', message: `${s} write was accepted at unexpected revision '${String(actual)}' instead of '${String(expected)}'; manual recovery is required.` });
24
+ const adapterResult = (v) => row(v) && (v.status === 'accepted' || v.status === 'rejected') && (v.status !== 'accepted' || revision(v.revision));
25
+ const diagnostics = (r, s) => Array.isArray(r.diagnostics) && r.diagnostics.length ? immutable(r.diagnostics) : Object.freeze([failed(s)]);
26
+ function execute(direction, input, start = 'source', prior = []) { const { transaction: t } = input, u = direction === 'undo'; const initial = Object.freeze({ source: u ? t.source.afterRevision : t.source.beforeRevision, overlay: u ? t.overlay.afterRevision : t.overlay.beforeRevision }); const target = Object.freeze({ source: u ? t.source.beforeRevision : t.source.afterRevision, overlay: u ? t.overlay.beforeRevision : t.overlay.afterRevision }); const done = [...prior]; const expectedNow = Object.freeze({ source: done.includes('source') ? target.source : initial.source, overlay: done.includes('overlay') ? target.overlay : initial.overlay }); const recovery = (nextStage, recoverable = true) => Object.freeze({ transaction: t, direction, completedStages: Object.freeze([...done]), nextStage, expectedRevisions: Object.freeze({ ...expectedNow, source: done.includes('source') ? target.source : initial.source, overlay: done.includes('overlay') ? target.overlay : initial.overlay }), recoverable }); const stop = (nextStage, ds, recoverable = true) => Object.freeze({ status: 'failed', direction, operationName: t.operationName, recovery: recovery(nextStage, recoverable), diagnostics: ds }); if (input.currentRevisions.source !== expectedNow.source || input.currentRevisions.overlay !== expectedNow.overlay)
27
+ return Object.freeze({ status: 'conflict', direction, operationName: t.operationName, recovery: recovery(start), diagnostics: Object.freeze([Object.freeze({ code: 'TRANSACTION_REVISION_CONFLICT', severity: 'error', message: 'The source or presentation overlay changed after this transaction was recorded.', expectedRevisions: expectedNow, actualRevisions: immutable(input.currentRevisions) })]) }); let source; let overlay; if (start === 'source') {
28
+ let raw;
29
+ try {
30
+ raw = input.applySourcePatch(Object.freeze({ patch: u ? t.source.inversePatch : t.source.forwardPatch, expectedRevision: initial.source }));
31
+ }
32
+ catch (e) {
33
+ return stop('source', Object.freeze([failed('source', e)]));
34
+ }
35
+ if (!adapterResult(raw))
36
+ return stop('source', Object.freeze([malformed('source')]));
37
+ source = raw;
38
+ if (source.status !== 'accepted')
39
+ return stop('source', diagnostics(source, 'source'));
40
+ done.push('source');
41
+ if (source.revision !== target.source)
42
+ return stop('manual', Object.freeze([uncertain('source', target.source, source.revision)]), false);
43
+ } if (start === 'source' || start === 'overlay') {
44
+ let raw;
45
+ try {
46
+ raw = input.applyOverlayPatch(Object.freeze({ patch: u ? t.overlay.inversePatch : t.overlay.forwardPatch, expectedRevision: initial.overlay }));
47
+ }
48
+ catch (e) {
49
+ return stop('overlay', Object.freeze([failed('overlay', e)]));
50
+ }
51
+ if (!adapterResult(raw))
52
+ return stop('overlay', Object.freeze([malformed('overlay')]));
53
+ overlay = raw;
54
+ if (overlay.status !== 'accepted')
55
+ return stop('overlay', diagnostics(overlay, 'overlay'));
56
+ done.push('overlay');
57
+ if (overlay.revision !== target.overlay)
58
+ return stop('manual', Object.freeze([uncertain('overlay', target.overlay, overlay.revision)]), false);
59
+ } let graph; try {
60
+ graph = input.reproject(Object.freeze({ source: source?.status === 'accepted' ? source.source : undefined, overlay: overlay?.status === 'accepted' ? overlay.overlay : undefined }));
61
+ }
62
+ catch (e) {
63
+ return stop('reproject', Object.freeze([failed('reproject', e)]));
64
+ } if (!done.includes('reproject'))
65
+ done.push('reproject'); const preferred = u ? t.selection.before : t.selection.after; let selection; if (preferred !== undefined) {
66
+ let isCompatible;
67
+ try {
68
+ isCompatible = input.isSelectionCompatible(Object.freeze({ preferred, graph }));
69
+ }
70
+ catch (e) {
71
+ return stop('selection', Object.freeze([failed('selection', e)]));
72
+ }
73
+ if (isCompatible) {
74
+ try {
75
+ selection = input.restoreSelection(Object.freeze({ preferred, graph }));
76
+ }
77
+ catch (e) {
78
+ return stop('selection', Object.freeze([failed('selection', e)]));
79
+ }
80
+ }
81
+ } return Object.freeze({ status: 'applied', direction, operationName: t.operationName, revisions: target, ...(selection === undefined ? {} : { selection }), graph, diagnostics: Object.freeze([]) }); }
82
+ export const undo = (input) => execute('undo', input);
83
+ export const redo = (input) => execute('redo', input);
84
+ export function resume(input) { const r = input.recovery; if (!r.recoverable || r.nextStage === 'manual')
85
+ return Object.freeze({ status: 'failed', direction: r.direction, operationName: r.transaction.operationName, recovery: r, diagnostics: Object.freeze([Object.freeze({ code: 'TRANSACTION_MANUAL_RECOVERY_REQUIRED', severity: 'error', message: 'This transaction cannot be resumed safely; reconcile host state manually.' })]) }); return execute(r.direction, { ...input, transaction: r.transaction }, r.nextStage, r.completedStages); }
86
+ //# sourceMappingURL=semanticTransactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semanticTransactions.js","sourceRoot":"","sources":["../src/semanticTransactions.ts"],"names":[],"mappings":"AAaA,MAAM,GAAG,GAAG,CAAC,CAAU,EAA0C,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7H,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5I,MAAM,SAAS,GAAG,CAAI,CAAG,EAAE,IAAI,GAAC,IAAI,OAAO,EAAkB,EAAI,EAAE,GAAG,IAAG,CAAC,KAAG,IAAI,IAAE,OAAO,CAAC,KAAG,QAAQ;IAAE,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAG,KAAK,KAAG,SAAS;IAAC,OAAO,KAAU,CAAC,CAAC,IAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC;IAAA,MAAM,GAAG,GAAW,EAAE,CAAC;IAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC;IAAA,KAAI,MAAM,CAAC,IAAI,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC;IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAM,CAAC;AAAA,CAAC,CAAA,MAAM,GAAG,GAAwB,EAAE,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,CAAA,KAAI,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAAC,GAAG,CAAC,CAAC,CAAC,GAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAM,CAAC,CAAC,CAAC,CAAC;AAChd,SAAS,YAAY,CAAC,CAAS,EAAC,CAAQ,IAAwC,IAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAA,IAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAA,IAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAA,CAAC;AAC3X,MAAM,UAAU,kBAAkB,CAAQ,KAAyD,IAAE,IAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC,CAAA,MAAM,CAAC,GAAC,KAAK,CAAC,YAAY,CAAC,CAAA,IAAG,OAAO,CAAC,CAAC,aAAa,KAAG,QAAQ,IAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,KAAG,EAAE;IAAC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC,CAAA,YAAY,CAAC,CAAC,CAAC,MAAM,EAAC,qBAAqB,CAAC,CAAC,CAAA,YAAY,CAAC,CAAC,CAAC,OAAO,EAAC,sBAAsB,CAAC,CAAC,CAAA,IAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAAC,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC,CAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,UAAmB,EAAC,WAAW,EAAC,SAAS,CAAC,CAAC,CAAC,EAAC,WAAW,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC;AACnoB,MAAM,MAAM,GAAC,CAAC,CAAO,EAAC,CAAU,EAAY,EAAE,CAAA,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,0BAA0B,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,KAAK,IAAE,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,GAAG,EAAE,EAAC,CAAC,CAAC;AACjM,MAAM,SAAS,GAAC,CAAC,CAAO,EAAY,EAAE,CAAA,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,oCAAoC,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,GAAG,CAAC,uCAAuC,EAAC,CAAC,CAAC;AACtK,MAAM,SAAS,GAAC,CAAC,CAAO,EAAC,QAAiB,EAAC,MAAc,EAAY,EAAE,CAAA,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,gCAAgC,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,GAAG,CAAC,+CAA+C,MAAM,CAAC,MAAM,CAAC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,iCAAiC,EAAC,CAAC,CAAC;AAC3R,MAAM,aAAa,GAAC,CAAI,CAAS,EAAqB,EAAE,CAAA,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,MAAM,KAAG,UAAU,IAAE,CAAC,CAAC,MAAM,KAAG,UAAU,CAAC,IAAE,CAAC,CAAC,CAAC,MAAM,KAAG,UAAU,IAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9J,MAAM,WAAW,GAAC,CAAC,CAAU,EAAC,CAAO,EAAC,EAAE,CAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAA,CAAC,CAAA,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/I,SAAS,OAAO,CAAgB,SAAmB,EAAC,KAA+B,EAAC,KAAK,GAAO,QAAQ,EAAC,KAAK,GAAkB,EAAE,IAAmC,MAAM,EAAC,WAAW,EAAC,CAAC,EAAC,GAAC,KAAK,EAAC,CAAC,GAAC,SAAS,KAAG,MAAM,CAAC,CAAA,MAAM,OAAO,GAAC,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAC,aAAa,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAC,cAAc,EAAC,OAAO,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,aAAa,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,cAAc,EAAC,CAAC,CAAC,CAAA,MAAM,MAAM,GAAC,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAC,cAAc,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAC,aAAa,EAAC,OAAO,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,cAAc,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,aAAa,EAAC,CAAC,CAAC,CAAA,MAAM,IAAI,GAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA,MAAM,WAAW,GAAC,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,MAAM,CAAA,CAAC,CAAA,OAAO,CAAC,MAAM,EAAC,OAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,OAAO,CAAA,CAAC,CAAA,OAAO,CAAC,OAAO,EAAC,CAAC,CAAC,CAAA,MAAM,QAAQ,GAAC,CAAC,SAAuB,EAAC,WAAW,GAAC,IAAI,EAAiB,EAAE,CAAA,MAAM,CAAC,MAAM,CAAC,EAAC,WAAW,EAAC,CAAC,EAAC,SAAS,EAAC,eAAe,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAC,SAAS,EAAC,iBAAiB,EAAC,MAAM,CAAC,MAAM,CAAC,EAAC,GAAG,WAAW,EAAC,MAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,MAAM,CAAA,CAAC,CAAA,OAAO,CAAC,MAAM,EAAC,OAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,OAAO,CAAA,CAAC,CAAA,OAAO,CAAC,OAAO,EAAC,CAAC,EAAC,WAAW,EAAC,CAAC,CAAC,CAAA,MAAM,IAAI,GAAC,CAAC,SAAuB,EAAC,EAAwB,EAAC,WAAW,GAAC,IAAI,EAAC,EAAE,CAAA,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,aAAa,EAAC,CAAC,CAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,CAAC,SAAS,EAAC,WAAW,CAAC,EAAC,WAAW,EAAC,EAAE,EAAC,CAAC,CAAC,CAAA,IAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAG,WAAW,CAAC,MAAM,IAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,KAAG,WAAW,CAAC,OAAO;IAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,UAAU,EAAC,SAAS,EAAC,aAAa,EAAC,CAAC,CAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,WAAW,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,+BAA+B,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,iFAAiF,EAAC,iBAAiB,EAAC,WAAW,EAAC,eAAe,EAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,IAAI,MAAgC,CAAC,CAAA,IAAI,OAAiC,CAAC,CAAA,IAAG,KAAK,KAAG,QAAQ,EAAC,CAAC;IAAA,IAAI,GAAW,CAAC;IAAA,IAAG,CAAC;QAAA,GAAG,GAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC,KAAK,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAC,YAAY,CAAA,CAAC,CAAA,CAAC,CAAC,MAAM,CAAC,YAAY,EAAC,gBAAgB,EAAC,OAAO,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAAA,OAAM,CAAC,EAAC,CAAC;QAAA,OAAO,IAAI,CAAC,QAAQ,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAAA,IAAG,CAAC,aAAa,CAAK,GAAG,CAAC;QAAC,OAAO,IAAI,CAAC,QAAQ,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,MAAM,GAAC,GAAG,CAAC;IAAA,IAAG,MAAM,CAAC,MAAM,KAAG,UAAU;QAAC,OAAO,IAAI,CAAC,QAAQ,EAAC,WAAW,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,CAAC;IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAAA,IAAG,MAAM,CAAC,QAAQ,KAAG,MAAM,CAAC,MAAM;QAAC,OAAO,IAAI,CAAC,QAAQ,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAC,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,KAAK,CAAC,CAAC;AAAA,CAAC,CAAA,IAAG,KAAK,KAAG,QAAQ,IAAE,KAAK,KAAG,SAAS,EAAC,CAAC;IAAA,IAAI,GAAW,CAAC;IAAA,IAAG,CAAC;QAAA,GAAG,GAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC,KAAK,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,YAAY,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,YAAY,EAAC,gBAAgB,EAAC,OAAO,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAAA,OAAM,CAAC,EAAC,CAAC;QAAA,OAAO,IAAI,CAAC,SAAS,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAAA,IAAG,CAAC,aAAa,CAAK,GAAG,CAAC;QAAC,OAAO,IAAI,CAAC,SAAS,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,OAAO,GAAC,GAAG,CAAC;IAAA,IAAG,OAAO,CAAC,MAAM,KAAG,UAAU;QAAC,OAAO,IAAI,CAAC,SAAS,EAAC,WAAW,CAAC,OAAO,EAAC,SAAS,CAAC,CAAC,CAAC;IAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAAA,IAAG,OAAO,CAAC,QAAQ,KAAG,MAAM,CAAC,OAAO;QAAC,OAAO,IAAI,CAAC,QAAQ,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,EAAC,MAAM,CAAC,OAAO,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,KAAK,CAAC,CAAC;AAAA,CAAC,CAAA,IAAI,KAAO,CAAC,CAAA,IAAG,CAAC;IAAA,KAAK,GAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,KAAG,UAAU,CAAA,CAAC,CAAA,MAAM,CAAC,MAAM,CAAA,CAAC,CAAA,SAAS,EAAC,OAAO,EAAC,OAAO,EAAE,MAAM,KAAG,UAAU,CAAA,CAAC,CAAA,OAAO,CAAC,OAAO,CAAA,CAAC,CAAA,SAAS,EAAC,CAAC,CAAC,CAAC;AAAA,CAAC;AAAA,OAAM,CAAC,EAAC,CAAC;IAAA,OAAO,IAAI,CAAC,WAAW,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,CAAC,CAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA,MAAM,SAAS,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,SAAS,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA,IAAI,SAAqB,CAAC,CAAA,IAAG,SAAS,KAAG,SAAS,EAAC,CAAC;IAAA,IAAI,YAAoB,CAAC;IAAA,IAAG,CAAC;QAAA,YAAY,GAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC,SAAS,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAAA,OAAM,CAAC,EAAC,CAAC;QAAA,OAAO,IAAI,CAAC,WAAW,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAAA,IAAG,YAAY,EAAC,CAAC;QAAA,IAAG,CAAC;YAAA,SAAS,GAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC,SAAS,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC;QAAA,CAAC;QAAA,OAAM,CAAC,EAAC,CAAC;YAAA,OAAO,IAAI,CAAC,WAAW,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC;IAAA,CAAC;AAAA,CAAC,CAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,aAAa,EAAC,CAAC,CAAC,aAAa,EAAC,SAAS,EAAC,MAAM,EAAC,GAAG,CAAC,SAAS,KAAG,SAAS,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,EAAC,SAAS,EAAC,CAAC,EAAC,KAAK,EAAC,WAAW,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC;AACr1H,MAAM,CAAC,MAAM,IAAI,GAAC,CAAgB,KAA+B,EAAC,EAAE,CAAA,OAAO,CAAC,MAAM,EAAC,KAAK,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,IAAI,GAAC,CAAgB,KAA+B,EAAC,EAAE,CAAA,OAAO,CAAC,MAAM,EAAC,KAAK,CAAC,CAAC;AAC1F,MAAM,UAAU,MAAM,CAAgB,KAAgC,IAAE,MAAM,CAAC,GAAC,KAAK,CAAC,QAAQ,CAAC,CAAA,IAAG,CAAC,CAAC,CAAC,WAAW,IAAE,CAAC,CAAC,SAAS,KAAG,QAAQ;IAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,CAAC,SAAS,EAAC,aAAa,EAAC,CAAC,CAAC,WAAW,CAAC,aAAa,EAAC,QAAQ,EAAC,CAAC,EAAC,WAAW,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,sCAAsC,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,2EAA2E,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,EAAC,EAAC,GAAG,KAAK,EAAC,WAAW,EAAC,CAAC,CAAC,WAAW,EAAC,EAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type CommandPolicy, type CommandSourceKind } from './capabilityPolicy.js';
2
+ import type { ExtensionRegistry } from './extensionRegistry.js';
3
+ export interface SourcePosition {
4
+ readonly line: number;
5
+ readonly character: number;
6
+ }
7
+ export interface SourceRange {
8
+ readonly uri: string;
9
+ readonly start: SourcePosition;
10
+ readonly end: SourcePosition;
11
+ }
12
+ export interface StepFormSource {
13
+ readonly nodeId: string;
14
+ readonly raw: Readonly<Record<string, unknown>>;
15
+ readonly sourceRange: SourceRange;
16
+ }
17
+ export interface StepFormDiagnostic {
18
+ readonly severity: 'error';
19
+ readonly code: string;
20
+ readonly message: string;
21
+ readonly nodeId: string;
22
+ readonly sourceRange: SourceRange;
23
+ readonly path?: readonly string[];
24
+ }
25
+ export interface StepContentIntent {
26
+ readonly kind: 'step-content.patch';
27
+ readonly nodeId: string;
28
+ readonly revision: string | number;
29
+ readonly value: Readonly<Record<string, unknown>>;
30
+ }
31
+ export interface StepFormInput {
32
+ readonly registry: ExtensionRegistry;
33
+ readonly formId: string;
34
+ readonly renderer: string;
35
+ readonly capabilities: CommandPolicy;
36
+ readonly sourceKind?: CommandSourceKind;
37
+ readonly step: StepFormSource;
38
+ }
39
+ export interface SubmitStepFormInput extends StepFormInput {
40
+ readonly revision: string | number;
41
+ readonly draft: Readonly<Record<string, unknown>>;
42
+ }
43
+ type Row = Readonly<Record<string, unknown>>;
44
+ export declare function openStepForm(input: StepFormInput): Row;
45
+ export declare function submitStepForm(input: SubmitStepFormInput): Row;
46
+ export {};
47
+ //# sourceMappingURL=stepFormEditing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepFormEditing.d.ts","sourceRoot":"","sources":["../src/stepFormEditing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,cAAc;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AACrF,MAAM,WAAW,WAAW;IAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAA;CAAE;AACnH,MAAM,WAAW,cAAc;IAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE;AAC/I,MAAM,WAAW,kBAAkB;IAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAClN,MAAM,WAAW,iBAAiB;IAAG,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE;AAC1L,MAAM,WAAW,aAAa;IAAG,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE;AACzO,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE;AAEpJ,KAAK,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAsD7C,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAyBtD;AA4GD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,GAAG,CAiB9D"}
@@ -0,0 +1,259 @@
1
+ import { evaluateCommand } from './capabilityPolicy.js';
2
+ const isRow = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
3
+ const snapshot = (value, ancestors = new WeakSet()) => {
4
+ if (value === null || typeof value !== 'object')
5
+ return value;
6
+ if (ancestors.has(value))
7
+ throw new TypeError('Cyclic form content is not supported.');
8
+ ancestors.add(value);
9
+ const copy = Array.isArray(value) ? value.map(child => snapshot(child, ancestors))
10
+ : Object.fromEntries(Object.entries(value).map(([key, child]) => [key, snapshot(child, ancestors)]));
11
+ ancestors.delete(value);
12
+ return Object.freeze(copy);
13
+ };
14
+ const mergePreservingUnknown = (source, draft, schema) => {
15
+ const properties = isRow(schema) && isRow(schema.properties) ? schema.properties : {};
16
+ return Object.freeze(Object.fromEntries([...new Set([...Object.keys(source), ...Object.keys(draft)])].flatMap(key => {
17
+ if (Object.hasOwn(properties, key) && !Object.hasOwn(draft, key))
18
+ return [];
19
+ const sourceValue = source[key];
20
+ const draftValue = draft[key];
21
+ const childSchema = properties[key];
22
+ const value = isRow(sourceValue) && isRow(draftValue)
23
+ ? mergePreservingUnknown(sourceValue, draftValue, childSchema)
24
+ : snapshot(Object.hasOwn(draft, key) ? draftValue : sourceValue);
25
+ return [[key, value]];
26
+ })));
27
+ };
28
+ const diagnostic = (input, code, message, path) => Object.freeze({
29
+ severity: 'error', code, message, nodeId: input.step.nodeId, sourceRange: snapshot(input.step.sourceRange),
30
+ ...(path === undefined ? {} : { path: Object.freeze([...path]) }),
31
+ });
32
+ const inspection = (input, accessibleName) => Object.freeze({
33
+ kind: 'inspection', accessibleName, fields: Object.freeze(Object.keys(input.step.raw)),
34
+ focusTarget: 'raw', keyboardOperations: Object.freeze(['copy']),
35
+ });
36
+ const authorization = (input) => evaluateCommand({
37
+ policy: input.capabilities,
38
+ command: { id: 'step.open-form', requiredCapability: 'formEdit' },
39
+ phase: 'invoke', sourceKind: input.sourceKind ?? 'step-workflow',
40
+ });
41
+ const supportsRenderer = (form, renderer) => form.kind !== 'component' || form.renderer === renderer;
42
+ const SUPPORTED_FORM_KINDS = new Set(['json-schema', 'yaml-schema', 'component', 'custom-element', 'host-callback']);
43
+ const accessibleForm = (form) => {
44
+ const accessibleName = typeof form.accessibleName === 'string' && form.accessibleName.length > 0 ? form.accessibleName : 'Step form';
45
+ const focusTarget = typeof form.focusTarget === 'string' ? form.focusTarget : 'form';
46
+ const keyboardOperations = Array.isArray(form.keyboardOperations) ? form.keyboardOperations.filter((operation) => typeof operation === 'string') : [];
47
+ return Object.freeze({ ...form, accessibleName, focusTarget, keyboardOperations: Object.freeze(keyboardOperations) });
48
+ };
49
+ export function openStepForm(input) {
50
+ const decision = authorization(input);
51
+ let raw;
52
+ try {
53
+ raw = snapshot(input.step.raw);
54
+ }
55
+ catch {
56
+ return Object.freeze({
57
+ status: 'inspection', form: inspection(input, 'Step content'),
58
+ diagnostics: Object.freeze([diagnostic(input, 'FORM_CONTENT_CYCLIC', 'Cyclic step content cannot be edited.')]),
59
+ });
60
+ }
61
+ if (!decision.allowed)
62
+ return Object.freeze({
63
+ status: 'inspection', form: inspection(input, 'Step content'), raw,
64
+ diagnostics: Object.freeze([diagnostic(input, 'FORM_EDIT_NOT_AUTHORIZED', decision.reason ?? 'Form editing is not authorized.')]),
65
+ });
66
+ const registered = input.registry.resolve('form', input.formId);
67
+ if (!isRow(registered))
68
+ return Object.freeze({
69
+ status: 'inspection', form: inspection(input, 'Step content'), raw,
70
+ diagnostics: Object.freeze([diagnostic(input, 'FORM_REGISTRY_REF_MISSING', `Form '${input.formId}' is not registered.`)]),
71
+ });
72
+ if (typeof registered.kind !== 'string' || !SUPPORTED_FORM_KINDS.has(registered.kind))
73
+ return Object.freeze({
74
+ status: 'inspection', form: inspection(input, 'Step content'), raw,
75
+ diagnostics: Object.freeze([diagnostic(input, 'FORM_KIND_UNSUPPORTED', `Form '${input.formId}' has unsupported kind '${String(registered.kind)}'.`)]),
76
+ });
77
+ if (!supportsRenderer(registered, input.renderer))
78
+ return Object.freeze({
79
+ status: 'inspection', form: inspection(input, typeof registered.accessibleName === 'string' ? registered.accessibleName : 'Step content'), raw,
80
+ diagnostics: Object.freeze([diagnostic(input, 'FORM_RENDERER_UNAVAILABLE', `Form '${input.formId}' is not available for renderer '${input.renderer}'.`)]),
81
+ });
82
+ return Object.freeze({ status: 'editable', form: accessibleForm(registered), raw, diagnostics: Object.freeze([]) });
83
+ }
84
+ const typeMatches = (value, type) => {
85
+ if (type === 'object')
86
+ return isRow(value);
87
+ if (type === 'array')
88
+ return Array.isArray(value);
89
+ if (type === 'integer')
90
+ return typeof value === 'number' && Number.isInteger(value);
91
+ if (type === 'number')
92
+ return typeof value === 'number' && Number.isFinite(value);
93
+ if (type === 'null')
94
+ return value === null;
95
+ return typeof value === type;
96
+ };
97
+ const SUPPORTED_SCHEMA_KEYS = new Set(['$schema', '$id', 'title', 'description', 'default', 'examples', 'type', 'enum', 'required', 'properties', 'items', 'minLength', 'minimum', 'maximum', 'pattern', 'minItems', 'maxItems', 'additionalProperties', 'oneOf', 'anyOf']);
98
+ const jsonEqual = (left, right) => {
99
+ if (Object.is(left, right))
100
+ return true;
101
+ if (Array.isArray(left) && Array.isArray(right))
102
+ return left.length === right.length && left.every((item, index) => jsonEqual(item, right[index]));
103
+ if (isRow(left) && isRow(right)) {
104
+ const keys = Object.keys(left);
105
+ return keys.length === Object.keys(right).length && keys.every(key => Object.hasOwn(right, key) && jsonEqual(left[key], right[key]));
106
+ }
107
+ return false;
108
+ };
109
+ const validateSchema = (schema, value, path = []) => {
110
+ if (!isRow(schema))
111
+ return [{ code: 'FORM_SCHEMA_UNSUPPORTED', message: 'The registered form schema must be a non-null object.', path }];
112
+ const unsupported = Object.keys(schema).filter(key => !SUPPORTED_SCHEMA_KEYS.has(key));
113
+ if (unsupported.length > 0)
114
+ return [{ code: 'FORM_SCHEMA_UNSUPPORTED', message: `Unsupported schema keyword '${unsupported[0]}'.`, path }];
115
+ const failures = [];
116
+ const invalid = (message, at = path) => ({ code: 'FORM_DRAFT_INVALID', message, path: at });
117
+ const declaredTypes = typeof schema.type === 'string' ? [schema.type] : Array.isArray(schema.type) ? schema.type.filter((item) => typeof item === 'string') : [];
118
+ if (schema.type !== undefined && declaredTypes.length === 0)
119
+ return [{ code: 'FORM_SCHEMA_UNSUPPORTED', message: 'Schema type must be a string or string array.', path }];
120
+ if (declaredTypes.length > 0 && !declaredTypes.some(type => typeMatches(value, type)))
121
+ return [invalid(`Expected ${declaredTypes.join(' or ')}.`)];
122
+ if (schema.enum !== undefined && !Array.isArray(schema.enum))
123
+ return [{ code: 'FORM_SCHEMA_UNSUPPORTED', message: 'Schema enum must be an array.', path }];
124
+ if (Array.isArray(schema.enum) && !schema.enum.some(candidate => jsonEqual(candidate, value)))
125
+ failures.push(invalid('Value is not one of the allowed values.'));
126
+ if (typeof value === 'string') {
127
+ if (typeof schema.minLength === 'number' && value.length < schema.minLength)
128
+ failures.push(invalid(`Expected at least ${schema.minLength} characters.`));
129
+ if (typeof schema.pattern === 'string') {
130
+ try {
131
+ if (!new RegExp(schema.pattern).test(value))
132
+ failures.push(invalid(`Value does not match pattern '${schema.pattern}'.`));
133
+ }
134
+ catch {
135
+ return [{ code: 'FORM_SCHEMA_UNSUPPORTED', message: 'Schema pattern is not a valid regular expression.', path }];
136
+ }
137
+ }
138
+ }
139
+ if (typeof value === 'number') {
140
+ if (typeof schema.minimum === 'number' && value < schema.minimum)
141
+ failures.push(invalid(`Expected a value of at least ${schema.minimum}.`));
142
+ if (typeof schema.maximum === 'number' && value > schema.maximum)
143
+ failures.push(invalid(`Expected a value of at most ${schema.maximum}.`));
144
+ }
145
+ if (isRow(value)) {
146
+ if (Array.isArray(schema.required))
147
+ for (const key of schema.required)
148
+ if (typeof key === 'string' && !Object.hasOwn(value, key))
149
+ failures.push(invalid(`Required property '${key}' is missing.`, [...path, key]));
150
+ if (isRow(schema.properties))
151
+ for (const [key, childSchema] of Object.entries(schema.properties))
152
+ if (Object.hasOwn(value, key))
153
+ failures.push(...validateSchema(childSchema, value[key], [...path, key]));
154
+ if (schema.additionalProperties === false && isRow(schema.properties))
155
+ for (const key of Object.keys(value))
156
+ if (!Object.hasOwn(schema.properties, key))
157
+ failures.push(invalid(`Additional property '${key}' is not allowed.`, [...path, key]));
158
+ }
159
+ if (Array.isArray(value)) {
160
+ if (typeof schema.minItems === 'number' && value.length < schema.minItems)
161
+ failures.push(invalid(`Expected at least ${schema.minItems} items.`));
162
+ if (typeof schema.maxItems === 'number' && value.length > schema.maxItems)
163
+ failures.push(invalid(`Expected at most ${schema.maxItems} items.`));
164
+ if (schema.items !== undefined)
165
+ value.forEach((item, index) => failures.push(...validateSchema(schema.items, item, [...path, String(index)])));
166
+ }
167
+ for (const keyword of ['anyOf', 'oneOf'])
168
+ if (schema[keyword] !== undefined) {
169
+ if (!Array.isArray(schema[keyword]) || schema[keyword].length === 0)
170
+ return [{ code: 'FORM_SCHEMA_UNSUPPORTED', message: `${keyword} must be a non-empty array.`, path }];
171
+ const passing = schema[keyword].filter(candidate => validateSchema(candidate, value, path).length === 0).length;
172
+ if ((keyword === 'anyOf' && passing === 0) || (keyword === 'oneOf' && passing !== 1))
173
+ failures.push(invalid(`Value does not satisfy ${keyword}.`));
174
+ }
175
+ return failures;
176
+ };
177
+ const yamlScalar = (source) => {
178
+ const value = source.trim();
179
+ if (value.startsWith('[') && value.endsWith(']')) {
180
+ const inner = value.slice(1, -1).trim();
181
+ return inner === '' ? [] : inner.split(',').map(item => yamlScalar(item));
182
+ }
183
+ if (value === 'true')
184
+ return true;
185
+ if (value === 'false')
186
+ return false;
187
+ if (value === 'null' || value === '~')
188
+ return null;
189
+ if (/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/.test(value))
190
+ return Number(value);
191
+ return value.replace(/^(['"])(.*)\1$/, '$2');
192
+ };
193
+ /** Parses the mapping-and-scalar YAML subset used by renderer-neutral form schemas, without host IO or execution. */
194
+ const parseYamlSchema = (source) => {
195
+ const root = {};
196
+ const lines = source.split(/\r?\n/).filter(line => line.trim() !== '' && !line.trimStart().startsWith('#'));
197
+ const stack = [{ indent: -1, value: root }];
198
+ for (let index = 0; index < lines.length; index += 1) {
199
+ const original = lines[index];
200
+ const indent = original.length - original.trimStart().length;
201
+ while (stack.length > 1 && indent <= stack[stack.length - 1].indent)
202
+ stack.pop();
203
+ if (original.trimStart().startsWith('- ')) {
204
+ const target = stack[stack.length - 1].value;
205
+ if (!Array.isArray(target))
206
+ return undefined;
207
+ target.push(yamlScalar(original.trimStart().slice(2)));
208
+ continue;
209
+ }
210
+ const match = /^\s*([^:#][^:]*):(?:\s*(.*))?$/.exec(original);
211
+ const target = stack[stack.length - 1].value;
212
+ if (!match || Array.isArray(target))
213
+ return undefined;
214
+ const key = match[1].trim();
215
+ const scalar = match[2]?.trim() ?? '';
216
+ if (scalar === '') {
217
+ const next = lines[index + 1];
218
+ const child = next !== undefined && next.trimStart().startsWith('- ') ? [] : {};
219
+ target[key] = child;
220
+ stack.push({ indent, value: child });
221
+ }
222
+ else
223
+ target[key] = yamlScalar(scalar);
224
+ }
225
+ return Object.keys(root).length === 0 ? undefined : root;
226
+ };
227
+ const schemaFor = (form) => {
228
+ if (form.kind === 'json-schema')
229
+ return form.schema;
230
+ if (form.kind === 'yaml-schema' && typeof form.schema === 'string')
231
+ return parseYamlSchema(form.schema);
232
+ return null;
233
+ };
234
+ export function submitStepForm(input) {
235
+ const opened = openStepForm(input);
236
+ if (opened.status !== 'editable')
237
+ return opened;
238
+ const schema = schemaFor(opened.form);
239
+ const schemaForm = ['json-schema', 'yaml-schema'].includes(String(opened.form.kind));
240
+ const failures = schemaForm && !isRow(schema)
241
+ ? [{ code: 'FORM_SCHEMA_UNSUPPORTED', message: 'The registered form schema is malformed.', path: [] }]
242
+ : schema === null ? [] : validateSchema(schema, input.draft);
243
+ if (failures.length > 0)
244
+ return Object.freeze({
245
+ status: 'invalid', diagnostics: Object.freeze(failures.map(failure => diagnostic(input, failure.code, failure.message, failure.path))),
246
+ });
247
+ let value;
248
+ try {
249
+ value = mergePreservingUnknown(input.step.raw, input.draft, schema);
250
+ }
251
+ catch {
252
+ return Object.freeze({
253
+ status: 'invalid', diagnostics: Object.freeze([diagnostic(input, 'FORM_CONTENT_CYCLIC', 'Cyclic form content cannot be submitted.')]),
254
+ });
255
+ }
256
+ const intent = Object.freeze({ kind: 'step-content.patch', nodeId: input.step.nodeId, revision: input.revision, value });
257
+ return Object.freeze({ status: 'valid', diagnostics: Object.freeze([]), intent });
258
+ }
259
+ //# sourceMappingURL=stepFormEditing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepFormEditing.js","sourceRoot":"","sources":["../src/stepFormEditing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ExtensionRegistry } from './extensionRegistry.js';
2
+ type Row = Readonly<Record<string, unknown>>;
3
+ export interface ThemeDiagnostic {
4
+ readonly severity: 'error';
5
+ readonly code: string;
6
+ readonly message: string;
7
+ readonly layer?: string;
8
+ readonly path?: string;
9
+ }
10
+ export declare function resolveTheme(input: Readonly<{
11
+ registry: ExtensionRegistry;
12
+ themeId: string;
13
+ appearance: string;
14
+ hostTokens?: Readonly<Record<string, unknown>>;
15
+ }>): Row;
16
+ export declare function resolveStyleCascade(input: Readonly<{
17
+ layers: Row;
18
+ allowedProperties: Readonly<Record<string, readonly string[]>>;
19
+ policy?: Readonly<{
20
+ allowCssUrls?: boolean;
21
+ }>;
22
+ semanticState?: Row;
23
+ transientState?: Row;
24
+ }>): Row;
25
+ export {};
26
+ //# sourceMappingURL=themeStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeStyles.d.ts","sourceRoot":"","sources":["../src/themeStyles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,KAAK,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7C,MAAM,WAAW,eAAe;IAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAGjK,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,CAAC,GAAG,GAAG,CAOvK;AAMD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,GAAG,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,GAAG,GAAG,CAMnO"}