@octonodes/ui-extensions 0.2.16 → 0.2.26

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 (70) hide show
  1. package/README.md +74 -3
  2. package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.d.ts +3 -0
  3. package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.d.ts.map +1 -0
  4. package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.js +17 -0
  5. package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.js.map +1 -0
  6. package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.d.ts +4 -0
  7. package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.d.ts.map +1 -0
  8. package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.js +2 -0
  9. package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.js.map +1 -0
  10. package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.d.ts +3 -0
  11. package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.d.ts.map +1 -0
  12. package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.js +14 -0
  13. package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.js.map +1 -0
  14. package/dist/app/OctonodeAppProvider/AppAccessScreen/index.d.ts +3 -0
  15. package/dist/app/OctonodeAppProvider/AppAccessScreen/index.d.ts.map +1 -0
  16. package/dist/app/OctonodeAppProvider/AppAccessScreen/index.js +3 -0
  17. package/dist/app/OctonodeAppProvider/AppAccessScreen/index.js.map +1 -0
  18. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.d.ts +5 -0
  19. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.d.ts.map +1 -0
  20. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.js +72 -0
  21. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.js.map +1 -0
  22. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.types.d.ts +12 -0
  23. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.types.d.ts.map +1 -0
  24. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.types.js +2 -0
  25. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.types.js.map +1 -0
  26. package/dist/app/OctonodeAppProvider/index.d.ts +3 -0
  27. package/dist/app/OctonodeAppProvider/index.d.ts.map +1 -0
  28. package/dist/app/OctonodeAppProvider/index.js +3 -0
  29. package/dist/app/OctonodeAppProvider/index.js.map +1 -0
  30. package/dist/app/hosted.d.ts.map +1 -1
  31. package/dist/app/hosted.js +11 -0
  32. package/dist/app/hosted.js.map +1 -1
  33. package/dist/app/index.d.ts +3 -2
  34. package/dist/app/index.d.ts.map +1 -1
  35. package/dist/app/index.js +4 -4
  36. package/dist/app/index.js.map +1 -1
  37. package/dist/app/project.d.ts +1 -1
  38. package/dist/app/project.d.ts.map +1 -1
  39. package/dist/app/types.d.ts +8 -3
  40. package/dist/app/types.d.ts.map +1 -1
  41. package/dist/contributions.d.ts +5 -0
  42. package/dist/contributions.d.ts.map +1 -0
  43. package/dist/contributions.js +71 -0
  44. package/dist/contributions.js.map +1 -0
  45. package/dist/contributions.types.d.ts +93 -0
  46. package/dist/contributions.types.d.ts.map +1 -0
  47. package/dist/contributions.types.js +2 -0
  48. package/dist/contributions.types.js.map +1 -0
  49. package/dist/index.d.ts +9 -4
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +12 -4
  52. package/dist/index.js.map +1 -1
  53. package/dist/locales/de.json +22 -0
  54. package/dist/locales/en.json +22 -0
  55. package/dist/locales/es.json +22 -0
  56. package/dist/locales/fr.json +22 -0
  57. package/dist/locales/index.d.ts +113 -0
  58. package/dist/locales/index.d.ts.map +1 -0
  59. package/dist/locales/index.js +8 -0
  60. package/dist/locales/index.js.map +1 -0
  61. package/dist/locales/ja.json +22 -0
  62. package/dist/react.d.ts +2 -0
  63. package/dist/react.d.ts.map +1 -1
  64. package/dist/react.js +16 -4
  65. package/dist/react.js.map +1 -1
  66. package/dist/targets.d.ts +2 -0
  67. package/dist/targets.d.ts.map +1 -0
  68. package/dist/targets.js +46 -0
  69. package/dist/targets.js.map +1 -0
  70. package/package.json +5 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contributions.d.ts","sourceRoot":"","sources":["../src/contributions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAEhB,kBAAkB,EAClB,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAQlC,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAkBrE;AACD,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAE/G;AACD,wBAAgB,WAAW,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CA8C9D"}
