@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.
- package/README.md +74 -3
- package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.d.ts +3 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.d.ts.map +1 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.js +17 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.js.map +1 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.d.ts +4 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.d.ts.map +1 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.js +2 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.js.map +1 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.d.ts +3 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.d.ts.map +1 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.js +14 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/constants.js.map +1 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/index.d.ts +3 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/index.d.ts.map +1 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/index.js +3 -0
- package/dist/app/OctonodeAppProvider/AppAccessScreen/index.js.map +1 -0
- package/dist/app/OctonodeAppProvider/OctonodeAppProvider.d.ts +5 -0
- package/dist/app/OctonodeAppProvider/OctonodeAppProvider.d.ts.map +1 -0
- package/dist/app/OctonodeAppProvider/OctonodeAppProvider.js +72 -0
- package/dist/app/OctonodeAppProvider/OctonodeAppProvider.js.map +1 -0
- package/dist/app/OctonodeAppProvider/OctonodeAppProvider.types.d.ts +12 -0
- package/dist/app/OctonodeAppProvider/OctonodeAppProvider.types.d.ts.map +1 -0
- package/dist/app/OctonodeAppProvider/OctonodeAppProvider.types.js +2 -0
- package/dist/app/OctonodeAppProvider/OctonodeAppProvider.types.js.map +1 -0
- package/dist/app/OctonodeAppProvider/index.d.ts +3 -0
- package/dist/app/OctonodeAppProvider/index.d.ts.map +1 -0
- package/dist/app/OctonodeAppProvider/index.js +3 -0
- package/dist/app/OctonodeAppProvider/index.js.map +1 -0
- package/dist/app/hosted.d.ts.map +1 -1
- package/dist/app/hosted.js +11 -0
- package/dist/app/hosted.js.map +1 -1
- package/dist/app/index.d.ts +3 -2
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +4 -4
- package/dist/app/index.js.map +1 -1
- package/dist/app/project.d.ts +1 -1
- package/dist/app/project.d.ts.map +1 -1
- package/dist/app/types.d.ts +8 -3
- package/dist/app/types.d.ts.map +1 -1
- package/dist/contributions.d.ts +5 -0
- package/dist/contributions.d.ts.map +1 -0
- package/dist/contributions.js +71 -0
- package/dist/contributions.js.map +1 -0
- package/dist/contributions.types.d.ts +93 -0
- package/dist/contributions.types.d.ts.map +1 -0
- package/dist/contributions.types.js +2 -0
- package/dist/contributions.types.js.map +1 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/locales/de.json +22 -0
- package/dist/locales/en.json +22 -0
- package/dist/locales/es.json +22 -0
- package/dist/locales/fr.json +22 -0
- package/dist/locales/index.d.ts +113 -0
- package/dist/locales/index.d.ts.map +1 -0
- package/dist/locales/index.js +8 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/locales/ja.json +22 -0
- package/dist/react.d.ts +2 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +16 -4
- package/dist/react.js.map +1 -1
- package/dist/targets.d.ts +2 -0
- package/dist/targets.d.ts.map +1 -0
- package/dist/targets.js +46 -0
- package/dist/targets.js.map +1 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -41,6 +41,59 @@ ui: {
|
|
|
41
41
|
|
|
42
42
|
The first public target is `node.inspector.inputs`. Undeclared or omitted inputs fall back to the standard inspector form.
|
|
43
43
|
|
|
44
|
+
## Native app contributions (v3)
|
|
45
|
+
|
|
46
|
+
Installed apps can add navbar/navigation/search launchers, panels, Octonode tabs,
|
|
47
|
+
workflow node bodies and context-menu actions, task badges/details, document and
|
|
48
|
+
editor operations, Git/table/execution views, and settings sections. A hosted app
|
|
49
|
+
page or backend is optional. These changes require the SDK and CLI built from the
|
|
50
|
+
accompanying branch; they are not published yet.
|
|
51
|
+
|
|
52
|
+
Views use `defineExtension(target, Component)` and `useExtension(target)` from
|
|
53
|
+
`@octonodes/ui-extensions/react`. Actions use `defineAction(target, handler)` from
|
|
54
|
+
`@octonodes/ui-extensions`. The CLI bundles and hashes each immutable browser entry.
|
|
55
|
+
The generated runtime checks the definition's target and action/view kind at startup,
|
|
56
|
+
then calls `startExtension` or `startAction`.
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
import { defineExtension, useExtension, Section, Button } from "@octonodes/ui-extensions/react";
|
|
60
|
+
export default defineExtension("shell.panel", function Assistant() {
|
|
61
|
+
const api = useExtension("shell.panel");
|
|
62
|
+
return (
|
|
63
|
+
<Section title="Claude Code">
|
|
64
|
+
<Button onPress={() => void api.ui.openAssistant("Help with this resource.")}>Open assistant</Button>
|
|
65
|
+
</Section>
|
|
66
|
+
);
|
|
67
|
+
});
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
import { defineAction } from "@octonodes/ui-extensions";
|
|
72
|
+
export default defineAction("node.action", async (api) => {
|
|
73
|
+
if (!api.signal.aborted) await api.ui.openAssistant(`Explain node ${api.context.nodeId}`);
|
|
74
|
+
});
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The target context contains resource IDs, revisions, selection ranges, and bounded
|
|
78
|
+
metadata batches, never automatic document/file/task bodies. `ui.openPanel`
|
|
79
|
+
opens an own declared view; `ui.openAssistant` hands off to the existing native
|
|
80
|
+
assistant and its authorized tools. `tabs.list/update/undo` operate on registered
|
|
81
|
+
personal layout groups with revision checks. `edits.propose` opens native review
|
|
82
|
+
for a captured file/document draft; native Save owns persistence. Mutating host
|
|
83
|
+
commands require recent native user interaction. No raw filesystem/process or
|
|
84
|
+
private Studio API access is granted.
|
|
85
|
+
|
|
86
|
+
Node views and task badges return display-only sections named for captured IDs,
|
|
87
|
+
using one sandbox per canvas/task view and at most 100 resources. Other views can
|
|
88
|
+
use host-owned controls. An action has a captured invocation ID and abort signal;
|
|
89
|
+
it completes automatically and has a sixty-second deadline. Legacy node input
|
|
90
|
+
extensions still use protocol v1; native app contributions use protocol v2.
|
|
91
|
+
|
|
92
|
+
The full target catalog, runnable example, permissions, limits, and actual native
|
|
93
|
+
screenshots are in the engine's native extensions guide (`docs/app-extensions/README.md` in the engine checkout).
|
|
94
|
+
When using a local engine checkout, open `docs/app-extensions/README.md` for the
|
|
95
|
+
branch version. The older examples below describe the separate v1/v2 contracts.
|
|
96
|
+
|
|
44
97
|
## Extension-only apps
|
|
45
98
|
|
|
46
99
|
Apps can contribute only a workspace block; a page and backend are optional. Use the same
|
|
@@ -57,9 +110,9 @@ See `examples/workspace-notice-app` and `docs/plugins.md` in the engine reposito
|
|
|
57
110
|
|
|
58
111
|
## Self-hosted apps
|
|
59
112
|
|
|
60
|
-
This is also the SDK selected for Octonode's developer-authored app extensions. The engine owns its source in `packages/ui-extensions`; `scripts/sync
|
|
113
|
+
This is also the SDK selected for Octonode's developer-authored app extensions. The engine owns its source in `packages/ui-extensions`; `scripts/sync/plugin/sdk.mjs` synchronizes the public package into `octonode-devtools`. Do not create a second app UI SDK.
|
|
61
114
|
|
|
62
|
-
|
|
115
|
+
Legacy self-hosted app targets are `app.page` and `workspace.block`. Register an app in Partner → Apps, publish its HTTPS application URL and extension bundle digests, then install it from Studio → App marketplace. Plugin marketplace remains dedicated to executable node plugins.
|
|
63
116
|
|
|
64
117
|
App controls use the same host design system: `NodeForm`, `Section`, `Button`, and `TextField`. `InputField` is only for node inspectors. Bundle your entry as a browser IIFE, including React and this SDK, and call `startExtension`:
|
|
65
118
|
|
|
@@ -110,6 +163,24 @@ short-lived sessions through an origin-checked, window-bound handshake. Tokens s
|
|
|
110
163
|
in memory. `app.fetch("/api/projects")` sends the bearer only to your own backend;
|
|
111
164
|
that backend must still verify it with `connectAppServer` on every request.
|
|
112
165
|
|
|
166
|
+
For React apps, wrap the workspace UI in `OctonodeAppProvider` from
|
|
167
|
+
`@octonodes/ui-extensions/app/react`. It verifies `/api/context` before rendering
|
|
168
|
+
children. Pass every page route in `navigation`, including the overview (`/`), to
|
|
169
|
+
display them in Studio's app sidebar. Studio does not discover routes from your
|
|
170
|
+
hosting provider or browser router. An app can render its own top navbar inside
|
|
171
|
+
the provider; this does not replace sidebar registration. The generated React
|
|
172
|
+
app keeps its navbar off by default; render `<App showNavbar />` to enable it.
|
|
173
|
+
The generated server verifies this route with `connectAppServer`. A direct visit
|
|
174
|
+
without a session shows a translated access landing screen and no workspace UI.
|
|
175
|
+
The provider also shows connecting, expired-session, and verification-error states.
|
|
176
|
+
Customizing this UI does not replace backend session and installation checks.
|
|
177
|
+
|
|
178
|
+
In the Octonode source checkout, preview the screen with
|
|
179
|
+
`yarn workspace @octonode/ui-extensions dev` on port 5185, then open `/dev/` in your browser.
|
|
180
|
+
Use `?state=expired`, `?state=connecting`, or `?state=error` to preview the other states.
|
|
181
|
+
With that preview running, run `node --test packages/ui-extensions/tests/app/access.test.mjs`
|
|
182
|
+
to check mobile reflow, private-content protection, and recovery after a refreshed token.
|
|
183
|
+
|
|
113
184
|
```ts
|
|
114
185
|
import { connectHostedApp } from "@octonodes/ui-extensions/app";
|
|
115
186
|
const app = connectHostedApp();
|
|
@@ -128,7 +199,7 @@ actions and projects for one hour; heartbeats extend only the ten-minute idle
|
|
|
128
199
|
session, not the consent. Source edits on the same host retain consent; host or
|
|
129
200
|
action changes clear it. See the [development guide](https://playbook.octonodes.com/docs/apps/development).
|
|
130
201
|
|
|
131
|
-
|
|
202
|
+
The hosted page's HTML and static assets must be loadable before the iframe session handoff. Keep private workspace content behind the provider and private backend routes behind bearer verification. App backends can use `POST /api/apps/runtime/data` for consented project/table/row operations, and `POST /api/apps/runtime/executions` on the cloud gateway for workflow execution. Neither credential works as a general Octonode login. See the engine’s `docs/plugins.md` for request examples.
|
|
132
203
|
|
|
133
204
|
For legacy self-hosted v1 apps, developers host app backends and versioned extension assets themselves. Octonode-managed app hosting is reserved for a future paid service. App release metadata pins extension URLs and SHA-256 digests; publishing metadata does not deploy a backend.
|
|
134
205
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppAccessScreen.d.ts","sourceRoot":"","sources":["../../../../src/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,+BA+I/D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
// Generated from packages/ui-extensions/src/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.tsx. Do not edit; run the Octonode SDK sync.
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { locales } from "../../../locales/index.js";
|
|
5
|
+
import { ACCESS_SCREEN_CSS, OCTONODE_LOGO } from "./constants.js";
|
|
6
|
+
export function AppAccessScreen({ status }) {
|
|
7
|
+
const [language, setLanguage] = useState("en");
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
const lang = (document.documentElement.lang || navigator.language).split("-")[0];
|
|
10
|
+
if (Object.prototype.hasOwnProperty.call(locales, lang))
|
|
11
|
+
setLanguage(lang);
|
|
12
|
+
}, []);
|
|
13
|
+
const t = locales[language];
|
|
14
|
+
const connecting = status === "connecting";
|
|
15
|
+
return (_jsxs("div", { className: `octo-access octo-access-${status}`, lang: language, children: [_jsx("style", { children: ACCESS_SCREEN_CSS }), _jsxs("header", { className: "octo-access-header", children: [_jsxs("a", { className: "octo-access-brand", href: "https://octonodes.com", target: "_blank", rel: "noopener noreferrer", children: [_jsx("img", { src: OCTONODE_LOGO, alt: "" }), "octonode"] }), _jsxs("a", { className: "octo-access-guide", href: "https://playbook.octonodes.com/docs/apps", target: "_blank", rel: "noopener noreferrer", children: [t.guide, _jsx("span", { "aria-hidden": "true", children: "\u2197" })] })] }), _jsxs("main", { className: "octo-access-main", children: [_jsxs("section", { className: "octo-access-copy", "aria-labelledby": "octo-access-title", children: [_jsxs("p", { className: "octo-access-status", role: status === "expired" || status === "error" ? "alert" : "status", children: [_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.7", "aria-hidden": "true", children: connecting ? (_jsx("path", { d: "M20 12a8 8 0 1 1-8-8" })) : (_jsxs(_Fragment, { children: [_jsx("rect", { x: "6", y: "10", width: "12", height: "10", rx: "2" }), _jsx("path", { d: "M9 10V7a3 3 0 0 1 6 0v3" })] })) }), t[`${status}Status`]] }), _jsx("h1", { id: "octo-access-title", children: t[`${status}Title`] }), _jsx("p", { className: "octo-access-description", children: t[`${status}Description`] }), !connecting && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "octo-access-actions", children: [_jsxs("a", { className: "octo-access-primary", href: "https://octonodes.com/studio", target: "_blank", rel: "noopener noreferrer", children: [t.open, _jsx("span", { "aria-hidden": "true", children: "\u2197" })] }), _jsx("a", { className: "octo-access-secondary", href: "https://playbook.octonodes.com/docs/apps", target: "_blank", rel: "noopener noreferrer", children: t.about })] }), _jsxs("p", { className: "octo-access-hint", children: [_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", "aria-hidden": "true", children: [_jsx("path", { d: "m12 3 8 3v6c0 5-8 9-8 9s-8-4-8-9V6Z" }), _jsx("path", { d: "m8 12 3 3 5-6" })] }), t.hint] })] }))] }), _jsxs("div", { className: "octo-access-visual", "aria-hidden": "true", children: [_jsx("div", { className: "octo-access-orbit" }), _jsxs("div", { className: "octo-access-workspace", children: [_jsxs("div", { className: "octo-access-window", children: [_jsx("i", {}), _jsx("i", {}), _jsx("i", {}), _jsx("span", { children: "octonode / workspace" }), _jsx("b", {})] }), _jsxs("div", { className: "octo-access-body", children: [_jsxs("div", { className: "octo-access-workspace-title", children: [_jsx("img", { src: OCTONODE_LOGO, alt: "" }), t.workspace] }), _jsx("div", { className: "octo-access-skeleton" }), _jsxs("div", { className: "octo-access-flow", children: [_jsx("div", { className: "octo-access-node", children: _jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [_jsx("rect", { x: "3", y: "3", width: "7", height: "7", rx: "2" }), _jsx("rect", { x: "14", y: "3", width: "7", height: "7", rx: "2" }), _jsx("rect", { x: "3", y: "14", width: "7", height: "7", rx: "2" }), _jsx("rect", { x: "14", y: "14", width: "7", height: "7", rx: "2" })] }) }), _jsx("div", { className: "octo-access-wire" }), _jsx("div", { className: "octo-access-node active", children: _jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [_jsx("path", { d: "m12 3 8 5v8l-8 5-8-5V8Z" }), _jsx("path", { d: "m4 8 8 5 8-5M12 13v8" })] }) }), _jsx("div", { className: "octo-access-wire" }), _jsx("div", { className: "octo-access-node", children: _jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [_jsx("ellipse", { cx: "12", cy: "5", rx: "8", ry: "3" }), _jsx("path", { d: "M4 5v14c0 4 16 4 16 0V5M4 12c0 4 16 4 16 0" })] }) })] }), _jsxs("div", { className: "octo-access-placeholder", children: [_jsx("i", {}), _jsx("i", {})] }), _jsxs("div", { className: "octo-access-placeholder", children: [_jsx("i", {}), _jsx("i", {})] })] })] }), _jsx("div", { className: "octo-access-lock", children: _jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [_jsx("rect", { x: "5", y: "10", width: "14", height: "11", rx: "3" }), _jsx("path", { d: "M8 10V7a4 4 0 0 1 8 0v3M12 14v3" })] }) }), _jsx("p", { className: "octo-access-caption", children: t.caption })] })] }), _jsxs("footer", { className: "octo-access-footer", children: [_jsx("p", { children: t.footer }), _jsx("a", { href: "https://playbook.octonodes.com/docs/apps", target: "_blank", rel: "noopener noreferrer", children: t.help })] })] }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=AppAccessScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppAccessScreen.js","sourceRoot":"","sources":["../../../../src/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppAccessScreen.types.d.ts","sourceRoot":"","sources":["../../../../src/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;CAC3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppAccessScreen.types.js","sourceRoot":"","sources":["../../../../src/app/OctonodeAppProvider/AppAccessScreen/AppAccessScreen.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const ACCESS_SCREEN_CSS = "\n.octo-access{--octo-ink:#252536;--octo-muted:#636374;--octo-coral:#ff765f;box-sizing:border-box;min-height:100svh;background:#f7f8fc;color:var(--octo-ink);font-family:\"Avenir Next\",Avenir,\"Segoe UI\",sans-serif;font-size:16px;line-height:1.5;padding:0 48px;isolation:isolate}\n.octo-access *{box-sizing:border-box}.octo-access a{color:inherit;text-decoration:none}.octo-access a:focus-visible{outline:3px solid #af3e29;outline-offset:5px}.octo-access a:hover{text-decoration:underline}\n.octo-access-header,.octo-access-footer{max-width:1120px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px}.octo-access-header{height:100px;border-bottom:1px solid #e3e5ee}.octo-access-brand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:750;letter-spacing:-1px}.octo-access-brand img{width:36px;height:36px}.octo-access a.octo-access-guide{font-size:14px;color:var(--octo-muted);display:flex;align-items:center;gap:8px}\n.octo-access-main{max-width:1120px;min-height:calc(100svh - 185px);margin:auto;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:70px;padding:72px 0}.octo-access-copy{max-width:520px}.octo-access-status{display:inline-flex;align-items:center;gap:8px;margin:0 0 24px;padding:6px 11px;border:1px solid #dedeea;background:#eeeff6;border-radius:6px;font-size:12px;font-weight:600;color:#515164}.octo-access-status svg{width:14px;height:14px}.octo-access h1{margin:0;font-size:clamp(40px,4.3vw,62px);font-weight:650;letter-spacing:-2.8px;line-height:1.09;text-wrap:balance}.octo-access-description{max-width:430px;margin:24px 0 30px;font-size:17px;line-height:1.75;color:var(--octo-muted)}.octo-access-actions{display:flex;align-items:center;gap:23px;flex-wrap:wrap}.octo-access a.octo-access-primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:13px 21px;border-radius:9px;background:var(--octo-ink);color:#fff;font-size:14px;font-weight:650;box-shadow:0 4px 0 #25253612}.octo-access a.octo-access-primary:hover{background:#404056;text-decoration:none}.octo-access-secondary{font-size:14px;font-weight:600}.octo-access-hint{display:flex;align-items:flex-start;gap:9px;max-width:415px;margin:27px 0 0;color:var(--octo-muted);font-size:12px;line-height:1.65}.octo-access-hint svg{flex:none;width:15px;height:15px;margin-top:2px}\n.octo-access-visual{position:relative;aspect-ratio:1;display:grid;place-items:center}.octo-access-orbit{position:absolute;width:87%;aspect-ratio:1;border:1px solid #dfe2ee;border-radius:50%}.octo-access-orbit::before{content:\"\";position:absolute;inset:42px;border:1px dashed #dfe2ee;border-radius:50%}.octo-access-orbit::after{content:\"\";position:absolute;width:10px;height:10px;border-radius:50%;background:#b2b7cf;top:13%;left:13%;box-shadow:285px 240px 0 #ffb7a8}.octo-access-workspace{position:relative;transform:rotate(-5deg);width:90%;max-width:405px;background:#fff;border:1px solid #dee1ed;border-radius:14px;box-shadow:0 24px 65px #373e6510;overflow:hidden}.octo-access-window{height:39px;border-bottom:1px solid #eceef4;display:flex;align-items:center;gap:5px;padding:0 16px;background:#fafbfe}.octo-access-window i{width:6px;height:6px;border-radius:50%;background:#d3d7e3}.octo-access-window span{margin:auto;color:#888d9f;font-size:10px}.octo-access-window b{width:22px}.octo-access-body{padding:25px 24px 22px}.octo-access-workspace-title{font-size:13px;font-weight:650;display:flex;align-items:center;gap:9px}.octo-access-workspace-title img{width:23px;height:23px;border-radius:6px}.octo-access-skeleton{height:6px;width:42%;margin-top:11px;border-radius:3px;background:#eceef5}.octo-access-flow{display:flex;align-items:center;margin:29px 0}.octo-access-node{width:62px;height:61px;display:grid;place-items:center;background:#f4f5fa;border:1px solid #e1e4ef;border-radius:11px}.octo-access-node svg{width:23px;height:23px;color:#9ca3bc}.octo-access-node.active{background:#fff0eb;border-color:#ffc4b7}.octo-access-node.active svg{color:#bd4832}.octo-access-wire{height:1px;background:#d9ddec;flex:1}.octo-access-placeholder{display:flex;gap:8px;margin-top:12px}.octo-access-placeholder i{height:6px;width:35%;border-radius:3px;background:#eceef5}.octo-access-placeholder i+ i{width:20%}.octo-access-lock{position:absolute;bottom:10%;right:0;width:76px;height:76px;display:grid;place-items:center;border:7px solid #f7f8fc;border-radius:22px;background:#fff0eb;transform:rotate(7deg);box-shadow:0 8px 25px #373e650a}.octo-access-lock svg{width:29px;height:29px;color:#bd4832}.octo-access-caption{position:absolute;bottom:0;margin:0;font-size:12px;color:#73788e;text-align:center}\n.octo-access-footer{min-height:85px;border-top:1px solid #e3e5ee;color:#737383;font-size:12px}.octo-access-footer p{margin:0}.octo-access-footer a{padding:10px 0}.octo-access-connecting .octo-access-status svg{animation:octo-turn 2s linear infinite}@keyframes octo-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.octo-access-connecting .octo-access-status svg{animation:none}}\n@media(max-width:850px){.octo-access{padding:0 28px}.octo-access-main{gap:25px}.octo-access h1{font-size:44px}.octo-access-visual{min-width:0}.octo-access-body{padding:18px}.octo-access-orbit::after{box-shadow:none}}@media(max-width:650px){.octo-access{padding:0 24px}.octo-access-header{height:80px}.octo-access-brand{font-size:21px}.octo-access-main{grid-template-columns:1fr;gap:45px;padding:48px 0 40px}.octo-access-copy{max-width:480px}.octo-access h1{font-size:clamp(38px,8vw,46px);letter-spacing:-2px}.octo-access-description{font-size:16px}.octo-access-visual{width:100%;max-width:390px;margin:auto;aspect-ratio:auto;min-height:340px;padding-bottom:40px}.octo-access-footer{align-items:flex-start;padding:22px 0;min-height:80px;font-size:11px}.octo-access a.octo-access-guide{font-size:12px}.octo-access-caption{font-size:11px}.octo-access-lock{right:4%}}\n";
|
|
2
|
+
export declare const OCTONODE_LOGO: string;
|
|
3
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/app/OctonodeAppProvider/AppAccessScreen/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,8yLAQ7B,CAAC;AACF,eAAO,MAAM,aAAa,QAIvB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated from packages/ui-extensions/src/app/OctonodeAppProvider/AppAccessScreen/constants.ts. Do not edit; run the Octonode SDK sync.
|
|
2
|
+
// Inline, scoped styles keep the public React SDK independent of host CSS and asset loaders.
|
|
3
|
+
export const ACCESS_SCREEN_CSS = `
|
|
4
|
+
.octo-access{--octo-ink:#252536;--octo-muted:#636374;--octo-coral:#ff765f;box-sizing:border-box;min-height:100svh;background:#f7f8fc;color:var(--octo-ink);font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif;font-size:16px;line-height:1.5;padding:0 48px;isolation:isolate}
|
|
5
|
+
.octo-access *{box-sizing:border-box}.octo-access a{color:inherit;text-decoration:none}.octo-access a:focus-visible{outline:3px solid #af3e29;outline-offset:5px}.octo-access a:hover{text-decoration:underline}
|
|
6
|
+
.octo-access-header,.octo-access-footer{max-width:1120px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px}.octo-access-header{height:100px;border-bottom:1px solid #e3e5ee}.octo-access-brand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:750;letter-spacing:-1px}.octo-access-brand img{width:36px;height:36px}.octo-access a.octo-access-guide{font-size:14px;color:var(--octo-muted);display:flex;align-items:center;gap:8px}
|
|
7
|
+
.octo-access-main{max-width:1120px;min-height:calc(100svh - 185px);margin:auto;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:70px;padding:72px 0}.octo-access-copy{max-width:520px}.octo-access-status{display:inline-flex;align-items:center;gap:8px;margin:0 0 24px;padding:6px 11px;border:1px solid #dedeea;background:#eeeff6;border-radius:6px;font-size:12px;font-weight:600;color:#515164}.octo-access-status svg{width:14px;height:14px}.octo-access h1{margin:0;font-size:clamp(40px,4.3vw,62px);font-weight:650;letter-spacing:-2.8px;line-height:1.09;text-wrap:balance}.octo-access-description{max-width:430px;margin:24px 0 30px;font-size:17px;line-height:1.75;color:var(--octo-muted)}.octo-access-actions{display:flex;align-items:center;gap:23px;flex-wrap:wrap}.octo-access a.octo-access-primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:13px 21px;border-radius:9px;background:var(--octo-ink);color:#fff;font-size:14px;font-weight:650;box-shadow:0 4px 0 #25253612}.octo-access a.octo-access-primary:hover{background:#404056;text-decoration:none}.octo-access-secondary{font-size:14px;font-weight:600}.octo-access-hint{display:flex;align-items:flex-start;gap:9px;max-width:415px;margin:27px 0 0;color:var(--octo-muted);font-size:12px;line-height:1.65}.octo-access-hint svg{flex:none;width:15px;height:15px;margin-top:2px}
|
|
8
|
+
.octo-access-visual{position:relative;aspect-ratio:1;display:grid;place-items:center}.octo-access-orbit{position:absolute;width:87%;aspect-ratio:1;border:1px solid #dfe2ee;border-radius:50%}.octo-access-orbit::before{content:"";position:absolute;inset:42px;border:1px dashed #dfe2ee;border-radius:50%}.octo-access-orbit::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#b2b7cf;top:13%;left:13%;box-shadow:285px 240px 0 #ffb7a8}.octo-access-workspace{position:relative;transform:rotate(-5deg);width:90%;max-width:405px;background:#fff;border:1px solid #dee1ed;border-radius:14px;box-shadow:0 24px 65px #373e6510;overflow:hidden}.octo-access-window{height:39px;border-bottom:1px solid #eceef4;display:flex;align-items:center;gap:5px;padding:0 16px;background:#fafbfe}.octo-access-window i{width:6px;height:6px;border-radius:50%;background:#d3d7e3}.octo-access-window span{margin:auto;color:#888d9f;font-size:10px}.octo-access-window b{width:22px}.octo-access-body{padding:25px 24px 22px}.octo-access-workspace-title{font-size:13px;font-weight:650;display:flex;align-items:center;gap:9px}.octo-access-workspace-title img{width:23px;height:23px;border-radius:6px}.octo-access-skeleton{height:6px;width:42%;margin-top:11px;border-radius:3px;background:#eceef5}.octo-access-flow{display:flex;align-items:center;margin:29px 0}.octo-access-node{width:62px;height:61px;display:grid;place-items:center;background:#f4f5fa;border:1px solid #e1e4ef;border-radius:11px}.octo-access-node svg{width:23px;height:23px;color:#9ca3bc}.octo-access-node.active{background:#fff0eb;border-color:#ffc4b7}.octo-access-node.active svg{color:#bd4832}.octo-access-wire{height:1px;background:#d9ddec;flex:1}.octo-access-placeholder{display:flex;gap:8px;margin-top:12px}.octo-access-placeholder i{height:6px;width:35%;border-radius:3px;background:#eceef5}.octo-access-placeholder i+ i{width:20%}.octo-access-lock{position:absolute;bottom:10%;right:0;width:76px;height:76px;display:grid;place-items:center;border:7px solid #f7f8fc;border-radius:22px;background:#fff0eb;transform:rotate(7deg);box-shadow:0 8px 25px #373e650a}.octo-access-lock svg{width:29px;height:29px;color:#bd4832}.octo-access-caption{position:absolute;bottom:0;margin:0;font-size:12px;color:#73788e;text-align:center}
|
|
9
|
+
.octo-access-footer{min-height:85px;border-top:1px solid #e3e5ee;color:#737383;font-size:12px}.octo-access-footer p{margin:0}.octo-access-footer a{padding:10px 0}.octo-access-connecting .octo-access-status svg{animation:octo-turn 2s linear infinite}@keyframes octo-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.octo-access-connecting .octo-access-status svg{animation:none}}
|
|
10
|
+
@media(max-width:850px){.octo-access{padding:0 28px}.octo-access-main{gap:25px}.octo-access h1{font-size:44px}.octo-access-visual{min-width:0}.octo-access-body{padding:18px}.octo-access-orbit::after{box-shadow:none}}@media(max-width:650px){.octo-access{padding:0 24px}.octo-access-header{height:80px}.octo-access-brand{font-size:21px}.octo-access-main{grid-template-columns:1fr;gap:45px;padding:48px 0 40px}.octo-access-copy{max-width:480px}.octo-access h1{font-size:clamp(38px,8vw,46px);letter-spacing:-2px}.octo-access-description{font-size:16px}.octo-access-visual{width:100%;max-width:390px;margin:auto;aspect-ratio:auto;min-height:340px;padding-bottom:40px}.octo-access-footer{align-items:flex-start;padding:22px 0;min-height:80px;font-size:11px}.octo-access a.octo-access-guide{font-size:12px}.octo-access-caption{font-size:11px}.octo-access-lock{right:4%}}
|
|
11
|
+
`;
|
|
12
|
+
export const OCTONODE_LOGO = "data:image/svg+xml," +
|
|
13
|
+
encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">\n <title>Octonode</title>\n <rect width="64" height="64" rx="16" fill="#181721"/>\n <path d="M24 10h16l14 14v16L40 54H24L10 40V24Z" stroke="#FF765F" stroke-linejoin="round" stroke-width="3.5"/>\n <path d="m21 24 11 8 11-8M32 32v13" stroke="#FF765F" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/>\n <g fill="#FF765F"><circle cx="21" cy="24" r="3"/><circle cx="43" cy="24" r="3"/><circle cx="32" cy="32" r="4"/><circle cx="32" cy="45" r="3"/></g>\n</svg>\n');
|
|
14
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/app/OctonodeAppProvider/AppAccessScreen/constants.ts"],"names":[],"mappings":"AAAA,0IAA0I;AAC1I,6FAA6F;AAC7F,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;CAQhC,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GACxB,qBAAqB;IACrB,kBAAkB,CAChB,yiBAAyiB,CAC1iB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/OctonodeAppProvider/AppAccessScreen/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/OctonodeAppProvider/AppAccessScreen/index.ts"],"names":[],"mappings":"AAAA,sIAAsI;AACtI,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { OctonodeAppContext, OctonodeAppProviderProps } from "./OctonodeAppProvider.types.js";
|
|
2
|
+
/** Render app content only after the hosted backend verifies the workspace session. */
|
|
3
|
+
export declare function OctonodeAppProvider({ children, navigation }: OctonodeAppProviderProps): import("react").JSX.Element;
|
|
4
|
+
export declare function useOctonodeApp(): OctonodeAppContext;
|
|
5
|
+
//# sourceMappingURL=OctonodeAppProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OctonodeAppProvider.d.ts","sourceRoot":"","sources":["../../../src/app/OctonodeAppProvider/OctonodeAppProvider.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAKnG,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,UAA8B,EAAE,EAAE,wBAAwB,+BAoDzG;AAED,wBAAgB,cAAc,IAAI,kBAAkB,CAInD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// Generated from packages/ui-extensions/src/app/OctonodeAppProvider/OctonodeAppProvider.tsx. Do not edit; run the Octonode SDK sync.
|
|
3
|
+
import { createContext, useContext, useEffect, useState } from "react";
|
|
4
|
+
import { AppAccessScreen } from "./AppAccessScreen/index.js";
|
|
5
|
+
import { connectHostedApp } from "../hosted.js";
|
|
6
|
+
const Context = createContext(null);
|
|
7
|
+
const defaultNavigation = [];
|
|
8
|
+
/** Render app content only after the hosted backend verifies the workspace session. */
|
|
9
|
+
export function OctonodeAppProvider({ children, navigation = defaultNavigation }) {
|
|
10
|
+
const [bridge, setBridge] = useState();
|
|
11
|
+
const [session, setSession] = useState();
|
|
12
|
+
const [verified, setVerified] = useState();
|
|
13
|
+
const [error, setError] = useState(false);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
try {
|
|
16
|
+
const app = connectHostedApp();
|
|
17
|
+
setBridge(app);
|
|
18
|
+
setSession(app.getSnapshot());
|
|
19
|
+
const unsubscribe = app.subscribe(() => setSession(app.getSnapshot()));
|
|
20
|
+
return () => {
|
|
21
|
+
unsubscribe();
|
|
22
|
+
app.dispose();
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
setError(true);
|
|
27
|
+
}
|
|
28
|
+
}, []);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
bridge?.setNavigation(navigation);
|
|
31
|
+
}, [bridge, navigation]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (!bridge || session?.status !== "ready" || !session.token)
|
|
34
|
+
return;
|
|
35
|
+
const token = session.token;
|
|
36
|
+
const controller = new AbortController();
|
|
37
|
+
bridge
|
|
38
|
+
.fetch("/api/context", { signal: controller.signal })
|
|
39
|
+
.then(async (response) => {
|
|
40
|
+
if (!response.ok)
|
|
41
|
+
throw new Error("Workspace access could not be verified");
|
|
42
|
+
const context = (await response.json());
|
|
43
|
+
if (!context.workspace?.kind || !context.workspace.id)
|
|
44
|
+
throw new Error("Missing workspace scope");
|
|
45
|
+
if (!controller.signal.aborted) {
|
|
46
|
+
setVerified({ token, workspace: context.workspace });
|
|
47
|
+
setError(false);
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
.catch(() => {
|
|
51
|
+
if (!controller.signal.aborted)
|
|
52
|
+
setError(true);
|
|
53
|
+
});
|
|
54
|
+
return () => controller.abort();
|
|
55
|
+
}, [bridge, session?.status, session?.token]);
|
|
56
|
+
if (session?.status === "expired")
|
|
57
|
+
return _jsx(AppAccessScreen, { status: "expired" });
|
|
58
|
+
if (error)
|
|
59
|
+
return _jsx(AppAccessScreen, { status: "error" });
|
|
60
|
+
if (session?.status === "standalone")
|
|
61
|
+
return _jsx(AppAccessScreen, { status: "standalone" });
|
|
62
|
+
if (!bridge || !session || !verified || verified.token !== session.token)
|
|
63
|
+
return _jsx(AppAccessScreen, { status: "connecting" });
|
|
64
|
+
return _jsx(Context.Provider, { value: { bridge, session, workspace: verified.workspace }, children: children });
|
|
65
|
+
}
|
|
66
|
+
export function useOctonodeApp() {
|
|
67
|
+
const context = useContext(Context);
|
|
68
|
+
if (!context)
|
|
69
|
+
throw new Error("useOctonodeApp requires OctonodeAppProvider");
|
|
70
|
+
return context;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=OctonodeAppProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OctonodeAppProvider.js","sourceRoot":"","sources":["../../../src/app/OctonodeAppProvider/OctonodeAppProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { AppContext, HostedApp, HostedAppNavigationItem, HostedAppState } from "../types.js";
|
|
3
|
+
export type OctonodeAppProviderProps = {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
navigation?: HostedAppNavigationItem[];
|
|
6
|
+
};
|
|
7
|
+
export type OctonodeAppContext = {
|
|
8
|
+
bridge: HostedApp;
|
|
9
|
+
session: HostedAppState;
|
|
10
|
+
workspace: AppContext["workspace"];
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=OctonodeAppProvider.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OctonodeAppProvider.types.d.ts","sourceRoot":"","sources":["../../../src/app/OctonodeAppProvider/OctonodeAppProvider.types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElG,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OctonodeAppProvider.types.js","sourceRoot":"","sources":["../../../src/app/OctonodeAppProvider/OctonodeAppProvider.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/OctonodeAppProvider/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/E,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/OctonodeAppProvider/index.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/app/hosted.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted.d.ts","sourceRoot":"","sources":["../../src/app/hosted.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"hosted.d.ts","sourceRoot":"","sources":["../../src/app/hosted.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAA2C,MAAM,YAAY,CAAC;AAGrF,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWtD;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,IAAI,SAAS,CA6J5C"}
|
package/dist/app/hosted.js
CHANGED
|
@@ -53,6 +53,7 @@ export function connectHostedApp() {
|
|
|
53
53
|
path: location.pathname + location.search + location.hash,
|
|
54
54
|
};
|
|
55
55
|
let disposed = false;
|
|
56
|
+
let navigation = [];
|
|
56
57
|
const publish = (patch) => {
|
|
57
58
|
state = { ...state, ...patch };
|
|
58
59
|
listeners.forEach((listener) => listener());
|
|
@@ -94,6 +95,8 @@ export function connectHostedApp() {
|
|
|
94
95
|
message.expiresAt > Date.now()) {
|
|
95
96
|
publish({ status: "ready", token: message.token, expiresAt: message.expiresAt });
|
|
96
97
|
send({ type: "ack" });
|
|
98
|
+
if (navigation.length)
|
|
99
|
+
send({ type: "navigation", items: navigation });
|
|
97
100
|
}
|
|
98
101
|
if (message.type === "expired")
|
|
99
102
|
publish({ status: "expired", token: undefined });
|
|
@@ -130,6 +133,14 @@ export function connectHostedApp() {
|
|
|
130
133
|
history[options.replace ? "replaceState" : "pushState"](null, "", route);
|
|
131
134
|
dispatchEvent(new PopStateEvent("popstate"));
|
|
132
135
|
},
|
|
136
|
+
setNavigation(items) {
|
|
137
|
+
if (items.length > 12 ||
|
|
138
|
+
items.some((item) => !item.label.trim() || item.label.length > 40 || !appRoute(item.path)))
|
|
139
|
+
throw new Error("Expected up to 12 app-relative navigation items");
|
|
140
|
+
navigation = items;
|
|
141
|
+
if (state.status === "ready")
|
|
142
|
+
send({ type: "navigation", items });
|
|
143
|
+
},
|
|
133
144
|
async fetch(input, init) {
|
|
134
145
|
const url = new URL(input, location.href);
|
|
135
146
|
if (url.origin !== location.origin)
|
package/dist/app/hosted.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted.js","sourceRoot":"","sources":["../../src/app/hosted.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hosted.js","sourceRoot":"","sources":["../../src/app/hosted.ts"],"names":[],"mappings":"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"}
|
package/dist/app/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { AppContext } from "./types.js";
|
|
1
|
+
import type { AppBridgeRequest, AppContext } from "./types.js";
|
|
2
2
|
export type { AppBridgeRequest, AppBridgeResponse, AppContext, AppExecution, AppGrant, AppProject } from "./types.js";
|
|
3
|
-
export type { HostedApp, HostedAppState } from "./types.js";
|
|
3
|
+
export type { HostedApp, HostedAppNavigationItem, HostedAppState } from "./types.js";
|
|
4
4
|
export { connectHostedApp, appRoute } from "./hosted.js";
|
|
5
5
|
export { HOSTED_APP_PROTOCOL } from "./constants.js";
|
|
6
|
+
export declare function request<T>(operation: AppBridgeRequest["operation"], body?: unknown): Promise<T>;
|
|
6
7
|
/** Connects an installed extension to its live workspace and project grants. */
|
|
7
8
|
export declare function connectApp(): Promise<AppContext>;
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/app/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAqB,UAAU,EAAY,MAAM,YAAY,CAAC;AAE5F,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtH,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CA0C/F;AAED,gFAAgF;AAChF,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAUtD"}
|
package/dist/app/index.js
CHANGED
|
@@ -3,8 +3,8 @@ import { getAppSession, UI_EXTENSION_API_VERSION } from "../index.js";
|
|
|
3
3
|
import { appContext } from "./project.js";
|
|
4
4
|
export { connectHostedApp, appRoute } from "./hosted.js";
|
|
5
5
|
export { HOSTED_APP_PROTOCOL } from "./constants.js";
|
|
6
|
-
function request(operation, body) {
|
|
7
|
-
getAppSession();
|
|
6
|
+
export function request(operation, body) {
|
|
7
|
+
const apiVersion = getAppSession().protocolVersion ?? UI_EXTENSION_API_VERSION;
|
|
8
8
|
if (parent === window)
|
|
9
9
|
throw new Error("App actions require an installed extension");
|
|
10
10
|
const requestId = crypto.randomUUID();
|
|
@@ -16,7 +16,7 @@ function request(operation, body) {
|
|
|
16
16
|
if (event.source !== parent ||
|
|
17
17
|
message?.octonode !== "ui-extension" ||
|
|
18
18
|
message.type !== "app-response" ||
|
|
19
|
-
message.apiVersion !==
|
|
19
|
+
message.apiVersion !== apiVersion ||
|
|
20
20
|
message.requestId !== requestId)
|
|
21
21
|
return;
|
|
22
22
|
finish(message.ok ? undefined : new Error(message.error || "App action failed"), message.value);
|
|
@@ -34,7 +34,7 @@ function request(operation, body) {
|
|
|
34
34
|
function send() {
|
|
35
35
|
parent.postMessage({
|
|
36
36
|
octonode: "ui-extension",
|
|
37
|
-
apiVersion
|
|
37
|
+
apiVersion,
|
|
38
38
|
type: "app-request",
|
|
39
39
|
requestId,
|
|
40
40
|
operation,
|
package/dist/app/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,UAAU,OAAO,CAAI,SAAwC,EAAE,IAAc;IACjF,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC,eAAe,IAAI,wBAAwB,CAAC;IAC/E,IAAI,MAAM,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACtC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAyC,CAAC;YAChE,IACE,KAAK,CAAC,MAAM,KAAK,MAAM;gBACvB,OAAO,EAAE,QAAQ,KAAK,cAAc;gBACpC,OAAO,CAAC,IAAI,KAAK,cAAc;gBAC/B,OAAO,CAAC,UAAU,KAAK,UAAU;gBACjC,OAAO,CAAC,SAAS,KAAK,SAAS;gBAE/B,OAAO;YACT,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC,EAAE,OAAO,CAAC,KAAU,CAAC,CAAC;QACvG,CAAC,CAAC;QACF,SAAS,MAAM,CAAC,KAAa,EAAE,KAAS;YACtC,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACpB,OAAO,CAAC,KAAU,CAAC,CAAC;QAC3B,CAAC;QACD,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrC,SAAS,IAAI;YACX,MAAM,CAAC,WAAW,CAChB;gBACE,QAAQ,EAAE,cAAc;gBACxB,UAAU;gBACV,IAAI,EAAE,aAAa;gBACnB,SAAS;gBACT,SAAS;gBACT,IAAI;aACsB,EAC5B,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAM3B,SAAS,CAAC,CAAC;IACd,OAAO,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}
|
package/dist/app/project.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AppSession } from "../index.js";
|
|
2
2
|
import type { AppBridgeRequest, AppContext, AppGrant } from "./types.js";
|
|
3
|
-
export type AppRequest = <T>(operation: AppBridgeRequest["operation"], body?: unknown) => Promise<T>;
|
|
3
|
+
export type AppRequest = <T>(operation: Exclude<AppBridgeRequest["operation"], "host">, body?: unknown) => Promise<T>;
|
|
4
4
|
export declare function appContext(session: Pick<AppSession, "appId" | "installationId" | "workspace" | "projectId">, verified: {
|
|
5
5
|
appId: string;
|
|
6
6
|
installationId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/app/project.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAgB,QAAQ,EAAc,MAAM,YAAY,CAAC;AAEnG,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/app/project.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAgB,QAAQ,EAAc,MAAM,YAAY,CAAC;AAEnG,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAoCtH,wBAAgB,UAAU,CACxB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC,EACjF,QAAQ,EAAE;IACR,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB,EACD,OAAO,EAAE,UAAU,GAClB,UAAU,CAyBZ"}
|
package/dist/app/types.d.ts
CHANGED
|
@@ -6,12 +6,17 @@ export type HostedAppState = {
|
|
|
6
6
|
expiresAt?: number;
|
|
7
7
|
path: string;
|
|
8
8
|
};
|
|
9
|
+
export type HostedAppNavigationItem = {
|
|
10
|
+
label: string;
|
|
11
|
+
path: string;
|
|
12
|
+
};
|
|
9
13
|
export type HostedApp = {
|
|
10
14
|
getSnapshot(): HostedAppState;
|
|
11
15
|
subscribe(listener: () => void): () => void;
|
|
12
16
|
navigate(path: string, options?: {
|
|
13
17
|
replace?: boolean;
|
|
14
18
|
}): void;
|
|
19
|
+
setNavigation(items: HostedAppNavigationItem[]): void;
|
|
15
20
|
fetch(input: string, init?: RequestInit): Promise<Response>;
|
|
16
21
|
dispose(): void;
|
|
17
22
|
};
|
|
@@ -68,15 +73,15 @@ export type AppContext = {
|
|
|
68
73
|
};
|
|
69
74
|
export type AppBridgeRequest = {
|
|
70
75
|
octonode: "ui-extension";
|
|
71
|
-
apiVersion: "1";
|
|
76
|
+
apiVersion: "1" | "2";
|
|
72
77
|
type: "app-request";
|
|
73
78
|
requestId: string;
|
|
74
|
-
operation: "context" | "data" | "workflow.run";
|
|
79
|
+
operation: "context" | "data" | "workflow.run" | "host";
|
|
75
80
|
body?: unknown;
|
|
76
81
|
};
|
|
77
82
|
export type AppBridgeResponse = {
|
|
78
83
|
octonode: "ui-extension";
|
|
79
|
-
apiVersion: "1";
|
|
84
|
+
apiVersion: "1" | "2";
|
|
80
85
|
type: "app-response";
|
|
81
86
|
requestId: string;
|
|
82
87
|
ok: boolean;
|
package/dist/app/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/app/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/app/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ActionDefinition, AppExtensionTarget, ExtensionApi } from "./contributions.types.js";
|
|
2
|
+
export declare function extensionApi(target: AppExtensionTarget): ExtensionApi;
|
|
3
|
+
export declare function defineAction(target: AppExtensionTarget, handler: ActionDefinition["handler"]): ActionDefinition;
|
|
4
|
+
export declare function startAction(definition: ActionDefinition): void;
|
|
5
|
+
//# sourceMappingURL=contributions.d.ts.map
|