@stackable-labs/sdk-extension-host 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/SandboxManager.js +12 -13
- package/dist/SandboxManager.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -85,7 +85,7 @@ const extensions: ExtensionRegistryEntry[] = [
|
|
|
85
85
|
{
|
|
86
86
|
id: manifest.name.toLowerCase().replace(/\s+/g, '-'),
|
|
87
87
|
manifest,
|
|
88
|
-
bundleUrl: `http://localhost:${import.meta.env.VITE_EXTENSION_PORT || '
|
|
88
|
+
bundleUrl: `http://localhost:${import.meta.env.VITE_EXTENSION_PORT || '6543'}`,
|
|
89
89
|
enabled: true,
|
|
90
90
|
},
|
|
91
91
|
];
|
|
@@ -124,8 +124,8 @@ At the workspace root, add:
|
|
|
124
124
|
|
|
125
125
|
**.env**
|
|
126
126
|
```
|
|
127
|
-
VITE_EXTENSION_PORT=
|
|
128
|
-
VITE_PREVIEW_PORT=
|
|
127
|
+
VITE_EXTENSION_PORT=6543
|
|
128
|
+
VITE_PREVIEW_PORT=6544
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
**turbo.json**
|
|
@@ -144,9 +144,9 @@ Run both servers with one command:
|
|
|
144
144
|
pnpm dev
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
Extension runs at `:
|
|
147
|
+
Extension runs at `:6543`, preview host at `:6544`. The preview host loads the extension bundle from the dev server, so edits to the extension hot-reload in the preview automatically.
|
|
148
148
|
|
|
149
|
-
See [
|
|
149
|
+
See [stackable-extensions-commerce-orders](https://github.com/agnostack/stackable-extensions-commerce-orders) and [stackable-extensions-approvals](https://github.com/sweethawk/stackable-extensions-approvals) for complete working examples.
|
|
150
150
|
|
|
151
151
|
## Changelog
|
|
152
152
|
|
package/dist/SandboxManager.js
CHANGED
|
@@ -19,13 +19,13 @@ export const createSandbox = async (entry, container) => {
|
|
|
19
19
|
iframe.style.width = '0';
|
|
20
20
|
iframe.style.height = '0';
|
|
21
21
|
iframe.style.border = 'none';
|
|
22
|
-
const
|
|
23
|
-
if (
|
|
22
|
+
const isDevServer = entry.bundleUrl.startsWith('http') && !entry.bundleUrl.endsWith('.js');
|
|
23
|
+
if (isDevServer) {
|
|
24
24
|
// Dev mode: point iframe.src to a sandbox page served by the extension's dev server
|
|
25
25
|
iframe.src = entry.bundleUrl;
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
// Production mode: fetch bundle and inline it
|
|
28
|
+
// Production mode (or absolute URL to .js bundle): fetch bundle and inline it via blob URL
|
|
29
29
|
let bundleCode = '';
|
|
30
30
|
try {
|
|
31
31
|
const res = await fetch(entry.bundleUrl);
|
|
@@ -34,16 +34,15 @@ export const createSandbox = async (entry, container) => {
|
|
|
34
34
|
catch (err) {
|
|
35
35
|
console.error(`[SandboxManager] Failed to fetch bundle for ${entry.id}:`, err);
|
|
36
36
|
}
|
|
37
|
-
const sandboxHtml =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
`;
|
|
37
|
+
const sandboxHtml = `<!DOCTYPE html>
|
|
38
|
+
<html>
|
|
39
|
+
<head><meta charset="utf-8"></head>
|
|
40
|
+
<body>
|
|
41
|
+
<div id="extension-root"></div>
|
|
42
|
+
<script>var process = { env: { NODE_ENV: "production" } };</script>
|
|
43
|
+
<script>${bundleCode}</script>
|
|
44
|
+
</body>
|
|
45
|
+
</html>`;
|
|
47
46
|
iframe.srcdoc = sandboxHtml;
|
|
48
47
|
}
|
|
49
48
|
container.appendChild(iframe);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxManager.js","sourceRoot":"","sources":["../src/SandboxManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,KAA6B,EAAE,SAAsB,EAA4B,EAAE;IACrH,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACxC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAA;IACjE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;IAC7B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA;IACxB,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAA;IACzB,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAE5B,MAAM,
|
|
1
|
+
{"version":3,"file":"SandboxManager.js","sourceRoot":"","sources":["../src/SandboxManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackable-labs/sdk-extension-host",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@stackable-labs/sdk-extension-contracts": "1.
|
|
15
|
+
"@stackable-labs/sdk-extension-contracts": "1.5.0",
|
|
16
16
|
"@remote-dom/core": "1.x",
|
|
17
17
|
"@remote-dom/react": "1.x"
|
|
18
18
|
},
|