skybridge 0.0.0-dev.a16c33f → 0.0.0-dev.a19a006

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 (74) hide show
  1. package/README.md +1 -0
  2. package/dist/cli/detect-port.d.ts +18 -0
  3. package/dist/cli/detect-port.js +61 -0
  4. package/dist/cli/detect-port.js.map +1 -0
  5. package/dist/cli/use-nodemon.js +14 -6
  6. package/dist/cli/use-nodemon.js.map +1 -1
  7. package/dist/commands/build.js +1 -1
  8. package/dist/commands/build.js.map +1 -1
  9. package/dist/commands/dev.d.ts +1 -0
  10. package/dist/commands/dev.js +12 -1
  11. package/dist/commands/dev.js.map +1 -1
  12. package/dist/commands/start.d.ts +3 -1
  13. package/dist/commands/start.js +32 -8
  14. package/dist/commands/start.js.map +1 -1
  15. package/dist/server/const.d.ts +1 -0
  16. package/dist/server/const.js +2 -0
  17. package/dist/server/const.js.map +1 -0
  18. package/dist/server/express.d.ts +9 -0
  19. package/dist/server/express.js +72 -0
  20. package/dist/server/express.js.map +1 -0
  21. package/dist/server/express.test.d.ts +1 -0
  22. package/dist/server/express.test.js +74 -0
  23. package/dist/server/express.test.js.map +1 -0
  24. package/dist/server/server.d.ts +6 -0
  25. package/dist/server/server.js +69 -16
  26. package/dist/server/server.js.map +1 -1
  27. package/dist/server/widgetsDevServer.js +8 -2
  28. package/dist/server/widgetsDevServer.js.map +1 -1
  29. package/dist/test/widget.test.js +20 -14
  30. package/dist/test/widget.test.js.map +1 -1
  31. package/dist/web/bridges/apps-sdk/adaptor.d.ts +4 -4
  32. package/dist/web/bridges/apps-sdk/adaptor.js +22 -15
  33. package/dist/web/bridges/apps-sdk/adaptor.js.map +1 -1
  34. package/dist/web/bridges/apps-sdk/bridge.d.ts +1 -1
  35. package/dist/web/bridges/apps-sdk/types.d.ts +13 -8
  36. package/dist/web/bridges/apps-sdk/types.js.map +1 -1
  37. package/dist/web/bridges/mcp-app/adaptor.d.ts +3 -3
  38. package/dist/web/bridges/mcp-app/adaptor.js +14 -12
  39. package/dist/web/bridges/mcp-app/adaptor.js.map +1 -1
  40. package/dist/web/bridges/mcp-app/bridge.js +5 -0
  41. package/dist/web/bridges/mcp-app/bridge.js.map +1 -1
  42. package/dist/web/bridges/types.d.ts +7 -3
  43. package/dist/web/create-store.test.js +3 -3
  44. package/dist/web/create-store.test.js.map +1 -1
  45. package/dist/web/data-llm.test.js +10 -8
  46. package/dist/web/data-llm.test.js.map +1 -1
  47. package/dist/web/hooks/index.d.ts +1 -1
  48. package/dist/web/hooks/index.js.map +1 -1
  49. package/dist/web/hooks/use-display-mode.d.ts +3 -3
  50. package/dist/web/hooks/use-display-mode.js.map +1 -1
  51. package/dist/web/hooks/use-display-mode.test-d.d.ts +1 -0
  52. package/dist/web/hooks/use-display-mode.test-d.js +8 -0
  53. package/dist/web/hooks/use-display-mode.test-d.js.map +1 -0
  54. package/dist/web/hooks/use-files.test.js +5 -1
  55. package/dist/web/hooks/use-files.test.js.map +1 -1
  56. package/dist/web/hooks/use-open-external.d.ts +3 -1
  57. package/dist/web/hooks/use-open-external.js +1 -1
  58. package/dist/web/hooks/use-open-external.js.map +1 -1
  59. package/dist/web/hooks/use-open-external.test.js +11 -1
  60. package/dist/web/hooks/use-open-external.test.js.map +1 -1
  61. package/dist/web/hooks/use-set-open-in-app-url.test.js +5 -11
  62. package/dist/web/hooks/use-set-open-in-app-url.test.js.map +1 -1
  63. package/dist/web/hooks/use-widget-state.test.js +7 -6
  64. package/dist/web/hooks/use-widget-state.test.js.map +1 -1
  65. package/dist/web/plugin/plugin.js +8 -0
  66. package/dist/web/plugin/plugin.js.map +1 -1
  67. package/dist/web/plugin/validate-widget.d.ts +5 -0
  68. package/dist/web/plugin/validate-widget.js +27 -0
  69. package/dist/web/plugin/validate-widget.js.map +1 -0
  70. package/dist/web/plugin/validate-widget.test.d.ts +1 -0
  71. package/dist/web/plugin/validate-widget.test.js +42 -0
  72. package/dist/web/plugin/validate-widget.test.js.map +1 -0
  73. package/package.json +18 -14
  74. package/tsconfig.base.json +28 -0
