@lark-apaas/coding-preset-vite-react 1.0.12 → 1.0.13-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.
Files changed (134) hide show
  1. package/lib/index.d.ts +1 -9
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +114 -153
  4. package/lib/index.js.map +1 -1
  5. package/lib/plugins/{basename.d.ts → basename-injection.d.ts} +4 -4
  6. package/lib/plugins/basename-injection.d.ts.map +1 -0
  7. package/lib/plugins/{basename.js → basename-injection.js} +15 -7
  8. package/lib/plugins/basename-injection.js.map +1 -0
  9. package/lib/plugins/capabilities.d.ts +6 -9
  10. package/lib/plugins/capabilities.d.ts.map +1 -1
  11. package/lib/plugins/capabilities.js +29 -27
  12. package/lib/plugins/capabilities.js.map +1 -1
  13. package/lib/plugins/fonts-mirror.d.ts.map +1 -1
  14. package/lib/plugins/fonts-mirror.js +0 -28
  15. package/lib/plugins/fonts-mirror.js.map +1 -1
  16. package/lib/plugins/view-context.d.ts +5 -0
  17. package/lib/plugins/view-context.d.ts.map +1 -1
  18. package/lib/plugins/view-context.js +3 -0
  19. package/lib/plugins/view-context.js.map +1 -1
  20. package/package.json +1 -3
  21. package/lib/plugins/basename.d.ts.map +0 -1
  22. package/lib/plugins/basename.js.map +0 -1
  23. package/lib/plugins/dev-proxy.d.ts +0 -41
  24. package/lib/plugins/dev-proxy.d.ts.map +0 -1
  25. package/lib/plugins/dev-proxy.js +0 -229
  26. package/lib/plugins/dev-proxy.js.map +0 -1
  27. package/lib/plugins/html-output.d.ts +0 -21
  28. package/lib/plugins/html-output.d.ts.map +0 -1
  29. package/lib/plugins/html-output.js +0 -171
  30. package/lib/plugins/html-output.js.map +0 -1
  31. package/lib/plugins/server-log.d.ts +0 -45
  32. package/lib/plugins/server-log.d.ts.map +0 -1
  33. package/lib/plugins/server-log.js +0 -60
  34. package/lib/plugins/server-log.js.map +0 -1
  35. package/lib/server-log/compat.d.ts +0 -36
  36. package/lib/server-log/compat.d.ts.map +0 -1
  37. package/lib/server-log/compat.js +0 -73
  38. package/lib/server-log/compat.js.map +0 -1
  39. package/lib/server-log/dev-logs/api-list-handler.d.ts +0 -6
  40. package/lib/server-log/dev-logs/api-list-handler.d.ts.map +0 -1
  41. package/lib/server-log/dev-logs/api-list-handler.js +0 -132
  42. package/lib/server-log/dev-logs/api-list-handler.js.map +0 -1
  43. package/lib/server-log/dev-logs/controller.d.ts +0 -45
  44. package/lib/server-log/dev-logs/controller.d.ts.map +0 -1
  45. package/lib/server-log/dev-logs/controller.js +0 -239
  46. package/lib/server-log/dev-logs/controller.js.map +0 -1
  47. package/lib/server-log/dev-logs/health.controller.d.ts +0 -15
  48. package/lib/server-log/dev-logs/health.controller.d.ts.map +0 -1
  49. package/lib/server-log/dev-logs/health.controller.js +0 -79
  50. package/lib/server-log/dev-logs/health.controller.js.map +0 -1
  51. package/lib/server-log/dev-logs/helper/path-matcher.d.ts +0 -117
  52. package/lib/server-log/dev-logs/helper/path-matcher.d.ts.map +0 -1
  53. package/lib/server-log/dev-logs/helper/path-matcher.js +0 -214
  54. package/lib/server-log/dev-logs/helper/path-matcher.js.map +0 -1
  55. package/lib/server-log/dev-logs/index.d.ts +0 -12
  56. package/lib/server-log/dev-logs/index.d.ts.map +0 -1
  57. package/lib/server-log/dev-logs/index.js +0 -61
  58. package/lib/server-log/dev-logs/index.js.map +0 -1
  59. package/lib/server-log/dev-logs/router.d.ts +0 -7
  60. package/lib/server-log/dev-logs/router.d.ts.map +0 -1
  61. package/lib/server-log/dev-logs/router.js +0 -40
  62. package/lib/server-log/dev-logs/router.js.map +0 -1
  63. package/lib/server-log/dev-logs/services/capability.service.d.ts +0 -33
  64. package/lib/server-log/dev-logs/services/capability.service.d.ts.map +0 -1
  65. package/lib/server-log/dev-logs/services/capability.service.js +0 -127
  66. package/lib/server-log/dev-logs/services/capability.service.js.map +0 -1
  67. package/lib/server-log/dev-logs/services/file-reader.d.ts +0 -10
  68. package/lib/server-log/dev-logs/services/file-reader.d.ts.map +0 -1
  69. package/lib/server-log/dev-logs/services/file-reader.js +0 -67
  70. package/lib/server-log/dev-logs/services/file-reader.js.map +0 -1
  71. package/lib/server-log/dev-logs/services/index.d.ts +0 -8
  72. package/lib/server-log/dev-logs/services/index.d.ts.map +0 -1
  73. package/lib/server-log/dev-logs/services/index.js +0 -30
  74. package/lib/server-log/dev-logs/services/index.js.map +0 -1
  75. package/lib/server-log/dev-logs/services/parsers.d.ts +0 -23
  76. package/lib/server-log/dev-logs/services/parsers.d.ts.map +0 -1
  77. package/lib/server-log/dev-logs/services/parsers.js +0 -157
  78. package/lib/server-log/dev-logs/services/parsers.js.map +0 -1
  79. package/lib/server-log/dev-logs/services/server-log.service.d.ts +0 -17
  80. package/lib/server-log/dev-logs/services/server-log.service.d.ts.map +0 -1
  81. package/lib/server-log/dev-logs/services/server-log.service.js +0 -119
  82. package/lib/server-log/dev-logs/services/server-log.service.js.map +0 -1
  83. package/lib/server-log/dev-logs/services/trace.service.d.ts +0 -14
  84. package/lib/server-log/dev-logs/services/trace.service.d.ts.map +0 -1
  85. package/lib/server-log/dev-logs/services/trace.service.js +0 -162
  86. package/lib/server-log/dev-logs/services/trace.service.js.map +0 -1
  87. package/lib/server-log/dev-logs/services/trigger.service.d.ts +0 -14
  88. package/lib/server-log/dev-logs/services/trigger.service.d.ts.map +0 -1
  89. package/lib/server-log/dev-logs/services/trigger.service.js +0 -153
  90. package/lib/server-log/dev-logs/services/trigger.service.js.map +0 -1
  91. package/lib/server-log/dev-logs/services.d.ts +0 -7
  92. package/lib/server-log/dev-logs/services.d.ts.map +0 -1
  93. package/lib/server-log/dev-logs/services.js +0 -20
  94. package/lib/server-log/dev-logs/services.js.map +0 -1
  95. package/lib/server-log/dev-logs/sse/client-manager.d.ts +0 -61
  96. package/lib/server-log/dev-logs/sse/client-manager.d.ts.map +0 -1
  97. package/lib/server-log/dev-logs/sse/client-manager.js +0 -140
  98. package/lib/server-log/dev-logs/sse/client-manager.js.map +0 -1
  99. package/lib/server-log/dev-logs/sse/index.d.ts +0 -5
  100. package/lib/server-log/dev-logs/sse/index.d.ts.map +0 -1
  101. package/lib/server-log/dev-logs/sse/index.js +0 -11
  102. package/lib/server-log/dev-logs/sse/index.js.map +0 -1
  103. package/lib/server-log/dev-logs/sse/log-watcher.d.ts +0 -51
  104. package/lib/server-log/dev-logs/sse/log-watcher.d.ts.map +0 -1
  105. package/lib/server-log/dev-logs/sse/log-watcher.js +0 -381
  106. package/lib/server-log/dev-logs/sse/log-watcher.js.map +0 -1
  107. package/lib/server-log/dev-logs/sse/sse.controller.d.ts +0 -25
  108. package/lib/server-log/dev-logs/sse/sse.controller.d.ts.map +0 -1
  109. package/lib/server-log/dev-logs/sse/sse.controller.js +0 -95
  110. package/lib/server-log/dev-logs/sse/sse.controller.js.map +0 -1
  111. package/lib/server-log/dev-logs/types.d.ts +0 -104
  112. package/lib/server-log/dev-logs/types.d.ts.map +0 -1
  113. package/lib/server-log/dev-logs/types.js +0 -3
  114. package/lib/server-log/dev-logs/types.js.map +0 -1
  115. package/lib/server-log/dev-logs/utils.d.ts +0 -68
  116. package/lib/server-log/dev-logs/utils.d.ts.map +0 -1
  117. package/lib/server-log/dev-logs/utils.js +0 -151
  118. package/lib/server-log/dev-logs/utils.js.map +0 -1
  119. package/lib/server-log/register.d.ts +0 -34
  120. package/lib/server-log/register.d.ts.map +0 -1
  121. package/lib/server-log/register.js +0 -196
  122. package/lib/server-log/register.js.map +0 -1
  123. package/lib/server-log/types.d.ts +0 -99
  124. package/lib/server-log/types.d.ts.map +0 -1
  125. package/lib/server-log/types.js +0 -3
  126. package/lib/server-log/types.js.map +0 -1
  127. package/lib/utils/local-dev.d.ts +0 -46
  128. package/lib/utils/local-dev.d.ts.map +0 -1
  129. package/lib/utils/local-dev.js +0 -96
  130. package/lib/utils/local-dev.js.map +0 -1
  131. package/lib/utils/proxy-error.d.ts +0 -29
  132. package/lib/utils/proxy-error.d.ts.map +0 -1
  133. package/lib/utils/proxy-error.js +0 -158
  134. package/lib/utils/proxy-error.js.map +0 -1
