skybridge 0.0.0-dev.8e6ba30 → 0.0.0-dev.8eed82d

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 (110) hide show
  1. package/README.md +8 -4
  2. package/dist/cli/header.js +1 -1
  3. package/dist/cli/header.js.map +1 -1
  4. package/dist/cli/types.d.ts +5 -0
  5. package/dist/cli/types.js +2 -0
  6. package/dist/cli/types.js.map +1 -0
  7. package/dist/cli/use-messages.d.ts +3 -0
  8. package/dist/cli/use-messages.js +11 -0
  9. package/dist/cli/use-messages.js.map +1 -0
  10. package/dist/cli/use-nodemon.d.ts +2 -7
  11. package/dist/cli/use-nodemon.js +8 -20
  12. package/dist/cli/use-nodemon.js.map +1 -1
  13. package/dist/cli/use-tunnel.d.ts +14 -0
  14. package/dist/cli/use-tunnel.js +97 -0
  15. package/dist/cli/use-tunnel.js.map +1 -0
  16. package/dist/commands/build.js +6 -5
  17. package/dist/commands/build.js.map +1 -1
  18. package/dist/commands/dev.d.ts +2 -0
  19. package/dist/commands/dev.js +15 -2
  20. package/dist/commands/dev.js.map +1 -1
  21. package/dist/commands/start.js +7 -10
  22. package/dist/commands/start.js.map +1 -1
  23. package/dist/server/asset-base-url-transform-plugin.d.ts +5 -6
  24. package/dist/server/asset-base-url-transform-plugin.js +8 -9
  25. package/dist/server/asset-base-url-transform-plugin.js.map +1 -1
  26. package/dist/server/asset-base-url-transform-plugin.test.js +12 -13
  27. package/dist/server/asset-base-url-transform-plugin.test.js.map +1 -1
  28. package/dist/server/content-helpers.d.ts +27 -0
  29. package/dist/server/content-helpers.js +46 -0
  30. package/dist/server/content-helpers.js.map +1 -0
  31. package/dist/server/content-helpers.test.d.ts +1 -0
  32. package/dist/server/content-helpers.test.js +70 -0
  33. package/dist/server/content-helpers.test.js.map +1 -0
  34. package/dist/server/express.d.ts +6 -2
  35. package/dist/server/express.js +22 -17
  36. package/dist/server/express.js.map +1 -1
  37. package/dist/server/express.test.js +72 -0
  38. package/dist/server/express.test.js.map +1 -1
  39. package/dist/server/index.d.ts +3 -2
  40. package/dist/server/index.js +2 -1
  41. package/dist/server/index.js.map +1 -1
  42. package/dist/server/metric.d.ts +14 -0
  43. package/dist/server/metric.js +62 -0
  44. package/dist/server/metric.js.map +1 -0
  45. package/dist/server/middleware.test.js +12 -9
  46. package/dist/server/middleware.test.js.map +1 -1
  47. package/dist/server/server.d.ts +83 -84
  48. package/dist/server/server.js +175 -55
  49. package/dist/server/server.js.map +1 -1
  50. package/dist/server/templates/development.hbs +1 -1
  51. package/dist/server/widgetsDevServer.d.ts +0 -10
  52. package/dist/server/widgetsDevServer.js +7 -31
  53. package/dist/server/widgetsDevServer.js.map +1 -1
  54. package/dist/test/utils.d.ts +6 -14
  55. package/dist/test/utils.js +35 -30
  56. package/dist/test/utils.js.map +1 -1
  57. package/dist/test/widget.test.js +285 -94
  58. package/dist/test/widget.test.js.map +1 -1
  59. package/dist/version.d.ts +1 -0
  60. package/dist/version.js +5 -0
  61. package/dist/version.js.map +1 -0
  62. package/dist/web/bridges/apps-sdk/adaptor.d.ts +4 -2
  63. package/dist/web/bridges/apps-sdk/adaptor.js +24 -12
  64. package/dist/web/bridges/apps-sdk/adaptor.js.map +1 -1
  65. package/dist/web/bridges/apps-sdk/types.d.ts +10 -5
  66. package/dist/web/bridges/apps-sdk/types.js.map +1 -1
  67. package/dist/web/bridges/mcp-app/adaptor.d.ts +10 -0
  68. package/dist/web/bridges/mcp-app/adaptor.js +84 -0
  69. package/dist/web/bridges/mcp-app/adaptor.js.map +1 -1
  70. package/dist/web/bridges/types.d.ts +8 -1
  71. package/dist/web/components/modal-provider.js +1 -1
  72. package/dist/web/components/modal-provider.js.map +1 -1
  73. package/dist/web/create-store.js +15 -1
  74. package/dist/web/create-store.js.map +1 -1
  75. package/dist/web/generate-helpers.d.ts +8 -6
  76. package/dist/web/generate-helpers.js +8 -6
  77. package/dist/web/generate-helpers.js.map +1 -1
  78. package/dist/web/hooks/use-files.d.ts +2 -1
  79. package/dist/web/hooks/use-files.js +1 -0
  80. package/dist/web/hooks/use-files.js.map +1 -1
  81. package/dist/web/hooks/use-files.test.js +22 -2
  82. package/dist/web/hooks/use-files.test.js.map +1 -1
  83. package/dist/web/hooks/use-request-modal.test.js +5 -1
  84. package/dist/web/hooks/use-request-modal.test.js.map +1 -1
  85. package/dist/web/hooks/use-user.js +18 -2
  86. package/dist/web/hooks/use-user.js.map +1 -1
  87. package/dist/web/hooks/use-user.test.js +28 -0
  88. package/dist/web/hooks/use-user.test.js.map +1 -1
  89. package/dist/web/hooks/use-widget-state.test.js +114 -1
  90. package/dist/web/hooks/use-widget-state.test.js.map +1 -1
  91. package/dist/web/index.d.ts +1 -0
  92. package/dist/web/index.js.map +1 -1
  93. package/dist/web/plugin/plugin.d.ts +4 -1
  94. package/dist/web/plugin/plugin.js +80 -24
  95. package/dist/web/plugin/plugin.js.map +1 -1
  96. package/dist/web/plugin/scan-widgets.d.ts +8 -0
  97. package/dist/web/plugin/scan-widgets.js +68 -0
  98. package/dist/web/plugin/scan-widgets.js.map +1 -0
  99. package/dist/web/plugin/scan-widgets.test.d.ts +1 -0
  100. package/dist/web/plugin/scan-widgets.test.js +96 -0
  101. package/dist/web/plugin/scan-widgets.test.js.map +1 -0
  102. package/dist/web/plugin/transform-data-llm.js +1 -1
  103. package/dist/web/plugin/transform-data-llm.js.map +1 -1
  104. package/dist/web/plugin/validate-widget.d.ts +1 -5
  105. package/dist/web/plugin/validate-widget.js +4 -22
  106. package/dist/web/plugin/validate-widget.js.map +1 -1
  107. package/dist/web/plugin/validate-widget.test.js +12 -30
  108. package/dist/web/plugin/validate-widget.test.js.map +1 -1
  109. package/package.json +15 -11
  110. package/tsconfig.base.json +2 -0
