exisjs 0.9.2 → 0.10.0-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 (135) hide show
  1. package/README.md +3 -0
  2. package/bin/exis.js +76 -1
  3. package/dist/config/types.d.ts +11 -2
  4. package/dist/config/types.d.ts.map +1 -1
  5. package/dist/docs/content/README.md +1 -0
  6. package/dist/docs/content/cli/commands.mdx +23 -1
  7. package/dist/docs/content/cli/usage.mdx +2 -1
  8. package/dist/docs/content/config.mdx +47 -3
  9. package/dist/docs/content/deployment.mdx +163 -0
  10. package/dist/docs/content/installation.mdx +1 -1
  11. package/dist/docs/content/introduction.mdx +3 -0
  12. package/dist/docs/content/validation.mdx +1 -1
  13. package/dist/docs/reference/config.mdx +2 -1
  14. package/dist/docs/reference/validator.mdx +4 -0
  15. package/dist/internal.d.ts +16 -0
  16. package/dist/internal.d.ts.map +1 -0
  17. package/dist/internal.js +45 -0
  18. package/dist/internal.js.map +1 -0
  19. package/dist/{cli → lib}/resolve-aliases.d.ts.map +1 -1
  20. package/dist/{cli → lib}/resolve-aliases.js.map +1 -1
  21. package/dist/lib/start-command.d.ts +11 -0
  22. package/dist/lib/start-command.d.ts.map +1 -0
  23. package/dist/lib/start-command.js +79 -0
  24. package/dist/lib/start-command.js.map +1 -0
  25. package/dist/lib/start-server.js +4 -2
  26. package/dist/lib/start-server.js.map +1 -1
  27. package/dist/middleware/backpressure.d.ts +5 -0
  28. package/dist/middleware/backpressure.d.ts.map +1 -1
  29. package/dist/middleware/backpressure.js +66 -36
  30. package/dist/middleware/backpressure.js.map +1 -1
  31. package/dist/router/route-scanner.d.ts.map +1 -1
  32. package/dist/router/route-scanner.js +19 -20
  33. package/dist/router/route-scanner.js.map +1 -1
  34. package/dist/server/app.d.ts.map +1 -1
  35. package/dist/server/app.js +24 -1
  36. package/dist/server/app.js.map +1 -1
  37. package/dist/server/bootstrapper.d.ts.map +1 -1
  38. package/dist/server/bootstrapper.js +3 -1
  39. package/dist/server/bootstrapper.js.map +1 -1
  40. package/dist/server/cluster.d.ts.map +1 -1
  41. package/dist/server/cluster.js +3 -0
  42. package/dist/server/cluster.js.map +1 -1
  43. package/dist/server/metrics.d.ts +43 -0
  44. package/dist/server/metrics.d.ts.map +1 -0
  45. package/dist/server/metrics.js +254 -0
  46. package/dist/server/metrics.js.map +1 -0
  47. package/dist/utils/logger.d.ts.map +1 -1
  48. package/dist/utils/logger.js +31 -3
  49. package/dist/utils/logger.js.map +1 -1
  50. package/dist/validator/builder.d.ts +20 -16
  51. package/dist/validator/builder.d.ts.map +1 -1
  52. package/dist/validator/builder.js +21 -1
  53. package/dist/validator/builder.js.map +1 -1
  54. package/dist/validator/engine.d.ts.map +1 -1
  55. package/dist/validator/engine.js +8 -1
  56. package/dist/validator/engine.js.map +1 -1
  57. package/dist/validator/index.d.ts +4 -1
  58. package/dist/validator/index.d.ts.map +1 -1
  59. package/dist/validator/index.js +5 -1
  60. package/dist/validator/index.js.map +1 -1
  61. package/dist/validator/tex.d.ts +1 -1
  62. package/dist/validator/tex.d.ts.map +1 -1
  63. package/dist/validator/types.d.ts +7 -0
  64. package/dist/validator/types.d.ts.map +1 -1
  65. package/package.json +81 -9
  66. package/dist/cli/commands/build.d.ts +0 -11
  67. package/dist/cli/commands/build.d.ts.map +0 -1
  68. package/dist/cli/commands/build.js +0 -344
  69. package/dist/cli/commands/build.js.map +0 -1
  70. package/dist/cli/commands/clean.d.ts +0 -5
  71. package/dist/cli/commands/clean.d.ts.map +0 -1
  72. package/dist/cli/commands/clean.js +0 -30
  73. package/dist/cli/commands/clean.js.map +0 -1
  74. package/dist/cli/commands/dev.d.ts +0 -21
  75. package/dist/cli/commands/dev.d.ts.map +0 -1
  76. package/dist/cli/commands/dev.js +0 -842
  77. package/dist/cli/commands/dev.js.map +0 -1
  78. package/dist/cli/commands/doctor.d.ts +0 -2
  79. package/dist/cli/commands/doctor.d.ts.map +0 -1
  80. package/dist/cli/commands/doctor.js +0 -228
  81. package/dist/cli/commands/doctor.js.map +0 -1
  82. package/dist/cli/commands/exports.d.ts +0 -2
  83. package/dist/cli/commands/exports.d.ts.map +0 -1
  84. package/dist/cli/commands/exports.js +0 -48
  85. package/dist/cli/commands/exports.js.map +0 -1
  86. package/dist/cli/commands/generate.d.ts +0 -33
  87. package/dist/cli/commands/generate.d.ts.map +0 -1
  88. package/dist/cli/commands/generate.js +0 -469
  89. package/dist/cli/commands/generate.js.map +0 -1
  90. package/dist/cli/commands/init.d.ts +0 -2
  91. package/dist/cli/commands/init.d.ts.map +0 -1
  92. package/dist/cli/commands/init.js +0 -37
  93. package/dist/cli/commands/init.js.map +0 -1
  94. package/dist/cli/commands/repl.d.ts +0 -6
  95. package/dist/cli/commands/repl.d.ts.map +0 -1
  96. package/dist/cli/commands/repl.js +0 -75
  97. package/dist/cli/commands/repl.js.map +0 -1
  98. package/dist/cli/commands/run.d.ts +0 -7
  99. package/dist/cli/commands/run.d.ts.map +0 -1
  100. package/dist/cli/commands/run.js +0 -101
  101. package/dist/cli/commands/run.js.map +0 -1
  102. package/dist/cli/commands/start.d.ts +0 -8
  103. package/dist/cli/commands/start.d.ts.map +0 -1
  104. package/dist/cli/commands/start.js +0 -155
  105. package/dist/cli/commands/start.js.map +0 -1
  106. package/dist/cli/commands/test.d.ts +0 -8
  107. package/dist/cli/commands/test.d.ts.map +0 -1
  108. package/dist/cli/commands/test.js +0 -165
  109. package/dist/cli/commands/test.js.map +0 -1
  110. package/dist/cli/index.d.ts +0 -3
  111. package/dist/cli/index.d.ts.map +0 -1
  112. package/dist/cli/index.js +0 -268
  113. package/dist/cli/index.js.map +0 -1
  114. package/dist/cli/manifest.d.ts +0 -4
  115. package/dist/cli/manifest.d.ts.map +0 -1
  116. package/dist/cli/manifest.js +0 -489
  117. package/dist/cli/manifest.js.map +0 -1
  118. package/dist/cli/routes.d.ts +0 -17
  119. package/dist/cli/routes.d.ts.map +0 -1
  120. package/dist/cli/routes.js +0 -317
  121. package/dist/cli/routes.js.map +0 -1
  122. package/dist/cli/utils.d.ts +0 -24
  123. package/dist/cli/utils.d.ts.map +0 -1
  124. package/dist/cli/utils.js +0 -54
  125. package/dist/cli/utils.js.map +0 -1
  126. package/dist/lib/inspect-routes.d.ts +0 -2
  127. package/dist/lib/inspect-routes.d.ts.map +0 -1
  128. package/dist/lib/inspect-routes.js +0 -150
  129. package/dist/lib/inspect-routes.js.map +0 -1
  130. package/dist/lib/start-repl.d.ts +0 -2
  131. package/dist/lib/start-repl.d.ts.map +0 -1
  132. package/dist/lib/start-repl.js +0 -120
  133. package/dist/lib/start-repl.js.map +0 -1
  134. /package/dist/{cli → lib}/resolve-aliases.d.ts +0 -0
  135. /package/dist/{cli → lib}/resolve-aliases.js +0 -0
