vector-framework 1.0.0 → 1.2.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 (104) hide show
  1. package/README.md +87 -634
  2. package/dist/auth/protected.d.ts.map +1 -1
  3. package/dist/auth/protected.js.map +1 -1
  4. package/dist/cache/manager.d.ts +5 -2
  5. package/dist/cache/manager.d.ts.map +1 -1
  6. package/dist/cache/manager.js +21 -12
  7. package/dist/cache/manager.js.map +1 -1
  8. package/dist/cli/index.js +60 -126
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/option-resolution.d.ts +4 -0
  11. package/dist/cli/option-resolution.d.ts.map +1 -0
  12. package/dist/cli/option-resolution.js +28 -0
  13. package/dist/cli/option-resolution.js.map +1 -0
  14. package/dist/cli.js +2774 -599
  15. package/dist/constants/index.d.ts +3 -0
  16. package/dist/constants/index.d.ts.map +1 -1
  17. package/dist/constants/index.js +6 -0
  18. package/dist/constants/index.js.map +1 -1
  19. package/dist/core/config-loader.d.ts +2 -2
  20. package/dist/core/config-loader.d.ts.map +1 -1
  21. package/dist/core/config-loader.js +18 -18
  22. package/dist/core/config-loader.js.map +1 -1
  23. package/dist/core/router.d.ts +41 -15
  24. package/dist/core/router.d.ts.map +1 -1
  25. package/dist/core/router.js +465 -150
  26. package/dist/core/router.js.map +1 -1
  27. package/dist/core/server.d.ts +17 -3
  28. package/dist/core/server.d.ts.map +1 -1
  29. package/dist/core/server.js +274 -33
  30. package/dist/core/server.js.map +1 -1
  31. package/dist/core/vector.d.ts +9 -8
  32. package/dist/core/vector.d.ts.map +1 -1
  33. package/dist/core/vector.js +40 -32
  34. package/dist/core/vector.js.map +1 -1
  35. package/dist/dev/route-generator.d.ts.map +1 -1
  36. package/dist/dev/route-generator.js.map +1 -1
  37. package/dist/dev/route-scanner.d.ts +1 -1
  38. package/dist/dev/route-scanner.d.ts.map +1 -1
  39. package/dist/dev/route-scanner.js +37 -43
  40. package/dist/dev/route-scanner.js.map +1 -1
  41. package/dist/http.d.ts +14 -14
  42. package/dist/http.d.ts.map +1 -1
  43. package/dist/http.js +84 -84
  44. package/dist/http.js.map +1 -1
  45. package/dist/index.d.ts +3 -3
  46. package/dist/index.js +1314 -8
  47. package/dist/index.mjs +1314 -8
  48. package/dist/middleware/manager.d.ts +1 -1
  49. package/dist/middleware/manager.d.ts.map +1 -1
  50. package/dist/middleware/manager.js +4 -0
  51. package/dist/middleware/manager.js.map +1 -1
  52. package/dist/openapi/docs-ui.d.ts +2 -0
  53. package/dist/openapi/docs-ui.d.ts.map +1 -0
  54. package/dist/openapi/docs-ui.js +1313 -0
  55. package/dist/openapi/docs-ui.js.map +1 -0
  56. package/dist/openapi/generator.d.ts +12 -0
  57. package/dist/openapi/generator.d.ts.map +1 -0
  58. package/dist/openapi/generator.js +273 -0
  59. package/dist/openapi/generator.js.map +1 -0
  60. package/dist/types/index.d.ts +70 -11
  61. package/dist/types/index.d.ts.map +1 -1
  62. package/dist/types/standard-schema.d.ts +118 -0
  63. package/dist/types/standard-schema.d.ts.map +1 -0
  64. package/dist/types/standard-schema.js +2 -0
  65. package/dist/types/standard-schema.js.map +1 -0
  66. package/dist/utils/cors.d.ts +13 -0
  67. package/dist/utils/cors.d.ts.map +1 -0
  68. package/dist/utils/cors.js +89 -0
  69. package/dist/utils/cors.js.map +1 -0
  70. package/dist/utils/path.d.ts +7 -0
  71. package/dist/utils/path.d.ts.map +1 -1
  72. package/dist/utils/path.js +14 -3
  73. package/dist/utils/path.js.map +1 -1
  74. package/dist/utils/schema-validation.d.ts +31 -0
  75. package/dist/utils/schema-validation.d.ts.map +1 -0
  76. package/dist/utils/schema-validation.js +77 -0
  77. package/dist/utils/schema-validation.js.map +1 -0
  78. package/dist/utils/validation.d.ts.map +1 -1
  79. package/dist/utils/validation.js +1 -0
  80. package/dist/utils/validation.js.map +1 -1
  81. package/package.json +24 -19
  82. package/src/auth/protected.ts +3 -13
  83. package/src/cache/manager.ts +25 -30
  84. package/src/cli/index.ts +62 -141
  85. package/src/cli/option-resolution.ts +40 -0
  86. package/src/constants/index.ts +7 -0
  87. package/src/core/config-loader.ts +20 -22
  88. package/src/core/router.ts +535 -155
  89. package/src/core/server.ts +354 -45
  90. package/src/core/vector.ts +71 -61
  91. package/src/dev/route-generator.ts +1 -3
  92. package/src/dev/route-scanner.ts +38 -51
  93. package/src/http.ts +117 -187
  94. package/src/index.ts +3 -3
  95. package/src/middleware/manager.ts +8 -11
  96. package/src/openapi/assets/tailwindcdn.js +83 -0
  97. package/src/openapi/docs-ui.ts +1317 -0
  98. package/src/openapi/generator.ts +359 -0
  99. package/src/types/index.ts +104 -17
  100. package/src/types/standard-schema.ts +147 -0
  101. package/src/utils/cors.ts +101 -0
  102. package/src/utils/path.ts +19 -4
  103. package/src/utils/schema-validation.ts +123 -0
  104. package/src/utils/validation.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"protected.d.ts","sourceRoot":"","sources":["../../src/auth/protected.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,qBAAa,WAAW,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB;IACtE,OAAO,CAAC,gBAAgB,CAAyC;IAEjE,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAI/C,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAkBvF,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO;IAIxD,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;CAGpE"}