@@ -0,0 +1,42 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { validateWidget } from "./validate-widget.js";
3
+ describe("validateWidget", () => {
4
+ it("returns no warnings for a valid widget", () => {
5
+ expect(validateWidget("export default MyWidget;\nmountWidget(<MyWidget />);", "src/widgets/my-widget.tsx")).toEqual([]);
6
+ });
7
+ it("accepts all default export syntaxes", () => {
8
+ for (const exportLine of [
9
+ "export default MyWidget;",
10
+ "export default function MyWidget() {}",
11
+ "export { Foo as default };",
12
+ ]) {
13
+ expect(validateWidget(`${exportLine}\nmountWidget(<MyWidget />);`, "src/widgets/my-widget.tsx")).toEqual([]);
14
+ }
15
+ });
16
+ it("warns when export default is missing", () => {
17
+ const warnings = validateWidget("mountWidget(<MyWidget />);", "src/widgets/my-widget.tsx");
18
+ expect(warnings).toHaveLength(1);
19
+ expect(warnings[0]?.message).toContain("missing a default export");
20
+ expect(warnings[0]?.message).toContain("my-widget.tsx");
21
+ });
22
+ it("warns when mountWidget() call is missing", () => {
23
+ const warnings = validateWidget("export default MyWidget;", "src/widgets/my-widget.tsx");
24
+ expect(warnings).toHaveLength(1);
25
+ expect(warnings[0]?.message).toContain("missing a mountWidget() call");
26
+ expect(warnings[0]?.message).toContain("my-widget.tsx");
27
+ });
28
+ it("ignores commented-out code", () => {
29
+ const code = `
30
+ // export default MyWidget;
31
+ // mountWidget(<MyWidget />);
32
+ /* export default MyWidget; */
33
+ /* mountWidget(<MyWidget />); */
34
+ `;
35
+ expect(validateWidget(code, "src/widgets/my-widget.tsx")).toHaveLength(2);
36
+ });
37
+ it("uses filename from path for directory widgets", () => {
38
+ const warnings = validateWidget("", "src/widgets/foo/index.tsx");
39
+ expect(warnings[0]?.message).toContain("index.tsx");
40
+ });
41
+ });
42
+ //# sourceMappingURL=validate-widget.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-widget.test.js","sourceRoot":"","sources":["../../../src/web/plugin/validate-widget.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CACJ,cAAc,CACZ,sDAAsD,EACtD,2BAA2B,CAC5B,CACF,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,KAAK,MAAM,UAAU,IAAI;YACvB,0BAA0B;YAC1B,uCAAuC;YACvC,4BAA4B;SAC7B,EAAE,CAAC;YACF,MAAM,CACJ,cAAc,CACZ,GAAG,UAAU,8BAA8B,EAC3C,2BAA2B,CAC5B,CACF,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,QAAQ,GAAG,cAAc,CAC7B,4BAA4B,EAC5B,2BAA2B,CAC5B,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,QAAQ,GAAG,cAAc,CAC7B,0BAA0B,EAC1B,2BAA2B,CAC5B,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAG;;;;;KAKZ,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skybridge",
3
- "version": "0.0.0-dev.a16c33f",
3
+ "version": "0.0.0-dev.a19a006",
4
4
  "description": "Skybridge is a framework for building ChatGPT and MCP Apps",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,9 +9,12 @@
