@lark-apaas/fullstack-vite-preset 1.0.18 → 1.0.20-alpha.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.
@@ -1 +1 @@
1
- {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAyB,MAAM,MAAM,CAAC;AAiD9D,MAAM,WAAW,gCAAgC;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAaD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,UAAU,CAudZ"}
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAyB,MAAM,MAAM,CAAC;AAkD9D,MAAM,WAAW,gCAAgC;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAaD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,UAAU,CAoeZ"}
package/lib/preset.js CHANGED
@@ -26,6 +26,7 @@ const polyfill_plugin_1 = require("./vite-plugins/polyfill-plugin");
26
26
  const source_map_upload_plugin_1 = require("./vite-plugins/source-map-upload-plugin");
27
27
  const snapdom_proxy_1 = require("./utils/snapdom-proxy");
28
28
  const hmr_timing_1 = require("./utils/hmr-timing");
29
+ const ws_watchdog_plugin_1 = require("./vite-plugins/ws-watchdog-plugin");
29
30
  const banner_plugin_1 = require("./vite-plugins/banner-plugin");
30
31
  const miaoda_fonts_mirror_plugin_1 = require("./vite-plugins/miaoda-fonts-mirror-plugin");
31
32
  function sendBackendUnavailable502(_err, _req, res) {
@@ -177,6 +178,7 @@ function createRecommendViteConfig(options) {
177
178
  }),
178
179
  // HMR timing plugin (dev only)
179
180
  isDev && (0, hmr_timing_1.createHmrTimingPlugin)(),
181
+ isDev && (0, ws_watchdog_plugin_1.createWsWatchdogPlugin)(),
180
182
  // 生产环境下,收集 sourcemap
181
183
  !isDev &&
182
184
  (0, source_map_upload_plugin_1.sourceMapUploadPlugin)({
@@ -276,6 +278,16 @@ function createRecommendViteConfig(options) {
276
278
  });
277
279
  },
278
280
  },
281
+ // OpenAPI proxy
282
+ [`${clientBasePath}/openapi`]: {
283
+ target: `http://localhost:${serverPort}`,
284
+ changeOrigin: true,
285
+ configure: (proxy) => {
286
+ proxy.on('error', (err, req, res) => {
287
+ sendBackendUnavailable502(err, req, res);
288
+ });
289
+ },
290
+ },
279
291
  // Inner API proxy
280
292
  [`${clientBasePath}/__innerapi__`]: {
281
293
  target: `http://localhost:${serverPort}`,
@@ -386,6 +398,7 @@ function createRecommendViteConfig(options) {
386
398
  }),
387
399
  (0, devtool_kits_1.createOpenapiMiddleware)({
388
400
  openapiFilePath: path_1.default.resolve(rootDir, './client/src/api/gen/openapi.json'),
401
+ openapiSpecFilePath: path_1.default.resolve(rootDir, './docs/openapi.json'),
389
402
  serverDir: path_1.default.resolve(rootDir, './server'),
390
403
  enableEnhancement: true,
391
404
  }),