@@ -1,42 +1,24 @@
1
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([]);
2
+ import { hasDefaultExport } from "./validate-widget.js";
3
+ describe("hasDefaultExport", () => {
4
+ it("detects export default declaration", () => {
5
+ expect(hasDefaultExport("export default MyWidget;")).toBe(true);
6
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
- }
7
+ it("detects export default function", () => {
8
+ expect(hasDefaultExport("export default function MyWidget() {}")).toBe(true);
15
9
  });
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");
10
+ it("detects re-export as default", () => {
11
+ expect(hasDefaultExport("export { Foo as default };")).toBe(true);
21
12
  });
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");
13
+ it("returns false when no default export", () => {
14
+ expect(hasDefaultExport("export const Foo = 1;")).toBe(false);
27
15
  });
28
- it("ignores commented-out code", () => {
16
+ it("ignores commented-out default exports", () => {
29
17
  const code = `
30
18
  // export default MyWidget;
31
- // mountWidget(<MyWidget />);
32
19
  /* export default MyWidget; */
33
- /* mountWidget(<MyWidget />); */
34
20
  `;
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");
21
+ expect(hasDefaultExport(code)).toBe(false);
40
22
  });
41
23
  });
42
24
  //# sourceMappingURL=validate-widget.test.js.map
@@ -1 +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"}
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,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,gBAAgB,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CACpE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAG;;;KAGZ,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "skybridge",
3
- "version": "0.0.0-dev.8e6ba30",
3
+ "version": "0.0.0-dev.8eed82d",
4
4
  "description": "Skybridge is a framework for building ChatGPT and MCP Apps",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/alpic-ai/skybridge.git"
8
8
  },
9
9
  "type": "module",
10
+ "engines": {
11
+ "node": ">=22.0.0"
12
+ },
10
13
  "files": [
11
14
  "dist",
12
15
  "README.md",
@@ -33,8 +36,8 @@
33
36
  "author": "Frédéric Barthelet",
34
37
  "license": "ISC",
35
38
  "peerDependencies": {
36
- "@modelcontextprotocol/sdk": ">=1.0.0",
37
- "@skybridge/devtools": ">=0.35.10 <1.0.0",
39
+ "@modelcontextprotocol/sdk": ">=1.27.0",
40
+ "@skybridge/devtools": ">=0.35.14 <1.0.0",
38
41
  "nodemon": ">=3.0.0",
39
42
  "react": ">=18.0.0",
40
43
  "react-dom": ">=18.0.0",
@@ -42,21 +45,21 @@
42
45
  },
43
46
  "dependencies": {
44
47
  "@babel/core": "^7.29.0",
45
- "@modelcontextprotocol/ext-apps": "^1.3.1",
46
- "@oclif/core": "^4.10.2",
48
+ "@modelcontextprotocol/ext-apps": "^1.3.2",
49
+ "@oclif/core": "^4.10.3",
47
50
  "ci-info": "^4.4.0",
48
51
  "cors": "^2.8.6",
49
52
  "dequal": "^2.0.3",
50
53
  "es-toolkit": "^1.45.1",
51
54
  "express": "^5.2.1",
52
- "handlebars": "^4.7.8",
53
- "ink": "^6.8.0",
54
- "posthog-node": "^5.28.5",
55
+ "handlebars": "^4.7.9",
56
+ "ink": "^7.0.0",
57
+ "posthog-node": "^5.28.9",
55
58
  "superjson": "^2.2.6",
56
59
  "zustand": "^5.0.12"
57
60
  },
58
61
  "devDependencies": {
59
- "@modelcontextprotocol/sdk": "^1.27.1",
62
+ "@modelcontextprotocol/sdk": "^1.29.0",
60
63
  "@testing-library/dom": "^10.4.1",
61
64
  "@testing-library/react": "^16.3.2",
62
65
  "@total-typescript/tsconfig": "^1.0.4",
@@ -67,12 +70,13 @@
67
70
  "@types/node": "^24.12.0",
68
71
  "@types/react": "^19.2.14",
69
72
  "@types/react-dom": "^19.2.3",
70
- "@vitest/ui": "^4.1.1",
73
+ "@vitest/ui": "^4.1.4",
71
74
  "jsdom": "^29.0.1",
72
75
  "shx": "^0.4.0",
73
76
  "ts-node": "^10.9.2",
74
77
  "typescript": "^6.0.2",
75
- "vitest": "^4.1.1",
78
+ "vite": "^8.0.0",
79
+ "vitest": "^4.1.4",
76
80
  "zod": "^4.3.6"
77
81
  },
78
82
  "bin": {
@@ -6,6 +6,8 @@
6
6
  "verbatimModuleSyntax": true,
7
7
 
8
8
  // Output options
9
+ "rootDir": "${configDir}/src",
10
+ "outDir": "${configDir}/dist",
9
11
  "noEmit": false,
10
12
  "incremental": true,
11
13
  "sourceMap": true,