9
9
  "type": "module",
10
10
  "files": [
11
11
  "dist",
12
- "README.md"
12
+ "README.md",
13
+ "tsconfig.base.json"
13
14
  ],
14
15
  "exports": {
16
+ "./tsconfig": "./tsconfig.base.json",
17
+ "./tsconfig.json": "./tsconfig.base.json",
15
18
  "./server": {
16
19
  "types": "./dist/server/index.d.ts",
17
20
  "default": "./dist/server/index.js"
@@ -31,40 +34,41 @@
31
34
  "license": "ISC",
32
35
  "peerDependencies": {
33
36
  "@modelcontextprotocol/sdk": ">=1.0.0",
37
+ "@skybridge/devtools": ">=0.26.1",
34
38
  "nodemon": ">=3.0.0",
35
39
  "react": ">=18.0.0",
36
- "react-dom": ">=18.0.0"
40
+ "react-dom": ">=18.0.0",
41
+ "vite": "^7.3.1"
37
42
  },
38
43
  "dependencies": {
39
44
  "@babel/core": "^7.29.0",
40
- "@oclif/core": "^4.8.0",
45
+ "@oclif/core": "^4.8.3",
41
46
  "ci-info": "^4.4.0",
42
47
  "cors": "^2.8.6",
43
48
  "dequal": "^2.0.3",
44
- "es-toolkit": "^1.44.0",
49
+ "es-toolkit": "^1.45.1",
45
50
  "express": "^5.2.1",
46
51
  "handlebars": "^4.7.8",
47
- "ink": "^6.6.0",
48
- "posthog-node": "^5.24.10",
52
+ "ink": "^6.8.0",
53
+ "posthog-node": "^5.28.0",
49
54
  "superjson": "^2.2.6",
50
- "vite": "^7.3.1",
51
55
  "zustand": "^5.0.11"
52
56
  },
53
57
  "devDependencies": {
54
- "@modelcontextprotocol/ext-apps": "^1.0.1",
55
- "@modelcontextprotocol/sdk": "^1.25.2",
58
+ "@modelcontextprotocol/ext-apps": "^1.2.0",
59
+ "@modelcontextprotocol/sdk": "^1.27.1",
56
60
  "@testing-library/dom": "^10.4.1",
57
61
  "@testing-library/react": "^16.3.2",
58
62
  "@total-typescript/tsconfig": "^1.0.4",
59
63
  "@types/babel__core": "^7.20.5",
60
64
  "@types/cors": "^2.8.19",
61
65
  "@types/express": "^5.0.6",
62
- "@types/jsdom": "^27.0.0",
63
- "@types/node": "^24.10.11",
64
- "@types/react": "^19.2.13",
66
+ "@types/jsdom": "^28.0.0",
67
+ "@types/node": "^24.12.0",
68
+ "@types/react": "^19.2.14",
65
69
  "@types/react-dom": "^19.2.3",
66
70
  "@vitest/ui": "^4.0.18",
67
- "jsdom": "^28.0.0",
71
+ "jsdom": "^28.1.0",
68
72
  "shx": "^0.4.0",
69
73
  "ts-node": "^10.9.2",
70
74
  "typescript": "^5.9.3",
@@ -0,0 +1,28 @@
1
+ {
2
+ "compilerOptions": {
3
+ // Module resolution options
4
+ "module": "NodeNext",
5
+ "esModuleInterop": true,
6
+ "verbatimModuleSyntax": true,
7
+
8
+ // Output options
9
+ "noEmit": false,
10
+ "incremental": true,
11
+ "sourceMap": true,
12
+
13
+ // Language and environment options
14
+ "target": "ES2022",
15
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
16
+ "jsx": "react-jsx",
17
+
18
+ // Strictness and checking options
19
+ "strict": true,
20
+ "skipLibCheck": true,
21
+ "forceConsistentCasingInFileNames": true,
22
+
23
+ // Code quality & diagnostics
24
+ "noUnusedLocals": true,
25
+ "noUnusedParameters": true,
26
+ "noFallthroughCasesInSwitch": true
27
+ }
28
+ }