package/lib/preset.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slardar-plugin.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/slardar-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,MAAM,CAAC;AAEtD,UAAU,oBAAoB;IAC5B,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiED,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAsCxE;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"slardar-plugin.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/slardar-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,MAAM,CAAC;AAEtD,UAAU,oBAAoB;IAC5B,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsHD,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CA6CxE;AAED,eAAe,aAAa,CAAC"}
@@ -1,6 +1,51 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.slardarPlugin = slardarPlugin;
4
+ /**
5
+ * 在 HTML 解析时同步执行的内联脚本(早于任何外部资源加载):
6
+ * 1. 建立 KSlardarWeb 命令队列 stub,保证 SDK 加载前的调用不丢失
7
+ * 2. 立即注册 capture 阶段的资源加载错误监听(直接入队)
8
+ * 3. 运行时错误 / unhandledrejection:
9
+ * - SDK 未就绪时写入 __slardarErrBuf,SDK onload 后统一 flush
10
+ * - SDK 已就绪(window[g].q 消失)时直接调 captureException,
11
+ * 填补 SDK start() 到 common-monitors 插件加载完成之间的时序空窗
12
+ */
13
+ function getEarlyResourceErrorScript(globalName) {
14
+ return `(function(g){
15
+ if(!window[g]){var q=[];window[g]=function(){q.push([].slice.call(arguments));};window[g].q=q;}
16
+ window.__slardarErrBuf=window.__slardarErrBuf||[];
17
+ var ref=document.referrer||'';
18
+ function _cap(err){
19
+ if(window[g]&&!window[g].q){
20
+ window[g]('captureException',err instanceof Error?err:new Error(String(err)),{source:'runtime-error',referrer:ref});
21
+ }else{
22
+ (window.__slardarErrBuf=window.__slardarErrBuf||[]).push(err);
23
+ }
24
+ }
25
+ window.addEventListener('error',function(e){
26
+ if(e.error==null&&e.target instanceof Element){
27
+ var t=e.target,url=t.src||t.href||'';
28
+ if(url)window[g]('captureException',new Error('Resource load failed: '+url),{team:'miaoda-sdk',source:'resource-error',resourceType:t.tagName.toLowerCase(),resourceUrl:url,referrer:ref});
29
+ return;
30
+ }
31
+ if(e.error!=null){
32
+ var err=e.error;
33
+ if(e.filename&&typeof err.stack==='string'&&err.stack.indexOf(e.filename)<0){
34
+ try{err.stack+='\n at '+e.filename+':'+(e.lineno||0)+':'+(e.colno||0);}catch(ex){}
35
+ }
36
+ _cap(err);
37
+ }else{
38
+ var msg=e.message||'Script error';
39
+ var err=new Error(msg);
40
+ if(e.filename)err.stack=msg+'\\n at '+e.filename+':'+(e.lineno||0)+':'+(e.colno||0);
41
+ _cap(err);
42
+ }
43
+ },true);
44
+ window.addEventListener('unhandledrejection',function(e){
45
+ if(e.reason!=null)_cap(e.reason instanceof Error?e.reason:new Error(String(e.reason)));
46
+ });
47
+ })('${globalName}');`;
48
+ }
4
49
  function getSlardarScript(bid, globalName) {
5
50
  return `
6
51
  const slardarScript = document.createElement('script');
@@ -14,6 +59,7 @@ function getSlardarScript(bid, globalName) {
14
59
  window.${globalName}('context.merge', {
15
60
  tenantId: window.tenantId ?? '',
16
61
  appId: window.appId ?? '',
62
+ referrer: document.referrer || '',
17
63
  });
18
64
  window.${globalName}('init', {
19
65
  bid: '${bid}',
@@ -21,6 +67,12 @@ function getSlardarScript(bid, globalName) {
21
67
  userId: window.userId ?? '',
22
68
  });
23
69
  window.${globalName}('start');
70
+ // Flush JS runtime errors that occurred before SDK loaded
71
+ var buf = window.__slardarErrBuf || [];
72
+ window.__slardarErrBuf = [];
73
+ buf.forEach(function(err) {
74
+ window.${globalName}('captureException', err instanceof Error ? err : new Error(String(err)), { source: 'pre-sdk-error', referrer: document.referrer || '' });
75
+ });
24
76
  }
25
77
  };
26
78
 
@@ -68,6 +120,13 @@ function slardarPlugin(options = {}) {
68
120
  name: 'fullstack-slardar',
69
121
  transformIndexHtml(html) {
70
122
  const tags = [
123
+ // Must be first: inline resource-error capture + KSlardarWeb command queue stub.
124
+ // head-prepend reverses insertion order, so this tag ends up at the very top of <head>.
125
+ {
126
+ tag: 'script',
127
+ children: getEarlyResourceErrorScript(globalName),
128
+ injectTo: 'head-prepend',
129
+ },
71
130
  // Slardar SDK loader script
72
131
  {
73
132
  tag: 'script',
@@ -1 +1 @@
1
- {"version":3,"file":"slardar-plugin.js","sourceRoot":"","sources":["../../src/vite-plugins/slardar-plugin.ts"],"names":[],"mappings":";;AAwEA,sCAsCC;AArGD,SAAS,gBAAgB,CAAC,GAAW,EAAE,UAAkB;IACvD,OAAO;;gGAEuF,GAAG,eAAe,UAAU;;;;;;mBAMzG,UAAU;iBACZ,UAAU;;;;iBAIV,UAAU;kBACT,GAAG;;;;iBAIJ,UAAU;;;;;;;;;;;GAWxB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BN,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,EAAE,GAAG,GAAG,cAAc,EAAE,UAAU,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAErE,OAAO;QACL,IAAI,EAAE,mBAAmB;QAEzB,kBAAkB,CAAC,IAAI;YACrB,MAAM,IAAI,GAAwB;gBAChC,4BAA4B;gBAC5B;oBACE,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC;oBAC3C,QAAQ,EAAE,cAAc;iBACzB;gBACD,kBAAkB;gBAClB;oBACE,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE;wBACL,GAAG,EAAE,gGAAgG;wBACrG,WAAW,EAAE,WAAW;wBACxB,KAAK,EAAE,IAAI;qBACZ;oBACD,QAAQ,EAAE,cAAc;iBACzB;gBACD,wBAAwB;gBACxB;oBACE,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,YAAY,EAAE;oBACxB,QAAQ,EAAE,cAAc;iBACzB;aACF,CAAC;YAEF,OAAO;gBACL,IAAI;gBACJ,IAAI;aACL,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"slardar-plugin.js","sourceRoot":"","sources":["../../src/vite-plugins/slardar-plugin.ts"],"names":[],"mappings":";;AA6HA,sCA6CC;AAjKD;;;;;;;;GAQG;AACH,SAAS,2BAA2B,CAAC,UAAkB;IACrD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiCH,UAAU,KAAK,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,UAAkB;IACvD,OAAO;;gGAEuF,GAAG,eAAe,UAAU;;;;;;mBAMzG,UAAU;iBACZ,UAAU;;;;;iBAKV,UAAU;kBACT,GAAG;;;;iBAIJ,UAAU;;;;;mBAKR,UAAU;;;;;;;;;;;;GAY1B,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BN,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,EAAE,GAAG,GAAG,cAAc,EAAE,UAAU,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAErE,OAAO;QACL,IAAI,EAAE,mBAAmB;QAEzB,kBAAkB,CAAC,IAAI;YACrB,MAAM,IAAI,GAAwB;gBAChC,iFAAiF;gBACjF,wFAAwF;gBACxF;oBACE,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC;oBACjD,QAAQ,EAAE,cAAc;iBACzB;gBACD,4BAA4B;gBAC5B;oBACE,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC;oBAC3C,QAAQ,EAAE,cAAc;iBACzB;gBACD,kBAAkB;gBAClB;oBACE,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE;wBACL,GAAG,EAAE,gGAAgG;wBACrG,WAAW,EAAE,WAAW;wBACxB,KAAK,EAAE,IAAI;qBACZ;oBACD,QAAQ,EAAE,cAAc;iBACzB;gBACD,wBAAwB;gBACxB;oBACE,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,YAAY,EAAE;oBACxB,QAAQ,EAAE,cAAc;iBACzB;aACF,CAAC;YAEF,OAAO;gBACL,IAAI;gBACJ,IAAI;aACL,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * WebSocket Watchdog Plugin for Vite
3
+ *
4
+ * 检测沙箱代理链路下的 WebSocket 僵尸连接:客户端每 5s 发 ping、
5
+ * 连续 2 次拿不到 pong 即判死,向 parent 发 disconnected 通知。
6
+ *
7
+ * 一站式插件:
8
+ * 1) WS handler 注册 `apaas:ws-watchdog:ping`,echo 回 `apaas:ws-watchdog:pong`
9
+ * 2) Dev middleware 暴露 `/@apaas-ws-watchdog.js`,read 同包 plain `.mjs` 客户端
10
+ * 并做 process.env 占位符替换、`Cache-Control: no-cache` 送出
11
+ * 3) `transformIndexHtml` 注入 `<script type="module">` 让客户端在沙箱启动时自动跑
12
+ *
13
+ * 设计 spec: docs/superpowers/specs/2026-04-27-sandbox-ws-watchdog-design.md
14
+ */
15
+ import type { Plugin } from 'vite';
16
+ export interface WsWatchdogPluginOptions {
17
+ /** 自定义事件名,默认带 apaas:ws-watchdog: 前缀避免冲突 */
18
+ pingEvent?: string;
19
+ pongEvent?: string;
20
+ /**
21
+ * 仅用于测试:开启后服务端故意吞掉所有 ping,从不回 pong。
22
+ * 客户端因此会在 ~10s 后判死,复现 zombie 故障。
23
+ * 生产环境必须为 false。
24
+ */
25
+ simulateZombie?: boolean;
26
+ }
27
+ export declare function createWsWatchdogPlugin(options?: WsWatchdogPluginOptions): Plugin;
28
+ export default createWsWatchdogPlugin;
29
+ //# sourceMappingURL=ws-watchdog-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-watchdog-plugin.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/ws-watchdog-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,MAAM,CAAC;AAwBtD,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAiFR;AAED,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * WebSocket Watchdog Plugin for Vite
4
+ *
5
+ * 检测沙箱代理链路下的 WebSocket 僵尸连接:客户端每 5s 发 ping、
6
+ * 连续 2 次拿不到 pong 即判死,向 parent 发 disconnected 通知。
7
+ *
8
+ * 一站式插件:
9
+ * 1) WS handler 注册 `apaas:ws-watchdog:ping`,echo 回 `apaas:ws-watchdog:pong`
10
+ * 2) Dev middleware 暴露 `/@apaas-ws-watchdog.js`,read 同包 plain `.mjs` 客户端
11
+ * 并做 process.env 占位符替换、`Cache-Control: no-cache` 送出
12
+ * 3) `transformIndexHtml` 注入 `<script type="module">` 让客户端在沙箱启动时自动跑
13
+ *
14
+ * 设计 spec: docs/superpowers/specs/2026-04-27-sandbox-ws-watchdog-design.md
15
+ */
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.createWsWatchdogPlugin = createWsWatchdogPlugin;
21
+ const node_fs_1 = __importDefault(require("node:fs"));
22
+ const node_path_1 = __importDefault(require("node:path"));
23
+ const CLIENT_RUNTIME_PATH = '/@apaas-ws-watchdog.js';
24
+ // 用 __dirname 而非 import.meta.url——本包 tsconfig "module": "CommonJS"。
25
+ // 同款 fallback 写法见 src/vite-plugins/error-overlay-plugin.ts:38-44。
26
+ const CLIENT_RUNTIME_CANDIDATES = [
27
+ // 编译后位于 lib/vite-plugins/,回退到 ../../src/runtime/
28
+ node_path_1.default.resolve(__dirname, '../../src/runtime/ws-watchdog-client.mjs'),
29
+ // 开发时位于 src/vite-plugins/,回退到 ../runtime/
30
+ node_path_1.default.resolve(__dirname, '../runtime/ws-watchdog-client.mjs'),
31
+ ];
32
+ function getClientRuntimePath() {
33
+ for (const p of CLIENT_RUNTIME_CANDIDATES) {
34
+ if (node_fs_1.default.existsSync(p))
35
+ return p;
36
+ }
37
+ console.error('[fullstack-ws-watchdog] runtime client not found:', CLIENT_RUNTIME_CANDIDATES);
38
+ return null;
39
+ }
40
+ function createWsWatchdogPlugin(options = {}) {
41
+ const { pingEvent = 'apaas:ws-watchdog:ping', pongEvent = 'apaas:ws-watchdog:pong', simulateZombie = false, } = options;
42
+ return {
43
+ name: 'fullstack-ws-watchdog',
44
+ apply: 'serve',
45
+ configureServer(server) {
46
+ console.info('[fullstack-ws-watchdog] active');
47
+ if (simulateZombie) {
48
+ console.warn('[fullstack-ws-watchdog] simulateZombie 已启用,pong 将不会回应。' +
49
+ '此模式仅用于测试,生产环境必须关闭。');
50
+ }
51
+ // ① WS handler:心跳
52
+ server.ws.on(pingEvent, (data, client) => {
53
+ if (simulateZombie)
54
+ return;
55
+ if (typeof data?.t !== 'number')
56
+ return;
57
+ client.send(pongEvent, { echo: data.t });
58
+ });
59
+ // ② Middleware:暴露 /@apaas-ws-watchdog.js
60
+ // fs.readFileSync 读 plain JS(不走 server.transformRequest)
61
+ // process.env 占位符替换(编译期注入)
62
+ // Cache-Control: no-cache(版本升降级时浏览器必须立刻拉新脚本)
63
+ server.middlewares.use((req, res, next) => {
64
+ if (req.url !== CLIENT_RUNTIME_PATH)
65
+ return next();
66
+ const clientPath = getClientRuntimePath();
67
+ if (!clientPath) {
68
+ res.statusCode = 500;
69
+ res.end('// watchdog client not found');
70
+ return;
71
+ }
72
+ try {
73
+ let code = node_fs_1.default.readFileSync(clientPath, 'utf-8');
74
+ const replacements = {
75
+ 'process.env.FORCE_FRAMEWORK_DOMAIN_MAIN': JSON.stringify(process.env.FORCE_FRAMEWORK_DOMAIN_MAIN ?? ''),
76
+ };
77
+ for (const [key, value] of Object.entries(replacements)) {
78
+ code = code.replace(new RegExp(key.replace(/\./g, '\\.'), 'g'), value);
79
+ }
80
+ res.setHeader('Content-Type', 'application/javascript');
81
+ res.setHeader('Cache-Control', 'no-cache');
82
+ res.end(code);
83
+ }
84
+ catch (e) {
85
+ console.error('[fullstack-ws-watchdog] failed to serve client:', e);
86
+ res.statusCode = 500;
87
+ res.end(`// Error: ${e}`);
88
+ }
89
+ });
90
+ },
91
+ // ③ HTML 注入:让 Vite 沙箱页面加载时自动执行客户端
92
+ transformIndexHtml() {
93
+ const tags = [
94
+ {
95
+ tag: 'script',
96
+ attrs: { type: 'module', src: CLIENT_RUNTIME_PATH },
97
+ injectTo: 'head-prepend',
98
+ },
99
+ ];
100
+ return tags;
101
+ },
102
+ };
103
+ }
104
+ exports.default = createWsWatchdogPlugin;
105
+ //# sourceMappingURL=ws-watchdog-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-watchdog-plugin.js","sourceRoot":"","sources":["../../src/vite-plugins/ws-watchdog-plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/fullstack-vite-preset",
3
- "version": "1.0.18",
3
+ "version": "1.0.20-alpha.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src/empty.css",
@@ -9,7 +9,8 @@
9
9
  "src/module-alias/echarts.mjs",