@@ -0,0 +1,71 @@
1
+ // Generated from packages/ui-extensions/src/contributions.ts. Do not edit; run the Octonode SDK sync.
2
+ import { getAppSession } from "./index.js";
3
+ import { request } from "./app/index.js";
4
+ function environment(target) {
5
+ getAppSession();
6
+ const value = globalThis.__octonodeExtension;
7
+ if (!value || value.target !== target)
8
+ throw new Error("Extension target context unavailable");
9
+ return value;
10
+ }
11
+ export function extensionApi(target) {
12
+ const value = environment(target);
13
+ return {
14
+ target,
15
+ context: value.context,
16
+ i18n: { t: (key) => value.translations[key] ?? key },
17
+ ui: {
18
+ openPanel: (id) => request("host", { command: "panel.open", id }),
19
+ openAssistant: (suggestion) => request("host", { command: "assistant.open", suggestion }),
20
+ },
21
+ tabs: {
22
+ undo: (scope, revision) => request("host", { command: "layout.undo", scope, revision }),
23
+ list: () => request("host", { command: "layout.list" }),
24
+ update: (scope, revision, items) => request("host", { command: "layout.update", scope, revision, items }),
25
+ },
26
+ edits: { propose: (input) => request("host", { command: "edit.propose", ...input }) },
27
+ };
28
+ }
29
+ export function defineAction(target, handler) {
30
+ return { kind: "action", target, handler };
31
+ }
32
+ export function startAction(definition) {
33
+ const value = environment(definition.target);
34
+ if (!value.invocationId)
35
+ throw new Error("Actions require host invocation");
36
+ const controller = new AbortController();
37
+ addEventListener("pagehide", () => controller.abort(), { once: true });
38
+ const api = {
39
+ ...extensionApi(definition.target),
40
+ signal: controller.signal,
41
+ invocationId: value.invocationId,
42
+ };
43
+ parent.postMessage({
44
+ octonode: "ui-extension",
45
+ apiVersion: "2",
46
+ type: "render",
47
+ target: definition.target,
48
+ tree: { type: "node-form", children: [] },
49
+ }, "*");
50
+ Promise.resolve()
51
+ .then(() => definition.handler(api))
52
+ .then(() => {
53
+ parent.postMessage({
54
+ octonode: "ui-extension",
55
+ apiVersion: "2",
56
+ type: "action-complete",
57
+ target: definition.target,
58
+ invocationId: value.invocationId,
59
+ }, "*");
60
+ })
61
+ .catch(() => {
62
+ parent.postMessage({
63
+ octonode: "ui-extension",
64
+ apiVersion: "2",
65
+ type: "error",
66
+ target: definition.target,
67
+ message: "Extension action failed",
68
+ }, "*");
69
+ });
70
+ }
71
+ //# sourceMappingURL=contributions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contributions.js","sourceRoot":"","sources":["../src/contributions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import type { APP_EXTENSION_TARGETS } from "./targets.js";
2
+ export type AppExtensionTarget = (typeof APP_EXTENSION_TARGETS)[number];
3
+ export type ExtensionContext = Readonly<{
4
+ projectId?: string;
5
+ worktreeId?: string;
6
+ workflowId?: string;
7
+ nodeId?: string;
8
+ nodeKind?: string;
9
+ edgeId?: string;
10
+ executionId?: string;
11
+ taskSpaceId?: string;
12
+ itemId?: string;
13
+ documentId?: string;
14
+ documentFormat?: "markdown" | "html" | "latex";
15
+ tableId?: string;
16
+ rowId?: string;
17
+ filePath?: string;
18
+ revision?: string | number;
19
+ draftRevision?: number;
20
+ selectedIds?: readonly string[];
21
+ canvas?: {
22
+ x: number;
23
+ y: number;
24
+ };
25
+ readOnly: boolean;
26
+ tasks?: readonly {
27
+ itemId: string;
28
+ taskSpaceId: string;
29
+ revision: number;
30
+ }[];
31
+ nodes?: readonly {
32
+ id: string;
33
+ kind?: string;
34
+ label?: string;
35
+ }[];
36
+ selection?: {
37
+ start: number;
38
+ end: number;
39
+ };
40
+ }>;
41
+ export type ExtensionApi = {
42
+ readonly target: AppExtensionTarget;
43
+ readonly context: ExtensionContext;
44
+ i18n: {
45
+ t(key: string): string;
46
+ };
47
+ ui: {
48
+ openPanel(id: string): Promise<void>;
49
+ openAssistant(suggestion?: string): Promise<void>;
50
+ };
51
+ edits: {
52
+ propose(input: {
53
+ resource: "file" | "document";
54
+ baseRevision: string;
55
+ draftRevision: number;
56
+ content: string;
57
+ mode: "append" | "replace" | "replace-selection";
58
+ }): Promise<void>;
59
+ };
60
+ tabs: {
61
+ undo(scope: string, revision: string): Promise<void>;
62
+ list(): Promise<{
63
+ scope: string;
64
+ revision: string;
65
+ items: {
66
+ id: string;
67
+ label?: string;
68
+ pinned?: boolean;
69
+ }[];
70
+ }[]>;
71
+ update(scope: string, revision: string, items: {
72
+ id: string;
73
+ label?: string;
74
+ pinned?: boolean;
75
+ }[]): Promise<void>;
76
+ };
77
+ };
78
+ export type ActionApi = ExtensionApi & {
79
+ signal: AbortSignal;
80
+ invocationId: string;
81
+ };
82
+ export type ActionDefinition = {
83
+ kind: "action";
84
+ target: AppExtensionTarget;
85
+ handler(api: ActionApi): Promise<void> | void;
86
+ };
87
+ export type ExtensionEnvironment = {
88
+ target: AppExtensionTarget;
89
+ context: ExtensionContext;
90
+ translations: Readonly<Record<string, string>>;
91
+ invocationId?: string;
92
+ };
93
+ //# sourceMappingURL=contributions.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contributions.types.d.ts","sourceRoot":"","sources":["../src/contributions.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contributions.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contributions.types.js","sourceRoot":"","sources":["../src/contributions.types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
+ export { APP_EXTENSION_TARGETS } from "./targets.js";
2
+ export { defineAction, startAction, extensionApi } from "./contributions.js";
3
+ export type { ActionApi, ActionDefinition, AppExtensionTarget, ExtensionApi, ExtensionContext, ExtensionEnvironment, } from "./contributions.types.js";
1
4
  export declare const UI_EXTENSION_API_VERSION: "1";
