skybridge 0.0.0-dev.ba6476a → 0.0.0-dev.ba81b75
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 +11 -2
- package/dist/cli/build-helpers.d.ts +6 -2
- package/dist/cli/build-helpers.js +37 -12
- package/dist/cli/build-helpers.js.map +1 -1
- package/dist/cli/build-helpers.test.js +71 -3
- package/dist/cli/build-helpers.test.js.map +1 -1
- package/dist/cli/build-steps.d.ts +2 -0
- package/dist/cli/build-steps.js +73 -0
- package/dist/cli/build-steps.js.map +1 -0
- package/dist/cli/build-steps.test.d.ts +1 -0
- package/dist/cli/build-steps.test.js +52 -0
- package/dist/cli/build-steps.test.js.map +1 -0
- package/dist/cli/header.d.ts +1 -1
- package/dist/cli/resolve-skybridge-config.d.ts +5 -0
- package/dist/cli/{resolve-views-dir.js → resolve-skybridge-config.js} +4 -3
- package/dist/cli/resolve-skybridge-config.js.map +1 -0
- package/dist/cli/run-plain.d.ts +18 -0
- package/dist/cli/run-plain.js +89 -0
- package/dist/cli/run-plain.js.map +1 -0
- package/dist/cli/use-nodemon.d.ts +14 -0
- package/dist/cli/use-nodemon.js +71 -60
- package/dist/cli/use-nodemon.js.map +1 -1
- package/dist/cli/use-typescript-check.d.ts +8 -2
- package/dist/cli/use-typescript-check.js +70 -67
- package/dist/cli/use-typescript-check.js.map +1 -1
- package/dist/commands/build.d.ts +0 -2
- package/dist/commands/build.js +2 -61
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/dev.d.ts +1 -0
- package/dist/commands/dev.js +34 -2
- package/dist/commands/dev.js.map +1 -1
- package/dist/context-warnings.d.ts +5 -0
- package/dist/context-warnings.js +31 -0
- package/dist/context-warnings.js.map +1 -0
- package/dist/context-warnings.test.d.ts +1 -0
- package/dist/context-warnings.test.js +28 -0
- package/dist/context-warnings.test.js.map +1 -0
- package/dist/server/auth/index.d.ts +30 -4
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/auth/providers/auth0.d.ts +24 -2
- package/dist/server/auth/providers/auth0.js.map +1 -1
- package/dist/server/auth/providers/auth0.test.js +4 -2
- package/dist/server/auth/providers/auth0.test.js.map +1 -1
- package/dist/server/auth/providers/authplane.d.ts +49 -0
- package/dist/server/auth/providers/authplane.js +57 -0
- package/dist/server/auth/providers/authplane.js.map +1 -0
- package/dist/server/auth/providers/authplane.test.d.ts +1 -0
- package/dist/server/auth/providers/authplane.test.js +140 -0
- package/dist/server/auth/providers/authplane.test.js.map +1 -0
- package/dist/server/auth/providers/clerk.d.ts +39 -2
- package/dist/server/auth/providers/clerk.js +4 -1
- package/dist/server/auth/providers/clerk.js.map +1 -1
- package/dist/server/auth/providers/clerk.test.js +5 -3
- package/dist/server/auth/providers/clerk.test.js.map +1 -1
- package/dist/server/auth/providers/custom.d.ts +18 -2
- package/dist/server/auth/providers/custom.js +29 -10
- package/dist/server/auth/providers/custom.js.map +1 -1
- package/dist/server/auth/providers/custom.test.js +61 -10
- package/dist/server/auth/providers/custom.test.js.map +1 -1
- package/dist/server/auth/providers/descope.d.ts +31 -2
- package/dist/server/auth/providers/descope.js +13 -2
- package/dist/server/auth/providers/descope.js.map +1 -1
- package/dist/server/auth/providers/descope.test.js +42 -17
- package/dist/server/auth/providers/descope.test.js.map +1 -1
- package/dist/server/auth/providers/stytch.d.ts +15 -2
- package/dist/server/auth/providers/stytch.js +4 -1
- package/dist/server/auth/providers/stytch.js.map +1 -1
- package/dist/server/auth/providers/verify-spy.d.ts +12 -0
- package/dist/server/auth/providers/verify-spy.js +21 -0
- package/dist/server/auth/providers/verify-spy.js.map +1 -0
- package/dist/server/auth/providers/workos.d.ts +24 -2
- package/dist/server/auth/providers/workos.js +4 -1
- package/dist/server/auth/providers/workos.js.map +1 -1
- package/dist/server/auth/security-schemes.d.ts +10 -0
- package/dist/server/auth/security-schemes.js +19 -10
- package/dist/server/auth/security-schemes.js.map +1 -1
- package/dist/server/auth/security-schemes.test.js +13 -3
- package/dist/server/auth/security-schemes.test.js.map +1 -1
- package/dist/server/auth/setup.d.ts +2 -1
- package/dist/server/auth/setup.js +26 -21
- package/dist/server/auth/setup.js.map +1 -1
- package/dist/server/auth/setup.test.js +102 -14
- package/dist/server/auth/setup.test.js.map +1 -1
- package/dist/server/auth/verify.d.ts +37 -3
- package/dist/server/auth/verify.js +26 -2
- package/dist/server/auth/verify.js.map +1 -1
- package/dist/server/auth/verify.test.js +49 -0
- package/dist/server/auth/verify.test.js.map +1 -1
- package/dist/server/auth-extra.test-d.d.ts +1 -0
- package/dist/server/auth-extra.test-d.js +82 -0
- package/dist/server/auth-extra.test-d.js.map +1 -0
- package/dist/server/auth.d.ts +39 -1
- package/dist/server/auth.js.map +1 -1
- package/dist/server/host.d.ts +2 -0
- package/dist/server/host.js +11 -0
- package/dist/server/host.js.map +1 -0
- package/dist/server/host.test.d.ts +1 -0
- package/dist/server/host.test.js +13 -0
- package/dist/server/host.test.js.map +1 -0
- package/dist/server/index.d.ts +11 -7
- package/dist/server/index.js +6 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/middleware.d.ts +31 -6
- package/dist/server/middleware.js +33 -0
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/middleware.test.js +37 -1
- package/dist/server/middleware.test.js.map +1 -1
- package/dist/server/server.d.ts +61 -21
- package/dist/server/server.js +120 -25
- package/dist/server/server.js.map +1 -1
- package/dist/server/skills-integration.test.d.ts +1 -0
- package/dist/server/skills-integration.test.js +79 -0
- package/dist/server/skills-integration.test.js.map +1 -0
- package/dist/server/skills.d.ts +29 -0
- package/dist/server/skills.js +195 -0
- package/dist/server/skills.js.map +1 -0
- package/dist/server/skills.test.d.ts +1 -0
- package/dist/server/skills.test.js +247 -0
- package/dist/server/skills.test.js.map +1 -0
- package/dist/server/view-resource-resolution.test.js +69 -1
- package/dist/server/view-resource-resolution.test.js.map +1 -1
- package/dist/server/viewsDevServer.js +4 -1
- package/dist/server/viewsDevServer.js.map +1 -1
- package/dist/test/utils.d.ts +3 -3
- package/dist/test/view.test.js +19 -3
- package/dist/test/view.test.js.map +1 -1
- package/dist/web/bridges/adaptor.js +22 -5
- package/dist/web/bridges/adaptor.js.map +1 -1
- package/dist/web/bridges/adaptor.test.js +32 -4
- package/dist/web/bridges/adaptor.test.js.map +1 -1
- package/dist/web/bridges/mcp-app/bridge.js +5 -3
- package/dist/web/bridges/mcp-app/bridge.js.map +1 -1
- package/dist/web/bridges/mcp-app/types.d.ts +2 -0
- package/dist/web/bridges/mcp-app/types.js.map +1 -1
- package/dist/web/components/modal-provider.d.ts +1 -1
- package/dist/web/data-llm.d.ts +1 -1
- package/dist/web/data-llm.test.js +9 -0
- package/dist/web/data-llm.test.js.map +1 -1
- package/dist/web/hooks/index.d.ts +1 -0
- package/dist/web/hooks/index.js +1 -0
- package/dist/web/hooks/index.js.map +1 -1
- package/dist/web/hooks/test/utils.d.ts +2 -1
- package/dist/web/hooks/test/utils.js +1 -1
- package/dist/web/hooks/test/utils.js.map +1 -1
- package/dist/web/hooks/use-host-info.d.ts +22 -0
- package/dist/web/hooks/use-host-info.js +30 -0
- package/dist/web/hooks/use-host-info.js.map +1 -0
- package/dist/web/hooks/use-host-info.test.d.ts +1 -0
- package/dist/web/hooks/use-host-info.test.js +59 -0
- package/dist/web/hooks/use-host-info.test.js.map +1 -0
- package/dist/web/hooks/use-view-state.js +19 -9
- package/dist/web/hooks/use-view-state.js.map +1 -1
- package/dist/web/hooks/use-view-state.test.js +31 -0
- package/dist/web/hooks/use-view-state.test.js.map +1 -1
- package/dist/web/plugin/plugin-build.test.d.ts +1 -0
- package/dist/web/plugin/plugin-build.test.js +54 -0
- package/dist/web/plugin/plugin-build.test.js.map +1 -0
- package/dist/web/plugin/plugin.d.ts +6 -0
- package/dist/web/plugin/plugin.js +18 -7
- package/dist/web/plugin/plugin.js.map +1 -1
- package/dist/web/plugin/plugin.test.d.ts +1 -0
- package/dist/web/plugin/plugin.test.js +61 -0
- package/dist/web/plugin/plugin.test.js.map +1 -0
- package/package.json +21 -20
- package/dist/cli/resolve-views-dir.d.ts +0 -1
- package/dist/cli/resolve-views-dir.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { mkdirSync, mkdtempSync, rmSync } from "node:fs";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
5
|
+
import { skybridge } from "./plugin.js";
|
|
6
|
+
function getRenderBuiltUrl(root) {
|
|
7
|
+
const plugin = skybridge({ viewsDir: join(root, "views") });
|
|
8
|
+
const hook = plugin.config;
|
|
9
|
+
if (!hook) {
|
|
10
|
+
throw new Error("plugin.config is not defined");
|
|
11
|
+
}
|
|
12
|
+
const handler = typeof hook === "function" ? hook : hook.handler;
|
|
13
|
+
const config = handler.call(
|
|
14
|
+
// biome-ignore lint/suspicious/noExplicitAny: vitest harness for plugin hook
|
|
15
|
+
{}, { root }, { command: "build", mode: "production" });
|
|
16
|
+
const renderBuiltUrl = config.experimental?.renderBuiltUrl;
|
|
17
|
+
if (!renderBuiltUrl) {
|
|
18
|
+
throw new Error("experimental.renderBuiltUrl is not defined");
|
|
19
|
+
}
|
|
20
|
+
return renderBuiltUrl;
|
|
21
|
+
}
|
|
22
|
+
describe("skybridge plugin renderBuiltUrl", () => {
|
|
23
|
+
let root;
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
root = mkdtempSync(join(tmpdir(), "skybridge-plugin-"));
|
|
26
|
+
mkdirSync(join(root, "views"), { recursive: true });
|
|
27
|
+
});
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
rmSync(root, { recursive: true, force: true });
|
|
30
|
+
});
|
|
31
|
+
// Assets referenced from JS can't use `import.meta.url`: views render in a
|
|
32
|
+
// host sandbox iframe (web-sandbox.oaiusercontent.com), so the module origin
|
|
33
|
+
// doesn't point back at the Skybridge server. They have to be resolved at
|
|
34
|
+
// runtime against `window.skybridge.serverUrl` instead.
|
|
35
|
+
it("resolves JS asset references against window.skybridge.serverUrl", () => {
|
|
36
|
+
const renderBuiltUrl = getRenderBuiltUrl(root);
|
|
37
|
+
expect(renderBuiltUrl("assets/logo-BXtQ8kd2.png", {
|
|
38
|
+
hostId: "assets/view-CwF9pQ1a.js",
|
|
39
|
+
hostType: "js",
|
|
40
|
+
type: "asset",
|
|
41
|
+
ssr: false,
|
|
42
|
+
})).toEqual({
|
|
43
|
+
runtime: `window.skybridge.serverUrl + "/assets/assets/logo-BXtQ8kd2.png"`,
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
// Reproducer for the CSS build failure: Vite has nowhere to evaluate a
|
|
47
|
+
// runtime expression inside a stylesheet, so `{ runtime }` makes
|
|
48
|
+
// `vite:css-post` throw for any `url()` in CSS. It isn't needed either — the
|
|
49
|
+
// stylesheet is served from `${serverUrl}/assets/…`, and a relative `url()`
|
|
50
|
+
// resolves against the stylesheet's own URL, tunnel origin included.
|
|
51
|
+
it("resolves CSS asset references relatively", () => {
|
|
52
|
+
const renderBuiltUrl = getRenderBuiltUrl(root);
|
|
53
|
+
expect(renderBuiltUrl("assets/demo-0IQFxQqs.woff2", {
|
|
54
|
+
hostId: "assets/style-DmQ2xY7b.css",
|
|
55
|
+
hostType: "css",
|
|
56
|
+
type: "asset",
|
|
57
|
+
ssr: false,
|
|
58
|
+
})).toEqual({ relative: true });
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=plugin.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.test.js","sourceRoot":"","sources":["../../../src/web/plugin/plugin.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI;IACzB,6EAA6E;IAC7E,EAAS,EACT,EAAE,IAAI,EAAE,EACR,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAC3B,CAAC;IAEhB,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;IAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAI,IAAY,CAAC;IAEjB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACxD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,6EAA6E;IAC7E,0EAA0E;IAC1E,wDAAwD;IACxD,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,CACJ,cAAc,CAAC,0BAA0B,EAAE;YACzC,MAAM,EAAE,yBAAyB;YACjC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,KAAK;SACX,CAAC,CACH,CAAC,OAAO,CAAC;YACR,OAAO,EAAE,iEAAiE;SAC3E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,iEAAiE;IACjE,6EAA6E;IAC7E,4EAA4E;IAC5E,qEAAqE;IACrE,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,CACJ,cAAc,CAAC,4BAA4B,EAAE;YAC3C,MAAM,EAAE,2BAA2B;YACnC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,KAAK;SACX,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { mkdirSync, mkdtempSync, rmSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { UserConfig } from \"vite\";\nimport { afterEach, beforeEach, describe, expect, it } from \"vitest\";\nimport { skybridge } from \"./plugin.js\";\n\ntype RenderBuiltUrl = NonNullable<\n NonNullable<UserConfig[\"experimental\"]>[\"renderBuiltUrl\"]\n>;\n\nfunction getRenderBuiltUrl(root: string): RenderBuiltUrl {\n const plugin = skybridge({ viewsDir: join(root, \"views\") });\n const hook = plugin.config;\n if (!hook) {\n throw new Error(\"plugin.config is not defined\");\n }\n const handler = typeof hook === \"function\" ? hook : hook.handler;\n const config = handler.call(\n // biome-ignore lint/suspicious/noExplicitAny: vitest harness for plugin hook\n {} as any,\n { root },\n { command: \"build\", mode: \"production\" },\n ) as UserConfig;\n\n const renderBuiltUrl = config.experimental?.renderBuiltUrl;\n if (!renderBuiltUrl) {\n throw new Error(\"experimental.renderBuiltUrl is not defined\");\n }\n return renderBuiltUrl;\n}\n\ndescribe(\"skybridge plugin renderBuiltUrl\", () => {\n let root: string;\n\n beforeEach(() => {\n root = mkdtempSync(join(tmpdir(), \"skybridge-plugin-\"));\n mkdirSync(join(root, \"views\"), { recursive: true });\n });\n\n afterEach(() => {\n rmSync(root, { recursive: true, force: true });\n });\n\n // Assets referenced from JS can't use `import.meta.url`: views render in a\n // host sandbox iframe (web-sandbox.oaiusercontent.com), so the module origin\n // doesn't point back at the Skybridge server. They have to be resolved at\n // runtime against `window.skybridge.serverUrl` instead.\n it(\"resolves JS asset references against window.skybridge.serverUrl\", () => {\n const renderBuiltUrl = getRenderBuiltUrl(root);\n\n expect(\n renderBuiltUrl(\"assets/logo-BXtQ8kd2.png\", {\n hostId: \"assets/view-CwF9pQ1a.js\",\n hostType: \"js\",\n type: \"asset\",\n ssr: false,\n }),\n ).toEqual({\n runtime: `window.skybridge.serverUrl + \"/assets/assets/logo-BXtQ8kd2.png\"`,\n });\n });\n\n // Reproducer for the CSS build failure: Vite has nowhere to evaluate a\n // runtime expression inside a stylesheet, so `{ runtime }` makes\n // `vite:css-post` throw for any `url()` in CSS. It isn't needed either — the\n // stylesheet is served from `${serverUrl}/assets/…`, and a relative `url()`\n // resolves against the stylesheet's own URL, tunnel origin included.\n it(\"resolves CSS asset references relatively\", () => {\n const renderBuiltUrl = getRenderBuiltUrl(root);\n\n expect(\n renderBuiltUrl(\"assets/demo-0IQFxQqs.woff2\", {\n hostId: \"assets/style-DmQ2xY7b.css\",\n hostType: \"css\",\n type: \"asset\",\n ssr: false,\n }),\n ).toEqual({ relative: true });\n });\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skybridge",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.ba81b75",
|
|
4
4
|
"description": "Skybridge is a framework for building ChatGPT and MCP Apps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"type": "module",
|
|
10
10
|
"sideEffects": false,
|
|
11
11
|
"engines": {
|
|
12
|
-
"node": ">=22.
|
|
12
|
+
"node": ">=22.23.1"
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
15
|
"dist",
|
|
@@ -49,23 +49,24 @@
|
|
|
49
49
|
"vite": ">=7.3.1"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@babel/core": "^7.29.
|
|
53
|
-
"@modelcontextprotocol/ext-apps": "^1.7.
|
|
54
|
-
"@oclif/core": "^4.
|
|
52
|
+
"@babel/core": "^7.29.7",
|
|
53
|
+
"@modelcontextprotocol/ext-apps": "^1.7.4",
|
|
54
|
+
"@oclif/core": "^4.11.14",
|
|
55
55
|
"ci-info": "^4.4.0",
|
|
56
56
|
"cors": "^2.8.6",
|
|
57
57
|
"cross-spawn": "^7.0.6",
|
|
58
58
|
"dequal": "^2.0.3",
|
|
59
|
-
"es-toolkit": "^1.
|
|
60
|
-
"esbuild": "^0.
|
|
59
|
+
"es-toolkit": "^1.49.0",
|
|
60
|
+
"esbuild": "^0.28.1",
|
|
61
61
|
"express": "^5.2.1",
|
|
62
62
|
"handlebars": "^4.7.9",
|
|
63
|
-
"ink": "^7.
|
|
64
|
-
"jose": "^6.
|
|
63
|
+
"ink": "^7.1.1",
|
|
64
|
+
"jose": "^6.2.3",
|
|
65
65
|
"open": "^11.0.0",
|
|
66
|
-
"posthog-node": "^5.
|
|
66
|
+
"posthog-node": "^5.45.2",
|
|
67
67
|
"superjson": "^2.2.6",
|
|
68
|
-
"
|
|
68
|
+
"yaml": "^2.9.0",
|
|
69
|
+
"zustand": "^5.0.14"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
@@ -76,18 +77,18 @@
|
|
|
76
77
|
"@types/cors": "^2.8.19",
|
|
77
78
|
"@types/cross-spawn": "^6.0.6",
|
|
78
79
|
"@types/express": "^5.0.6",
|
|
79
|
-
"@types/jsdom": "^28.0.
|
|
80
|
-
"@types/node": "^24.
|
|
81
|
-
"@types/react": "^19.2.
|
|
80
|
+
"@types/jsdom": "^28.0.3",
|
|
81
|
+
"@types/node": "^24.13.3",
|
|
82
|
+
"@types/react": "^19.2.17",
|
|
82
83
|
"@types/react-dom": "^19.2.3",
|
|
83
|
-
"@vitest/ui": "^4.1.
|
|
84
|
-
"jsdom": "^29.
|
|
84
|
+
"@vitest/ui": "^4.1.10",
|
|
85
|
+
"jsdom": "^29.1.1",
|
|
85
86
|
"shx": "^0.4.0",
|
|
86
87
|
"ts-node": "^10.9.2",
|
|
87
|
-
"typescript": "^6.0.
|
|
88
|
-
"vite": "^8.
|
|
89
|
-
"vitest": "^4.1.
|
|
90
|
-
"zod": "^4.3
|
|
88
|
+
"typescript": "^6.0.3",
|
|
89
|
+
"vite": "^8.1.5",
|
|
90
|
+
"vitest": "^4.1.10",
|
|
91
|
+
"zod": "^4.4.3"
|
|
91
92
|
},
|
|
92
93
|
"bin": {
|
|
93
94
|
"sb": "./bin/run.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function resolveViewsDir(root: string): Promise<string | undefined>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-views-dir.js","sourceRoot":"","sources":["../../src/cli/resolve-views-dir.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY;IAEZ,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EACxC,SAAS,EACT,IAAI,CACL,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACxB,KAAc,EAC2C,EAAE,CAC3D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;IAE9C,MAAM,OAAO,GAA0D,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC;AACpE,CAAC","sourcesContent":["export async function resolveViewsDir(\n root: string,\n): Promise<string | undefined> {\n const { loadConfigFromFile } = await import(\"vite\");\n const loaded = await loadConfigFromFile(\n { command: \"build\", mode: \"production\" },\n undefined,\n root,\n );\n\n const isPluginCandidate = (\n value: unknown,\n ): value is { name?: string; api?: { viewsDir?: string } } =>\n typeof value === \"object\" && value !== null;\n\n const plugins: Array<{ name?: string; api?: { viewsDir?: string } }> = [];\n const walk = (value: unknown) => {\n if (Array.isArray(value)) {\n value.forEach(walk);\n } else if (isPluginCandidate(value)) {\n plugins.push(value);\n }\n };\n walk(loaded?.config.plugins ?? []);\n return plugins.find((p) => p.name === \"skybridge\")?.api?.viewsDir;\n}\n"]}
|