@@ -1,68 +0,0 @@
1
- import type { LogEntry } from './types';
2
- /**
3
- * Resolve log directory path
4
- */
5
- export declare function resolveLogDir(provided?: string): string;
6
- /**
7
- * Get relative path from current working directory
8
- */
9
- export declare function getRelativePath(filePath: string): string;
10
- /**
11
- * Check if file exists
12
- */
13
- export declare function fileExists(filePath: string): Promise<boolean>;
14
- /**
15
- * Parse a log line as JSON
16
- */
17
- export declare function parseLogLine(line: string): LogEntry | undefined;
18
- /**
19
- * Extract number from message using regex pattern
20
- */
21
- export declare function extractNumber(message: string, pattern: RegExp): number | undefined;
22
- /**
23
- * Parse limit parameter with default and max value
24
- */
25
- export declare function parseLimit(value: string | undefined, defaultValue: number, maxValue: number): number;
26
- /**
27
- * Parse positive integer with fallback
28
- */
29
- export declare function parsePositiveInt(value: string | undefined, fallback: number): number;
30
- /**
31
- * Resolve log file path with security checks
32
- */
33
- export declare function resolveLogFilePath(baseDir: string, fileName: string): string;
34
- /**
35
- * Check if actual request path matches expected OpenAPI/Swagger path pattern
36
- *
37
- * @param actualPath - The actual request path from logs (e.g., /api/users/123)
38
- * @param pattern - The OpenAPI path pattern to match against (e.g., /api/users/{id})
39
- * @returns true if the path matches the pattern
40
- *
41
- * @example
42
- * matchesPath('/api/users/123', '/api/users/{id}') // true
43
- * matchesPath('/api/users/123', '/api/users') // true (prefix match)
44
- * matchesPath('/api/posts/456', '/api/users/{id}') // false
45
- */
46
- export declare function matchesPath(actualPath: string | undefined, pattern: string): boolean;
47
- /**
48
- * Check if actual request method matches expected HTTP method
49
- *
50
- * @param actualMethod - The actual request method from logs (e.g., 'GET', 'POST')
51
- * @param expectedMethod - The expected HTTP method to match against (e.g., 'GET')
52
- * @returns true if the method matches (case-insensitive)
53
- *
54
- * @example
55
- * matchesMethod('GET', 'GET') // true
56
- * matchesMethod('get', 'GET') // true
57
- * matchesMethod('POST', 'GET') // false
58
- * matchesMethod(undefined, 'GET') // false
59
- */
60
- export declare function matchesMethod(actualMethod: string | undefined, expectedMethod: string): boolean;
61
- /**
62
- * Serialize error for JSON response
63
- */
64
- export declare function serializeError(error: unknown): {
65
- name?: string;
66
- message: string;
67
- };
68
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/server-log/dev-logs/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAS/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQlF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWpG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOpF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAK/F;AAGD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAIjF"}
@@ -1,151 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveLogDir = resolveLogDir;
4
- exports.getRelativePath = getRelativePath;
5
- exports.fileExists = fileExists;
6
- exports.parseLogLine = parseLogLine;
7
- exports.extractNumber = extractNumber;
8
- exports.parseLimit = parseLimit;
9
- exports.parsePositiveInt = parsePositiveInt;
10
- exports.resolveLogFilePath = resolveLogFilePath;
11
- exports.matchesPath = matchesPath;
12
- exports.matchesMethod = matchesMethod;
13
- exports.serializeError = serializeError;
14
- const node_fs_1 = require("node:fs");
15
- const node_path_1 = require("node:path");
16
- const path_matcher_1 = require("./helper/path-matcher");
17
- /**
18
- * Resolve log directory path
19
- */
20
- function resolveLogDir(provided) {
21
- if (!provided) {
22
- return (0, node_path_1.join)(process.cwd(), 'logs');
23
- }
24
- return (0, node_path_1.isAbsolute)(provided) ? provided : (0, node_path_1.join)(process.cwd(), provided);
25
- }
26
- /**
27
- * Get relative path from current working directory
28
- */
29
- function getRelativePath(filePath) {
30
- return (0, node_path_1.relative)(process.cwd(), filePath);
31
- }
32
- /**
33
- * Check if file exists
34
- */
35
- async function fileExists(filePath) {
36
- try {
37
- await node_fs_1.promises.access(filePath);
38
- return true;
39
- }
40
- catch {
41
- return false;
42
- }
43
- }
44
- /**
45
- * Parse a log line as JSON
46
- */
47
- function parseLogLine(line) {
48
- const trimmed = line.trim();
49
- if (!trimmed)
50
- return undefined;
51
- try {
52
- return JSON.parse(trimmed);
53
- }
54
- catch {
55
- return undefined;
56
- }
57
- }
58
- /**
59
- * Extract number from message using regex pattern
60
- */
61
- function extractNumber(message, pattern) {
62
- if (typeof message !== 'string')
63
- return undefined;
64
- const match = message.match(pattern);
65
- if (!match)
66
- return undefined;
67
- const value = Number(match[1]);
68
- return Number.isFinite(value) ? value : undefined;
69
- }
70
- /**
71
- * Parse limit parameter with default and max value
72
- */
73
- function parseLimit(value, defaultValue, maxValue) {
74
- if (typeof value !== 'string' || !value.trim()) {
75
- return defaultValue;
76
- }
77
- const parsed = Number(value);
78
- if (Number.isFinite(parsed) && parsed > 0) {
79
- return Math.min(Math.floor(parsed), maxValue);
80
- }
81
- return defaultValue;
82
- }
83
- /**
84
- * Parse positive integer with fallback
85
- */
86
- function parsePositiveInt(value, fallback) {
87
- if (typeof value !== 'string' || !value.trim()) {
88
- return fallback;
89
- }
90
- const parsed = Number(value);
91
- return Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : fallback;
92
- }
93
- /**
94
- * Resolve log file path with security checks
95
- */
96
- function resolveLogFilePath(baseDir, fileName) {
97
- const sanitized = fileName.replace(/\\/g, '/');
98
- const segments = sanitized.split('/').filter(Boolean);
99
- if (segments.some((segment) => segment === '..')) {
100
- throw new Error('Invalid log file path');
101
- }
102
- const resolved = (0, node_path_1.join)(baseDir, segments.join('/'));
103
- const rel = (0, node_path_1.relative)(baseDir, resolved);
104
- if (rel.startsWith('..')) {
105
- throw new Error('Access to the specified log file is denied');
106
- }
107
- return resolved;
108
- }
109
- /**
110
- * Check if actual request path matches expected OpenAPI/Swagger path pattern
111
- *
112
- * @param actualPath - The actual request path from logs (e.g., /api/users/123)
113
- * @param pattern - The OpenAPI path pattern to match against (e.g., /api/users/{id})
114
- * @returns true if the path matches the pattern
115
- *
116
- * @example
117
- * matchesPath('/api/users/123', '/api/users/{id}') // true
118
- * matchesPath('/api/users/123', '/api/users') // true (prefix match)
119
- * matchesPath('/api/posts/456', '/api/users/{id}') // false
120
- */
121
- function matchesPath(actualPath, pattern) {
122
- return (0, path_matcher_1.matchesPathPattern)(actualPath, pattern);
123
- }
124
- /**
125
- * Check if actual request method matches expected HTTP method
126
- *
127
- * @param actualMethod - The actual request method from logs (e.g., 'GET', 'POST')
128
- * @param expectedMethod - The expected HTTP method to match against (e.g., 'GET')
129
- * @returns true if the method matches (case-insensitive)
130
- *
131
- * @example
132
- * matchesMethod('GET', 'GET') // true
133
- * matchesMethod('get', 'GET') // true
134
- * matchesMethod('POST', 'GET') // false
135
- * matchesMethod(undefined, 'GET') // false
136
- */
137
- function matchesMethod(actualMethod, expectedMethod) {
138
- if (!actualMethod || !expectedMethod) {
139
- return false;
140
- }
141
- return actualMethod.toUpperCase() === expectedMethod.toUpperCase();
142
- }
143
- /**
144
- * Serialize error for JSON response
145
- */
146
- function serializeError(error) {
147
- return error instanceof Error
148
- ? { name: error.name, message: error.message }
149
- : { message: String(error) };
150
- }
151
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/server-log/dev-logs/utils.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import type { Middleware, MiddlewareContext, ExpressApp, ViteMiddleware } from './types';
2
- /**
3
- * Register middlewares for Express-compatible servers or Vite.
4
- *
5
- * MUST stay synchronous (no async/await).
6
- *
7
- * Why: when called from webpack/rspack-dev-server's `setupMiddlewares` callback,
8
- * any `await` here yields a microtask, allowing dev-server to finish registering
9
- * its own built-ins (proxy, historyApiFallback, serveStatic, ...) BEFORE our
10
- * later iterations run. The first router lands before historyApiFallback while
11
- * subsequent routers land after — causing extensionless GETs (e.g. `/dev/openapi/spec`
12
- * with a wildcard Accept header) to be rewritten to `/index.html`. All registered work
13
- * (`server.use`, `createRouter`, `createHandler`) is sync, so async/await is also
14
- * unnecessary.
15
- *
16
- * @example
17
- * ```typescript
18
- * // In rspack/webpack setupMiddlewares
19
- * setupMiddlewares: (middlewares, devServer) => {
20
- * if (devServer.app) {
21
- * registerMiddlewares(devServer.app, [
22
- * createDevLogsMiddleware({ logDir: './logs' }),
23
- * createOpenapiMiddleware({ openapiFilePath: './openapi.json' })
24
- * ], { basePath: '/api', isDev: true, rootDir: __dirname });
25
- * }
26
- * return middlewares;
27
- * }
28
- * ```
29
- */
30
- export declare function registerMiddlewares(server: ExpressApp | ViteMiddleware, middlewares: Middleware[], options?: Partial<MiddlewareContext>): void;
31
- export type { Middleware, RouteMiddleware, GlobalMiddleware, MiddlewareContext, RouteInfo, } from './types';
32
- export { createDevLogsMiddleware } from './dev-logs';
33
- export { sendJson, sendError, sendSuccess, getQuery, getQueryParam } from './compat';
34
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/server-log/register.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAGV,iBAAiB,EACjB,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAC;AAmIjB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,GAAG,cAAc,EACnC,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACnC,IAAI,CAsDN;AAGD,YAAY,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -1,196 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getQueryParam = exports.getQuery = exports.sendSuccess = exports.sendError = exports.sendJson = exports.createDevLogsMiddleware = void 0;
7
- exports.registerMiddlewares = registerMiddlewares;
8
- const node_path_1 = __importDefault(require("node:path"));
9
- /**
10
- * Enhance Request/Response objects with Express-compatible methods
11
- * This allows middleware written for Express to work with Vite/Connect
12
- */
13
- function enhanceForCompat(req, res) {
14
- // Enhance Response with Express-like methods
15
- if (!res.status) {
16
- res.status = function (code) {
17
- res.statusCode = code;
18
- return res;
19
- };
20
- }
21
- if (!res.json) {
22
- res.json = function (data) {
23
- res.setHeader('Content-Type', 'application/json');
24
- res.end(JSON.stringify(data));
25
- return res;
26
- };
27
- }
28
- if (!res.send) {
29
- res.send = function (data) {
30
- if (typeof data === 'object' && data !== null) {
31
- res.setHeader('Content-Type', 'application/json');
32
- res.end(JSON.stringify(data));
33
- }
34
- else {
35
- res.end(String(data));
36
- }
37
- return res;
38
- };
39
- }
40
- // Enhance Request with parsed query
41
- if (!req.query) {
42
- const url = new URL(req.url || '', `http://${req.headers.host || 'localhost'}`);
43
- req.query = Object.fromEntries(url.searchParams.entries());
44
- }
45
- }
46
- /**
47
- * Detect if the server is a Connect/Vite middleware server (not Express)
48
- * Connect servers don't have Express-specific methods like 'set' or 'engine'
49
- */
50
- function isConnectServer(server) {
51
- return (typeof server === 'function' &&
52
- !('set' in server) &&
53
- !('engine' in server));
54
- }
55
- /**
56
- * Type guard to check if middleware is route-based
57
- */
58
- function isRouteMiddleware(middleware) {
59
- return 'createRouter' in middleware && middleware.createRouter !== undefined;
60
- }
61
- /**
62
- * Type guard to check if middleware is global
63
- */
64
- function isGlobalMiddleware(middleware) {
65
- return 'createHandler' in middleware && middleware.createHandler !== undefined;
66
- }
67
- /**
68
- * Compute the full mount path by combining basePath and middleware mountPath
69
- */
70
- function computeMountPath(basePath, mountPath) {
71
- const routePath = node_path_1.default.posix.join(basePath, mountPath);
72
- return routePath.startsWith('/') ? routePath : `/${routePath}`;
73
- }
74
- /**
75
- * Log middleware registration with routes info
76
- */
77
- function logMiddlewareRegistration(middleware, fullMountPath) {
78
- if (middleware.routes && middleware.routes.length > 0) {
79
- console.log(`[Middleware] Registered: ${middleware.name} at ${fullMountPath}`);
80
- middleware.routes.forEach((route) => {
81
- const routePath = route.path === '/' ? fullMountPath : node_path_1.default.posix.join(fullMountPath, route.path);
82
- console.log(` ${route.method} ${routePath} - ${route.description}`);
83
- });
84
- }
85
- else {
86
- console.log(`[Middleware] Registered: ${middleware.name} at ${fullMountPath}`);
87
- }
88
- }
89
- // MUST stay synchronous. See note on `registerMiddlewares` below.
90
- function registerRouteMiddleware(server, middleware, context) {
91
- if (!middleware.mountPath) {
92
- console.error(`[Middleware] ${middleware.name}: Route middleware must have mountPath. Skipping.`);
93
- return;
94
- }
95
- const router = middleware.createRouter(context);
96
- const fullMountPath = computeMountPath(context.basePath, middleware.mountPath);
97
- server.use(fullMountPath, router);
98
- logMiddlewareRegistration(middleware, fullMountPath);
99
- }
100
- // MUST stay synchronous. See note on `registerMiddlewares` below.
101
- function registerGlobalMiddleware(server, middleware, context) {
102
- if (middleware.mountPath) {
103
- console.warn(`[Middleware] ${middleware.name}: Global middleware should not have mountPath. ` +
104
- `Ignoring mountPath "${middleware.mountPath}".`);
105
- }
106
- const handler = middleware.createHandler(context);
107
- server.use(handler);
108
- console.log(`[Middleware] Registered global: ${middleware.name}`);
109
- }
110
- /**
111
- * Register middlewares for Express-compatible servers or Vite.
112
- *
113
- * MUST stay synchronous (no async/await).
114
- *
115
- * Why: when called from webpack/rspack-dev-server's `setupMiddlewares` callback,
116
- * any `await` here yields a microtask, allowing dev-server to finish registering
117
- * its own built-ins (proxy, historyApiFallback, serveStatic, ...) BEFORE our
118
- * later iterations run. The first router lands before historyApiFallback while
119
- * subsequent routers land after — causing extensionless GETs (e.g. `/dev/openapi/spec`
120
- * with a wildcard Accept header) to be rewritten to `/index.html`. All registered work
121
- * (`server.use`, `createRouter`, `createHandler`) is sync, so async/await is also
122
- * unnecessary.
123
- *
124
- * @example
125
- * ```typescript
126
- * // In rspack/webpack setupMiddlewares
127
- * setupMiddlewares: (middlewares, devServer) => {
128
- * if (devServer.app) {
129
- * registerMiddlewares(devServer.app, [
130
- * createDevLogsMiddleware({ logDir: './logs' }),
131
- * createOpenapiMiddleware({ openapiFilePath: './openapi.json' })
132
- * ], { basePath: '/api', isDev: true, rootDir: __dirname });
133
- * }
134
- * return middlewares;
135
- * }
136
- * ```
137
- */
138
- function registerMiddlewares(server, middlewares, options) {
139
- // Build context with defaults
140
- const context = {
141
- basePath: '/',
142
- isDev: process.env.NODE_ENV !== 'production',
143
- rootDir: process.cwd(),
144
- ...options,
145
- };
146
- // If running in Connect/Vite environment, register compatibility middleware first
147
- // This adds Express-like methods (res.status, res.json, req.query) to the request/response
148
- if (isConnectServer(server)) {
149
- server.use((req, res, next) => {
150
- enhanceForCompat(req, res);
151
- next();
152
- });
153
- console.log('[Middleware] Registered Express compatibility layer for Connect/Vite');
154
- }
155
- // 合并默认中间件和用户提供的中间件
156
- const allMiddlewares = [...middlewares];
157
- for (const middleware of allMiddlewares) {
158
- // Check if middleware should be enabled
159
- if (middleware.enabled && !middleware.enabled(context)) {
160
- continue;
161
- }
162
- try {
163
- // Check if both createRouter and createHandler are provided (type-unsafe case)
164
- const hasCreateRouter = 'createRouter' in middleware && typeof middleware.createRouter === 'function';
165
- const hasCreateHandler = 'createHandler' in middleware && typeof middleware.createHandler === 'function';
166
- if (hasCreateRouter && hasCreateHandler) {
167
- console.warn(`[Middleware] ${middleware.name}: Both createRouter and createHandler provided. ` +
168
- `Using createRouter and ignoring createHandler.`);
169
- }
170
- if (isRouteMiddleware(middleware)) {
171
- registerRouteMiddleware(server, middleware, context);
172
- }
173
- else if (isGlobalMiddleware(middleware)) {
174
- registerGlobalMiddleware(server, middleware, context);
175
- }
176
- else {
177
- // Type-unsafe middleware that has neither createRouter nor createHandler
178
- console.error(`[Middleware] ${middleware.name || 'unknown'}: Must provide either createRouter or createHandler.`);
179
- }
180
- }
181
- catch (error) {
182
- console.error(`[Middleware] Failed to register ${middleware.name}:`, error);
183
- }
184
- }
185
- }
186
- // openapi / collect-logs middleware 没搬过来 (preset 用不到), 只保留 dev-logs
187
- var dev_logs_1 = require("./dev-logs");
188
- Object.defineProperty(exports, "createDevLogsMiddleware", { enumerable: true, get: function () { return dev_logs_1.createDevLogsMiddleware; } });
189
- // Export compat utilities for controllers that want to explicitly use them
190
- var compat_1 = require("./compat");
191
- Object.defineProperty(exports, "sendJson", { enumerable: true, get: function () { return compat_1.sendJson; } });
192
- Object.defineProperty(exports, "sendError", { enumerable: true, get: function () { return compat_1.sendError; } });
193
- Object.defineProperty(exports, "sendSuccess", { enumerable: true, get: function () { return compat_1.sendSuccess; } });
194
- Object.defineProperty(exports, "getQuery", { enumerable: true, get: function () { return compat_1.getQuery; } });
195
- Object.defineProperty(exports, "getQueryParam", { enumerable: true, get: function () { return compat_1.getQueryParam; } });
196
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/server-log/register.ts"],"names":[],"mappings":"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"}
@@ -1,99 +0,0 @@
1
- import type { Application, Router, RequestHandler } from 'express';
2
- /**
3
- * Shared context passed to all middlewares
4
- */
5
- export interface MiddlewareContext {
6
- /** Base path for the application (e.g., '/', '/app') */
7
- basePath: string;
8
- /** Whether running in development mode */
9
- isDev: boolean;
10
- /** Root directory of the project */
11
- rootDir: string;
12
- /** Additional custom options */
13
- [key: string]: any;
14
- }
15
- /**
16
- * Express-compatible app (rspack/webpack dev server)
17
- */
18
- export type ExpressApp = Application;
19
- /**
20
- * Vite-compatible middleware handler (Connect server)
21
- * Using 'any' to avoid dependency on vite types
22
- */
23
- export type ViteMiddleware = any;
24
- /**
25
- * Route registration info for better visibility
26
- */
27
- export interface RouteInfo {
28
- /** HTTP method (GET, POST, etc.) or '*' for all methods */
29
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'ALL' | '*';
30
- /** Route path (relative to mount point) */
31
- path: string;
32
- /** Description of what this route does */
33
- description: string;
34
- }
35
- /**
36
- * Route-based middleware
37
- * Mounts a router at a specific path
38
- */
39
- export interface RouteMiddleware {
40
- /** Unique name for this middleware */
41
- name: string;
42
- /**
43
- * Mount path for this middleware (relative to basePath)
44
- * e.g., '/dev/logs', '/openapi.json'
45
- * Required for route-based middlewares
46
- */
47
- mountPath: string;
48
- /**
49
- * List of routes provided by this middleware
50
- * Useful for debugging and documentation
51
- */
52
- routes?: RouteInfo[];
53
- /**
54
- * Determine if this middleware should be enabled
55
- * @param context - Shared context
56
- * @returns true if middleware should be registered
57
- */
58
- enabled?: (context: MiddlewareContext) => boolean;
59
- /**
60
- * Create router for this middleware
61
- * @param context - Shared context
62
- * @returns Express Router
63
- */
64
- createRouter: (context: MiddlewareContext) => Router;
65
- /** Explicitly disallow createHandler for route middleware */
66
- createHandler?: never;
67
- }
68
- /**
69
- * Global middleware
70
- * Applies to all requests without a specific mount path
71
- */
72
- export interface GlobalMiddleware {
73
- /** Unique name for this middleware */
74
- name: string;
75
- /**
76
- * Global middlewares should not have a mount path
77
- * If you need path-specific behavior, use RouteMiddleware instead
78
- */
79
- mountPath?: never;
80
- /**
81
- * Determine if this middleware should be enabled
82
- * @param context - Shared context
83
- * @returns true if middleware should be registered
84
- */
85
- enabled?: (context: MiddlewareContext) => boolean;
86
- /**
87
- * Create handler for this middleware
88
- * @param context - Shared context
89
- * @returns Express request handler
90
- */
91
- createHandler: (context: MiddlewareContext) => RequestHandler;
92
- /** Explicitly disallow createRouter for global middleware */
93
- createRouter?: never;
94
- }
95
- /**
96
- * Middleware can be either route-based or global
97
- */
98
- export type Middleware = RouteMiddleware | GlobalMiddleware;
99
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server-log/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC;IAClE,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAElD;;;;OAIG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAC;IAErD,6DAA6D;IAC7D,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAElD;;;;OAIG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,cAAc,CAAC;IAE9D,6DAA6D;IAC7D,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server-log/types.ts"],"names":[],"mappings":""}
@@ -1,46 +0,0 @@
1
- /**
2
- * 本地开发总开关。
3
- *
4
- * 由 `dev-local.sh`(平台 CLI `miaoda app sync` 同步到项目)export `MIAODA_LOCAL_DEV=1`。
5
- * 沙箱 dev / 生产都不设此 env,所以本地专属逻辑(view-context 占位填充、__runtime__ 反代沙箱)
6
- * 只在用户本机 `npm run dev:local` 时启用,沙箱 / 生产行为完全不受影响。
7
- */
8
- export declare function isLocalDev(): boolean;
9
- /**
10
- * 反代沙箱时的认证组装。两条入口:
11
- * - 新流(推荐):env `FORCE_AUTHN_PREVIEW_SESSION_ID` —— 后端下发的单值 session(实际是
12
- * X-Force-Runtime-Session 的值)。SDK 自动拼 cookie,suda-csrf-token 用本地常量。
13
- * - 老流(兼容):env `SANDBOX_COOKIE` —— 用户从浏览器手抠的完整 cookie 字符串(包含
14
- * X-Force-Runtime-Session / suda-csrf-token / suda_web_did 等)。原样透传,suda-csrf-token
15
- * 从其中正则提取作为出向 x-suda-csrf-token header。
16
- *
17
- * 两个都给的话 `SANDBOX_COOKIE` 优先("已显式拼好"信号更强)。两个都缺的话返回空字符串
18
- * (local dev 跑不通,但不抛错——交给上层 `localDev && sandboxBase` 条件兜底)。
19
- */
20
- export declare function composeSandboxOutboundAuth(): {
21
- cookie: string;
22
- csrfToken: string;
23
- };
24
- /**
25
- * 解析沙箱反代的 target origin。两条入口:
26
- * - 新流(推荐):env `MIAODA_DEV_PLATFORM_BASE` —— 后端下发的完整 URL,**可能带路径前缀**
27
- * (例如 `https://ai-tenant-<app>-<sandbox>.aiforce-boe-preview.bytedance.net/app/<app>`)。
28
- * SDK 抽 `new URL(...).origin` 拿 host,扔掉路径——避免反代 target 双前缀。
29
- * - 老流(兼容):env `SANDBOX_COOKIE` 配套用的 `SANDBOX_PUBLIC_URL`(用户从沙箱信息手抠 host)。
30
- *
31
- * 两个都给的话 `MIAODA_DEV_PLATFORM_BASE` 优先。两个都缺的话返回空字符串
32
- * (local dev 跑不通,但不抛错——交给上层 `localDev && sandboxBase` 条件兜底)。
33
- */
34
- export declare function resolveSandboxOrigin(): string;
35
- /**
36
- * 解析 `process.env.SUDA_WEBUSER`,容忍沙箱下发的 shell-quoted JSON。
37
- *
38
- * 沙箱 env pull 下发到 .env.local 的 SUDA_WEBUSER 是双引号包裹 + 内部 `\"` 转义;
39
- * dotenv@17 剥外层引号后**不还原**内部 `\"`,导致 `process.env.SUDA_WEBUSER` 是
40
- * `{\"user_id\":\"...\"}` 这种带反斜杠的字符串,直接 JSON.parse 会挂在
41
- * `Expected property name or '}' in JSON at position 1`。
42
- *
43
- * 容错:先直接 parse;失败再 unescape `\"` 后 parse;都失败返回 null。
44
- */
45
- export declare function parseSudaWebUserEnv<T = unknown>(raw: string | undefined): T | null;
46
- //# sourceMappingURL=local-dev.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-dev.d.ts","sourceRoot":"","sources":["../../src/utils/local-dev.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAIpC;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAclF;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,GAAG,IAAI,CAYlF"}