@octonodes/ui-extensions 0.2.26 → 0.2.38

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 (77) hide show
  1. package/README.md +3 -0
  2. package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.d.ts +1 -1
  3. package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.d.ts.map +1 -1
  4. package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.js +3 -2
  5. package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.js.map +1 -1
  6. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.d.ts +1 -2
  7. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.d.ts.map +1 -1
  8. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.js +5 -57
  9. package/dist/app/OctonodeAppProvider/OctonodeAppProvider.js.map +1 -1
  10. package/dist/app/OctonodeAppProvider/constants.d.ts +3 -0
  11. package/dist/app/OctonodeAppProvider/constants.d.ts.map +1 -0
  12. package/dist/app/OctonodeAppProvider/constants.js +2 -0
  13. package/dist/app/OctonodeAppProvider/constants.js.map +1 -0
  14. package/dist/app/OctonodeAppProvider/context.d.ts +3 -0
  15. package/dist/app/OctonodeAppProvider/context.d.ts.map +1 -0
  16. package/dist/app/OctonodeAppProvider/context.js +4 -0
  17. package/dist/app/OctonodeAppProvider/context.js.map +1 -0
  18. package/dist/app/OctonodeAppProvider/index.d.ts +2 -1
  19. package/dist/app/OctonodeAppProvider/index.d.ts.map +1 -1
  20. package/dist/app/OctonodeAppProvider/index.js +2 -1
  21. package/dist/app/OctonodeAppProvider/index.js.map +1 -1
  22. package/dist/app/hosted.d.ts.map +1 -1
  23. package/dist/app/hosted.js +8 -2
  24. package/dist/app/hosted.js.map +1 -1
  25. package/dist/app/index.d.ts +2 -3
  26. package/dist/app/index.d.ts.map +1 -1
  27. package/dist/app/index.js +3 -2
  28. package/dist/app/index.js.map +1 -1
  29. package/dist/app/project.d.ts +2 -3
  30. package/dist/app/project.d.ts.map +1 -1
  31. package/dist/app/project.js.map +1 -1
  32. package/dist/app/server.d.ts.map +1 -1
  33. package/dist/app/server.js.map +1 -1
  34. package/dist/app/types.d.ts +2 -1
  35. package/dist/app/types.d.ts.map +1 -1
  36. package/dist/constants.d.ts +9 -0
  37. package/dist/constants.d.ts.map +1 -0
  38. package/dist/constants.js +53 -0
  39. package/dist/constants.js.map +1 -0
  40. package/dist/contributions.d.ts.map +1 -1
  41. package/dist/contributions.js +1 -1
  42. package/dist/contributions.js.map +1 -1
  43. package/dist/contributions.types.d.ts +1 -1
  44. package/dist/contributions.types.d.ts.map +1 -1
  45. package/dist/hooks/general/useExtension.d.ts +3 -0
  46. package/dist/hooks/general/useExtension.d.ts.map +1 -0
  47. package/dist/hooks/general/useExtension.js +7 -0
  48. package/dist/hooks/general/useExtension.js.map +1 -0
  49. package/dist/hooks/general/useHostedApp.d.ts +9 -0
  50. package/dist/hooks/general/useHostedApp.d.ts.map +1 -0
  51. package/dist/hooks/general/useHostedApp.js +53 -0
  52. package/dist/hooks/general/useHostedApp.js.map +1 -0
  53. package/dist/hooks/general/useOctonodeApp.d.ts +3 -0
  54. package/dist/hooks/general/useOctonodeApp.d.ts.map +1 -0
  55. package/dist/hooks/general/useOctonodeApp.js +10 -0
  56. package/dist/hooks/general/useOctonodeApp.js.map +1 -0
  57. package/dist/hooks/types.d.ts +9 -0
  58. package/dist/hooks/types.d.ts.map +1 -0
  59. package/dist/hooks/types.js +2 -0
  60. package/dist/hooks/types.js.map +1 -0
  61. package/dist/index.d.ts +16 -62
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +6 -10
  64. package/dist/index.js.map +1 -1
  65. package/dist/react/index.d.ts +25 -0
  66. package/dist/react/index.d.ts.map +1 -0
  67. package/dist/react/index.js +134 -0
  68. package/dist/react/index.js.map +1 -0
  69. package/dist/testing.d.ts +2 -2
  70. package/dist/testing.d.ts.map +1 -1
  71. package/dist/testing.js +1 -1
  72. package/dist/testing.js.map +1 -1
  73. package/dist/types.d.ts +87 -0
  74. package/dist/types.d.ts.map +1 -0
  75. package/dist/types.js +2 -0
  76. package/dist/types.js.map +1 -0
  77. package/package.json +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"contributions.types.d.ts","sourceRoot":"","sources":["../src/contributions.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contributions.types.d.ts","sourceRoot":"","sources":["../src/contributions.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AppExtensionTarget } from "../../contributions.types.js";
2
+ export declare function useExtension(target: AppExtensionTarget): import("../../contributions.types.js").ExtensionApi;
3
+ //# sourceMappingURL=useExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExtension.d.ts","sourceRoot":"","sources":["../../../src/hooks/general/useExtension.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,uDAEtD"}
@@ -0,0 +1,7 @@
1
+ // Generated from packages/ui-extensions/src/hooks/general/useExtension.ts. Do not edit; run the Octonode SDK sync.
2
+ import { useMemo } from "react";
3
+ import { extensionApi } from "../../contributions.js";
4
+ export function useExtension(target) {
5
+ return useMemo(() => extensionApi(target), [target]);
6
+ }
7
+ //# sourceMappingURL=useExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExtension.js","sourceRoot":"","sources":["../../../src/hooks/general/useExtension.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { HostedApp, HostedAppNavigationItem, HostedAppState } from "../../app/types.js";
2
+ import type { VerifiedHostedContext } from "../types.js";
3
+ export declare function useHostedApp(navigation: HostedAppNavigationItem[]): {
4
+ bridge: HostedApp | undefined;
5
+ session: HostedAppState | undefined;
6
+ verified: VerifiedHostedContext | undefined;
7
+ error: boolean;
8
+ };
9
+ //# sourceMappingURL=useHostedApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHostedApp.d.ts","sourceRoot":"","sources":["../../../src/hooks/general/useHostedApp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,KAAK,EAAyB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEhF,wBAAgB,YAAY,CAAC,UAAU,EAAE,uBAAuB,EAAE;;;;;EA+CjE"}
@@ -0,0 +1,53 @@
1
+ // Generated from packages/ui-extensions/src/hooks/general/useHostedApp.ts. Do not edit; run the Octonode SDK sync.
2
+ import { useEffect, useState } from "react";
3
+ import { connectHostedApp } from "../../app/hosted.js";
4
+ export function useHostedApp(navigation) {
5
+ const [bridge, setBridge] = useState();
6
+ const [session, setSession] = useState();
7
+ const [verified, setVerified] = useState();
8
+ const [error, setError] = useState(false);
9
+ useEffect(() => {
10
+ try {
11
+ const app = connectHostedApp();
12
+ setBridge(app);
13
+ setSession(app.getSnapshot());
14
+ const unsubscribe = app.subscribe(() => setSession(app.getSnapshot()));
15
+ return () => {
16
+ unsubscribe();
17
+ app.dispose();
18
+ };
19
+ }
20
+ catch {
21
+ setError(true);
22
+ }
23
+ }, []);
24
+ useEffect(() => {
25
+ bridge?.setNavigation(navigation);
26
+ }, [bridge, navigation]);
27
+ useEffect(() => {
28
+ if (!bridge || session?.status !== "ready" || !session.token)
29
+ return;
30
+ const token = session.token;
31
+ const controller = new AbortController();
32
+ bridge
33
+ .fetch("/api/context", { signal: controller.signal })
34
+ .then(async (response) => {
35
+ if (!response.ok)
36
+ throw new Error("Workspace access could not be verified");
37
+ const context = (await response.json());
38
+ if (!context.workspace?.kind || !context.workspace.id)
39
+ throw new Error("Missing workspace scope");
40
+ if (!controller.signal.aborted) {
41
+ setVerified({ token, workspace: context.workspace });
42
+ setError(false);
43
+ }
44
+ })
45
+ .catch(() => {
46
+ if (!controller.signal.aborted)
47
+ setError(true);
48
+ });
49
+ return () => controller.abort();
50
+ }, [bridge, session?.status, session?.token]);
51
+ return { bridge, session, verified, error };
52
+ }
53
+ //# sourceMappingURL=useHostedApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHostedApp.js","sourceRoot":"","sources":["../../../src/hooks/general/useHostedApp.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,MAAM,UAAU,YAAY,CAAC,UAAqC;IAChE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAa,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAkB,CAAC;IACzD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAyB,CAAC;IAClE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;YAC/B,SAAS,CAAC,GAAG,CAAC,CAAC;YACf,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9B,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,GAAG,EAAE;gBACV,WAAW,EAAE,CAAC;gBACd,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM;aACH,KAAK,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;aACpD,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0B,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAClG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;gBACrD,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { OctonodeAppContext } from "../../app/OctonodeAppProvider/OctonodeAppProvider.types.js";
2
+ export declare function useOctonodeApp(): OctonodeAppContext;
3
+ //# sourceMappingURL=useOctonodeApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOctonodeApp.d.ts","sourceRoot":"","sources":["../../../src/hooks/general/useOctonodeApp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AAGrG,wBAAgB,cAAc,IAAI,kBAAkB,CAInD"}
@@ -0,0 +1,10 @@
1
+ // Generated from packages/ui-extensions/src/hooks/general/useOctonodeApp.ts. Do not edit; run the Octonode SDK sync.
2
+ import { useContext } from "react";
3
+ import { Context } from "../../app/OctonodeAppProvider/context.js";
4
+ export function useOctonodeApp() {
5
+ const context = useContext(Context);
6
+ if (!context)
7
+ throw new Error("useOctonodeApp requires OctonodeAppProvider");
8
+ return context;
9
+ }
10
+ //# sourceMappingURL=useOctonodeApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOctonodeApp.js","sourceRoot":"","sources":["../../../src/hooks/general/useOctonodeApp.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AAEnE,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { OctonodeAppContext } from "../app/OctonodeAppProvider/OctonodeAppProvider.types.js";
2
+ export interface VerifiedHostedContext {
3
+ token: string;
4
+ workspace: OctonodeAppContext["workspace"];
5
+ }
6
+ export interface HostedContextResponse {
7
+ workspace?: OctonodeAppContext["workspace"];
8
+ }
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yDAAyD,CAAC;AAElG,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;CAC7C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1,69 +1,23 @@
1
- export { APP_EXTENSION_TARGETS } from "./targets.js";
2
- export { defineAction, startAction, extensionApi } from "./contributions.js";
1
+ import type { AppSession, UiExtensionErrorMessage, UiExtensionRenderMessage, UiExtensionTarget } from "./types.js";
2
+ export { APP_EXTENSION_TARGETS } from "./constants.js";
3
+ export { defineAction, extensionApi, startAction } from "./contributions.js";
3
4
  export type { ActionApi, ActionDefinition, AppExtensionTarget, ExtensionApi, ExtensionContext, ExtensionEnvironment, } from "./contributions.types.js";
4
- export declare const UI_EXTENSION_API_VERSION: "1";
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"];
7
- export type UiExtensionTarget = (typeof UI_EXTENSION_TARGETS)[number];
8
- export type UiExtensionTree = {
9
- type: "text";
10
- value: string;
11
- } | {
12
- type: "button";
13
- id: string;
14
- label: string;
15
- disabled: boolean;
16
- } | {
17
- type: "text-field";
18
- id: string;
19
- label: string;
20
- value: string;
21
- disabled: boolean;
22
- } | {
23
- type: "node-form";
24
- children: UiExtensionTree[];
25
- } | {
26
- type: "section";
27
- title: string;
28
- children: UiExtensionTree[];
29
- } | {
30
- type: "input-field";
31
- name: string;
32
- appearance?: "single-line" | "multiline";
33
- };
34
- export interface UiExtensionRenderMessage {
35
- octonode: "ui-extension";
36
- apiVersion: "1" | "2";
37
- type: "render";
38
- target: UiExtensionTarget;
39
- tree: UiExtensionTree;
40
- }
41
- export interface UiExtensionErrorMessage {
42
- octonode: "ui-extension";
43
- apiVersion: "1" | "2";
44
- type: "error";
45
- target: UiExtensionTarget;
46
- message: string;
47
- }
48
- export type UiExtensionMessage = UiExtensionRenderMessage | UiExtensionErrorMessage;
49
5
  export declare function validateExtensionMessage(value: unknown, expectedTarget: UiExtensionTarget, expectedVersion?: "1" | "2"): {
50
- message: UiExtensionMessage;
6
+ message: UiExtensionErrorMessage;
7
+ inputNames: never[];
8
+ } | {
9
+ message: UiExtensionRenderMessage;
51
10
  inputNames: string[];
52
11
  } | null;
53
- export interface AppSession {
54
- protocolVersion?: "2";
55
- configuration: Readonly<Record<string, string>>;
56
- token: string;
57
- expiresAt: number;
58
- appId: string;
59
- installationId: string;
60
- workspace: {
61
- kind: "user" | "team" | "org";
62
- id: string;
63
- };
64
- projectId?: string;
65
- version: string;
66
- }
67
12
  /** Available only inside an installed app extension. Send this bearer to your own backend for verification. */
68
13
  export declare function getAppSession(): AppSession;
14
+ export type { UiExtensionTarget } from "./types.js";
15
+ export type { UiExtensionTree } from "./types.js";
16
+ export type { UiExtensionRenderMessage } from "./types.js";
17
+ export type { UiExtensionErrorMessage } from "./types.js";
18
+ export type { UiExtensionMessage } from "./types.js";
19
+ export type { AppSession } from "./types.js";
20
+ export { UI_EXTENSION_API_VERSION } from "./constants.js";
21
+ export { APP_EXTENSION_API_VERSION } from "./constants.js";
22
+ export { UI_EXTENSION_TARGETS } from "./constants.js";
69
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EAEvB,wBAAwB,EACxB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7E,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,iBAAiB,EACjC,eAAe,GAAE,GAAG,GAAG,GAAS;aAYJ,uBAAuB;;;aAkDzB,wBAAwB;;SAEnD;AAED,+GAA+G;AAC/G,wBAAgB,aAAa,IAAI,UAAU,CAI1C;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,7 @@
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";
5
- export const UI_EXTENSION_API_VERSION = "1";
6
- export const APP_EXTENSION_API_VERSION = "2";
7
- export const UI_EXTENSION_TARGETS = ["node.inspector.inputs", ...APP_EXTENSION_TARGETS];
8
- const MAX_NODES = 100;
9
- const MAX_DEPTH = 10;
10
- const MAX_TEXT = 4_000;
11
- const INPUT_NAME = /^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/;
2
+ import { INPUT_NAME, MAX_DEPTH, MAX_NODES, MAX_TEXT } from "./constants.js";
3
+ export { APP_EXTENSION_TARGETS } from "./constants.js";
4
+ export { defineAction, extensionApi, startAction } from "./contributions.js";
12
5
  export function validateExtensionMessage(value, expectedTarget, expectedVersion = "1") {
13
6
  if (!value || typeof value !== "object")
14
7
  return null;
@@ -80,4 +73,7 @@ export function getAppSession() {
80
73
  throw new Error("App session expired; reopen the app");
81
74
  return session;
82
75
  }
76
+ export { UI_EXTENSION_API_VERSION } from "./constants.js";
77
+ export { APP_EXTENSION_API_VERSION } from "./constants.js";
78
+ export { UI_EXTENSION_TARGETS } from "./constants.js";
83
79
  //# sourceMappingURL=index.js.map
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,25 @@
1
+ import { type ComponentType } from "react";
2
+ import type { ButtonProps, InputFieldProps, NodeFormProps, SectionProps, TextFieldProps, UiExtensionDefinition, UiExtensionTarget } from "../types.js";
3
+ export declare function defineExtension(target: UiExtensionTarget, component: ComponentType): UiExtensionDefinition;
4
+ export declare function NodeForm({ children }: NodeFormProps): import("react").DOMElement<import("react").DOMAttributes<Element>, Element>;
5
+ export declare function Section({ title, children }: SectionProps): import("react").ReactElement<{
6
+ title: string;
7
+ }, string | import("react").JSXElementConstructor<any>>;
8
+ export declare function InputField({ name, appearance }: InputFieldProps): import("react").ReactElement<{
9
+ name: string;
10
+ appearance: "single-line" | "multiline" | undefined;
11
+ }, string | import("react").JSXElementConstructor<any>>;
12
+ export declare function Button({ children, onPress, disabled }: ButtonProps): import("react").ReactElement<{
13
+ "data-id": string;
14
+ "data-disabled": string;
15
+ }, string | import("react").JSXElementConstructor<any>>;
16
+ export declare function TextField({ label, value, onChange, disabled }: TextFieldProps): import("react").ReactElement<{
17
+ "data-id": string;
18
+ label: string;
19
+ value: string;
20
+ "data-disabled": string;
21
+ }, string | import("react").JSXElementConstructor<any>>;
22
+ export declare function startExtension(extension: UiExtensionDefinition): void;
23
+ export { useExtension } from "../hooks/general/useExtension.js";
24
+ export type { UiExtensionDefinition } from "../types.js";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5E,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAErB,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,GAAG,qBAAqB,CAE1G;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,+EAEnD;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,YAAY;;wDAExD;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,eAAe;;;wDAE/D;AAGD,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAgB,EAAE,EAAE,WAAW;;;wDAS1E;AACD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,cAAc;;;;;wDASrF;AAyCD,wBAAgB,cAAc,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI,CA4DrE;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,134 @@
1
+ // Generated from packages/ui-extensions/src/react/index.tsx. Do not edit; run the Octonode SDK sync.
2
+ import { createElement, useEffect, useId } from "react";
3
+ import { createRoot } from "react-dom/client";
4
+ import { UI_EXTENSION_API_VERSION } from "../constants.js";
5
+ import { getAppSession } from "../index.js";
6
+ export function defineExtension(target, component) {
7
+ return { apiVersion: UI_EXTENSION_API_VERSION, target, component };
8
+ }
9
+ export function NodeForm({ children }) {
10
+ return createElement("octonode-node-form", null, children);
11
+ }
12
+ export function Section({ title, children }) {
13
+ return createElement("octonode-section", { title }, children);
14
+ }
15
+ export function InputField({ name, appearance }) {
16
+ return createElement("octonode-input-field", { name, appearance });
17
+ }
18
+ const callbacks = new Map();
19
+ export function Button({ children, onPress, disabled = false }) {
20
+ const id = useId();
21
+ useEffect(() => {
22
+ callbacks.set(id, onPress);
23
+ return () => {
24
+ callbacks.delete(id);
25
+ };
26
+ }, [id, onPress]);
27
+ return createElement("octonode-button", { "data-id": id, "data-disabled": String(disabled) }, children);
28
+ }
29
+ export function TextField({ label, value, onChange, disabled = false }) {
30
+ const id = useId();
31
+ useEffect(() => {
32
+ callbacks.set(id, (value) => onChange(value ?? ""));
33
+ return () => {
34
+ callbacks.delete(id);
35
+ };
36
+ }, [id, onChange]);
37
+ return createElement("octonode-text-field", { "data-id": id, label, value, "data-disabled": String(disabled) });
38
+ }
39
+ function serialize(node) {
40
+ if (node.nodeType === Node.TEXT_NODE) {
41
+ const value = node.textContent?.trim();
42
+ return value ? { type: "text", value } : null;
43
+ }
44
+ if (!(node instanceof Element))
45
+ return null;
46
+ const children = Array.from(node.childNodes).flatMap((child) => {
47
+ const serialized = serialize(child);
48
+ return serialized ? [serialized] : [];
49
+ });
50
+ if (node.localName === "octonode-button")
51
+ return {
52
+ type: "button",
53
+ id: node.getAttribute("data-id") ?? "",
54
+ label: node.textContent ?? "",
55
+ disabled: node.getAttribute("data-disabled") === "true",
56
+ };
57
+ if (node.localName === "octonode-text-field")
58
+ return {
59
+ type: "text-field",
60
+ id: node.getAttribute("data-id") ?? "",
61
+ label: node.getAttribute("label") ?? "",
62
+ value: node.getAttribute("value") ?? "",
63
+ disabled: node.getAttribute("data-disabled") === "true",
64
+ };
65
+ if (node.localName === "octonode-node-form")
66
+ return { type: "node-form", children };
67
+ if (node.localName === "octonode-section")
68
+ return { type: "section", title: node.getAttribute("title") ?? "", children };
69
+ if (node.localName === "octonode-input-field") {
70
+ const appearance = node.getAttribute("appearance");
71
+ return {
72
+ type: "input-field",
73
+ name: node.getAttribute("name") ?? "",
74
+ ...(appearance === "single-line" || appearance === "multiline" ? { appearance } : {}),
75
+ };
76
+ }
77
+ return null;
78
+ }
79
+ export function startExtension(extension) {
80
+ let apiVersion = UI_EXTENSION_API_VERSION;
81
+ try {
82
+ apiVersion = getAppSession().protocolVersion ?? "1";
83
+ }
84
+ catch {
85
+ /* Plugin renderers have no app session. */
86
+ }
87
+ addEventListener("message", (event) => {
88
+ if (event.source !== parent ||
89
+ event.data?.octonode !== "ui-extension" ||
90
+ event.data?.apiVersion !== apiVersion ||
91
+ event.data?.type !== "event" ||
92
+ event.data?.target !== extension.target)
93
+ return;
94
+ const { id, value } = event.data;
95
+ if (typeof id !== "string" || (value !== undefined && (typeof value !== "string" || value.length > 4000)))
96
+ return;
97
+ callbacks.get(id)?.(value);
98
+ });
99
+ const root = document.createElement("div");
100
+ document.body.append(root);
101
+ let queued = false;
102
+ const publish = () => {
103
+ queued = false;
104
+ const tree = Array.from(root.childNodes).flatMap((node) => {
105
+ const serialized = serialize(node);
106
+ return serialized ? [serialized] : [];
107
+ });
108
+ parent.postMessage({
109
+ octonode: "ui-extension",
110
+ apiVersion,
111
+ type: "render",
112
+ target: extension.target,
113
+ tree: { type: "node-form", children: tree },
114
+ }, "*");
115
+ };
116
+ const observer = new MutationObserver(() => {
117
+ if (queued)
118
+ return;
119
+ queued = true;
120
+ queueMicrotask(publish);
121
+ });
122
+ observer.observe(root, { subtree: true, childList: true, attributes: true, characterData: true });
123
+ addEventListener("error", (event) => parent.postMessage({
124
+ octonode: "ui-extension",
125
+ apiVersion,
126
+ type: "error",
127
+ target: extension.target,
128
+ message: event.message,
129
+ }, "*"));
130
+ createRoot(root).render(createElement(extension.component));
131
+ queueMicrotask(publish);
132
+ }
133
+ export { useExtension } from "../hooks/general/useExtension.js";
134
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"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"}
package/dist/testing.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { validateExtensionMessage } from "./index";
2
- export type { UiExtensionMessage, UiExtensionTree } from "./index";
1
+ export { validateExtensionMessage } from "./index.js";
2
+ export type { UiExtensionMessage, UiExtensionTree } from "./types.js";
3
3
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
package/dist/testing.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated from packages/ui-extensions/src/testing.ts. Do not edit; run the Octonode SDK sync.
2
- export { validateExtensionMessage } from "./index";
2
+ export { validateExtensionMessage } from "./index.js";
3
3
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { type ComponentType, type ReactNode } from "react";
2
+ import type { UI_EXTENSION_TARGETS } from "./constants.js";
3
+ import { UI_EXTENSION_API_VERSION } from "./constants.js";
4
+ export type UiExtensionTarget = (typeof UI_EXTENSION_TARGETS)[number];
5
+ export type UiExtensionTree = {
6
+ type: "text";
7
+ value: string;
8
+ } | {
9
+ type: "button";
10
+ id: string;
11
+ label: string;
12
+ disabled: boolean;
13
+ } | {
14
+ type: "text-field";
15
+ id: string;
16
+ label: string;
17
+ value: string;
18
+ disabled: boolean;
19
+ } | {
20
+ type: "node-form";
21
+ children: UiExtensionTree[];
22
+ } | {
23
+ type: "section";
24
+ title: string;
25
+ children: UiExtensionTree[];
26
+ } | {
27
+ type: "input-field";
28
+ name: string;
29
+ appearance?: "single-line" | "multiline";
30
+ };
31
+ export interface UiExtensionRenderMessage {
32
+ octonode: "ui-extension";
33
+ apiVersion: "1" | "2";
34
+ type: "render";
35
+ target: UiExtensionTarget;
36
+ tree: UiExtensionTree;
37
+ }
38
+ export interface UiExtensionErrorMessage {
39
+ octonode: "ui-extension";
40
+ apiVersion: "1" | "2";
41
+ type: "error";
42
+ target: UiExtensionTarget;
43
+ message: string;
44
+ }
45
+ export type UiExtensionMessage = UiExtensionRenderMessage | UiExtensionErrorMessage;
46
+ export interface AppSession {
47
+ protocolVersion?: "2";
48
+ configuration: Readonly<Record<string, string>>;
49
+ token: string;
50
+ expiresAt: number;
51
+ appId: string;
52
+ installationId: string;
53
+ workspace: {
54
+ kind: "user" | "team" | "org";
55
+ id: string;
56
+ };
57
+ projectId?: string;
58
+ version: string;
59
+ }
60
+ export interface UiExtensionDefinition {
61
+ apiVersion: typeof UI_EXTENSION_API_VERSION;
62
+ target: UiExtensionTarget;
63
+ component: ComponentType;
64
+ }
65
+ export type NodeFormProps = {
66
+ children?: ReactNode;
67
+ };
68
+ export type SectionProps = {
69
+ title: string;
70
+ children?: ReactNode;
71
+ };
72
+ export type InputFieldProps = {
73
+ name: string;
74
+ appearance?: "single-line" | "multiline";
75
+ };
76
+ export type ButtonProps = {
77
+ children: string;
78
+ onPress: () => void;
79
+ disabled?: boolean;
80
+ };
81
+ export type TextFieldProps = {
82
+ label: string;
83
+ value: string;
84
+ onChange: (value: string) => void;
85
+ disabled?: boolean;
86
+ };
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}