2
- export declare const UI_EXTENSION_TARGETS: readonly ["node.inspector.inputs", "app.page", "workspace.block"];
5
+ export declare const APP_EXTENSION_API_VERSION: "2";
6
+ export declare const UI_EXTENSION_TARGETS: readonly ["node.inspector.inputs", "app.page", "workspace.block", "shell.panel", "shell.dock", "project.tab", "project.overview.block", "workflow.tab", "workflow.inspector.block", "node.view", "node.inspector.tab", "node.inspector.block", "task.space.view", "task.details.tab", "task.details.block", "task.card.badge", "document.tab", "document.panel", "editor.panel", "git.diff.panel", "table.view", "execution.details.block", "app.settings.section", "project.settings.section", "project.action", "file.action", "editor.action", "editor.selection-action", "workflow.action", "workflow.canvas.action", "workflow.selection-action", "workflow.edge.action", "node.action", "task.space.action", "task.action", "document.action", "document.selection-action", "document.block.action", "document.slash-command", "document.review.action", "git.diff.action", "table.action", "execution.action"];
3
7
  export type UiExtensionTarget = (typeof UI_EXTENSION_TARGETS)[number];
4
8
  export type UiExtensionTree = {
5
9
  type: "text";
@@ -29,24 +33,25 @@ export type UiExtensionTree = {
29
33
  };
30
34
  export interface UiExtensionRenderMessage {
31
35
  octonode: "ui-extension";
32
- apiVersion: typeof UI_EXTENSION_API_VERSION;
36
+ apiVersion: "1" | "2";
33
37
  type: "render";
34
38
  target: UiExtensionTarget;
35
39
  tree: UiExtensionTree;
36
40
  }
37
41
  export interface UiExtensionErrorMessage {
38
42
  octonode: "ui-extension";
39
- apiVersion: typeof UI_EXTENSION_API_VERSION;
43
+ apiVersion: "1" | "2";
40
44
  type: "error";
41
45
  target: UiExtensionTarget;
42
46
  message: string;
43
47
  }
44
48
  export type UiExtensionMessage = UiExtensionRenderMessage | UiExtensionErrorMessage;
45
- export declare function validateExtensionMessage(value: unknown, expectedTarget: UiExtensionTarget): {
49
+ export declare function validateExtensionMessage(value: unknown, expectedTarget: UiExtensionTarget, expectedVersion?: "1" | "2"): {
46
50
  message: UiExtensionMessage;
47
51
  inputNames: string[];
48
52
  } | null;
49
53
  export interface AppSession {
54
+ protocolVersion?: "2";
50
55
  configuration: Readonly<Record<string, string>>;
51
56
  token: string;
52
57
  expiresAt: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,wBAAwB,EAAG,GAAY,CAAC;AACrD,eAAO,MAAM,oBAAoB,mEAAoE,CAAC;AAEtG,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACnF;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,aAAa,GAAG,WAAW,CAAA;CAAE,CAAC;AAEpF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,OAAO,wBAAwB,CAAC;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,OAAO,wBAAwB,CAAC;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG,uBAAuB,CAAC;AAOpF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,iBAAiB,GAChC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAwD9D;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,+GAA+G;AAC/G,wBAAgB,aAAa,IAAI,UAAU,CAI1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7E,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,eAAO,MAAM,wBAAwB,EAAG,GAAY,CAAC;AACrD,eAAO,MAAM,yBAAyB,EAAG,GAAY,CAAC;AACtD,eAAO,MAAM,oBAAoB,u3BAA+D,CAAC;AAEjG,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACnF;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,aAAa,GAAG,WAAW,CAAA;CAAE,CAAC;AAEpF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG,uBAAuB,CAAC;AAOpF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,iBAAiB,EACjC,eAAe,GAAE,GAAG,GAAG,GAAS,GAC/B;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CA+D9D;AAED,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,+GAA+G;AAC/G,wBAAgB,aAAa,IAAI,UAAU,CAI1C"}
package/dist/index.js CHANGED
@@ -1,16 +1,20 @@
1
1
  // Generated from packages/ui-extensions/src/index.ts. Do not edit; run the Octonode SDK sync.
2
+ import { APP_EXTENSION_TARGETS } from "./targets.js";
3
+ export { APP_EXTENSION_TARGETS } from "./targets.js";
4
+ export { defineAction, startAction, extensionApi } from "./contributions.js";
2
5
  export const UI_EXTENSION_API_VERSION = "1";
3
- export const UI_EXTENSION_TARGETS = ["node.inspector.inputs", "app.page", "workspace.block"];
6
+ export const APP_EXTENSION_API_VERSION = "2";
7
+ export const UI_EXTENSION_TARGETS = ["node.inspector.inputs", ...APP_EXTENSION_TARGETS];
4
8
  const MAX_NODES = 100;
5
9
  const MAX_DEPTH = 10;
6
10
  const MAX_TEXT = 4_000;
7
11
  const INPUT_NAME = /^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/;
8
- export function validateExtensionMessage(value, expectedTarget) {
12
+ export function validateExtensionMessage(value, expectedTarget, expectedVersion = "1") {
9
13
  if (!value || typeof value !== "object")
10
14
  return null;
11
15
  const message = value;
12
16
  if (message.octonode !== "ui-extension" ||
13
- message.apiVersion !== UI_EXTENSION_API_VERSION ||
17
+ message.apiVersion !== expectedVersion ||
14
18
  message.target !== expectedTarget)
15
19
  return null;
16
20
  if (message.type === "error")
@@ -22,13 +26,17 @@ export function validateExtensionMessage(value, expectedTarget) {
22
26
  let count = 0;
23
27
  const inputNames = [];
24
28
  const visit = (node, depth) => {
25
- if (!node || typeof node !== "object" || depth > MAX_DEPTH || ++count > MAX_NODES)
29
+ if (!node ||
30
+ typeof node !== "object" ||
31
+ depth > MAX_DEPTH ||
32
+ ++count > (["node.view", "task.card.badge"].includes(expectedTarget) ? 500 : MAX_NODES))
26
33
  return false;
27
34
  const candidate = node;
28
35
  if (candidate.type === "text")
29
36
  return typeof candidate.value === "string" && candidate.value.length <= MAX_TEXT;
30
37
  if (candidate.type === "button" || candidate.type === "text-field") {
31
38
  return (expectedTarget !== "node.inspector.inputs" &&
39
+ !["node.view", "task.card.badge", "table.column.view"].includes(expectedTarget) &&
32
40
  typeof candidate.id === "string" &&
33
41
  candidate.id.length > 0 &&
34
42
  candidate.id.length <= 100 &&
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ {
2
+ "standaloneTitle": "Dein Arbeitsbereich ist nur einen Klick entfernt.",
3
+ "standaloneDescription": "Diese App gehört zu Octonode. Öffne sie aus deinem Arbeitsbereich, um deine Projekte zu verbinden und weiterzuarbeiten.",
4
+ "standaloneStatus": "Verbindung zum Arbeitsbereich erforderlich",
5
+ "expiredTitle": "Verbinden wir dich erneut.",
6
+ "expiredDescription": "Deine Sitzung ist abgelaufen. Öffne diese App erneut aus deinem Octonode-Arbeitsbereich.",
7
+ "expiredStatus": "Sitzung abgelaufen",
8
+ "errorTitle": "Die Verbindung ist fehlgeschlagen.",
9
+ "errorDescription": "Dein Zugriff konnte nicht bestätigt werden. Öffne die App erneut aus Octonode. Falls das Problem bleibt, bitte die verantwortliche Person, deinen Zugriff zu prüfen.",
10
+ "errorStatus": "Verbindung fehlgeschlagen",
11
+ "connectingTitle": "Verbindung zum Arbeitsbereich wird hergestellt.",
12
+ "connectingDescription": "Wir prüfen deine Sitzung und verbinden diese App mit Octonode. Dein Arbeitsbereich ist gleich bereit.",
13
+ "connectingStatus": "Sichere Verbindung wird hergestellt",
14
+ "open": "Octonode öffnen",
15
+ "about": "So funktioniert’s",
16
+ "guide": "App-Leitfaden",
17
+ "hint": "Öffne Apps in deinem Arbeitsbereich und wähle diese App. Deine Sitzung wird automatisch verbunden.",
18
+ "workspace": "Dein Arbeitsbereich",
19
+ "caption": "Deine Apps. Deine Projekte. Ein verbundener Arbeitsbereich.",
20
+ "footer": "Ein verbundener Arbeitsbereich mit Octonode.",
21
+ "help": "Brauchst du Hilfe?"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "standaloneTitle": "Your workspace is one click away.",
3
+ "standaloneDescription": "This app lives inside Octonode. Open it from your workspace to connect your projects and pick up where you left off.",
4
+ "standaloneStatus": "Workspace connection required",
5
+ "expiredTitle": "Let’s get you connected again.",
6
+ "expiredDescription": "Your session has expired. Reopen this app from your Octonode workspace to continue.",
7
+ "expiredStatus": "Session expired",
8
+ "errorTitle": "We couldn’t connect your workspace.",
9
+ "errorDescription": "Your workspace access could not be verified. Open the app again from Octonode. If this continues, ask your workspace owner to check your access.",
10
+ "errorStatus": "Connection unsuccessful",
11
+ "connectingTitle": "Connecting to your workspace.",
12
+ "connectingDescription": "We’re checking your session and connecting this app to Octonode. Your workspace will be ready here shortly.",
13
+ "connectingStatus": "Connecting securely",
14
+ "open": "Open Octonode",
15
+ "about": "How it works",
16
+ "guide": "App guide",
17
+ "hint": "In your workspace, open Apps and select this app. Your workspace session connects automatically.",
18
+ "workspace": "Your workspace",
19
+ "caption": "Your apps. Your projects. One connected workspace.",
20
+ "footer": "A connected workspace, powered by Octonode.",
21
+ "help": "Need a hand?"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "standaloneTitle": "Tu espacio de trabajo está a un clic.",
3
+ "standaloneDescription": "Esta aplicación forma parte de Octonode. Ábrela desde tu espacio de trabajo para conectar tus proyectos y continuar donde lo dejaste.",
4
+ "standaloneStatus": "Se requiere conexión al espacio de trabajo",
5
+ "expiredTitle": "Vamos a conectarte de nuevo.",
6
+ "expiredDescription": "Tu sesión ha caducado. Vuelve a abrir esta aplicación desde tu espacio de trabajo de Octonode para continuar.",
7
+ "expiredStatus": "Sesión caducada",
8
+ "errorTitle": "No pudimos conectar tu espacio de trabajo.",
9
+ "errorDescription": "No pudimos verificar tu acceso. Vuelve a abrir la aplicación desde Octonode. Si el problema continúa, pide al responsable que revise tu acceso.",
10
+ "errorStatus": "Conexión fallida",
11
+ "connectingTitle": "Conectando con tu espacio de trabajo.",
12
+ "connectingDescription": "Estamos verificando tu sesión y conectando esta aplicación a Octonode. Tu espacio estará listo en breve.",
13
+ "connectingStatus": "Conexión segura en curso",
14
+ "open": "Abrir Octonode",
15
+ "about": "Cómo funciona",
16
+ "guide": "Guía de aplicaciones",
17
+ "hint": "En tu espacio de trabajo, abre Aplicaciones y selecciona esta aplicación. Tu sesión se conecta automáticamente.",
18
+ "workspace": "Tu espacio de trabajo",
19
+ "caption": "Tus aplicaciones. Tus proyectos. Un espacio conectado.",
20
+ "footer": "Un espacio de trabajo conectado con Octonode.",
21
+ "help": "¿Necesitas ayuda?"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "standaloneTitle": "Votre espace de travail est à un clic.",
3
+ "standaloneDescription": "Cette application fait partie d’Octonode. Ouvrez-la depuis votre espace de travail pour connecter vos projets et reprendre votre activité.",
4
+ "standaloneStatus": "Connexion à l’espace de travail requise",
5
+ "expiredTitle": "Reconnectons votre espace de travail.",
6
+ "expiredDescription": "Votre session a expiré. Rouvrez cette application depuis votre espace de travail Octonode pour continuer.",
7
+ "expiredStatus": "Session expirée",
8
+ "errorTitle": "La connexion a échoué.",
9
+ "errorDescription": "Votre accès n’a pas pu être vérifié. Rouvrez l’application depuis Octonode. Si le problème persiste, demandez au responsable de vérifier votre accès.",
10
+ "errorStatus": "Connexion impossible",
11
+ "connectingTitle": "Connexion à votre espace de travail.",
12
+ "connectingDescription": "Nous vérifions votre session et connectons cette application à Octonode. Votre espace sera bientôt prêt.",
13
+ "connectingStatus": "Connexion sécurisée en cours",
14
+ "open": "Ouvrir Octonode",
15
+ "about": "Comment ça marche",
16
+ "guide": "Guide des applications",
17
+ "hint": "Dans votre espace de travail, ouvrez Applications et sélectionnez cette application. Votre session se connecte automatiquement.",
18
+ "workspace": "Votre espace de travail",
19
+ "caption": "Vos applications. Vos projets. Un espace de travail connecté.",
20
+ "footer": "Un espace de travail connecté avec Octonode.",
21
+ "help": "Besoin d’aide ?"
22
+ }
@@ -0,0 +1,113 @@
1
+ export declare const locales: {
2
+ en: {
3
+ standaloneTitle: string;
4
+ standaloneDescription: string;
5
+ standaloneStatus: string;
6
+ expiredTitle: string;
7
+ expiredDescription: string;
8
+ expiredStatus: string;
9
+ errorTitle: string;
10
+ errorDescription: string;
11
+ errorStatus: string;
12
+ connectingTitle: string;
13
+ connectingDescription: string;
14
+ connectingStatus: string;
15
+ open: string;
16
+ about: string;
17
+ guide: string;
18
+ hint: string;
19
+ workspace: string;
20
+ caption: string;
21
+ footer: string;
22
+ help: string;
23
+ };
24
+ de: {
25
+ standaloneTitle: string;
26
+ standaloneDescription: string;
27
+ standaloneStatus: string;
28
+ expiredTitle: string;
29
+ expiredDescription: string;
30
+ expiredStatus: string;
31
+ errorTitle: string;
32
+ errorDescription: string;
33
+ errorStatus: string;
34
+ connectingTitle: string;
35
+ connectingDescription: string;
36
+ connectingStatus: string;
37
+ open: string;
38
+ about: string;
39
+ guide: string;
40
+ hint: string;
41
+ workspace: string;
42
+ caption: string;
43
+ footer: string;
44
+ help: string;
45
+ };
46
+ fr: {
47
+ standaloneTitle: string;
48
+ standaloneDescription: string;
49
+ standaloneStatus: string;
50
+ expiredTitle: string;
51
+ expiredDescription: string;
52
+ expiredStatus: string;
53
+ errorTitle: string;
54
+ errorDescription: string;
55
+ errorStatus: string;
56
+ connectingTitle: string;
57
+ connectingDescription: string;
58
+ connectingStatus: string;
59
+ open: string;
60
+ about: string;
61
+ guide: string;
62
+ hint: string;
63
+ workspace: string;
64
+ caption: string;
65
+ footer: string;
66
+ help: string;
67
+ };
68
+ es: {
69
+ standaloneTitle: string;
70
+ standaloneDescription: string;
71
+ standaloneStatus: string;
72
+ expiredTitle: string;
73
+ expiredDescription: string;
74
+ expiredStatus: string;
75
+ errorTitle: string;
76
+ errorDescription: string;
77
+ errorStatus: string;
78
+ connectingTitle: string;
79
+ connectingDescription: string;
80
+ connectingStatus: string;
81
+ open: string;
82
+ about: string;
83
+ guide: string;
84
+ hint: string;
85
+ workspace: string;
86
+ caption: string;
87
+ footer: string;
88
+ help: string;
89
+ };
90
+ ja: {
91
+ standaloneTitle: string;
92
+ standaloneDescription: string;
93
+ standaloneStatus: string;
94
+ expiredTitle: string;
95
+ expiredDescription: string;
96
+ expiredStatus: string;
97
+ errorTitle: string;
98
+ errorDescription: string;
99
+ errorStatus: string;
100
+ connectingTitle: string;
101
+ connectingDescription: string;
102
+ connectingStatus: string;
103
+ open: string;
104
+ about: string;
105
+ guide: string;
106
+ hint: string;
107
+ workspace: string;
108
+ caption: string;
109
+ footer: string;
110
+ help: string;
111
+ };
112
+ };
113
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locales/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyB,CAAC"}
@@ -0,0 +1,8 @@
1
+ // Generated from packages/ui-extensions/src/locales/index.ts. Do not edit; run the Octonode SDK sync.
2
+ import en from "./en.json" with { type: "json" };
3
+ import de from "./de.json" with { type: "json" };
4
+ import fr from "./fr.json" with { type: "json" };
5
+ import es from "./es.json" with { type: "json" };
6
+ import ja from "./ja.json" with { type: "json" };
7
+ export const locales = { en, de, fr, es, ja };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locales/index.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjD,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjD,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjD,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjD,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ {
2
+ "standaloneTitle": "ワークスペースまで、あとワンクリック。",
3
+ "standaloneDescription": "このアプリはOctonode内で利用できます。ワークスペースから開いて、プロジェクトに接続し、作業を続けましょう。",
4
+ "standaloneStatus": "ワークスペースへの接続が必要です",
5
+ "expiredTitle": "もう一度接続しましょう。",
6
+ "expiredDescription": "セッションの有効期限が切れました。Octonodeのワークスペースからこのアプリを開き直してください。",
7
+ "expiredStatus": "セッションの有効期限切れ",
8
+ "errorTitle": "ワークスペースに接続できませんでした。",
9
+ "errorDescription": "アクセスを確認できませんでした。Octonodeからアプリを開き直してください。問題が続く場合は、管理者にアクセス権の確認を依頼してください。",
10
+ "errorStatus": "接続に失敗しました",
11
+ "connectingTitle": "ワークスペースに接続しています。",
12
+ "connectingDescription": "セッションを確認し、このアプリをOctonodeに接続しています。まもなく準備が整います。",
13
+ "connectingStatus": "安全に接続中",
14
+ "open": "Octonodeを開く",
15
+ "about": "使い方",
16
+ "guide": "アプリガイド",
17
+ "hint": "ワークスペースで「アプリ」を開き、このアプリを選択してください。セッションが自動的に接続されます。",
18
+ "workspace": "ワークスペース",
19
+ "caption": "アプリとプロジェクトを、ひとつのワークスペースに。",
20
+ "footer": "Octonodeでつながるワークスペース。",
21
+ "help": "お困りですか?"
22
+ }
package/dist/react.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { type ComponentType, type ReactNode } from "react";
2
2
  import { UI_EXTENSION_API_VERSION, type UiExtensionTarget } from "./index";
3
+ import type { AppExtensionTarget } from "./contributions.types.js";
4
+ export declare function useExtension(target: AppExtensionTarget): import("./contributions.types.js").ExtensionApi;
3
5
  export interface UiExtensionDefinition {
4
6
  apiVersion: typeof UI_EXTENSION_API_VERSION;
5
7
  target: UiExtensionTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmC,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5F,OAAO,EAAE,wBAAwB,EAAE,KAAK,iBAAiB,EAAwB,MAAM,SAAS,CAAC;AAEjG,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,wBAAwB,CAAC;IAC5C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,GAAG,qBAAqB,CAE1G;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,+EAE9D;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE;;wDAEnF;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,aAAa,GAAG,WAAW,CAAA;CAAE;;;wDAE1G;AAGD,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,OAAO,EACP,QAAgB,GACjB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;wDASA;AACD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;;;wDASA;AAyCD,wBAAgB,cAAc,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI,CAqDrE"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AACA,OAAO,EAA4C,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAErG,OAAO,EAAE,wBAAwB,EAAiB,KAAK,iBAAiB,EAAwB,MAAM,SAAS,CAAC;AAEhH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,mDAEtD;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,wBAAwB,CAAC;IAC5C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,GAAG,qBAAqB,CAE1G;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,+EAE9D;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE;;wDAEnF;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,aAAa,GAAG,WAAW,CAAA;CAAE;;;wDAE1G;AAGD,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,OAAO,EACP,QAAgB,GACjB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;wDASA;AACD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;;;wDASA;AAyCD,wBAAgB,cAAc,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI,CA4DrE"}
package/dist/react.js CHANGED
@@ -1,7 +1,11 @@
1
1
  // Generated from packages/ui-extensions/src/react.tsx. Do not edit; run the Octonode SDK sync.
2
- import { useId, useEffect, createElement } from "react";
2
+ import { useId, useEffect, useMemo, createElement } from "react";
3
3
  import { createRoot } from "react-dom/client";
4
- import { UI_EXTENSION_API_VERSION } from "./index";
4
+ import { UI_EXTENSION_API_VERSION, getAppSession } from "./index";
5
+ import { extensionApi } from "./contributions.js";
6
+ export function useExtension(target) {
7
+ return useMemo(() => extensionApi(target), [target]);
8
+ }
5
9
  export function defineExtension(target, component) {
6
10
  return { apiVersion: UI_EXTENSION_API_VERSION, target, component };
7
11
  }
@@ -76,9 +80,17 @@ function serialize(node) {
76
80
  return null;
77
81
  }
78
82
  export function startExtension(extension) {
83
+ let apiVersion = UI_EXTENSION_API_VERSION;
84
+ try {
85
+ apiVersion = getAppSession().protocolVersion ?? "1";
86
+ }
87
+ catch {
88
+ /* Plugin renderers have no app session. */
89
+ }
79
90
  addEventListener("message", (event) => {
80
91
  if (event.source !== parent ||
81
92
  event.data?.octonode !== "ui-extension" ||
93
+ event.data?.apiVersion !== apiVersion ||
82
94
  event.data?.type !== "event" ||
83
95
  event.data?.target !== extension.target)
84
96
  return;
@@ -98,7 +110,7 @@ export function startExtension(extension) {
98
110
  });
99
111
  parent.postMessage({
100
112
  octonode: "ui-extension",
101
- apiVersion: UI_EXTENSION_API_VERSION,
113
+ apiVersion,
102
114
  type: "render",
103
115
  target: extension.target,
104
116
  tree: { type: "node-form", children: tree },
@@ -113,7 +125,7 @@ export function startExtension(extension) {
113
125
  observer.observe(root, { subtree: true, childList: true, attributes: true, characterData: true });
114
126
  addEventListener("error", (event) => parent.postMessage({
115
127
  octonode: "ui-extension",
116
- apiVersion: UI_EXTENSION_API_VERSION,
128
+ apiVersion,
117
129
  type: "error",
118
130
  target: extension.target,
119
131
  message: event.message,