10
10
  "src/module-alias/echarts-for-react.mjs",
11
11
  "src/module-alias/registry_echarts_theme.mjs",
12
- "src/overlay"
12
+ "src/overlay",
13
+ "src/runtime/ws-watchdog-client.mjs"
13
14
  ],
14
15
  "main": "./lib/index.js",
15
16
  "types": "./lib/index.d.ts",
@@ -33,7 +34,7 @@
33
34
  "@babel/parser": "^7.28.0",
34
35
  "@babel/traverse": "^7.28.0",
35
36
  "@babel/types": "^7.28.2",
36
- "@lark-apaas/devtool-kits": "^1.2.20",
37
+ "@lark-apaas/devtool-kits": "^1.2.21",
37
38
  "@lark-apaas/styled-jsx": "^1.0.1",
38
39
  "@lark-apaas/vite-inspector-plugin": "^1.0.3",
39
40
  "@vitejs/plugin-react": "^4.5.0",
@@ -0,0 +1,159 @@
1
+ /* eslint-env browser */
2
+
3
+ /**
4
+ * WebSocket Watchdog Client (plain ESM)
5
+ *
6
+ * 设计 spec: docs/superpowers/specs/2026-04-27-sandbox-ws-watchdog-design.md
7
+ *
8
+ * 注入路径:通过 ws-watchdog-plugin.ts 的 transformIndexHtml 自动注入到 Vite 沙箱页面 head。
9
+ * 通过 await import('/@vite/client') 拿 createHotContext 订阅 HMR 自定义事件
10
+ * (middleware 直出的 raw module 拿不到 import.meta.hot;对齐 src/overlay/vite-client.js:424)。
11
+ *
12
+ * .mjs 而非 .ts/.js 的原因:
13
+ * - 本包是 CommonJS(tsconfig "module": "CommonJS",无 "type": "module"),plain `.js` + ESM
14
+ * 语法在某些工具链下会被当 CJS 解析报错;`.mjs` 强制 ESM
15
+ * - 不依赖 @lark-apaas/client-toolkit(fullstack-vite-preset 不依赖 toolkit 避免循环依赖),
16
+ * 所以 origin 解析逻辑直接 inline,参照 toolkit/src/utils/postMessage.ts:23-49
17
+ */
18
+
19
+ /**
20
+ * @typedef {Object} WatchdogDeps
21
+ * @property {(event: string, data: unknown) => void} sendCustom
22
+ * @property {(event: string, cb: (data: unknown) => void) => void} onCustom
23
+ * @property {(status: 'connected' | 'disconnected') => void} postStatus
24
+ * @property {(handler: () => void, ms: number) => number} setInterval
25
+ * @property {(handle: number) => void} clearInterval
26
+ */
27
+
28
+ /**
29
+ * @typedef {Object} WatchdogOptions
30
+ * @property {number} [intervalMs] 默认 5000
31
+ * @property {number} [missThreshold] 默认 2
32
+ * @property {number} [echoFreshnessMs] 默认 15000
33
+ * @property {string} [pingEvent] 默认 'apaas:ws-watchdog:ping'
34
+ * @property {string} [pongEvent] 默认 'apaas:ws-watchdog:pong'
35
+ */
36
+
37
+ /**
38
+ * 不返回 dispose;watchdog 跟 iframe 同生命周期。
39
+ * @param {WatchdogDeps} deps
40
+ * @param {WatchdogOptions} [options]
41
+ */
42
+ export function createWatchdog(deps, options = {}) {
43
+ const intervalMs = options.intervalMs ?? 5000;
44
+ const missThreshold = options.missThreshold ?? 2;
45
+ const echoFreshnessMs = options.echoFreshnessMs ?? 15000;
46
+ const pingEvent = options.pingEvent ?? 'apaas:ws-watchdog:ping';
47
+ const pongEvent = options.pongEvent ?? 'apaas:ws-watchdog:pong';
48
+
49
+ let missed = 0;
50
+ /** @type {'connected' | 'disconnected'} */
51
+ let reportedStatus = 'connected';
52
+ let pingSeq = 0;
53
+ /** @type {Map<number, number>} seq → wall-clock 时间戳 */
54
+ const recentPings = new Map();
55
+
56
+ function onTick() {
57
+ // 顺序硬约束:missed++ 必须在 sendCustom 之前——
58
+ // 即使 deps.sendCustom 抛错(理论上不会,生产侧已 try/catch),missed 已累加,
59
+ // 下一次 tick 仍会触发 disconnected post。spec §4.4.3 #1 + #5。
60
+ missed += 1;
61
+ const seq = ++pingSeq;
62
+ const now = Date.now();
63
+ recentPings.set(seq, now);
64
+ // 只保留最近 echoFreshnessMs 内的 ping,避免 map 无限增长
65
+ for (const [s, ts] of recentPings) {
66
+ if (now - ts > echoFreshnessMs) recentPings.delete(s);
67
+ }
68
+ deps.sendCustom(pingEvent, { t: seq });
69
+ if (missed >= missThreshold && reportedStatus !== 'disconnected') {
70
+ deps.postStatus('disconnected');
71
+ reportedStatus = 'disconnected';
72
+ }
73
+ }
74
+
75
+ deps.onCustom(pongEvent, (raw) => {
76
+ const data = /** @type {{ echo?: number } | undefined} */ (raw);
77
+ if (typeof data?.echo !== 'number' || !recentPings.has(data.echo)) return;
78
+ recentPings.delete(data.echo);
79
+ missed = 0;
80
+ if (reportedStatus !== 'connected') {
81
+ deps.postStatus('connected');
82
+ reportedStatus = 'connected';
83
+ }
84
+ });
85
+
86
+ deps.setInterval(onTick, intervalMs);
87
+ }
88
+
89
+ // ───── inline parent origin 解析(spec §3.2 invariant 1 等价实现)─────
90
+ // 完整对齐 toolkit/src/utils/postMessage.ts:23-49——禁止改成 parent.postMessage(msg, '*')。
91
+
92
+ const PARENT_ORIGIN_KEY = '__parentOrigin';
93
+
94
+ function getParentOriginFromParams() {
95
+ try {
96
+ const origin = new URLSearchParams(window.location.search).get(PARENT_ORIGIN_KEY);
97
+ if (origin) {
98
+ try { sessionStorage.setItem(PARENT_ORIGIN_KEY, origin); } catch { /* 忽略 */ }
99
+ return origin;
100
+ }
101
+ } catch { /* 忽略 URL 解析失败 */ }
102
+ try { return sessionStorage.getItem(PARENT_ORIGIN_KEY) || undefined; }
103
+ catch { return undefined; }
104
+ }
105
+
106
+ function getLegacyParentOrigin() {
107
+ const { origin } = window.location;
108
+ if (origin.includes('force.feishuapp.net')) return 'https://force.feishu.cn';
109
+ if (origin.includes('force-pre.feishuapp.net')) return 'https://force.feishu-pre.cn';
110
+ if (origin.includes('force.byted.org')) return 'https://force.feishu-boe.cn';
111
+ if (origin.includes('feishuapp.cn') || origin.includes('miaoda.feishuapp.net')) return 'https://miaoda.feishu.cn';
112
+ if (origin.includes('fsapp.kundou.cn') || origin.includes('miaoda-pre.feishuapp.net')) return 'https://miaoda.feishu-pre.cn';
113
+ return 'https://miaoda.feishu-boe.cn';
114
+ }
115
+
116
+ function resolveParentOrigin() {
117
+ const paramOrigin = getParentOriginFromParams();
118
+ if (paramOrigin) return paramOrigin;
119
+ // 由 plugin middleware 编译期替换成字符串字面量
120
+ return process.env.FORCE_FRAMEWORK_DOMAIN_MAIN || getLegacyParentOrigin();
121
+ }
122
+
123
+ function postStatus(status) {
124
+ try {
125
+ const origin = resolveParentOrigin();
126
+ if (!origin) return;
127
+ window.parent.postMessage(
128
+ { type: 'DevServerMessage', data: { type: 'devServer-status', status } },
129
+ origin,
130
+ );
131
+ } catch (e) {
132
+ console.error('[fullstack-ws-watchdog] postMessage error:', e);
133
+ }
134
+ }
135
+
136
+ // ───── 自启动(生产路径;浏览器 iframe 内执行;vitest jsdom 环境下 window.parent === window 不执行)─────
137
+ // 关键:middleware 直出的 raw module 拿不到 import.meta.hot——必须用 createHotContext,
138
+ // 对齐 src/overlay/vite-client.js:424 的做法。
139
+ if (typeof window !== 'undefined' && window.parent !== window) {
140
+ (async () => {
141
+ try {
142
+ const { createHotContext } = await import('/@vite/client');
143
+ const hot = createHotContext('/@apaas-ws-watchdog.js');
144
+ createWatchdog({
145
+ sendCustom: (event, data) => {
146
+ // spec §4.4.3 #5:hot.send 断连场景可能抛错;吞掉,missed 已在 onTick 顶部累加。
147
+ try { hot.send(event, data); }
148
+ catch (e) { console.warn('[fullstack-ws-watchdog] send failed:', e); }
149
+ },
150
+ onCustom: (event, cb) => hot.on(event, cb),
151
+ postStatus,
152
+ setInterval: (handler, ms) => window.setInterval(handler, ms),
153
+ clearInterval: (handle) => window.clearInterval(handle),
154
+ });
155
+ } catch (e) {
156
+ console.warn('[fullstack-ws-watchdog] bootstrap failed:', e);
157
+ }
158
+ })();
159
+ }