@@ -1,489 +0,0 @@
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.atomicWriteFile = atomicWriteFile;
37
- exports.generateManifest = generateManifest;
38
- exports.generateExisEnv = generateExisEnv;
39
- const path = __importStar(require("node:path"));
40
- const fs = __importStar(require("node:fs/promises"));
41
- const fsSync = __importStar(require("node:fs"));
42
- const crypto = __importStar(require("node:crypto"));
43
- async function atomicWriteFile(filePath, content) {
44
- const dir = path.dirname(filePath);
45
- await fs.mkdir(dir, { recursive: true });
46
- const tmpPath = path.join(dir, `.tmp_${path.basename(filePath)}_${Date.now()}_${Math.random().toString(36).substring(2, 6)}`);
47
- await fs.writeFile(tmpPath, content, 'utf8');
48
- try {
49
- await fs.rename(tmpPath, filePath);
50
- }
51
- catch {
52
- await fs.copyFile(tmpPath, filePath);
53
- await fs.unlink(tmpPath).catch(() => {
54
- /* ignore */
55
- });
56
- }
57
- }
58
- async function generateManifest(cwd, outDir, isDev = false) {
59
- const exisDir = path.join(cwd, '.exis');
60
- // Ensure .exis exists
61
- try {
62
- await fs.mkdir(exisDir, { recursive: true });
63
- }
64
- catch {
65
- // ignore
66
- }
67
- // ─── 1. Find HTTP Routes Directory ──────────────────────────────────────────
68
- const searchDirs = isDev
69
- ? [path.join(cwd, 'src', 'http'), path.join(cwd, 'http')]
70
- : [
71
- path.join(cwd, outDir, 'src', 'http'),
72
- path.join(cwd, outDir, 'http'),
73
- path.join(cwd, 'src', 'http'),
74
- ];
75
- let apiDir = '';
76
- for (const dir of searchDirs) {
77
- try {
78
- const stat = await fs.stat(dir);
79
- if (stat.isDirectory()) {
80
- apiDir = dir;
81
- break;
82
- }
83
- }
84
- catch {
85
- /* ignore */
86
- }
87
- }
88
- const validRoutes = [];
89
- if (apiDir) {
90
- const routes = await scanDirectory(apiDir, '/');
91
- for (const r of routes) {
92
- if (r.filePath.endsWith('route.ts') ||
93
- r.filePath.endsWith('route.js') ||
94
- /\.route\.[jt]s$/.test(r.filePath)) {
95
- validRoutes.push(r);
96
- }
97
- }
98
- }
99
- let importLines = '';
100
- let exportLines = 'export const manifest = [\n';
101
- let typeImportLines = '';
102
- let typeFlatLines = 'export interface AppRouterPaths {\n';
103
- for (let i = 0; i < validRoutes.length; i++) {
104
- const route = validRoutes[i];
105
- let relativePath = path
106
- .relative(exisDir, route.filePath)
107
- .replace(/\\/g, '/');
108
- if (!relativePath.startsWith('.')) {
109
- relativePath = './' + relativePath;
110
- }
111
- if (!isDev) {
112
- relativePath = relativePath.replace(/\.ts$/, '.js');
113
- }
114
- const moduleName = `route_${i}`;
115
- importLines += `import * as ${moduleName} from '${relativePath}'\n`;
116
- const typeRelativePath = relativePath.replace(/\.(js|ts)$/, '');
117
- typeImportLines += `import type * as Route${i} from '${typeRelativePath}'\n`;
118
- let hash = '00000000';
119
- try {
120
- const content = await fs.readFile(route.filePath, 'utf8');
121
- hash = crypto
122
- .createHash('sha256')
123
- .update(content)
124
- .digest('hex')
125
- .substring(0, 8);
126
- }
127
- catch {
128
- // ignore
129
- }
130
- const rootRelativePath = path
131
- .relative(cwd, route.filePath)
132
- .replace(/\\/g, '/');
133
- exportLines += ` { routePath: '${route.routePath}', module: ${moduleName}, filePath: '${rootRelativePath}', hash: '${hash}' },\n`;
134
- typeFlatLines += ` '${route.routePath}': InferRoute<typeof Route${i}>\n`;
135
- }
136
- exportLines += ']\n';
137
- typeFlatLines += '}\n';
138
- // ─── 2. Scan Error Handler File ─────────────────────────────────────────────
139
- let errorHandlerImport = '';
140
- let errorHandlerExport = 'export const errorHandler = null\n';
141
- if (apiDir) {
142
- const candidateErrorFiles = [
143
- path.join(apiDir, 'error.ts'),
144
- path.join(apiDir, 'error.js'),
145
- ];
146
- let foundErrorFile = '';
147
- for (const f of candidateErrorFiles) {
148
- if (await fs
149
- .stat(f)
150
- .then((s) => s.isFile())
151
- .catch(() => false)) {
152
- foundErrorFile = f;
153
- break;
154
- }
155
- }
156
- if (foundErrorFile) {
157
- let relErrorPath = path
158
- .relative(exisDir, foundErrorFile)
159
- .replace(/\\/g, '/');
160
- if (!relErrorPath.startsWith('.')) {
161
- relErrorPath = './' + relErrorPath;
162
- }
163
- if (!isDev) {
164
- relErrorPath = relErrorPath.replace(/\.ts$/, '.js');
165
- }
166
- errorHandlerImport = `import * as errorHandlerModule from '${relErrorPath}'\n`;
167
- errorHandlerExport = `export const errorHandler = errorHandlerModule\n`;
168
- }
169
- }
170
- // ─── 3. Scan Cron Job Files ─────────────────────────────────────────────────
171
- let cronDirs;
172
- if (isDev) {
173
- cronDirs = [path.join(cwd, 'src', 'cron'), path.join(cwd, 'cron')];
174
- }
175
- else {
176
- const prodCronDirs = [
177
- path.join(cwd, outDir, 'src', 'cron'),
178
- path.join(cwd, outDir, 'cron'),
179
- ];
180
- const existingProdDir = prodCronDirs.find((d) => fsSync.existsSync(d));
181
- if (existingProdDir) {
182
- cronDirs = [existingProdDir];
183
- }
184
- else {
185
- cronDirs = [path.join(cwd, 'src', 'cron'), path.join(cwd, 'cron')];
186
- }
187
- }
188
- const discoveredCronFiles = [];
189
- for (const cDir of cronDirs) {
190
- try {
191
- const stat = await fs.stat(cDir);
192
- if (stat.isDirectory()) {
193
- const files = await scanAllFiles(cDir);
194
- for (const f of files) {
195
- if (!discoveredCronFiles.includes(f)) {
196
- discoveredCronFiles.push(f);
197
- }
198
- }
199
- }
200
- }
201
- catch {
202
- // ignore
203
- }
204
- }
205
- // Check colocated cron in apiDir
206
- if (apiDir) {
207
- const colocatedCronTs = path.join(apiDir, 'cron.ts');
208
- const colocatedCronJs = path.join(apiDir, 'cron.js');
209
- if (await fs
210
- .stat(colocatedCronTs)
211
- .then((s) => s.isFile())
212
- .catch(() => false)) {
213
- if (!discoveredCronFiles.includes(colocatedCronTs))
214
- discoveredCronFiles.push(colocatedCronTs);
215
- }
216
- else if (await fs
217
- .stat(colocatedCronJs)
218
- .then((s) => s.isFile())
219
- .catch(() => false)) {
220
- if (!discoveredCronFiles.includes(colocatedCronJs))
221
- discoveredCronFiles.push(colocatedCronJs);
222
- }
223
- }
224
- let cronImports = '';
225
- let cronExports = 'export const cronJobs = [\n';
226
- for (let cIdx = 0; cIdx < discoveredCronFiles.length; cIdx++) {
227
- const cronFile = discoveredCronFiles[cIdx];
228
- let relCronPath = path.relative(exisDir, cronFile).replace(/\\/g, '/');
229
- if (!relCronPath.startsWith('.')) {
230
- relCronPath = './' + relCronPath;
231
- }
232
- if (!isDev) {
233
- relCronPath = relCronPath.replace(/\.ts$/, '.js');
234
- }
235
- const cronModName = `cron_${cIdx}`;
236
- cronImports += `import * as ${cronModName} from '${relCronPath}'\n`;
237
- const rootRelCron = path.relative(cwd, cronFile).replace(/\\/g, '/');
238
- cronExports += ` { filePath: '${rootRelCron}', module: ${cronModName} },\n`;
239
- }
240
- cronExports += ']\n';
241
- // ─── 4. Write Pre-compiled Manifest ─────────────────────────────────────────
242
- const manifestContent = `// Automatically generated by ExisJS\n\n${importLines}${errorHandlerImport}${cronImports}\n${exportLines}\n${errorHandlerExport}\n${cronExports}`;
243
- if (!isDev) {
244
- await atomicWriteFile(path.join(exisDir, 'routes-manifest.js'), manifestContent);
245
- }
246
- else {
247
- try {
248
- await fs.unlink(path.join(exisDir, 'routes-manifest.js'));
249
- }
250
- catch {
251
- // ignore
252
- }
253
- }
254
- // ─── 5. Type Generation for AppRouter ───────────────────────────────────────
255
- const treeRoot = buildRouteTree(validRoutes.map((r, idx) => ({ routePath: r.routePath, index: idx })));
256
- const renderedTree = renderTreeNode(treeRoot);
257
- const typesContent = `// Automatically generated by ExisJS
258
- // NOTE: This file is automatically generated. Do not edit manually.
259
-
260
- export type InferRouteHandler<T> =
261
- T extends { __type: { body: infer B; query: infer Q; params: infer P; return: infer R } }
262
- ? {
263
- [M in (T extends { method: infer Meth extends string } ? Uppercase<Meth> : 'GET')]: (
264
- payload?: B,
265
- options?: { query?: Q; params?: P; headers?: Record<string, string> }
266
- ) => Promise<Awaited<R>>
267
- } & {
268
- [M in (T extends { method: infer Meth extends string } ? Lowercase<Meth> : 'get')]: (
269
- payload?: B,
270
- options?: { query?: Q; params?: P; headers?: Record<string, string> }
271
- ) => Promise<Awaited<R>>
272
- }
273
- : T extends { [key: string]: any }
274
- ? {
275
- [K in keyof T]: T[K] extends { __type: { body: infer B; query: infer Q; params: infer P; return: infer R } }
276
- ? (
277
- payload?: B,
278
- options?: { query?: Q; params?: P; headers?: Record<string, string> }
279
- ) => Promise<Awaited<R>>
280
- : T[K] extends (...args: any[]) => infer R
281
- ? (...args: any[]) => Promise<Awaited<R>>
282
- : T[K]
283
- }
284
- : T extends (...args: any[]) => infer R
285
- ? {
286
- GET: (...args: any[]) => Promise<Awaited<R>>
287
- get: (...args: any[]) => Promise<Awaited<R>>
288
- }
289
- : any
290
-
291
- export type InferRoute<T> =
292
- T extends { default: infer D }
293
- ? InferRouteHandler<D> & (D extends (...args: any[]) => any ? unknown : { [K in Exclude<keyof T, 'default'>]: InferRouteHandler<T[K]> })
294
- : InferRouteHandler<T>
295
-
296
- ${typeImportLines}
297
- ${typeFlatLines}
298
- export type AppRouterTree = ${renderedTree}
299
-
300
- export type AppRouter = AppRouterPaths & AppRouterTree
301
- `;
302
- await atomicWriteFile(path.join(exisDir, 'types.d.ts'), typesContent);
303
- // Also write to .exis/types/index.d.ts for strict TS module resolution modes
304
- try {
305
- const typesSubdir = path.join(exisDir, 'types');
306
- await atomicWriteFile(path.join(typesSubdir, 'index.d.ts'), typesContent);
307
- }
308
- catch {
309
- // ignore
310
- }
311
- // ─── 6. Real-time Dev Diagnostics ───────────────────────────────────────────
312
- if (isDev) {
313
- const devStatus = {
314
- generatedAt: new Date().toISOString(),
315
- routeCount: validRoutes.length,
316
- cronCount: discoveredCronFiles.length,
317
- hasErrorHandler: Boolean(errorHandlerImport),
318
- routes: validRoutes.map((r) => ({
319
- path: r.routePath,
320
- file: path.relative(cwd, r.filePath).replace(/\\/g, '/'),
321
- })),
322
- cronJobs: discoveredCronFiles.map((f) => path.relative(cwd, f).replace(/\\/g, '/')),
323
- status: 'ok',
324
- };
325
- await atomicWriteFile(path.join(exisDir, 'dev-status.json'), JSON.stringify(devStatus, null, 2));
326
- }
327
- await generateExisEnv(cwd);
328
- }
329
- async function scanAllFiles(dir) {
330
- const entries = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
331
- const files = [];
332
- for (const entry of entries) {
333
- const full = path.join(dir, entry.name);
334
- if (entry.isDirectory()) {
335
- files.push(...(await scanAllFiles(full)));
336
- }
337
- else if (entry.isFile() &&
338
- /\.[jmt]s$/.test(entry.name) &&
339
- !entry.name.endsWith('.d.ts')) {
340
- files.push(full);
341
- }
342
- }
343
- return files;
344
- }
345
- function buildRouteTree(routes) {
346
- const root = { children: new Map() };
347
- for (const r of routes) {
348
- const segments = r.routePath.split('/').filter(Boolean);
349
- if (segments.length === 0) {
350
- root.routeIndex = r.index;
351
- }
352
- else {
353
- let current = root;
354
- for (const seg of segments) {
355
- if (!current.children.has(seg)) {
356
- current.children.set(seg, { children: new Map() });
357
- }
358
- current = current.children.get(seg);
359
- }
360
- current.routeIndex = r.index;
361
- }
362
- }
363
- return root;
364
- }
365
- function isValidJsIdentifier(name) {
366
- return /^[$A-Z_][0-9A-Z_$]*$/i.test(name);
367
- }
368
- function renderTreeNode(node, indent = 0) {
369
- const pad = ' '.repeat(indent);
370
- const parts = [];
371
- if (node.routeIndex !== undefined) {
372
- parts.push(`InferRoute<typeof Route${node.routeIndex}>`);
373
- }
374
- if (node.children.size > 0) {
375
- const childLines = [];
376
- for (const [seg, childNode] of node.children.entries()) {
377
- const key = isValidJsIdentifier(seg) ? seg : `'${seg}'`;
378
- const renderedChild = renderTreeNode(childNode, indent + 2);
379
- childLines.push(`${' '.repeat(indent + 2)}${key}: ${renderedChild}`);
380
- }
381
- const childrenType = `{\n${childLines.join('\n')}\n${pad}}`;
382
- parts.push(childrenType);
383
- }
384
- if (parts.length === 0)
385
- return '{}';
386
- if (parts.length === 1)
387
- return parts[0];
388
- return `(${parts.join(' & ')})`;
389
- }
390
- async function scanDirectory(dir, baseRoute = '/') {
391
- const entries = await fs.readdir(dir, { withFileTypes: true });
392
- const results = [];
393
- for (const entry of entries) {
394
- const fullPath = path.join(dir, entry.name);
395
- if (entry.isDirectory()) {
396
- let segment = entry.name;
397
- if (segment.startsWith('(') && segment.endsWith(')')) {
398
- const subResults = await scanDirectory(fullPath, baseRoute);
399
- results.push(...subResults);
400
- continue;
401
- }
402
- if (segment.startsWith('[...') && segment.endsWith(']')) {
403
- segment = '*' + segment.slice(4, -1);
404
- }
405
- else {
406
- segment = segment.replace(/\[(.*?)\]/g, ':$1');
407
- }
408
- const nextBase = baseRoute === '/' ? `/${segment}` : `${baseRoute}/${segment}`;
409
- const subResults = await scanDirectory(fullPath, nextBase);
410
- results.push(...subResults);
411
- }
412
- else {
413
- results.push({ filePath: fullPath, routePath: baseRoute });
414
- }
415
- }
416
- return results;
417
- }
418
- async function generateExisEnv(cwd) {
419
- const isTsProject = await fs
420
- .access(path.join(cwd, 'tsconfig.json'))
421
- .then(() => true)
422
- .catch(() => false);
423
- if (!isTsProject)
424
- return;
425
- let hasNodeTypes;
426
- try {
427
- const req = typeof require !== 'undefined' ? require : eval('require');
428
- req.resolve('@types/node/package.json', { paths: [cwd, __dirname] });
429
- hasNodeTypes = true;
430
- }
431
- catch {
432
- hasNodeTypes = await fs
433
- .access(path.join(cwd, 'node_modules', '@types', 'node'))
434
- .then(() => true)
435
- .catch(() => false);
436
- }
437
- let envContent = `/* eslint-disable */
438
- /// <reference types="exisjs" />
439
-
440
- // NOTE: This file should not be edited
441
- // It is automatically generated by ExisJS
442
-
443
- // Exposes your compiled routes to the TypeScript server
444
- import type { AppRouter } from './.exis/types'
445
- `;
446
- if (!hasNodeTypes) {
447
- envContent += `
448
- // Fallback types for production builds where @types/node is pruned
449
- declare var process: any;
450
- declare var console: any;
451
- declare var Buffer: any;
452
- declare var __dirname: string;
453
- declare var __filename: string;
454
- declare var module: any;
455
- declare var exports: any;
456
- declare var require: any;
457
- declare module 'node:*' {
458
- const x: any;
459
- export = x;
460
- }
461
- declare module 'fs' {
462
- const x: any;
463
- export = x;
464
- }
465
- declare module 'fs/promises' {
466
- const x: any;
467
- export = x;
468
- }
469
- declare module 'path' {
470
- const x: any;
471
- export = x;
472
- }
473
- declare module 'crypto' {
474
- const x: any;
475
- export = x;
476
- }
477
- declare module 'http' {
478
- const x: any;
479
- export = x;
480
- }
481
- declare module 'child_process' {
482
- const x: any;
483
- export = x;
484
- }
485
- `;
486
- }
487
- await atomicWriteFile(path.join(cwd, 'exis.d.ts'), envContent);
488
- }
489
- //# sourceMappingURL=manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/cli/manifest.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- interface RoutesCommandOptions {
2
- entry?: string;
3
- json?: boolean;
4
- method?: string;
5
- filter?: string;
6
- }
7
- export interface ExtractedRoute {
8
- method: string;
9
- path: string;
10
- handlersCount: number;
11
- sourceFile: string | null;
12
- /** `public`, `roles: a|b`, `perms: x+y`, or `-` when the route declares none */
13
- access?: string;
14
- }
15
- export declare function routesCommand(cwd?: string, options?: string | RoutesCommandOptions): Promise<void>;
16
- export {};
17
- //# sourceMappingURL=routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/cli/routes.ts"],"names":[],"mappings":"AAOA,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,aAAa,CACjC,GAAG,GAAE,MAAsB,EAC3B,OAAO,GAAE,MAAM,GAAG,oBAAyB,iBA8Q5C"}