1
+ {"version":3,"file":"protected.d.ts","sourceRoot":"","sources":["../../src/auth/protected.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE9G,qBAAa,WAAW,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB;IACtE,OAAO,CAAC,gBAAgB,CAAyC;IAEjE,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAI/C,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAcvF,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO;IAIxD,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;CAGpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"protected.js","sourceRoot":"","sources":["../../src/auth/protected.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,WAAW;IACd,gBAAgB,GAAoC,IAAI,CAAC;IAEjE,mBAAmB,CAAC,OAAiC;QACnD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA8B;QAC/C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,eAAe,CAAC,OAA8B;QAC5C,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,OAA8B;QACpC,OAAO,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"protected.js","sourceRoot":"","sources":["../../src/auth/protected.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACd,gBAAgB,GAAoC,IAAI,CAAC;IAEjE,mBAAmB,CAAC,OAAiC;QACnD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA8B;QAC/C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;QAC7G,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,eAAe,CAAC,OAA8B;QAC5C,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,OAA8B;QACpC,OAAO,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAClC,CAAC;CACF"}
@@ -1,8 +1,9 @@
1
- import type { CacheHandler, DefaultVectorTypes, GetCacheType, VectorTypes } from "../types";
1
+ import type { CacheHandler, DefaultVectorTypes, GetCacheType, VectorTypes } from '../types';
2
2
  export declare class CacheManager<TTypes extends VectorTypes = DefaultVectorTypes> {
3
3
  private cacheHandler;
4
4
  private memoryCache;
5
5
  private cleanupInterval;
6
+ private inflight;
6
7
  setCacheHandler(handler: CacheHandler): void;
7
8
  get<T = GetCacheType<TTypes>>(key: string, factory: () => Promise<T>, ttl?: number): Promise<T>;
8
9
  private getFromMemoryCache;
@@ -14,7 +15,9 @@ export declare class CacheManager<TTypes extends VectorTypes = DefaultVectorType
14
15
  set<T = GetCacheType<TTypes>>(key: string, value: T, ttl?: number): Promise<void>;
15
16
  delete(key: string): boolean;
16
17
  has(key: string): boolean;
17
- generateKey(request: Request, options?: {
18
+ generateKey(request: Request & {
19
+ _parsedUrl?: URL;
20
+ }, options?: {
18
21
  authUser?: any;
19
22
  }): string;
20
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACZ,MAAM,UAAU,CAAC;AAOlB,qBAAa,YAAY,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB;IACvE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,eAAe,CAAsB;IAE7C,eAAe,CAAC,OAAO,EAAE,YAAY;IAI/B,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,GAAG,GAAE,MAAiC,GACrC,OAAO,CAAC,CAAC,CAAC;YAYC,kBAAkB;IAkBhC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IActB,KAAK,IAAI,IAAI;IAQP,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAChC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,GAAG,GAAE,MAAiC,GACrC,OAAO,CAAC,IAAI,CAAC;IAchB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAYzB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,MAAM;CAWpE"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAO5F,qBAAa,YAAY,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB;IACvE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAwC;IAExD,eAAe,CAAC,OAAO,EAAE,YAAY;IAI/B,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,GAAG,GAAE,MAAiC,GACrC,OAAO,CAAC,CAAC,CAAC;YAYC,kBAAkB;IA2BhC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IActB,KAAK,IAAI,IAAI;IAQP,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,GAAE,MAAiC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAYzB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG;QAAE,UAAU,CAAC,EAAE,GAAG,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,MAAM;CAK3F"}
@@ -1,8 +1,9 @@
1
- import { DEFAULT_CONFIG } from "../constants";
1
+ import { DEFAULT_CONFIG } from '../constants';
2
2
  export class CacheManager {
3
3
  cacheHandler = null;
4
4
  memoryCache = new Map();
5
5
  cleanupInterval = null;
6
+ inflight = new Map();
6
7
  setCacheHandler(handler) {
7
8
  this.cacheHandler = handler;
8
9
  }
@@ -21,9 +22,22 @@ export class CacheManager {
21
22
  if (this.isCacheValid(cached, now)) {
22
23
  return cached.value;
23
24
  }
24
- const value = await factory();
25
- this.setInMemoryCache(key, value, ttl);
26
- return value;
25
+ // Deduplicate concurrent requests for the same key (cache stampede prevention)
26
+ if (this.inflight.has(key)) {
27
+ return (await this.inflight.get(key));
28
+ }
29
+ const promise = (async () => {
30
+ const value = await factory();
31
+ this.setInMemoryCache(key, value, ttl);
32
+ return value;
33
+ })();
34
+ this.inflight.set(key, promise);
35
+ try {
36
+ return await promise;
37
+ }
38
+ finally {
39
+ this.inflight.delete(key);
40
+ }
27
41
  }
28
42
  isCacheValid(entry, now) {
29
43
  return entry !== undefined && entry.expires > now;
@@ -84,14 +98,9 @@ export class CacheManager {
84
98
  return true;
85
99
  }
86
100
  generateKey(request, options) {
87
- const url = new URL(request.url);
88
- const parts = [
89
- request.method,
90
- url.pathname,
91
- url.search,
92
- options?.authUser?.id || "anonymous",
93
- ];
94
- return parts.join(":");
101
+ const url = request._parsedUrl ?? new URL(request.url);
102
+ const userId = options?.authUser?.id != null ? String(options.authUser.id) : 'anonymous';
103
+ return `${request.method}:${url.pathname}:${url.search}:${userId}`;
95
104
  }
96
105
  }
97
106
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -1,78 +1,83 @@
1
1
  #!/usr/bin/env bun
2
- import { watch } from "node:fs";
3
- import { parseArgs } from "node:util";
4
- import { getVectorInstance } from "../core/vector";
5
- import { ConfigLoader } from "../core/config-loader";
2
+ import { watch } from 'node:fs';
3
+ import { parseArgs } from 'node:util';
4
+ import { getVectorInstance } from '../core/vector';
5
+ import { ConfigLoader } from '../core/config-loader';
6
+ import { resolveHost, resolvePort, resolveRoutesDir } from './option-resolution';
6
7
  // Compatibility layer for both Node and Bun
7
- const args = typeof Bun !== "undefined" ? Bun.argv.slice(2) : process.argv.slice(2);
8
+ const args = typeof Bun !== 'undefined' ? Bun.argv.slice(2) : process.argv.slice(2);
8
9
  const { values, positionals } = parseArgs({
9
10
  args,
10
11
  options: {
11
12
  port: {
12
- type: "string",
13
- short: "p",
14
- default: "3000",
13
+ type: 'string',
14
+ short: 'p',
15
+ default: '3000',
15
16
  },
16
17
  host: {
17
- type: "string",
18
- short: "h",
19
- default: "localhost",
18
+ type: 'string',
19
+ short: 'h',
20
+ default: 'localhost',
20
21
  },
21
22
  routes: {
22
- type: "string",
23
- short: "r",
24
- default: "./routes",
23
+ type: 'string',
24
+ short: 'r',
25
+ default: './routes',
25
26
  },
26
27
  watch: {
27
- type: "boolean",
28
- short: "w",
28
+ type: 'boolean',
29
+ short: 'w',
29
30
  default: true,
30
31
  },
31
32
  cors: {
32
- type: "boolean",
33
+ type: 'boolean',
33
34
  default: true,
34
35
  },
35
36
  config: {
36
- type: "string",
37
- short: "c",
37
+ type: 'string',
38
+ short: 'c',
38
39
  },
39
40
  },
40
41
  strict: true,
41
42
  allowPositionals: true,
42
43
  });
43
- const command = positionals[0] || "dev";
44
+ const command = positionals[0] || 'dev';
45
+ const hasRoutesOption = args.some((arg) => arg === '--routes' || arg === '-r' || arg.startsWith('--routes='));
46
+ const hasHostOption = args.some((arg) => arg === '--host' || arg === '-h' || arg.startsWith('--host='));
47
+ const hasPortOption = args.some((arg) => arg === '--port' || arg === '-p' || arg.startsWith('--port='));
44
48
  async function runDev() {
45
- const isDev = command === "dev";
49
+ const isDev = command === 'dev';
46
50
  let server = null;
47
51
  let vector = null;
48
52
  async function startServer() {
49
53
  // Create a timeout promise that rejects after 10 seconds
50
54
  const timeoutPromise = new Promise((_, reject) => {
51
55
  setTimeout(() => {
52
- reject(new Error("Server startup timed out (10s)"));
56
+ reject(new Error('Server startup timed out (10s)'));
53
57
  }, 10000);
54
58
  });
55
59
  // Create the actual server start promise
56
60
  const serverStartPromise = (async () => {
57
- // Load configuration using ConfigLoader
58
- const configLoader = new ConfigLoader(values.config);
59
- const config = await configLoader.load();
60
- // Merge CLI options with loaded config
61
- // Only use CLI values if config doesn't have them
62
- config.port = config.port ?? Number.parseInt(values.port);
63
- config.hostname = config.hostname ?? values.host;
64
- config.routesDir = config.routesDir ?? values.routes;
61
+ const explicitConfigPath = values.config;
62
+ const configLoader = new ConfigLoader(explicitConfigPath);
63
+ const loadedConfig = await configLoader.load();
64
+ const config = { ...loadedConfig };
65
+ // Merge CLI options with loaded config.
66
+ // Explicit --port/--host always override config values.
67
+ config.port = resolvePort(config.port, hasPortOption, values.port);
68
+ config.hostname = resolveHost(config.hostname, hasHostOption, values.host);
69
+ config.routesDir = resolveRoutesDir(config.routesDir, hasRoutesOption, values.routes);
65
70
  config.development = config.development ?? isDev;
66
71
  config.autoDiscover = true; // Always auto-discover routes
67
72
  // Apply CLI CORS option if not explicitly set in config
68
73
  // Only apply default CORS if config.cors is undefined (not set)
69
74
  if (config.cors === undefined && values.cors) {
70
75
  config.cors = {
71
- origin: "*",
76
+ origin: '*',
72
77
  credentials: true,
73
- allowHeaders: "Content-Type, Authorization",
74
- allowMethods: "GET, POST, PUT, PATCH, DELETE, OPTIONS",
75
- exposeHeaders: "Authorization",
78
+ allowHeaders: 'Content-Type, Authorization',
79
+ allowMethods: 'GET, POST, PUT, PATCH, DELETE, OPTIONS',
80
+ exposeHeaders: 'Authorization',
76
81
  maxAge: 86400,
77
82
  };
78
83
  }
@@ -92,10 +97,10 @@ async function runDev() {
92
97
  server = await vector.startServer(config);
93
98
  // Verify the server is actually running
94
99
  if (!server || !server.port) {
95
- throw new Error("Server started but is not responding correctly");
100
+ throw new Error('Server started but is not responding correctly');
96
101
  }
97
- const cyan = "\x1b[36m";
98
- const reset = "\x1b[0m";
102
+ const cyan = '\x1b[36m';
103
+ const reset = '\x1b[0m';
99
104
  console.log(`\nListening on ${cyan}http://${config.hostname}:${config.port}${reset}\n`);
100
105
  return { server, vector, config };
101
106
  })();
@@ -119,16 +124,13 @@ async function runDev() {
119
124
  const now = Date.now();
120
125
  if (isReloading || now - lastReloadTime < 1000)
121
126
  return;
127
+ const segments = filename ? filename.split(/[/\\]/) : [];
128
+ const excluded = segments.some((s) => ['node_modules', '.git', '.vector', 'dist'].includes(s));
122
129
  if (filename &&
123
- (filename.endsWith(".ts") ||
124
- filename.endsWith(".js") ||
125
- filename.endsWith(".json")) &&
126
- !filename.includes("node_modules") &&
127
- !filename.includes(".git") &&
128
- !filename.includes(".vector") && // Ignore generated files
129
- !filename.includes("dist") && // Ignore dist folder
130
- !filename.includes("bun.lockb") && // Ignore lock files
131
- !filename.endsWith(".generated.ts") // Ignore generated files
130
+ (filename.endsWith('.ts') || filename.endsWith('.js') || filename.endsWith('.json')) &&
131
+ !excluded &&
132
+ !filename.includes('bun.lockb') && // Ignore lock files
133
+ !filename.endsWith('.generated.ts') // Ignore generated files
132
134
  ) {
133
135
  // Track changed files
134
136
  changedFiles.add(filename);
@@ -149,16 +151,6 @@ async function runDev() {
149
151
  }
150
152
  // Small delay to ensure file system operations complete
151
153
  await new Promise((resolve) => setTimeout(resolve, 100));
152
- // Clear module cache to ensure fresh imports
153
- // Note: Bun uses ESM and doesn't have require.cache
154
- // The Loader API will handle module reloading automatically
155
- if (typeof require !== 'undefined' && require.cache) {
156
- for (const key in require.cache) {
157
- if (!key.includes("node_modules")) {
158
- delete require.cache[key];
159
- }
160
- }
161
- }
162
154
  // Restart the server
163
155
  try {
164
156
  const result = await startServer();
@@ -166,7 +158,7 @@ async function runDev() {
166
158
  vector = result.vector;
167
159
  }
168
160
  catch (error) {
169
- console.error("\n[Reload Error]", error.message || error);
161
+ console.error('\n[Reload Error]', error.message || error);
170
162
  // Don't exit the process on reload failures, just continue watching
171
163
  }
172
164
  finally {
@@ -179,88 +171,31 @@ async function runDev() {
179
171
  });
180
172
  }
181
173
  catch {
182
- const yellow = "\x1b[33m";
183
- const reset = "\x1b[0m";
174
+ const yellow = '\x1b[33m';
175
+ const reset = '\x1b[0m';
184
176
  console.warn(`${yellow}Warning: File watching not available${reset}`);
185
177
  }
186
178
  }
187
179
  }
188
180
  catch (error) {
189
- const red = "\x1b[31m";
190
- const reset = "\x1b[0m";
181
+ const red = '\x1b[31m';
182
+ const reset = '\x1b[0m';
191
183
  console.error(`\n${red}Error: ${error.message || error}${reset}\n`);
192
- if (error.stack && process.env.NODE_ENV === "development") {
184
+ if (error.stack && process.env.NODE_ENV === 'development') {
193
185
  console.error(error.stack);
194
186
  }
195
187
  process.exit(1);
196
188
  }
197
189
  }
198
- async function runBuild() {
199
- try {
200
- const { RouteScanner } = await import("../dev/route-scanner");
201
- const { RouteGenerator } = await import("../dev/route-generator");
202
- // Step 1: Scan and generate routes
203
- const scanner = new RouteScanner(values.routes);
204
- const generator = new RouteGenerator();
205
- const routes = await scanner.scan();
206
- await generator.generate(routes);
207
- // Step 2: Build the application with Bun
208
- if (typeof Bun !== "undefined") {
209
- // Build the CLI as an executable
210
- const buildProcess = Bun.spawn([
211
- "bun",
212
- "build",
213
- "src/cli/index.ts",
214
- "--target",
215
- "bun",
216
- "--outfile",
217
- "dist/server.js",
218
- "--minify",
219
- ]);
220
- const exitCode = await buildProcess.exited;
221
- if (exitCode !== 0) {
222
- throw new Error(`Build failed with exit code ${exitCode}`);
223
- }
224
- }
225
- else {
226
- // For Node.js, use child_process
227
- const { spawnSync } = await import("child_process");
228
- const result = spawnSync("bun", [
229
- "build",
230
- "src/cli/index.ts",
231
- "--target",
232
- "bun",
233
- "--outfile",
234
- "dist/server.js",
235
- "--minify",
236
- ], {
237
- stdio: "inherit",
238
- shell: true,
239
- });
240
- if (result.status !== 0) {
241
- throw new Error(`Build failed with exit code ${result.status}`);
242
- }
243
- }
244
- console.log("\nBuild complete: dist/server.js\n");
245
- }
246
- catch (error) {
247
- const red = "\x1b[31m";
248
- const reset = "\x1b[0m";
249
- console.error(`\n${red}Error: ${error.message || error}${reset}\n`);
250
- process.exit(1);
251
- }
252
- }
253
190
  switch (command) {
254
- case "dev":
191
+ case 'dev':
255
192
  await runDev();
256
193
  break;
257
- case "build":
258
- await runBuild();
259
- break;
260
- case "start":
261
- process.env.NODE_ENV = "production";
194
+ case 'start': {
195
+ process.env.NODE_ENV = 'production';
262
196
  await runDev();
263
197
  break;
198
+ }
264
199
  default:
265
200
  console.error(`Unknown command: ${command}`);
266
201
  console.log(`
@@ -268,15 +203,14 @@ Usage: vector [command] [options]
268
203
 
269
204
  Commands:
270
205
  dev Start development server (default)
271
- build Build for production
272
206
  start Start production server
273
207
 
274
208
  Options:
275
209
  -p, --port <port> Port to listen on (default: 3000)
276
210
  -h, --host <host> Hostname to bind to (default: localhost)
277
- -r, --routes <dir> Routes directory (default: ./routes)
211
+ -r, --routes <dir> Routes directory (dev/start)
278
212
  -w, --watch Watch for file changes (default: true)
279
- -c, --config <path> Path to config file (default: vector.config.ts)
213
+ -c, --config <path> Path to config file (dev/start)
280
214
  --cors Enable CORS (default: true)
281
215
  `);
282
216
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,4CAA4C;AAC5C,MAAM,IAAI,GACR,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEzE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IACxC,IAAI;IACJ,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,MAAM;SAChB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,WAAW;SACrB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,UAAU;SACpB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,IAAI;SACd;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACX;KACF;IACD,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;AAExC,KAAK,UAAU,MAAM;IACnB,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,CAAC;IAEhC,IAAI,MAAM,GAAQ,IAAI,CAAC;IACvB,IAAI,MAAM,GAAQ,IAAI,CAAC;IAEvB,KAAK,UAAU,WAAW;QACxB,yDAAyD;QACzD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACtD,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,kBAAkB,GAAG,CAAC,KAAK,IAAwD,EAAE;YACzF,wCAAwC;YACxC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAA4B,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;YAEzC,uCAAuC;YACvC,kDAAkD;YAClD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAc,CAAC,CAAC;YACpE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAK,MAAM,CAAC,IAAe,CAAC;YAC7D,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAK,MAAM,CAAC,MAAiB,CAAC;YACjE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;YACjD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,8BAA8B;YAE1D,wDAAwD;YACxD,gEAAgE;YAChE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,GAAG;oBACZ,MAAM,EAAE,GAAG;oBACX,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,6BAA6B;oBAC3C,YAAY,EAAE,wCAAwC;oBACtD,aAAa,EAAE,eAAe;oBAC9B,MAAM,EAAE,KAAK;iBACd,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAE7B,0CAA0C;YAC1C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;YACzD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;YAED,2CAA2C;YAC3C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC;YAC3D,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;YAED,mBAAmB;YACnB,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE1C,wCAAwC;YACxC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,IAAI,GAAG,UAAU,CAAC;YACxB,MAAM,KAAK,GAAG,SAAS,CAAC;YAExB,OAAO,CAAC,GAAG,CACT,kBAAkB,IAAI,UAAU,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,GAAG,KAAK,IAAI,CAC3E,CAAC;YAEF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC,EAAE,CAAC;QAEL,0CAA0C;QAC1C,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAEvB,qCAAqC;QACrC,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,aAAa,GAAQ,IAAI,CAAC;gBAC9B,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;gBACvC,IAAI,cAAc,GAAG,CAAC,CAAC;gBAEvB,6CAA6C;gBAC7C,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;oBAC9D,kEAAkE;oBAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,WAAW,IAAI,GAAG,GAAG,cAAc,GAAG,IAAI;wBAAE,OAAO;oBAEvD,IACE,QAAQ;wBACR,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;4BACvB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;4BACxB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;wBAC7B,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;wBAClC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC1B,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,yBAAyB;wBAC1D,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,qBAAqB;wBACnD,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,oBAAoB;wBACvD,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,yBAAyB;sBAC7D,CAAC;wBACD,sBAAsB;wBACtB,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAE3B,6CAA6C;wBAC7C,IAAI,aAAa,EAAE,CAAC;4BAClB,YAAY,CAAC,aAAa,CAAC,CAAC;wBAC9B,CAAC;wBAED,aAAa,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;4BACpC,IAAI,WAAW,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;gCAAE,OAAO;4BAEnD,WAAW,GAAG,IAAI,CAAC;4BACnB,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BAE5B,sBAAsB;4BACtB,YAAY,CAAC,KAAK,EAAE,CAAC;4BAErB,0BAA0B;4BAC1B,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,CAAC,IAAI,EAAE,CAAC;4BAChB,CAAC;4BAED,wDAAwD;4BACxD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;4BAEzD,6CAA6C;4BAC7C,oDAAoD;4BACpD,4DAA4D;4BAC5D,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gCACpD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oCAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;wCAClC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCAC5B,CAAC;gCACH,CAAC;4BACH,CAAC;4BAED,qBAAqB;4BACrB,IAAI,CAAC;gCACH,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;gCACnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gCACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;4BACzB,CAAC;4BAAC,OAAO,KAAU,EAAE,CAAC;gCACpB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;gCAC1D,oEAAoE;4BACtE,CAAC;oCAAS,CAAC;gCACT,gDAAgD;gCAChD,0DAA0D;gCAC1D,WAAW,GAAG,KAAK,CAAC;4BACtB,CAAC;wBACH,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,8BAA8B;oBACzC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,MAAM,GAAG,UAAU,CAAC;gBAC1B,MAAM,KAAK,GAAG,SAAS,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,uCAAuC,KAAK,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,UAAU,CAAC;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC;QAExB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,KAAK,CAAC,OAAO,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QAEpE,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC9D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAElE,mCAAmC;QACnC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjC,yCAAyC;QACzC,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,iCAAiC;YACjC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;gBAC7B,KAAK;gBACL,OAAO;gBACP,kBAAkB;gBAClB,UAAU;gBACV,KAAK;gBACL,WAAW;gBACX,gBAAgB;gBAChB,UAAU;aACX,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;YAC3C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,SAAS,CACtB,KAAK,EACL;gBACE,OAAO;gBACP,kBAAkB;gBAClB,UAAU;gBACV,KAAK;gBACL,WAAW;gBACX,gBAAgB;gBAChB,UAAU;aACX,EACD;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,IAAI;aACZ,CACF,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,UAAU,CAAC;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,KAAK,CAAC,OAAO,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,KAAK;QACR,MAAM,MAAM,EAAE,CAAC;QACf,MAAM;IACR,KAAK,OAAO;QACV,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM;IACR,KAAK,OAAO;QACV,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;QACpC,MAAM,MAAM,EAAE,CAAC;QACf,MAAM;IACR;QACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAef,CAAC,CAAC;QACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,4CAA4C;AAC5C,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IACxC,IAAI;IACJ,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,MAAM;SAChB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,WAAW;SACrB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,UAAU;SACpB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,IAAI;SACd;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACX;KACF;IACD,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;AACxC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9G,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACxG,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAExG,KAAK,UAAU,MAAM;IACnB,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,CAAC;IAEhC,IAAI,MAAM,GAAQ,IAAI,CAAC;IACvB,IAAI,MAAM,GAAQ,IAAI,CAAC;IAEvB,KAAK,UAAU,WAAW;QACxB,yDAAyD;QACzD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACtD,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,kBAAkB,GAAG,CAAC,KAAK,IAAwD,EAAE;YACzF,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAA4B,CAAC;YAC/D,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,EAAE,GAAG,YAAY,EAAyB,CAAC;YAE1D,wCAAwC;YACxC,wDAAwD;YACxD,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,IAAc,CAAC,CAAC;YAC7E,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,IAAc,CAAC,CAAC;YACrF,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,MAAgB,CAAC,CAAC;YAChG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;YACjD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,8BAA8B;YAE1D,wDAAwD;YACxD,gEAAgE;YAChE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,GAAG;oBACZ,MAAM,EAAE,GAAG;oBACX,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE,6BAA6B;oBAC3C,YAAY,EAAE,wCAAwC;oBACtD,aAAa,EAAE,eAAe;oBAC9B,MAAM,EAAE,KAAK;iBACd,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAE7B,0CAA0C;YAC1C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;YACzD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;YAED,2CAA2C;YAC3C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC;YAC3D,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;YAED,mBAAmB;YACnB,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE1C,wCAAwC;YACxC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,IAAI,GAAG,UAAU,CAAC;YACxB,MAAM,KAAK,GAAG,SAAS,CAAC;YAExB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;YAExF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC,EAAE,CAAC;QAEL,0CAA0C;QAC1C,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAEvB,qCAAqC;QACrC,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,aAAa,GAAQ,IAAI,CAAC;gBAC9B,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;gBACvC,IAAI,cAAc,GAAG,CAAC,CAAC;gBAEvB,6CAA6C;gBAC7C,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;oBAC9D,kEAAkE;oBAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,WAAW,IAAI,GAAG,GAAG,cAAc,GAAG,IAAI;wBAAE,OAAO;oBAEvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/F,IACE,QAAQ;wBACR,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;wBACpF,CAAC,QAAQ;wBACT,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,oBAAoB;wBACvD,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,yBAAyB;sBAC7D,CAAC;wBACD,sBAAsB;wBACtB,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAE3B,6CAA6C;wBAC7C,IAAI,aAAa,EAAE,CAAC;4BAClB,YAAY,CAAC,aAAa,CAAC,CAAC;wBAC9B,CAAC;wBAED,aAAa,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;4BACpC,IAAI,WAAW,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;gCAAE,OAAO;4BAEnD,WAAW,GAAG,IAAI,CAAC;4BACnB,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BAE5B,sBAAsB;4BACtB,YAAY,CAAC,KAAK,EAAE,CAAC;4BAErB,0BAA0B;4BAC1B,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,CAAC,IAAI,EAAE,CAAC;4BAChB,CAAC;4BAED,wDAAwD;4BACxD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;4BAEzD,qBAAqB;4BACrB,IAAI,CAAC;gCACH,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;gCACnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gCACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;4BACzB,CAAC;4BAAC,OAAO,KAAU,EAAE,CAAC;gCACpB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;gCAC1D,oEAAoE;4BACtE,CAAC;oCAAS,CAAC;gCACT,gDAAgD;gCAChD,0DAA0D;gCAC1D,WAAW,GAAG,KAAK,CAAC;4BACtB,CAAC;wBACH,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,8BAA8B;oBACzC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,MAAM,GAAG,UAAU,CAAC;gBAC1B,MAAM,KAAK,GAAG,SAAS,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,uCAAuC,KAAK,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,UAAU,CAAC;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC;QAExB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,KAAK,CAAC,OAAO,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QAEpE,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,KAAK;QACR,MAAM,MAAM,EAAE,CAAC;QACf,MAAM;IACR,KAAK,OAAO,CAAC,CAAC,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;QACpC,MAAM,MAAM,EAAE,CAAC;QACf,MAAM;IACR,CAAC;IACD;QACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;CAcf,CAAC,CAAC;QACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function resolveRoutesDir(configRoutesDir: string | null | undefined, hasRoutesOption: boolean, cliRoutes: string): string;
2
+ export declare function resolvePort(configPort: number | null | undefined, hasPortOption: boolean, cliPort: string): number;
3
+ export declare function resolveHost(configHost: string | null | undefined, hasHostOption: boolean, cliHost: string): string;
4
+ //# sourceMappingURL=option-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-resolution.d.ts","sourceRoot":"","sources":["../../src/cli/option-resolution.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,eAAe,EAAE,OAAO,EACxB,SAAS,EAAE,MAAM,GAChB,MAAM,CAMR;AAYD,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlH;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQlH"}
@@ -0,0 +1,28 @@
1
+ export function resolveRoutesDir(configRoutesDir, hasRoutesOption, cliRoutes) {
2
+ if (hasRoutesOption) {
3
+ return cliRoutes;
4
+ }
5
+ return configRoutesDir ?? cliRoutes;
6
+ }
7
+ function parseAndValidatePort(value) {
8
+ const parsed = typeof value === 'number' ? value : Number.parseInt(String(value), 10);
9
+ if (!Number.isInteger(parsed) || parsed < 0 || parsed > 65535) {
10
+ throw new Error(`Invalid port value: ${String(value)}`);
11
+ }
12
+ return parsed;
13
+ }
14
+ export function resolvePort(configPort, hasPortOption, cliPort) {
15
+ if (hasPortOption) {
16
+ return parseAndValidatePort(cliPort);
17
+ }
18
+ const resolved = configPort ?? cliPort;
19
+ return parseAndValidatePort(resolved);
20
+ }
21
+ export function resolveHost(configHost, hasHostOption, cliHost) {
22
+ const resolved = hasHostOption ? cliHost : (configHost ?? cliHost);
23
+ if (typeof resolved !== 'string' || resolved.length === 0) {
24
+ throw new Error(`Invalid host value: ${String(resolved)}`);
25
+ }
26
+ return resolved;
27
+ }
28
+ //# sourceMappingURL=option-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-resolution.js","sourceRoot":"","sources":["../../src/cli/option-resolution.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAC9B,eAA0C,EAC1C,eAAwB,EACxB,SAAiB;IAEjB,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,eAAe,IAAI,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAqC,EAAE,aAAsB,EAAE,OAAe;IACxG,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,IAAI,OAAO,CAAC;IACvC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAqC,EAAE,aAAsB,EAAE,OAAe;IACxG,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;IAEnE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}