@lark-apaas/coding-preset-vite-react 0.1.1-alpha.0 → 0.1.1

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 (85) hide show
  1. package/LICENSE +13 -0
  2. package/lib/index.d.ts +52 -0
  3. package/lib/index.d.ts.map +1 -0
  4. package/lib/index.js +410 -0
  5. package/lib/index.js.map +1 -0
  6. package/lib/plugins/capabilities.d.ts +23 -0
  7. package/lib/plugins/capabilities.d.ts.map +1 -0
  8. package/lib/plugins/capabilities.js +151 -0
  9. package/lib/plugins/capabilities.js.map +1 -0
  10. package/lib/plugins/dev-logs.d.ts +44 -0
  11. package/lib/plugins/dev-logs.d.ts.map +1 -0
  12. package/lib/plugins/dev-logs.js +544 -0
  13. package/lib/plugins/dev-logs.js.map +1 -0
  14. package/lib/plugins/error-overlay.d.ts +19 -0
  15. package/lib/plugins/error-overlay.d.ts.map +1 -0
  16. package/lib/plugins/error-overlay.js +136 -0
  17. package/lib/plugins/error-overlay.js.map +1 -0
  18. package/lib/plugins/fonts-mirror.d.ts +14 -0
  19. package/lib/plugins/fonts-mirror.d.ts.map +1 -0
  20. package/lib/plugins/fonts-mirror.js +70 -0
  21. package/lib/plugins/fonts-mirror.js.map +1 -0
  22. package/lib/plugins/health.d.ts +19 -0
  23. package/lib/plugins/health.d.ts.map +1 -0
  24. package/lib/plugins/health.js +36 -0
  25. package/lib/plugins/health.js.map +1 -0
  26. package/lib/plugins/hmr-timing.d.ts +13 -0
  27. package/lib/plugins/hmr-timing.d.ts.map +1 -0
  28. package/lib/plugins/hmr-timing.js +93 -0
  29. package/lib/plugins/hmr-timing.js.map +1 -0
  30. package/lib/plugins/html-minify.d.ts +18 -0
  31. package/lib/plugins/html-minify.d.ts.map +1 -0
  32. package/lib/plugins/html-minify.js +100 -0
  33. package/lib/plugins/html-minify.js.map +1 -0
  34. package/lib/plugins/module-alias.d.ts +12 -0
  35. package/lib/plugins/module-alias.d.ts.map +1 -0
  36. package/lib/plugins/module-alias.js +78 -0
  37. package/lib/plugins/module-alias.js.map +1 -0
  38. package/lib/plugins/og-meta.d.ts +21 -0
  39. package/lib/plugins/og-meta.d.ts.map +1 -0
  40. package/lib/plugins/og-meta.js +60 -0
  41. package/lib/plugins/og-meta.js.map +1 -0
  42. package/lib/plugins/polyfill.d.ts +11 -0
  43. package/lib/plugins/polyfill.d.ts.map +1 -0
  44. package/lib/plugins/polyfill.js +140 -0
  45. package/lib/plugins/polyfill.js.map +1 -0
  46. package/lib/plugins/routes.d.ts +26 -0
  47. package/lib/plugins/routes.d.ts.map +1 -0
  48. package/lib/plugins/routes.js +265 -0
  49. package/lib/plugins/routes.js.map +1 -0
  50. package/lib/plugins/slardar.d.ts +24 -0
  51. package/lib/plugins/slardar.d.ts.map +1 -0
  52. package/lib/plugins/slardar.js +74 -0
  53. package/lib/plugins/slardar.js.map +1 -0
  54. package/lib/plugins/static-assets.d.ts +10 -0
  55. package/lib/plugins/static-assets.d.ts.map +1 -0
  56. package/lib/plugins/static-assets.js +307 -0
  57. package/lib/plugins/static-assets.js.map +1 -0
  58. package/lib/plugins/view-context.d.ts +22 -0
  59. package/lib/plugins/view-context.d.ts.map +1 -0
  60. package/lib/plugins/view-context.js +165 -0
  61. package/lib/plugins/view-context.js.map +1 -0
  62. package/lib/plugins/vite-client-patch.d.ts +4 -0
  63. package/lib/plugins/vite-client-patch.d.ts.map +1 -0
  64. package/lib/plugins/vite-client-patch.js +37 -0
  65. package/lib/plugins/vite-client-patch.js.map +1 -0
  66. package/lib/plugins/ws-watchdog.d.ts +22 -0
  67. package/lib/plugins/ws-watchdog.d.ts.map +1 -0
  68. package/lib/plugins/ws-watchdog.js +103 -0
  69. package/lib/plugins/ws-watchdog.js.map +1 -0
  70. package/lib/polyfills/index.d.ts +15 -0
  71. package/lib/polyfills/index.d.ts.map +1 -0
  72. package/lib/polyfills/index.js +36 -0
  73. package/lib/polyfills/index.js.map +1 -0
  74. package/lib/utils/normalize-base-path.d.ts +37 -0
  75. package/lib/utils/normalize-base-path.d.ts.map +1 -0
  76. package/lib/utils/normalize-base-path.js +57 -0
  77. package/lib/utils/normalize-base-path.js.map +1 -0
  78. package/lib/utils/snapdom-proxy.d.ts +12 -0
  79. package/lib/utils/snapdom-proxy.d.ts.map +1 -0
  80. package/lib/utils/snapdom-proxy.js +75 -0
  81. package/lib/utils/snapdom-proxy.js.map +1 -0
  82. package/package.json +9 -15
  83. package/dist/index.d.ts +0 -320
  84. package/dist/index.js +0 -1941
  85. package/dist/index.js.map +0 -1
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.capabilitiesBundlePlugin = capabilitiesBundlePlugin;
37
+ const fs = __importStar(require("node:fs"));
38
+ const path = __importStar(require("node:path"));
39
+ const VIRTUAL_ID = 'virtual:capabilities';
40
+ const RESOLVED = '\0' + VIRTUAL_ID;
41
+ // jsPage 约定的 capability 目录(老 fullstack 路径 `server/capabilities/` 不兼容)
42
+ const DEFAULT_DIRS = ['shared/capabilities'];
43
+ /**
44
+ * 把业务工程 `<dir>/*.json` 的 capability 配置打成 `virtual:capabilities` 虚拟模块。
45
+ *
46
+ * `@lark-apaas/client-capability` SDK(被 client-toolkit-lite 内联使用)会
47
+ * `import map from 'virtual:capabilities'` 取这个 map。SDK 在 dev 预览 / 沙箱
48
+ * 加载流程中依赖这个模块存在,所以即使 capabilities 目录为空,也必须把模块
49
+ * 注册成解析成功(空 map),否则 rolldown 在 build 时直接 fail。
50
+ *
51
+ * 同时通过 `optimizeDeps.esbuildOptions.plugins` 在 depOptimizer 那条路径上
52
+ * 也提供解析——因为 client-toolkit-lite 是 pre-bundle 进来的,pre-bundle 的
53
+ * esbuild 不会经过 Vite 主 pipeline 的 plugin 链。
54
+ *
55
+ * V1 限制:dev 期更改 capability JSON 后,pre-bundle 产物里的 map 是启动时快照,
56
+ * 不会自动刷新;新增 / 修改 capability 后需要重启 dev server。
57
+ */
58
+ function capabilitiesBundlePlugin(options = {}) {
59
+ let rootDir = process.cwd();
60
+ function listDirs() {
61
+ if (options.dir)
62
+ return [path.resolve(rootDir, options.dir)];
63
+ return DEFAULT_DIRS.map((d) => path.resolve(rootDir, d));
64
+ }
65
+ function loadMap() {
66
+ const map = {};
67
+ for (const abs of listDirs()) {
68
+ if (!fs.existsSync(abs))
69
+ continue;
70
+ for (const f of fs.readdirSync(abs)) {
71
+ if (!f.endsWith('.json'))
72
+ continue;
73
+ try {
74
+ const cfg = JSON.parse(fs.readFileSync(path.join(abs, f), 'utf-8'));
75
+ if (cfg?.id)
76
+ map[cfg.id] = cfg;
77
+ }
78
+ catch (e) {
79
+ console.warn(`[miaoda-capabilities] skip invalid json: ${path.join(abs, f)}: ${e instanceof Error ? e.message : String(e)}`);
80
+ }
81
+ }
82
+ }
83
+ return map;
84
+ }
85
+ return {
86
+ name: 'miaoda-capabilities-bundle',
87
+ configResolved(config) {
88
+ rootDir = config.root;
89
+ },
90
+ // 同时通过 depOptimizer 的 Rolldown 注入解析,让 client-toolkit-lite 这种
91
+ // pre-bundle 进来的依赖也能把 `import 'virtual:capabilities'` 解掉。
92
+ // Vite 8 用 Rolldown 替换了 esbuild 做 depOptimize,所以走 rolldownOptions.plugins。
93
+ config(_userConfig, _env) {
94
+ // `rolldownOptions` 是 Vite 8 引入的 depOptimizer 新 API,
95
+ // 当前 Vite 类型还没覆盖,需要 as any 绕过
96
+ return {
97
+ optimizeDeps: {
98
+ rolldownOptions: {
99
+ plugins: [
100
+ {
101
+ name: 'miaoda-capabilities-rolldown',
102
+ resolveId(source) {
103
+ if (source === VIRTUAL_ID)
104
+ return RESOLVED;
105
+ return null;
106
+ },
107
+ load(id) {
108
+ if (id !== RESOLVED)
109
+ return null;
110
+ return `export default ${JSON.stringify(loadMap())};`;
111
+ },
112
+ },
113
+ ],
114
+ },
115
+ },
116
+ };
117
+ },
118
+ resolveId(id) {
119
+ if (id === VIRTUAL_ID)
120
+ return RESOLVED;
121
+ return null;
122
+ },
123
+ load(id) {
124
+ if (id !== RESOLVED)
125
+ return null;
126
+ return `export default ${JSON.stringify(loadMap())};`;
127
+ },
128
+ configureServer(server) {
129
+ for (const abs of listDirs()) {
130
+ if (fs.existsSync(abs))
131
+ server.watcher.add(abs);
132
+ }
133
+ const watching = listDirs();
134
+ const handle = (file) => {
135
+ if (!file.endsWith('.json'))
136
+ return;
137
+ if (!watching.some((d) => file.startsWith(d)))
138
+ return;
139
+ const mod = server.moduleGraph.getModuleById(RESOLVED);
140
+ if (mod)
141
+ server.moduleGraph.invalidateModule(mod);
142
+ server.ws.send({ type: 'full-reload', path: '*' });
143
+ };
144
+ server.watcher.on('add', handle);
145
+ server.watcher.on('change', handle);
146
+ server.watcher.on('unlink', handle);
147
+ },
148
+ };
149
+ }
150
+ exports.default = capabilitiesBundlePlugin;
151
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/plugins/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { Plugin } from 'vite';
2
+ /**
3
+ * 客户端日志收集 + 读取 + SSE 流式 endpoint。
4
+ *
5
+ * 写入:
6
+ * - `POST <basePath>/dev/logs/collect` 单条 log(`{ message, ... }`)
7
+ * - `POST <basePath>/dev/logs/collect-batch` 数组批量 log
8
+ *
9
+ * 读取:
10
+ * - `GET <basePath>/dev/logs/files/:fileName?page=1&pageSize=200`
11
+ * 倒序分页读 `<logDir>/<fileName>` 任意文件,防 path traversal,max pageSize 2000
12
+ * - `GET <basePath>/dev/logs/server-logs?limit=100&offset=0&levels=error,warn&sources=client-std`
13
+ * 合并 4 个常见日志文件(server.log / trace.log / server.std.log / client.std.log)
14
+ * 的 entries,按 timestamp desc 排序后分页 + 过滤
15
+ * - `GET <basePath>/dev/logs/server-logs/stream`(SSE)
16
+ * `LogWatcher` 增量监听 4 个文件,新行实时推送
17
+ *
18
+ * jsPage 说明:endpoint 名字带 "server-" 是历史遗留(与 `client-toolkit` 写死的路径
19
+ * 兼容,见 `client-toolkit/src/server-log/poller.ts`);实际只监测一个文件
20
+ * `client.std.log`(dev.mjs 写的)。上游另外那 3 个(`server.log`、`trace.log`、
21
+ * `server.std.log`)是 fullstack 后端的产物,jsPage 不产、也没消费者,全部砍掉。
22
+ *
23
+ * 写入路径:`<logDir>/<fileName>`(默认 `./logs/client.log`,由 `LOG_DIR` 环境变量改写)。
24
+ *
25
+ * 移植自上游 `@lark-apaas/devtool-kits` 的 `dev-logs` + `collect-logs` middlewares。
26
+ * 仍然不补的 fullstack-only endpoints:
27
+ * - `/app/trace/:traceId`、`/trace/recent`、`/trace/trigger/*`、`/trace/capability/list`
28
+ * —— 全是 server-side trace.log 的索引接口
29
+ * - `/api-list` —— 从 fullstack server 抓 API route 清单
30
+ * - `/health` —— 重复(本 preset 有独立 `/dev/health`)
31
+ */
32
+ export interface DevLogsPluginOptions {
33
+ /** 日志写入目录。默认 `process.env.LOG_DIR ?? './logs'`。 */
34
+ logDir?: string;
35
+ /** 日志文件名。默认 `client.log`。 */
36
+ fileName?: string;
37
+ /** Body 大小上限(bytes)。默认 20 MB。 */
38
+ bodyLimit?: number;
39
+ /** 接口基路径前缀(沙箱 base path)。默认空。 */
40
+ basePath?: string;
41
+ }
42
+ export declare function devLogsPlugin(options?: DevLogsPluginOptions): Plugin;
43
+ export default devLogsPlugin;
44
+ //# sourceMappingURL=dev-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-logs.d.ts","sourceRoot":"","sources":["../../src/plugins/dev-logs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA0YD,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAqKxE;AAED,eAAe,aAAa,CAAC"}