vector-framework 0.8.2 → 0.9.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 (47) hide show
  1. package/dist/cli/index.js +89 -52
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/core/config-loader.d.ts +13 -0
  4. package/dist/core/config-loader.d.ts.map +1 -0
  5. package/dist/core/config-loader.js +166 -0
  6. package/dist/core/config-loader.js.map +1 -0
  7. package/dist/core/router.d.ts +1 -0
  8. package/dist/core/router.d.ts.map +1 -1
  9. package/dist/core/router.js +3 -0
  10. package/dist/core/router.js.map +1 -1
  11. package/dist/core/vector.d.ts +10 -12
  12. package/dist/core/vector.d.ts.map +1 -1
  13. package/dist/core/vector.js +36 -25
  14. package/dist/core/vector.js.map +1 -1
  15. package/dist/dev/route-scanner.d.ts.map +1 -1
  16. package/dist/dev/route-scanner.js +12 -1
  17. package/dist/dev/route-scanner.js.map +1 -1
  18. package/dist/http.d.ts +6 -1
  19. package/dist/http.d.ts.map +1 -1
  20. package/dist/http.js +13 -4
  21. package/dist/http.js.map +1 -1
  22. package/dist/index.d.ts +4 -12
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +3 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.mjs +5 -5
  27. package/dist/middleware/manager.d.ts +2 -1
  28. package/dist/middleware/manager.d.ts.map +1 -1
  29. package/dist/middleware/manager.js +4 -0
  30. package/dist/middleware/manager.js.map +1 -1
  31. package/dist/types/index.d.ts +26 -0
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/utils/path.d.ts +3 -0
  34. package/dist/utils/path.d.ts.map +1 -0
  35. package/dist/utils/path.js +9 -0
  36. package/dist/utils/path.js.map +1 -0
  37. package/package.json +3 -3
  38. package/src/cli/index.ts +103 -62
  39. package/src/core/config-loader.ts +193 -0
  40. package/src/core/router.ts +4 -0
  41. package/src/core/vector.ts +38 -32
  42. package/src/dev/route-scanner.ts +12 -1
  43. package/src/http.ts +21 -5
  44. package/src/index.ts +11 -16
  45. package/src/middleware/manager.ts +16 -4
  46. package/src/types/index.ts +44 -0
  47. package/src/utils/path.ts +9 -0
@@ -3,8 +3,10 @@ import { CacheManager } from '../cache/manager';
3
3
  import { RouteGenerator } from '../dev/route-generator';
4
4
  import { RouteScanner } from '../dev/route-scanner';
5
5
  import { MiddlewareManager } from '../middleware/manager';
6
+ import { toFileUrl } from '../utils/path';
6
7
  import { VectorRouter } from './router';
7
8
  import { VectorServer } from './server';
9
+ // Internal-only class - not exposed to users
8
10
  export class Vector {
9
11
  static instance;
10
12
  router;
@@ -23,43 +25,38 @@ export class Vector {
23
25
  this.cacheManager = new CacheManager();
24
26
  this.router = new VectorRouter(this.middlewareManager, this.authManager, this.cacheManager);
25
27
  }
28
+ // Internal use only - not exposed to users
26
29
  static getInstance() {
27
30
  if (!Vector.instance) {
28
31
  Vector.instance = new Vector();
29
32
  }
30
33
  return Vector.instance;
31
34
  }
32
- set protected(handler) {
35
+ // Internal method to set protected handler
36
+ setProtectedHandler(handler) {
33
37
  this._protectedHandler = handler;
34
38
  this.authManager.setProtectedHandler(handler);
35
39
  }
36
- get protected() {
40
+ getProtectedHandler() {
37
41
  return this._protectedHandler;
38
42
  }
39
- set cache(handler) {
43
+ // Internal method to set cache handler
44
+ setCacheHandler(handler) {
40
45
  this._cacheHandler = handler;
41
46
  this.cacheManager.setCacheHandler(handler);
42
47
  }
43
- get cache() {
48
+ getCacheHandler() {
44
49
  return this._cacheHandler;
45
50
  }
46
- route(options, handler) {
51
+ // Internal method to add route
52
+ addRoute(options, handler) {
47
53
  return this.router.route(options, handler);
48
54
  }
49
- use(...middleware) {
50
- this.middlewareManager.addBefore(...middleware);
51
- return this;
52
- }
53
- before(...middleware) {
54
- this.middlewareManager.addBefore(...middleware);
55
- return this;
56
- }
57
- finally(...middleware) {
58
- this.middlewareManager.addFinally(...middleware);
59
- return this;
60
- }
61
- async serve(config) {
55
+ // Internal method to start server - only called by CLI
56
+ async startServer(config) {
62
57
  this.config = { ...this.config, ...config };
58
+ // Clear previous middleware to avoid accumulation across multiple starts
59
+ this.middlewareManager.clear();
63
60
  if (config?.before) {
64
61
  this.middlewareManager.addBefore(...config.before);
65
62
  }
@@ -89,14 +86,18 @@ export class Vector {
89
86
  }
90
87
  for (const route of routes) {
91
88
  try {
92
- // Convert Windows paths to URLs for import
93
- const importPath = process.platform === 'win32'
94
- ? `file:///${route.path.replace(/\\/g, '/')}`
95
- : route.path;
89
+ const importPath = toFileUrl(route.path);
96
90
  const module = await import(importPath);
97
91
  const exported = route.name === 'default' ? module.default : module[route.name];
98
92
  if (exported) {
99
- if (this.isRouteEntry(exported)) {
93
+ if (this.isRouteDefinition(exported)) {
94
+ // Use router.route() to ensure middleware is applied
95
+ const routeDef = exported;
96
+ this.router.route(routeDef.options, routeDef.handler);
97
+ this.logRouteLoaded(routeDef.options);
98
+ }
99
+ else if (this.isRouteEntry(exported)) {
100
+ // Legacy support for direct RouteEntry (won't have middleware)
100
101
  this.router.addRoute(exported);
101
102
  this.logRouteLoaded(exported);
102
103
  }
@@ -142,6 +143,9 @@ export class Vector {
142
143
  isRouteEntry(value) {
143
144
  return Array.isArray(value) && value.length >= 3;
144
145
  }
146
+ isRouteDefinition(value) {
147
+ return value && typeof value === 'object' && 'entry' in value && 'options' in value && 'handler' in value;
148
+ }
145
149
  logRouteLoaded(route) {
146
150
  if (Array.isArray(route)) {
147
151
  console.log(` ✓ Loaded route: ${route[0]} ${route[3] || route[1]}`);
@@ -155,6 +159,9 @@ export class Vector {
155
159
  this.server.stop();
156
160
  this.server = null;
157
161
  }
162
+ // Don't reset managers - they should persist for the singleton
163
+ // Only clear route-specific state if needed
164
+ this.router.clearRoutes();
158
165
  }
159
166
  getServer() {
160
167
  return this.server;
@@ -168,7 +175,11 @@ export class Vector {
168
175
  getAuthManager() {
169
176
  return this.authManager;
170
177
  }
178
+ // Reset instance for testing purposes only
179
+ static resetInstance() {
180
+ Vector.instance = null;
181
+ }
171
182
  }
172
- const vector = Vector.getInstance();
173
- export default vector;
183
+ // Export for internal use only
184
+ export const getVectorInstance = Vector.getInstance;
174
185
  //# sourceMappingURL=vector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/core/vector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAY1D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,OAAO,MAAM;IACT,MAAM,CAAC,QAAQ,CAAc;IAC7B,MAAM,CAAuB;IAC7B,MAAM,GAAgC,IAAI,CAAC;IAC3C,iBAAiB,CAA4B;IAC7C,WAAW,CAAsB;IACjC,YAAY,CAAuB;IACnC,MAAM,GAAyB,EAAE,CAAC;IAClC,YAAY,GAAwB,IAAI,CAAC;IACzC,cAAc,GAA0B,IAAI,CAAC;IAC7C,iBAAiB,GAAoC,IAAI,CAAC;IAC1D,aAAa,GAAwB,IAAI,CAAC;IAElD;QACE,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAU,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAU,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAC5B,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAK,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC,QAAqB,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,CAAC,OAAiC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,OAAqB;QAC7B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAA6B,EAAE,OAA6B;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,GAAG,UAA6C;QAClD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAG,UAA6C;QACrD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,UAA4C;QACrD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAE5C,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAS,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAE5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;QAEtD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAE9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,2CAA2C;wBAC3C,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,OAAO;4BAC1B,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;4BAC7C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;wBAEjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;wBACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAEhF,IAAI,QAAQ,EAAE,CAAC;4BACb,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAsB,CAAC,CAAC;gCAC7C,IAAI,CAAC,cAAc,CAAC,QAAsB,CAAC,CAAC;4BAC9C,CAAC;iCAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gCAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAc,EAAE,QAAQ,CAAC,CAAC;gCAClD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACrC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;gBAED,sDAAsD;gBACtD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,gBAAgB,SAAS,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAAa,CAAC,IAAI,KAAK,QAAQ,IAAK,KAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1E,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAgB;QAC9B,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,WAAW,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAwB,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC1D,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAI,KAAa,EAAE,CAAC;oBACpC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAwB,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,KAAU;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACnD,CAAC;IAEO,cAAc,CAAC,KAAgC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AAEpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/core/vector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-scanner.d.ts","sourceRoot":"","sources":["../../src/dev/route-scanner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,SAAa;IAI5B,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAgBzB,aAAa;IA4D3B,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI;CASjC"}
1
+ {"version":3,"file":"route-scanner.d.ts","sourceRoot":"","sources":["../../src/dev/route-scanner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,SAAa;IAI5B,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAgBzB,aAAa;IAuE3B,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI;CASjC"}
@@ -52,7 +52,18 @@ export class RouteScanner {
52
52
  for (const [name, value] of Object.entries(module)) {
53
53
  if (name === 'default')
54
54
  continue;
55
- if (Array.isArray(value) && value.length >= 4) {
55
+ // Check for new RouteDefinition format
56
+ if (value && typeof value === 'object' && 'entry' in value && 'options' in value && 'handler' in value) {
57
+ const routeDef = value;
58
+ routes.push({
59
+ name,
60
+ path: fullPath,
61
+ method: routeDef.options.method,
62
+ options: routeDef.options,
63
+ });
64
+ }
65
+ // Legacy RouteEntry format support
66
+ else if (Array.isArray(value) && value.length >= 4) {
56
67
  const [method, , , path] = value;
57
68
  routes.push({
58
69
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"route-scanner.js","sourceRoot":"","sources":["../../src/dev/route-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-scanner.js","sourceRoot":"","sources":["../../src/dev/route-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGzD,MAAM,OAAO,YAAY;IACf,SAAS,CAAS;IAE1B,YAAY,SAAS,GAAG,UAAU;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC9D,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,MAAwB,EAAE,QAAQ,GAAG,EAAE;QAC9E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9D,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;qBACjD,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;qBACzB,KAAK,CAAC,GAAG,CAAC;qBACV,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEb,IAAI,CAAC;oBACH,2CAA2C;oBAC3C,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAEtF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;oBAExC,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;wBAC3D,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,QAAQ;4BACd,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE;gCACP,MAAM,EAAE,KAAK;gCACb,IAAI,EAAE,IAAI,SAAS,EAAE;gCACrB,MAAM,EAAE,IAAI;6BACb;yBACF,CAAC,CAAC;oBACL,CAAC;oBAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnD,IAAI,IAAI,KAAK,SAAS;4BAAE,SAAS;wBAEjC,uCAAuC;wBACvC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;4BACvG,MAAM,QAAQ,GAAG,KAAY,CAAC;4BAC9B,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI;gCACJ,IAAI,EAAE,QAAQ;gCACd,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAgB;gCACzC,OAAO,EAAE,QAAQ,CAAC,OAAO;6BAC1B,CAAC,CAAC;wBACL,CAAC;wBACD,mCAAmC;6BAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;4BACnD,MAAM,CAAC,MAAM,EAAE,AAAD,EAAG,AAAD,EAAG,IAAI,CAAC,GAAG,KAAK,CAAC;4BACjC,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI;gCACJ,IAAI,EAAE,QAAQ;gCACd,MAAM,EAAE,MAAgB;gCACxB,OAAO,EAAE;oCACP,MAAM,EAAE,MAAgB;oCACxB,IAAI,EAAE,IAAc;oCACpB,MAAM,EAAE,IAAI;iCACb;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,QAAoB;QAC9B,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAE/D,WAAW,CAAC,KAAK,IAAI,EAAE;gBACrB,MAAM,QAAQ,EAAE,CAAC;YACnB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF"}
package/dist/http.d.ts CHANGED
@@ -8,7 +8,12 @@ interface ExtendedApiOptions extends ApiOptions {
8
8
  method: string;
9
9
  path: string;
10
10
  }
11
- export declare function route<TTypes extends VectorTypes = DefaultVectorTypes>(options: ExtendedApiOptions, fn: (req: VectorRequest<TTypes>) => Promise<unknown>): RouteEntry;
11
+ export interface RouteDefinition<TTypes extends VectorTypes = DefaultVectorTypes> {
12
+ entry: RouteEntry;
13
+ options: ExtendedApiOptions;
14
+ handler: (req: VectorRequest<TTypes>) => Promise<unknown>;
15
+ }
16
+ export declare function route<TTypes extends VectorTypes = DefaultVectorTypes>(options: ExtendedApiOptions, fn: (req: VectorRequest<TTypes>) => Promise<unknown>): RouteDefinition<TTypes>;
12
17
  declare const ApiResponse: {
13
18
  success: <T>(data: T, contentType?: string) => Response;
14
19
  created: <T>(data: T, contentType?: string) => Response;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,UAAU,EAGhB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,gBAAgB,CAC/B,MAAM,SAAS,WAAW,GAAG,kBAAkB,CAC/C,SAAQ,QAAQ;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,eAAO,MAAQ,SAAS,8CAAE,OAAO,qDAO/B,CAAC;AAEH,UAAU,kBAAmB,SAAQ,UAAU;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,KAAK,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB,EACnE,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GACnD,UAAU,CAkBZ;AAQD,QAAA,MAAM,WAAW;cACL,CAAC,QAAQ,CAAC,gBAAgB,MAAM;cAEhC,CAAC,QAAQ,CAAC,gBAAgB,MAAM;CAE3C,CAAC;AAiBF,eAAO,MAAM,QAAQ;6CAE6B,MAAM;+CAGH,MAAM;kDAGC,MAAM;4CAGnB,MAAM;2CAGP,MAAM;mDAGW,MAAM;gDAGb,MAAM;iDAGJ,MAAM;2CAGnB,MAAM;uCAGd,MAAM;iDAGe,MAAM;qDAGE,MAAM;kDAGX,MAAM;6CAGhB,MAAM;uDAKvC,MAAM;sDAG6C,MAAM;oDAGX,MAAM;4CAGpB,MAAM;qDAGU,MAAM;sDAGJ,MAAM;yCAGjC,MAAM;mDAGe,MAAM;2CAGtB,MAAM;kDAGQ,MAAM;uDAGI,MAAM;kDAGf,MAAM;8DAKjD,MAAM;6DAKN,MAAM;sDAI6C,MAAM;iDAGjB,MAAM;6CAGd,MAAM;qDAGU,MAAM;iDAGd,MAAM;0DAK9C,MAAM;wDAKN,MAAM;sDAG4C,MAAM;+CAGpB,MAAM;8CAGR,MAAM;gEAKxC,MAAM;kDAIoC,MAAM;oDAGD,MAAM;8CAGN,MAAM;yBAIhD,MAAM,OAAO,MAAM,gBAAgB,MAAM;CAE/D,CAAC;AAEF,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,OAAO,EACd,WAAW,GAAE,MAA2B,GACvC,QAAQ,CAOV;AAED,eAAO,MAAM,cAAc,GACzB,MAAM,SAAS,WAAW,GAAG,kBAAkB,EAE/C,SAAS,aAAa,CAAC,MAAM,CAAC,EAC9B,sBAAsB,MAAM,kBAqB7B,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,GAAG,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB,EACjE,OAAO,EAAE,UAAU,EACnB,EAAE,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAU1C,SAAS,QAAQ,sBAkChC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/http.js CHANGED
@@ -10,7 +10,7 @@ export const { preflight, corsify } = cors({
10
10
  });
11
11
  export function route(options, fn) {
12
12
  const handler = api(options, fn);
13
- return [
13
+ const entry = [
14
14
  options.method.toUpperCase(),
15
15
  RegExp(`^${options.path
16
16
  .replace(/\/+(\/|$)/g, "$1") // strip double & trailing splash
@@ -22,6 +22,11 @@ export function route(options, fn) {
22
22
  [handler],
23
23
  options.path,
24
24
  ];
25
+ return {
26
+ entry,
27
+ options,
28
+ handler: fn
29
+ };
25
30
  }
26
31
  function stringifyData(data) {
27
32
  return JSON.stringify(data ?? null, (_key, value) => typeof value === "bigint" ? value.toString() : value);
@@ -97,12 +102,14 @@ export function createResponse(statusCode, data, contentType = CONTENT_TYPES.JSO
97
102
  }
98
103
  export const protectedRoute = async (request, responseContentType) => {
99
104
  // Get the Vector instance to access the protected handler
100
- const vector = (await import("./core/vector")).default;
101
- if (!vector.protected) {
105
+ const { getVectorInstance } = await import("./core/vector");
106
+ const vector = getVectorInstance();
107
+ const protectedHandler = vector.getProtectedHandler();
108
+ if (!protectedHandler) {
102
109
  throw APIError.unauthorized("Authentication not configured", responseContentType);
103
110
  }
104
111
  try {
105
- const authUser = await vector.protected(request);
112
+ const authUser = await protectedHandler(request);
106
113
  request.authUser = authUser;
107
114
  }
108
115
  catch (error) {
@@ -111,6 +118,8 @@ export const protectedRoute = async (request, responseContentType) => {
111
118
  };
112
119
  export function api(options, fn) {
113
120
  const { auth = false, expose = false, rawRequest = false, rawResponse = false, responseContentType = CONTENT_TYPES.JSON, } = options;
121
+ // For backward compatibility with direct route usage (not auto-discovered)
122
+ // This wrapper is only used when routes are NOT auto-discovered
114
123
  return async (request) => {
115
124
  if (!expose) {
116
125
  return APIError.forbidden("Forbidden");
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,5 @@
1
- import { Vector } from './core/vector';
2
- import { route } from './http';
3
- import type { DefaultVectorTypes, VectorTypes } from './types';
4
- export { route, Vector };
5
- export { AuthManager } from './auth/protected';
6
- export { CacheManager } from './cache/manager';
7
- export { APIError, createResponse } from './http';
8
- export { MiddlewareManager } from './middleware/manager';
9
- export * from './types';
10
- export declare function createVector<TTypes extends VectorTypes = DefaultVectorTypes>(): Vector<TTypes>;
11
- declare const vector: Vector<DefaultVectorTypes>;
12
- export default vector;
1
+ import { route } from "./http";
2
+ export { route };
3
+ export { APIError, createResponse } from "./http";
4
+ export * from "./types";
13
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,cAAc,SAAS,CAAC;AAGxB,wBAAgB,YAAY,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB,KAAK,MAAM,CAAC,MAAM,CAAC,CAE9F;AAGD,QAAA,MAAM,MAAM,4BAAuB,CAAC;AACpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG/B,OAAO,EAAE,KAAK,EAAE,CAAC;AAGjB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGlD,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var{defineProperty:Q,getOwnPropertyNames:Ai,getOwnPropertyDescriptor:_i}=Object,Oi=Object.prototype.hasOwnProperty;var r=new WeakMap,Ni=(i)=>{var f=r.get(i),l;if(f)return f;if(f=Q({},"__esModule",{value:!0}),i&&typeof i==="object"||typeof i==="function")Ai(i).map((a)=>!Oi.call(f,a)&&Q(f,a,{get:()=>i[a],enumerable:!(l=_i(i,a))||l.enumerable}));return r.set(i,f),f};var y=(i,f)=>{for(var l in f)Q(i,l,{get:f[l],enumerable:!0,configurable:!0,set:(a)=>f[l]=()=>a})};var P=(i,f)=>()=>(i&&(f=i(i=0)),f);class x{protectedHandler=null;setProtectedHandler(i){this.protectedHandler=i}async authenticate(i){if(!this.protectedHandler)throw new Error("Protected handler not configured. Use vector.protected() to set authentication handler.");try{let f=await this.protectedHandler(i);return i.authUser=f,f}catch(f){throw new Error(`Authentication failed: ${f instanceof Error?f.message:String(f)}`)}}isAuthenticated(i){return!!i.authUser}getUser(i){return i.authUser||null}}var R,V,M;var X=P(()=>{R={OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},V={PORT:3000,HOSTNAME:"localhost",ROUTES_DIR:"./routes",CACHE_TTL:0,CORS_MAX_AGE:86400},M={JSON:"application/json",TEXT:"text/plain",HTML:"text/html",FORM_URLENCODED:"application/x-www-form-urlencoded",MULTIPART:"multipart/form-data"}});class G{cacheHandler=null;memoryCache=new Map;cleanupInterval=null;setCacheHandler(i){this.cacheHandler=i}async get(i,f,l=V.CACHE_TTL){if(l<=0)return f();if(this.cacheHandler)return this.cacheHandler(i,f,l);return this.getFromMemoryCache(i,f,l)}async getFromMemoryCache(i,f,l){let a=Date.now(),A=this.memoryCache.get(i);if(this.isCacheValid(A,a))return A.value;let E=await f();return this.setInMemoryCache(i,E,l),E}isCacheValid(i,f){return i!==void 0&&i.expires>f}setInMemoryCache(i,f,l){let a=Date.now()+l*1000;this.memoryCache.set(i,{value:f,expires:a}),this.scheduleCleanup()}scheduleCleanup(){if(this.cleanupInterval)return;this.cleanupInterval=setInterval(()=>{this.cleanupExpired()},60000)}cleanupExpired(){let i=Date.now();for(let[f,l]of this.memoryCache.entries())if(l.expires<=i)this.memoryCache.delete(f);if(this.memoryCache.size===0&&this.cleanupInterval)clearInterval(this.cleanupInterval),this.cleanupInterval=null}clear(){if(this.memoryCache.clear(),this.cleanupInterval)clearInterval(this.cleanupInterval),this.cleanupInterval=null}async set(i,f,l=V.CACHE_TTL){if(l<=0)return;if(this.cacheHandler){await this.cacheHandler(i,async()=>f,l);return}this.setInMemoryCache(i,f,l)}delete(i){return this.memoryCache.delete(i)}has(i){let f=this.memoryCache.get(i);if(!f)return!1;if(f.expires<=Date.now())return this.memoryCache.delete(i),!1;return!0}generateKey(i,f){let l=new URL(i.url);return[i.method,l.pathname,l.search,f?.authUser?.id||"anonymous"].join(":")}}var J=P(()=>{X()});function U(i){if(typeof i!=="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(i))}function q(i,f){var l="",a=0,A=-1,E=0,O;for(var _=0;_<=i.length;++_){if(_<i.length)O=i.charCodeAt(_);else if(O===47)break;else O=47;if(O===47){if(A===_-1||E===1);else if(A!==_-1&&E===2){if(l.length<2||a!==2||l.charCodeAt(l.length-1)!==46||l.charCodeAt(l.length-2)!==46){if(l.length>2){var d=l.lastIndexOf("/");if(d!==l.length-1){if(d===-1)l="",a=0;else l=l.slice(0,d),a=l.length-1-l.lastIndexOf("/");A=_,E=0;continue}}else if(l.length===2||l.length===1){l="",a=0,A=_,E=0;continue}}if(f){if(l.length>0)l+="/..";else l="..";a=2}}else{if(l.length>0)l+="/"+i.slice(A+1,_);else l=i.slice(A+1,_);a=_-A-1}A=_,E=0}else if(O===46&&E!==-1)++E;else E=-1}return l}function di(i,f){var l=f.dir||f.root,a=f.base||(f.name||"")+(f.ext||"");if(!l)return a;if(l===f.root)return l+a;return l+i+a}function F(){var i="",f=!1,l;for(var a=arguments.length-1;a>=-1&&!f;a--){var A;if(a>=0)A=arguments[a];else{if(l===void 0)l=process.cwd();A=l}if(U(A),A.length===0)continue;i=A+"/"+i,f=A.charCodeAt(0)===47}if(i=q(i,!f),f)if(i.length>0)return"/"+i;else return"/";else if(i.length>0)return i;else return"."}function t(i){if(U(i),i.length===0)return".";var f=i.charCodeAt(0)===47,l=i.charCodeAt(i.length-1)===47;if(i=q(i,!f),i.length===0&&!f)i=".";if(i.length>0&&l)i+="/";if(f)return"/"+i;return i}function Di(i){return U(i),i.length>0&&i.charCodeAt(0)===47}function W(){if(arguments.length===0)return".";var i;for(var f=0;f<arguments.length;++f){var l=arguments[f];if(U(l),l.length>0)if(i===void 0)i=l;else i+="/"+l}if(i===void 0)return".";return t(i)}function j(i,f){if(U(i),U(f),i===f)return"";if(i=F(i),f=F(f),i===f)return"";var l=1;for(;l<i.length;++l)if(i.charCodeAt(l)!==47)break;var a=i.length,A=a-l,E=1;for(;E<f.length;++E)if(f.charCodeAt(E)!==47)break;var O=f.length,_=O-E,d=A<_?A:_,I=-1,N=0;for(;N<=d;++N){if(N===d){if(_>d){if(f.charCodeAt(E+N)===47)return f.slice(E+N+1);else if(N===0)return f.slice(E+N)}else if(A>d){if(i.charCodeAt(l+N)===47)I=N;else if(N===0)I=0}break}var w=i.charCodeAt(l+N),L=f.charCodeAt(E+N);if(w!==L)break;else if(w===47)I=N}var H="";for(N=l+I+1;N<=a;++N)if(N===a||i.charCodeAt(N)===47)if(H.length===0)H+="..";else H+="/..";if(H.length>0)return H+f.slice(E+I);else{if(E+=I,f.charCodeAt(E)===47)++E;return f.slice(E)}}function Ii(i){return i}function T(i){if(U(i),i.length===0)return".";var f=i.charCodeAt(0),l=f===47,a=-1,A=!0;for(var E=i.length-1;E>=1;--E)if(f=i.charCodeAt(E),f===47){if(!A){a=E;break}}else A=!1;if(a===-1)return l?"/":".";if(l&&a===1)return"//";return i.slice(0,a)}function Li(i,f){if(f!==void 0&&typeof f!=="string")throw new TypeError('"ext" argument must be a string');U(i);var l=0,a=-1,A=!0,E;if(f!==void 0&&f.length>0&&f.length<=i.length){if(f.length===i.length&&f===i)return"";var O=f.length-1,_=-1;for(E=i.length-1;E>=0;--E){var d=i.charCodeAt(E);if(d===47){if(!A){l=E+1;break}}else{if(_===-1)A=!1,_=E+1;if(O>=0)if(d===f.charCodeAt(O)){if(--O===-1)a=E}else O=-1,a=_}}if(l===a)a=_;else if(a===-1)a=i.length;return i.slice(l,a)}else{for(E=i.length-1;E>=0;--E)if(i.charCodeAt(E)===47){if(!A){l=E+1;break}}else if(a===-1)A=!1,a=E+1;if(a===-1)return"";return i.slice(l,a)}}function wi(i){U(i);var f=-1,l=0,a=-1,A=!0,E=0;for(var O=i.length-1;O>=0;--O){var _=i.charCodeAt(O);if(_===47){if(!A){l=O+1;break}continue}if(a===-1)A=!1,a=O+1;if(_===46){if(f===-1)f=O;else if(E!==1)E=1}else if(f!==-1)E=-1}if(f===-1||a===-1||E===0||E===1&&f===a-1&&f===l+1)return"";return i.slice(f,a)}function Ri(i){if(i===null||typeof i!=="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof i);return di("/",i)}function Ci(i){U(i);var f={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return f;var l=i.charCodeAt(0),a=l===47,A;if(a)f.root="/",A=1;else A=0;var E=-1,O=0,_=-1,d=!0,I=i.length-1,N=0;for(;I>=A;--I){if(l=i.charCodeAt(I),l===47){if(!d){O=I+1;break}continue}if(_===-1)d=!1,_=I+1;if(l===46){if(E===-1)E=I;else if(N!==1)N=1}else if(E!==-1)N=-1}if(E===-1||_===-1||N===0||N===1&&E===_-1&&E===O+1){if(_!==-1)if(O===0&&a)f.base=f.name=i.slice(1,_);else f.base=f.name=i.slice(O,_)}else{if(O===0&&a)f.name=i.slice(1,E),f.base=i.slice(1,_);else f.name=i.slice(O,E),f.base=i.slice(O,_);f.ext=i.slice(E,_)}if(O>0)f.dir=i.slice(0,O-1);else if(a)f.dir="/";return f}var z="/",$i=":",vi;var K=P(()=>{vi=((i)=>(i.posix=i,i))({resolve:F,normalize:t,isAbsolute:Di,join:W,relative:j,_makeLong:Ii,dirname:T,basename:Li,extname:wi,format:Ri,parse:Ci,sep:z,delimiter:$i,win32:null,posix:null})});class c{outputPath;constructor(i="./.vector/routes.generated.ts"){this.outputPath=i}async generate(i){let f=T(this.outputPath);await Z.promises.mkdir(f,{recursive:!0});let l=[],a=new Map;for(let _ of i){if(!a.has(_.path))a.set(_.path,[]);a.get(_.path).push(_)}let A=0,E=[];for(let[_,d]of a){let I=j(T(this.outputPath),_).replace(/\\/g,"/").replace(/\.(ts|js)$/,""),N=`route_${A++}`,w=d.filter((L)=>L.name!=="default").map((L)=>L.name);if(d.some((L)=>L.name==="default"))if(w.length>0)l.push(`import ${N}, { ${w.join(", ")} } from '${I}';`);else l.push(`import ${N} from '${I}';`);else if(w.length>0)l.push(`import { ${w.join(", ")} } from '${I}';`);for(let L of d){let H=L.name==="default"?N:L.name;E.push(` ${H},`)}}let O=`// This file is auto-generated. Do not edit manually.
1
+ var{defineProperty:Y,getOwnPropertyNames:_i,getOwnPropertyDescriptor:di}=Object,Oi=Object.prototype.hasOwnProperty;var n=new WeakMap,Ni=(i)=>{var f=n.get(i),l;if(f)return f;if(f=Y({},"__esModule",{value:!0}),i&&typeof i==="object"||typeof i==="function")_i(i).map((a)=>!Oi.call(f,a)&&Y(f,a,{get:()=>i[a],enumerable:!(l=di(i,a))||l.enumerable}));return n.set(i,f),f};var r=(i,f)=>{for(var l in f)Y(i,l,{get:f[l],enumerable:!0,configurable:!0,set:(a)=>f[l]=()=>a})};var U=(i,f)=>()=>(i&&(f=i(i=0)),f);var b=(i="text/plain; charset=utf-8",f)=>(l,a={})=>{if(l===void 0||l instanceof Response)return l;let A=new Response(f?.(l)??l,a.url?void 0:a);return A.headers.set("content-type",i),A},Fi,ji,Mi,Ti,Bi,Yi,s=async(i)=>{i.content=i.body?await i.clone().json().catch(()=>i.clone().formData()).catch(()=>i.text()):void 0},y=(i)=>{i.cookies=(i.headers.get("Cookie")||"").split(/;\s*/).map((f)=>f.split(/=(.+)/)).reduce((f,[l,a])=>a?(f[l]=a,f):f,{})},F=(i={})=>{let{origin:f="*",credentials:l=!1,allowMethods:a="*",allowHeaders:A,exposeHeaders:E,maxAge:d}=i,_=(w)=>{let O=w?.headers.get("origin");return f===!0?O:f instanceof RegExp?f.test(O)?O:void 0:Array.isArray(f)?f.includes(O)?O:void 0:f instanceof Function?f(O):f=="*"&&l?O:f},N=(w,O)=>{for(let[I,L]of Object.entries(O))L&&w.headers.append(I,L);return w};return{corsify:(w,O)=>w?.headers?.get("access-control-allow-origin")||w.status==101?w:N(w.clone(),{"access-control-allow-origin":_(O),"access-control-allow-credentials":l}),preflight:(w)=>{if(w.method=="OPTIONS"){let O=new Response(null,{status:204});return N(O,{"access-control-allow-origin":_(w),"access-control-allow-methods":a?.join?.(",")??a,"access-control-expose-headers":E?.join?.(",")??E,"access-control-allow-headers":A?.join?.(",")??A??w.headers.get("access-control-request-headers"),"access-control-max-age":d,"access-control-allow-credentials":l})}}}};var Q=U(()=>{Fi=b("application/json; charset=utf-8",JSON.stringify),ji=b("text/plain; charset=utf-8",String),Mi=b("text/html"),Ti=b("image/jpeg"),Bi=b("image/png"),Yi=b("image/webp")});var $,V,j;var c=U(()=>{$={OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},V={PORT:3000,HOSTNAME:"localhost",ROUTES_DIR:"./routes",CACHE_TTL:0,CORS_MAX_AGE:86400},j={JSON:"application/json",TEXT:"text/plain",HTML:"text/html",FORM_URLENCODED:"application/x-www-form-urlencoded",MULTIPART:"multipart/form-data"}});class X{protectedHandler=null;setProtectedHandler(i){this.protectedHandler=i}async authenticate(i){if(!this.protectedHandler)throw new Error("Protected handler not configured. Use vector.protected() to set authentication handler.");try{let f=await this.protectedHandler(i);return i.authUser=f,f}catch(f){throw new Error(`Authentication failed: ${f instanceof Error?f.message:String(f)}`)}}isAuthenticated(i){return!!i.authUser}getUser(i){return i.authUser||null}}class J{cacheHandler=null;memoryCache=new Map;cleanupInterval=null;setCacheHandler(i){this.cacheHandler=i}async get(i,f,l=V.CACHE_TTL){if(l<=0)return f();if(this.cacheHandler)return this.cacheHandler(i,f,l);return this.getFromMemoryCache(i,f,l)}async getFromMemoryCache(i,f,l){let a=Date.now(),A=this.memoryCache.get(i);if(this.isCacheValid(A,a))return A.value;let E=await f();return this.setInMemoryCache(i,E,l),E}isCacheValid(i,f){return i!==void 0&&i.expires>f}setInMemoryCache(i,f,l){let a=Date.now()+l*1000;this.memoryCache.set(i,{value:f,expires:a}),this.scheduleCleanup()}scheduleCleanup(){if(this.cleanupInterval)return;this.cleanupInterval=setInterval(()=>{this.cleanupExpired()},60000)}cleanupExpired(){let i=Date.now();for(let[f,l]of this.memoryCache.entries())if(l.expires<=i)this.memoryCache.delete(f);if(this.memoryCache.size===0&&this.cleanupInterval)clearInterval(this.cleanupInterval),this.cleanupInterval=null}clear(){if(this.memoryCache.clear(),this.cleanupInterval)clearInterval(this.cleanupInterval),this.cleanupInterval=null}async set(i,f,l=V.CACHE_TTL){if(l<=0)return;if(this.cacheHandler){await this.cacheHandler(i,async()=>f,l);return}this.setInMemoryCache(i,f,l)}delete(i){return this.memoryCache.delete(i)}has(i){let f=this.memoryCache.get(i);if(!f)return!1;if(f.expires<=Date.now())return this.memoryCache.delete(i),!1;return!0}generateKey(i,f){let l=new URL(i.url);return[i.method,l.pathname,l.search,f?.authUser?.id||"anonymous"].join(":")}}var q=U(()=>{c()});function C(i){if(typeof i!=="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(i))}function t(i,f){var l="",a=0,A=-1,E=0,d;for(var _=0;_<=i.length;++_){if(_<i.length)d=i.charCodeAt(_);else if(d===47)break;else d=47;if(d===47){if(A===_-1||E===1);else if(A!==_-1&&E===2){if(l.length<2||a!==2||l.charCodeAt(l.length-1)!==46||l.charCodeAt(l.length-2)!==46){if(l.length>2){var N=l.lastIndexOf("/");if(N!==l.length-1){if(N===-1)l="",a=0;else l=l.slice(0,N),a=l.length-1-l.lastIndexOf("/");A=_,E=0;continue}}else if(l.length===2||l.length===1){l="",a=0,A=_,E=0;continue}}if(f){if(l.length>0)l+="/..";else l="..";a=2}}else{if(l.length>0)l+="/"+i.slice(A+1,_);else l=i.slice(A+1,_);a=_-A-1}A=_,E=0}else if(d===46&&E!==-1)++E;else E=-1}return l}function Di(i,f){var l=f.dir||f.root,a=f.base||(f.name||"")+(f.ext||"");if(!l)return a;if(l===f.root)return l+a;return l+i+a}function x(){var i="",f=!1,l;for(var a=arguments.length-1;a>=-1&&!f;a--){var A;if(a>=0)A=arguments[a];else{if(l===void 0)l=process.cwd();A=l}if(C(A),A.length===0)continue;i=A+"/"+i,f=A.charCodeAt(0)===47}if(i=t(i,!f),f)if(i.length>0)return"/"+i;else return"/";else if(i.length>0)return i;else return"."}function o(i){if(C(i),i.length===0)return".";var f=i.charCodeAt(0)===47,l=i.charCodeAt(i.length-1)===47;if(i=t(i,!f),i.length===0&&!f)i=".";if(i.length>0&&l)i+="/";if(f)return"/"+i;return i}function wi(i){return C(i),i.length>0&&i.charCodeAt(0)===47}function W(){if(arguments.length===0)return".";var i;for(var f=0;f<arguments.length;++f){var l=arguments[f];if(C(l),l.length>0)if(i===void 0)i=l;else i+="/"+l}if(i===void 0)return".";return o(i)}function G(i,f){if(C(i),C(f),i===f)return"";if(i=x(i),f=x(f),i===f)return"";var l=1;for(;l<i.length;++l)if(i.charCodeAt(l)!==47)break;var a=i.length,A=a-l,E=1;for(;E<f.length;++E)if(f.charCodeAt(E)!==47)break;var d=f.length,_=d-E,N=A<_?A:_,w=-1,O=0;for(;O<=N;++O){if(O===N){if(_>N){if(f.charCodeAt(E+O)===47)return f.slice(E+O+1);else if(O===0)return f.slice(E+O)}else if(A>N){if(i.charCodeAt(l+O)===47)w=O;else if(O===0)w=0}break}var I=i.charCodeAt(l+O),L=f.charCodeAt(E+O);if(I!==L)break;else if(I===47)w=O}var P="";for(O=l+w+1;O<=a;++O)if(O===a||i.charCodeAt(O)===47)if(P.length===0)P+="..";else P+="/..";if(P.length>0)return P+f.slice(E+w);else{if(E+=w,f.charCodeAt(E)===47)++E;return f.slice(E)}}function Ii(i){return i}function M(i){if(C(i),i.length===0)return".";var f=i.charCodeAt(0),l=f===47,a=-1,A=!0;for(var E=i.length-1;E>=1;--E)if(f=i.charCodeAt(E),f===47){if(!A){a=E;break}}else A=!1;if(a===-1)return l?"/":".";if(l&&a===1)return"//";return i.slice(0,a)}function Li(i,f){if(f!==void 0&&typeof f!=="string")throw new TypeError('"ext" argument must be a string');C(i);var l=0,a=-1,A=!0,E;if(f!==void 0&&f.length>0&&f.length<=i.length){if(f.length===i.length&&f===i)return"";var d=f.length-1,_=-1;for(E=i.length-1;E>=0;--E){var N=i.charCodeAt(E);if(N===47){if(!A){l=E+1;break}}else{if(_===-1)A=!1,_=E+1;if(d>=0)if(N===f.charCodeAt(d)){if(--d===-1)a=E}else d=-1,a=_}}if(l===a)a=_;else if(a===-1)a=i.length;return i.slice(l,a)}else{for(E=i.length-1;E>=0;--E)if(i.charCodeAt(E)===47){if(!A){l=E+1;break}}else if(a===-1)A=!1,a=E+1;if(a===-1)return"";return i.slice(l,a)}}function $i(i){C(i);var f=-1,l=0,a=-1,A=!0,E=0;for(var d=i.length-1;d>=0;--d){var _=i.charCodeAt(d);if(_===47){if(!A){l=d+1;break}continue}if(a===-1)A=!1,a=d+1;if(_===46){if(f===-1)f=d;else if(E!==1)E=1}else if(f!==-1)E=-1}if(f===-1||a===-1||E===0||E===1&&f===a-1&&f===l+1)return"";return i.slice(f,a)}function Ri(i){if(i===null||typeof i!=="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof i);return Di("/",i)}function Ui(i){C(i);var f={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return f;var l=i.charCodeAt(0),a=l===47,A;if(a)f.root="/",A=1;else A=0;var E=-1,d=0,_=-1,N=!0,w=i.length-1,O=0;for(;w>=A;--w){if(l=i.charCodeAt(w),l===47){if(!N){d=w+1;break}continue}if(_===-1)N=!1,_=w+1;if(l===46){if(E===-1)E=w;else if(O!==1)O=1}else if(E!==-1)O=-1}if(E===-1||_===-1||O===0||O===1&&E===_-1&&E===d+1){if(_!==-1)if(d===0&&a)f.base=f.name=i.slice(1,_);else f.base=f.name=i.slice(d,_)}else{if(d===0&&a)f.name=i.slice(1,E),f.base=i.slice(1,_);else f.name=i.slice(d,E),f.base=i.slice(d,_);f.ext=i.slice(E,_)}if(d>0)f.dir=i.slice(0,d-1);else if(a)f.dir="/";return f}var z="/",Ci=":",Wi;var K=U(()=>{Wi=((i)=>(i.posix=i,i))({resolve:x,normalize:o,isAbsolute:wi,join:W,relative:G,_makeLong:Ii,dirname:M,basename:Li,extname:$i,format:Ri,parse:Ui,sep:z,delimiter:Ci,win32:null,posix:null})});class v{outputPath;constructor(i="./.vector/routes.generated.ts"){this.outputPath=i}async generate(i){let f=M(this.outputPath);await Z.promises.mkdir(f,{recursive:!0});let l=[],a=new Map;for(let _ of i){if(!a.has(_.path))a.set(_.path,[]);a.get(_.path).push(_)}let A=0,E=[];for(let[_,N]of a){let w=G(M(this.outputPath),_).replace(/\\/g,"/").replace(/\.(ts|js)$/,""),O=`route_${A++}`,I=N.filter((L)=>L.name!=="default").map((L)=>L.name);if(N.some((L)=>L.name==="default"))if(I.length>0)l.push(`import ${O}, { ${I.join(", ")} } from '${w}';`);else l.push(`import ${O} from '${w}';`);else if(I.length>0)l.push(`import { ${I.join(", ")} } from '${w}';`);for(let L of N){let P=L.name==="default"?O:L.name;E.push(` ${P},`)}}let d=`// This file is auto-generated. Do not edit manually.
2
2
  // Generated at: ${new Date().toISOString()}
3
3
 
4
4
  ${l.join(`
@@ -10,7 +10,7 @@ ${E.join(`
10
10
  ];
11
11
 
12
12
  export default routes;
13
- `;await Z.promises.writeFile(this.outputPath,O,"utf-8"),console.log(`Generated routes file: ${this.outputPath}`)}async generateDynamic(i){let f=[];for(let l of i){let a=JSON.stringify({method:l.method,path:l.options.path,options:l.options});f.push(` await import('${l.path}').then(m => ({
13
+ `;await Z.promises.writeFile(this.outputPath,d,"utf-8"),console.log(`Generated routes file: ${this.outputPath}`)}async generateDynamic(i){let f=[];for(let l of i){let a=JSON.stringify({method:l.method,path:l.options.path,options:l.options});f.push(` await import('${l.path}').then(m => ({
14
14
  ...${a},
15
15
  handler: m.${l.name==="default"?"default":l.name}
16
16
  }))`)}return`export const loadRoutes = async () => {
@@ -18,4 +18,4 @@ export default routes;
18
18
  ${f.join(`,
19
19
  `)}
20
20
  ]);
21
- };`}}var Z;var o=P(()=>{Z=(()=>({}));K()});class k{routesDir;constructor(i="./routes"){this.routesDir=F(process.cwd(),i)}async scan(){let i=[];try{await this.scanDirectory(this.routesDir,i)}catch(f){if(f.code==="ENOENT")return console.warn(`Routes directory not found: ${this.routesDir}`),[];throw f}return i}async scanDirectory(i,f,l=""){let a=await g.promises.readdir(i);for(let A of a){let E=W(i,A);if((await g.promises.stat(E)).isDirectory()){let _=l?`${l}/${A}`:A;await this.scanDirectory(E,f,_)}else if(A.endsWith(".ts")||A.endsWith(".js")){let _=j(this.routesDir,E).replace(/\.(ts|js)$/,"").split(z).join("/");try{let I=await import(process.platform==="win32"?`file:///${E.replace(/\\/g,"/")}`:E);if(I.default&&typeof I.default==="function")f.push({name:"default",path:E,method:"GET",options:{method:"GET",path:`/${_}`,expose:!0}});for(let[N,w]of Object.entries(I)){if(N==="default")continue;if(Array.isArray(w)&&w.length>=4){let[L,,,H]=w;f.push({name:N,path:E,method:L,options:{method:L,path:H,expose:!0}})}}}catch(d){console.error(`Failed to load route from ${E}:`,d)}}}}enableWatch(i){if(typeof Bun!=="undefined"&&Bun.env.NODE_ENV==="development")console.log(`Watching for route changes in ${this.routesDir}`),setInterval(async()=>{await i()},1000)}}var g;var p=P(()=>{g=(()=>({}));K()});class h{beforeHandlers=[];finallyHandlers=[];addBefore(...i){this.beforeHandlers.push(...i)}addFinally(...i){this.finallyHandlers.push(...i)}async executeBefore(i){let f=i;for(let l of this.beforeHandlers){let a=await l(f);if(a instanceof Response)return a;f=a}return f}async executeFinally(i,f){let l=i;for(let a of this.finallyHandlers)l=await a(l,f);return l}clone(){let i=new h;return i.beforeHandlers=[...this.beforeHandlers],i.finallyHandlers=[...this.finallyHandlers],i}}var b=(i="text/plain; charset=utf-8",f)=>(l,a={})=>{if(l===void 0||l instanceof Response)return l;let A=new Response(f?.(l)??l,a.url?void 0:a);return A.headers.set("content-type",i),A},Zi,ci,gi,ki,ui,mi,e=async(i)=>{i.content=i.body?await i.clone().json().catch(()=>i.clone().formData()).catch(()=>i.text()):void 0},ii=(i)=>{i.cookies=(i.headers.get("Cookie")||"").split(/;\s*/).map((f)=>f.split(/=(.+)/)).reduce((f,[l,a])=>a?(f[l]=a,f):f,{})},B=(i={})=>{let{origin:f="*",credentials:l=!1,allowMethods:a="*",allowHeaders:A,exposeHeaders:E,maxAge:O}=i,_=(I)=>{let N=I?.headers.get("origin");return f===!0?N:f instanceof RegExp?f.test(N)?N:void 0:Array.isArray(f)?f.includes(N)?N:void 0:f instanceof Function?f(N):f=="*"&&l?N:f},d=(I,N)=>{for(let[w,L]of Object.entries(N))L&&I.headers.append(w,L);return I};return{corsify:(I,N)=>I?.headers?.get("access-control-allow-origin")||I.status==101?I:d(I.clone(),{"access-control-allow-origin":_(N),"access-control-allow-credentials":l}),preflight:(I)=>{if(I.method=="OPTIONS"){let N=new Response(null,{status:204});return d(N,{"access-control-allow-origin":_(I),"access-control-allow-methods":a?.join?.(",")??a,"access-control-expose-headers":E?.join?.(",")??E,"access-control-allow-headers":A?.join?.(",")??A??I.headers.get("access-control-request-headers"),"access-control-max-age":O,"access-control-allow-credentials":l})}}}};var u=P(()=>{Zi=b("application/json; charset=utf-8",JSON.stringify),ci=b("text/plain; charset=utf-8",String),gi=b("text/html"),ki=b("image/jpeg"),ui=b("image/png"),mi=b("image/webp")});function fi(i,f){let l=Si(i,f);return[i.method.toUpperCase(),RegExp(`^${i.path.replace(/\/+(\/|$)/g,"$1").replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),[l],i.path]}function Pi(i){return JSON.stringify(i??null,(f,l)=>typeof l==="bigint"?l.toString():l)}function D(i,f,l){let a={error:!0,message:f,statusCode:i,timestamp:new Date().toISOString()};return S(i,a,l)}function S(i,f,l=M.JSON){let a=l===M.JSON?Pi(f):f;return new Response(a,{status:i,headers:{"content-type":l}})}function Si(i,f){let{auth:l=!1,expose:a=!1,rawRequest:A=!1,rawResponse:E=!1,responseContentType:O=M.JSON}=i;return async(_)=>{if(!a)return C.forbidden("Forbidden");try{if(l)await Hi(_,O);if(!A)await e(_);ii(_);let d=await f(_);return E?d:Ui.success(d,O)}catch(d){if(d instanceof Response)return d;return C.internalServerError(String(d),O)}}}var yi,qi,Ui,C,Hi=async(i,f)=>{let l=(await Promise.resolve().then(() => (m(),li))).default;if(!l.protected)throw C.unauthorized("Authentication not configured",f);try{let a=await l.protected(i);i.authUser=a}catch(a){throw C.unauthorized(a instanceof Error?a.message:"Authentication failed",f)}};var Y=P(()=>{u();X();({preflight:yi,corsify:qi}=B({origin:"*",credentials:!0,allowHeaders:"Content-Type, Authorization",allowMethods:"GET, POST, PUT, PATCH, DELETE, OPTIONS",exposeHeaders:"Authorization",maxAge:86400}));Ui={success:(i,f)=>S(R.OK,i,f),created:(i,f)=>S(R.CREATED,i,f)};C={badRequest:(i="Bad Request",f)=>D(R.BAD_REQUEST,i,f),unauthorized:(i="Unauthorized",f)=>D(R.UNAUTHORIZED,i,f),paymentRequired:(i="Payment Required",f)=>D(402,i,f),forbidden:(i="Forbidden",f)=>D(R.FORBIDDEN,i,f),notFound:(i="Not Found",f)=>D(R.NOT_FOUND,i,f),methodNotAllowed:(i="Method Not Allowed",f)=>D(405,i,f),notAcceptable:(i="Not Acceptable",f)=>D(406,i,f),requestTimeout:(i="Request Timeout",f)=>D(408,i,f),conflict:(i="Conflict",f)=>D(R.CONFLICT,i,f),gone:(i="Gone",f)=>D(410,i,f),lengthRequired:(i="Length Required",f)=>D(411,i,f),preconditionFailed:(i="Precondition Failed",f)=>D(412,i,f),payloadTooLarge:(i="Payload Too Large",f)=>D(413,i,f),uriTooLong:(i="URI Too Long",f)=>D(414,i,f),unsupportedMediaType:(i="Unsupported Media Type",f)=>D(415,i,f),rangeNotSatisfiable:(i="Range Not Satisfiable",f)=>D(416,i,f),expectationFailed:(i="Expectation Failed",f)=>D(417,i,f),imATeapot:(i="I'm a teapot",f)=>D(418,i,f),misdirectedRequest:(i="Misdirected Request",f)=>D(421,i,f),unprocessableEntity:(i="Unprocessable Entity",f)=>D(R.UNPROCESSABLE_ENTITY,i,f),locked:(i="Locked",f)=>D(423,i,f),failedDependency:(i="Failed Dependency",f)=>D(424,i,f),tooEarly:(i="Too Early",f)=>D(425,i,f),upgradeRequired:(i="Upgrade Required",f)=>D(426,i,f),preconditionRequired:(i="Precondition Required",f)=>D(428,i,f),tooManyRequests:(i="Too Many Requests",f)=>D(429,i,f),requestHeaderFieldsTooLarge:(i="Request Header Fields Too Large",f)=>D(431,i,f),unavailableForLegalReasons:(i="Unavailable For Legal Reasons",f)=>D(451,i,f),internalServerError:(i="Internal Server Error",f)=>D(R.INTERNAL_SERVER_ERROR,i,f),notImplemented:(i="Not Implemented",f)=>D(501,i,f),badGateway:(i="Bad Gateway",f)=>D(502,i,f),serviceUnavailable:(i="Service Unavailable",f)=>D(503,i,f),gatewayTimeout:(i="Gateway Timeout",f)=>D(504,i,f),httpVersionNotSupported:(i="HTTP Version Not Supported",f)=>D(505,i,f),variantAlsoNegotiates:(i="Variant Also Negotiates",f)=>D(506,i,f),insufficientStorage:(i="Insufficient Storage",f)=>D(507,i,f),loopDetected:(i="Loop Detected",f)=>D(508,i,f),notExtended:(i="Not Extended",f)=>D(510,i,f),networkAuthenticationRequired:(i="Network Authentication Required",f)=>D(511,i,f),invalidArgument:(i="Invalid Argument",f)=>D(R.UNPROCESSABLE_ENTITY,i,f),rateLimitExceeded:(i="Rate Limit Exceeded",f)=>D(429,i,f),maintenance:(i="Service Under Maintenance",f)=>D(503,i,f),custom:(i,f,l)=>D(i,f,l)}});class n{middlewareManager;authManager;cacheManager;routes=[];constructor(i,f,l){this.middlewareManager=i,this.authManager=f,this.cacheManager=l}getRouteSpecificity(i){let E=0,O=i.split("/").filter(Boolean);for(let _ of O)if(this.isStaticSegment(_))E+=1000;else if(this.isParamSegment(_))E+=10;else if(this.isWildcardSegment(_))E+=1;if(E+=i.length,this.isExactPath(i))E+=1e4;return E}isStaticSegment(i){return!i.startsWith(":")&&!i.includes("*")}isParamSegment(i){return i.startsWith(":")}isWildcardSegment(i){return i.includes("*")}isExactPath(i){return!i.includes(":")&&!i.includes("*")}sortRoutes(){this.routes.sort((i,f)=>{let l=this.extractPath(i),a=this.extractPath(f),A=this.getRouteSpecificity(l);return this.getRouteSpecificity(a)-A})}extractPath(i){return i[3]||""}route(i,f){let l=this.wrapHandler(i,f),a=[i.method.toUpperCase(),this.createRouteRegex(i.path),[l],i.path];return this.routes.push(a),this.sortRoutes(),a}createRouteRegex(i){return RegExp(`^${i.replace(/\/+(\/|$)/g,"$1").replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`)}wrapHandler(i,f){return async(l)=>{let a=l;if(!a.context)a.context={};if(!a.query&&a.url){let A=new URL(a.url),E={};for(let[O,_]of A.searchParams)E[O]=E[O]?[].concat(E[O],_):_;a.query=E}if(i.metadata)a.metadata=i.metadata;l=a;try{if(i.expose===!1)return C.forbidden("Forbidden");let A=await this.middlewareManager.executeBefore(l);if(A instanceof Response)return A;if(l=A,i.auth)try{await this.authManager.authenticate(l)}catch(d){return C.unauthorized(d instanceof Error?d.message:"Authentication failed",i.responseContentType)}if(!i.rawRequest&&l.method!=="GET"&&l.method!=="HEAD")try{let d=l.headers.get("content-type");if(d?.includes("application/json"))l.content=await l.json();else if(d?.includes("application/x-www-form-urlencoded"))l.content=Object.fromEntries(await l.formData());else if(d?.includes("multipart/form-data"))l.content=await l.formData();else l.content=await l.text()}catch{l.content=null}let E,O=i.cache;if(O&&typeof O==="number"&&O>0){let d=this.cacheManager.generateKey(l,{authUser:l.authUser});E=await this.cacheManager.get(d,()=>f(l),O)}else if(O&&typeof O==="object"&&O.ttl){let d=O.key||this.cacheManager.generateKey(l,{authUser:l.authUser});E=await this.cacheManager.get(d,()=>f(l),O.ttl)}else E=await f(l);let _;if(i.rawResponse||E instanceof Response)_=E instanceof Response?E:new Response(E);else _=S(200,E,i.responseContentType);return _=await this.middlewareManager.executeFinally(_,l),_}catch(A){if(A instanceof Response)return A;return console.error("Route handler error:",A),C.internalServerError(A instanceof Error?A.message:String(A),i.responseContentType)}}}addRoute(i){this.routes.push(i),this.sortRoutes()}getRoutes(){return this.routes}async handle(i){let l=new URL(i.url).pathname;for(let[a,A,E]of this.routes)if(i.method==="OPTIONS"||i.method===a){let O=l.match(A);if(O){let _=i;if(!_.context)_.context={};_.params=O.groups||{};for(let d of E){let I=await d(_);if(I)return I}}}return C.notFound("Route not found")}}var ai=P(()=>{Y()});class s{server=null;router;config;corsHandler;constructor(i,f){if(this.router=i,this.config=f,f.cors){let{preflight:l,corsify:a}=B(this.normalizeCorsOptions(f.cors));this.corsHandler={preflight:l,corsify:a}}}normalizeCorsOptions(i){return{origin:i.origin||"*",credentials:i.credentials!==!1,allowHeaders:Array.isArray(i.allowHeaders)?i.allowHeaders.join(", "):i.allowHeaders||"Content-Type, Authorization",allowMethods:Array.isArray(i.allowMethods)?i.allowMethods.join(", "):i.allowMethods||"GET, POST, PUT, PATCH, DELETE, OPTIONS",exposeHeaders:Array.isArray(i.exposeHeaders)?i.exposeHeaders.join(", "):i.exposeHeaders||"Authorization",maxAge:i.maxAge||86400}}async start(){let i=this.config.port||3000,f=this.config.hostname||"localhost",l=async(a)=>{try{if(this.corsHandler&&a.method==="OPTIONS")return this.corsHandler.preflight(a);let A=await this.router.handle(a);if(this.corsHandler)A=this.corsHandler.corsify(A,a);return A}catch(A){return console.error("Server error:",A),new Response("Internal Server Error",{status:500})}};return this.server=Bun.serve({port:i,hostname:f,reusePort:this.config.reusePort!==!1,fetch:l,error:(a)=>{return console.error("[ERROR] Server error:",a),new Response("Internal Server Error",{status:500})}}),console.log(`→ Vector server running at http://${f}:${i}`),this.server}stop(){if(this.server)this.server.stop(),this.server=null,console.log("Server stopped")}getServer(){return this.server}getPort(){return this.server?.port||this.config.port||3000}getHostname(){return this.server?.hostname||this.config.hostname||"localhost"}getUrl(){let i=this.getPort();return`http://${this.getHostname()}:${i}`}}var Ei=P(()=>{u()});var li={};y(li,{default:()=>bi,Vector:()=>$});class ${static instance;router;server=null;middlewareManager;authManager;cacheManager;config={};routeScanner=null;routeGenerator=null;_protectedHandler=null;_cacheHandler=null;constructor(){this.middlewareManager=new h,this.authManager=new x,this.cacheManager=new G,this.router=new n(this.middlewareManager,this.authManager,this.cacheManager)}static getInstance(){if(!$.instance)$.instance=new $;return $.instance}set protected(i){this._protectedHandler=i,this.authManager.setProtectedHandler(i)}get protected(){return this._protectedHandler}set cache(i){this._cacheHandler=i,this.cacheManager.setCacheHandler(i)}get cache(){return this._cacheHandler}route(i,f){return this.router.route(i,f)}use(...i){return this.middlewareManager.addBefore(...i),this}before(...i){return this.middlewareManager.addBefore(...i),this}finally(...i){return this.middlewareManager.addFinally(...i),this}async serve(i){if(this.config={...this.config,...i},i?.before)this.middlewareManager.addBefore(...i.before);if(i?.finally)this.middlewareManager.addFinally(...i.finally);if(this.config.autoDiscover!==!1)await this.discoverRoutes();return this.server=new s(this.router,this.config),await this.server.start()}async discoverRoutes(){let i=this.config.routesDir||"./routes";if(!this.routeScanner)this.routeScanner=new k(i);if(!this.routeGenerator)this.routeGenerator=new c;try{let f=await this.routeScanner.scan();if(f.length>0){if(this.config.development)await this.routeGenerator.generate(f);for(let l of f)try{let A=await import(process.platform==="win32"?`file:///${l.path.replace(/\\/g,"/")}`:l.path),E=l.name==="default"?A.default:A[l.name];if(E){if(this.isRouteEntry(E))this.router.addRoute(E),this.logRouteLoaded(E);else if(typeof E==="function")this.router.route(l.options,E),this.logRouteLoaded(l.options)}}catch(a){console.error(`Failed to load route ${l.name} from ${l.path}:`,a)}this.router.sortRoutes(),console.log(`✅ Loaded ${f.length} routes from ${i}`)}}catch(f){if(f.code!=="ENOENT"&&f.code!=="ENOTDIR")console.error("Failed to discover routes:",f)}}async loadRoute(i){if(typeof i==="function"){let f=i();if(Array.isArray(f))this.router.addRoute(f)}else if(i&&typeof i==="object"){for(let[,f]of Object.entries(i))if(typeof f==="function"){let l=f();if(Array.isArray(l))this.router.addRoute(l)}}}isRouteEntry(i){return Array.isArray(i)&&i.length>=3}logRouteLoaded(i){if(Array.isArray(i))console.log(` ✓ Loaded route: ${i[0]} ${i[3]||i[1]}`);else console.log(` ✓ Loaded route: ${i.method} ${i.path}`)}stop(){if(this.server)this.server.stop(),this.server=null}getServer(){return this.server}getRouter(){return this.router}getCacheManager(){return this.cacheManager}getAuthManager(){return this.authManager}}var hi,bi;var m=P(()=>{J();o();p();ai();Ei();hi=$.getInstance(),bi=hi});var Fi={};y(Fi,{route:()=>fi,default:()=>ji,createVector:()=>xi,createResponse:()=>S,Vector:()=>$,MiddlewareManager:()=>h,CacheManager:()=>G,AuthManager:()=>x,APIError:()=>C});module.exports=Ni(Fi);m();Y();J();Y();function xi(){return $.getInstance()}var Gi=$.getInstance(),ji=Gi;
21
+ };`}}var Z;var p=U(()=>{Z=(()=>({}));K()});class k{routesDir;constructor(i="./routes"){this.routesDir=x(process.cwd(),i)}async scan(){let i=[];try{await this.scanDirectory(this.routesDir,i)}catch(f){if(f.code==="ENOENT")return console.warn(`Routes directory not found: ${this.routesDir}`),[];throw f}return i}async scanDirectory(i,f,l=""){let a=await g.promises.readdir(i);for(let A of a){let E=W(i,A);if((await g.promises.stat(E)).isDirectory()){let _=l?`${l}/${A}`:A;await this.scanDirectory(E,f,_)}else if(A.endsWith(".ts")||A.endsWith(".js")){let _=G(this.routesDir,E).replace(/\.(ts|js)$/,"").split(z).join("/");try{let w=await import(process.platform==="win32"?`file:///${E.replace(/\\/g,"/")}`:E);if(w.default&&typeof w.default==="function")f.push({name:"default",path:E,method:"GET",options:{method:"GET",path:`/${_}`,expose:!0}});for(let[O,I]of Object.entries(w)){if(O==="default")continue;if(I&&typeof I==="object"&&"entry"in I&&"options"in I&&"handler"in I){let L=I;f.push({name:O,path:E,method:L.options.method,options:L.options})}else if(Array.isArray(I)&&I.length>=4){let[L,,,P]=I;f.push({name:O,path:E,method:L,options:{method:L,path:P,expose:!0}})}}}catch(N){console.error(`Failed to load route from ${E}:`,N)}}}}enableWatch(i){if(typeof Bun!=="undefined"&&Bun.env.NODE_ENV==="development")console.log(`Watching for route changes in ${this.routesDir}`),setInterval(async()=>{await i()},1000)}}var g;var e=U(()=>{g=(()=>({}));K()});class T{beforeHandlers=[];finallyHandlers=[];addBefore(...i){this.beforeHandlers.push(...i)}addFinally(...i){this.finallyHandlers.push(...i)}async executeBefore(i){let f=i;for(let l of this.beforeHandlers){let a=await l(f);if(a instanceof Response)return a;f=a}return f}async executeFinally(i,f){let l=i;for(let a of this.finallyHandlers)l=await a(l,f);return l}clone(){let i=new T;return i.beforeHandlers=[...this.beforeHandlers],i.finallyHandlers=[...this.finallyHandlers],i}clear(){this.beforeHandlers=[],this.finallyHandlers=[]}}function ii(i){return process.platform==="win32"?`file:///${i.replace(/\\/g,"/")}`:i}class m{middlewareManager;authManager;cacheManager;routes=[];constructor(i,f,l){this.middlewareManager=i,this.authManager=f,this.cacheManager=l}getRouteSpecificity(i){let E=0,d=i.split("/").filter(Boolean);for(let _ of d)if(this.isStaticSegment(_))E+=1000;else if(this.isParamSegment(_))E+=10;else if(this.isWildcardSegment(_))E+=1;if(E+=i.length,this.isExactPath(i))E+=1e4;return E}isStaticSegment(i){return!i.startsWith(":")&&!i.includes("*")}isParamSegment(i){return i.startsWith(":")}isWildcardSegment(i){return i.includes("*")}isExactPath(i){return!i.includes(":")&&!i.includes("*")}sortRoutes(){this.routes.sort((i,f)=>{let l=this.extractPath(i),a=this.extractPath(f),A=this.getRouteSpecificity(l);return this.getRouteSpecificity(a)-A})}extractPath(i){return i[3]||""}route(i,f){let l=this.wrapHandler(i,f),a=[i.method.toUpperCase(),this.createRouteRegex(i.path),[l],i.path];return this.routes.push(a),this.sortRoutes(),a}createRouteRegex(i){return RegExp(`^${i.replace(/\/+(\/|$)/g,"$1").replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`)}wrapHandler(i,f){return async(l)=>{let a=l;if(!a.context)a.context={};if(!a.query&&a.url){let A=new URL(a.url),E={};for(let[d,_]of A.searchParams)E[d]=E[d]?[].concat(E[d],_):_;a.query=E}if(i.metadata)a.metadata=i.metadata;l=a;try{if(i.expose===!1)return R.forbidden("Forbidden");let A=await this.middlewareManager.executeBefore(l);if(A instanceof Response)return A;if(l=A,i.auth)try{await this.authManager.authenticate(l)}catch(N){return R.unauthorized(N instanceof Error?N.message:"Authentication failed",i.responseContentType)}if(!i.rawRequest&&l.method!=="GET"&&l.method!=="HEAD")try{let N=l.headers.get("content-type");if(N?.includes("application/json"))l.content=await l.json();else if(N?.includes("application/x-www-form-urlencoded"))l.content=Object.fromEntries(await l.formData());else if(N?.includes("multipart/form-data"))l.content=await l.formData();else l.content=await l.text()}catch{l.content=null}let E,d=i.cache;if(d&&typeof d==="number"&&d>0){let N=this.cacheManager.generateKey(l,{authUser:l.authUser});E=await this.cacheManager.get(N,()=>f(l),d)}else if(d&&typeof d==="object"&&d.ttl){let N=d.key||this.cacheManager.generateKey(l,{authUser:l.authUser});E=await this.cacheManager.get(N,()=>f(l),d.ttl)}else E=await f(l);let _;if(i.rawResponse||E instanceof Response)_=E instanceof Response?E:new Response(E);else _=H(200,E,i.responseContentType);return _=await this.middlewareManager.executeFinally(_,l),_}catch(A){if(A instanceof Response)return A;return console.error("Route handler error:",A),R.internalServerError(A instanceof Error?A.message:String(A),i.responseContentType)}}}addRoute(i){this.routes.push(i),this.sortRoutes()}getRoutes(){return this.routes}async handle(i){let l=new URL(i.url).pathname;for(let[a,A,E]of this.routes)if(i.method==="OPTIONS"||i.method===a){let d=l.match(A);if(d){let _=i;if(!_.context)_.context={};_.params=d.groups||{};for(let N of E){let w=await N(_);if(w)return w}}}return R.notFound("Route not found")}clearRoutes(){this.routes=[]}}var fi=U(()=>{B()});class u{server=null;router;config;corsHandler;constructor(i,f){if(this.router=i,this.config=f,f.cors){let{preflight:l,corsify:a}=F(this.normalizeCorsOptions(f.cors));this.corsHandler={preflight:l,corsify:a}}}normalizeCorsOptions(i){return{origin:i.origin||"*",credentials:i.credentials!==!1,allowHeaders:Array.isArray(i.allowHeaders)?i.allowHeaders.join(", "):i.allowHeaders||"Content-Type, Authorization",allowMethods:Array.isArray(i.allowMethods)?i.allowMethods.join(", "):i.allowMethods||"GET, POST, PUT, PATCH, DELETE, OPTIONS",exposeHeaders:Array.isArray(i.exposeHeaders)?i.exposeHeaders.join(", "):i.exposeHeaders||"Authorization",maxAge:i.maxAge||86400}}async start(){let i=this.config.port||3000,f=this.config.hostname||"localhost",l=async(a)=>{try{if(this.corsHandler&&a.method==="OPTIONS")return this.corsHandler.preflight(a);let A=await this.router.handle(a);if(this.corsHandler)A=this.corsHandler.corsify(A,a);return A}catch(A){return console.error("Server error:",A),new Response("Internal Server Error",{status:500})}};return this.server=Bun.serve({port:i,hostname:f,reusePort:this.config.reusePort!==!1,fetch:l,error:(a)=>{return console.error("[ERROR] Server error:",a),new Response("Internal Server Error",{status:500})}}),console.log(`→ Vector server running at http://${f}:${i}`),this.server}stop(){if(this.server)this.server.stop(),this.server=null,console.log("Server stopped")}getServer(){return this.server}getPort(){return this.server?.port||this.config.port||3000}getHostname(){return this.server?.hostname||this.config.hostname||"localhost"}getUrl(){let i=this.getPort();return`http://${this.getHostname()}:${i}`}}var li=U(()=>{Q()});var ai={};r(ai,{getVectorInstance:()=>Pi,Vector:()=>h});class h{static instance;router;server=null;middlewareManager;authManager;cacheManager;config={};routeScanner=null;routeGenerator=null;_protectedHandler=null;_cacheHandler=null;constructor(){this.middlewareManager=new T,this.authManager=new X,this.cacheManager=new J,this.router=new m(this.middlewareManager,this.authManager,this.cacheManager)}static getInstance(){if(!h.instance)h.instance=new h;return h.instance}setProtectedHandler(i){this._protectedHandler=i,this.authManager.setProtectedHandler(i)}getProtectedHandler(){return this._protectedHandler}setCacheHandler(i){this._cacheHandler=i,this.cacheManager.setCacheHandler(i)}getCacheHandler(){return this._cacheHandler}addRoute(i,f){return this.router.route(i,f)}async startServer(i){if(this.config={...this.config,...i},this.middlewareManager.clear(),i?.before)this.middlewareManager.addBefore(...i.before);if(i?.finally)this.middlewareManager.addFinally(...i.finally);if(this.config.autoDiscover!==!1)await this.discoverRoutes();return this.server=new u(this.router,this.config),await this.server.start()}async discoverRoutes(){let i=this.config.routesDir||"./routes";if(!this.routeScanner)this.routeScanner=new k(i);if(!this.routeGenerator)this.routeGenerator=new v;try{let f=await this.routeScanner.scan();if(f.length>0){if(this.config.development)await this.routeGenerator.generate(f);for(let l of f)try{let A=await import(ii(l.path)),E=l.name==="default"?A.default:A[l.name];if(E){if(this.isRouteDefinition(E)){let d=E;this.router.route(d.options,d.handler),this.logRouteLoaded(d.options)}else if(this.isRouteEntry(E))this.router.addRoute(E),this.logRouteLoaded(E);else if(typeof E==="function")this.router.route(l.options,E),this.logRouteLoaded(l.options)}}catch(a){console.error(`Failed to load route ${l.name} from ${l.path}:`,a)}this.router.sortRoutes(),console.log(`✅ Loaded ${f.length} routes from ${i}`)}}catch(f){if(f.code!=="ENOENT"&&f.code!=="ENOTDIR")console.error("Failed to discover routes:",f)}}async loadRoute(i){if(typeof i==="function"){let f=i();if(Array.isArray(f))this.router.addRoute(f)}else if(i&&typeof i==="object"){for(let[,f]of Object.entries(i))if(typeof f==="function"){let l=f();if(Array.isArray(l))this.router.addRoute(l)}}}isRouteEntry(i){return Array.isArray(i)&&i.length>=3}isRouteDefinition(i){return i&&typeof i==="object"&&"entry"in i&&"options"in i&&"handler"in i}logRouteLoaded(i){if(Array.isArray(i))console.log(` ✓ Loaded route: ${i[0]} ${i[3]||i[1]}`);else console.log(` ✓ Loaded route: ${i.method} ${i.path}`)}stop(){if(this.server)this.server.stop(),this.server=null;this.router.clearRoutes()}getServer(){return this.server}getRouter(){return this.router}getCacheManager(){return this.cacheManager}getAuthManager(){return this.authManager}static resetInstance(){h.instance=null}}var Pi;var Ei=U(()=>{q();p();e();fi();li();Pi=h.getInstance});function Ai(i,f){let l=Si(i,f);return{entry:[i.method.toUpperCase(),RegExp(`^${i.path.replace(/\/+(\/|$)/g,"$1").replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),[l],i.path],options:i,handler:f}}function hi(i){return JSON.stringify(i??null,(f,l)=>typeof l==="bigint"?l.toString():l)}function D(i,f,l){let a={error:!0,message:f,statusCode:i,timestamp:new Date().toISOString()};return H(i,a,l)}function H(i,f,l=j.JSON){let a=l===j.JSON?hi(f):f;return new Response(a,{status:i,headers:{"content-type":l}})}function Si(i,f){let{auth:l=!1,expose:a=!1,rawRequest:A=!1,rawResponse:E=!1,responseContentType:d=j.JSON}=i;return async(_)=>{if(!a)return R.forbidden("Forbidden");try{if(l)await bi(_,d);if(!A)await s(_);y(_);let N=await f(_);return E?N:Hi.success(N,d)}catch(N){if(N instanceof Response)return N;return R.internalServerError(String(N),d)}}}var Af,_f,Hi,R,bi=async(i,f)=>{let{getVectorInstance:l}=await Promise.resolve().then(() => (Ei(),ai)),A=l().getProtectedHandler();if(!A)throw R.unauthorized("Authentication not configured",f);try{let E=await A(i);i.authUser=E}catch(E){throw R.unauthorized(E instanceof Error?E.message:"Authentication failed",f)}};var B=U(()=>{Q();c();({preflight:Af,corsify:_f}=F({origin:"*",credentials:!0,allowHeaders:"Content-Type, Authorization",allowMethods:"GET, POST, PUT, PATCH, DELETE, OPTIONS",exposeHeaders:"Authorization",maxAge:86400}));Hi={success:(i,f)=>H($.OK,i,f),created:(i,f)=>H($.CREATED,i,f)};R={badRequest:(i="Bad Request",f)=>D($.BAD_REQUEST,i,f),unauthorized:(i="Unauthorized",f)=>D($.UNAUTHORIZED,i,f),paymentRequired:(i="Payment Required",f)=>D(402,i,f),forbidden:(i="Forbidden",f)=>D($.FORBIDDEN,i,f),notFound:(i="Not Found",f)=>D($.NOT_FOUND,i,f),methodNotAllowed:(i="Method Not Allowed",f)=>D(405,i,f),notAcceptable:(i="Not Acceptable",f)=>D(406,i,f),requestTimeout:(i="Request Timeout",f)=>D(408,i,f),conflict:(i="Conflict",f)=>D($.CONFLICT,i,f),gone:(i="Gone",f)=>D(410,i,f),lengthRequired:(i="Length Required",f)=>D(411,i,f),preconditionFailed:(i="Precondition Failed",f)=>D(412,i,f),payloadTooLarge:(i="Payload Too Large",f)=>D(413,i,f),uriTooLong:(i="URI Too Long",f)=>D(414,i,f),unsupportedMediaType:(i="Unsupported Media Type",f)=>D(415,i,f),rangeNotSatisfiable:(i="Range Not Satisfiable",f)=>D(416,i,f),expectationFailed:(i="Expectation Failed",f)=>D(417,i,f),imATeapot:(i="I'm a teapot",f)=>D(418,i,f),misdirectedRequest:(i="Misdirected Request",f)=>D(421,i,f),unprocessableEntity:(i="Unprocessable Entity",f)=>D($.UNPROCESSABLE_ENTITY,i,f),locked:(i="Locked",f)=>D(423,i,f),failedDependency:(i="Failed Dependency",f)=>D(424,i,f),tooEarly:(i="Too Early",f)=>D(425,i,f),upgradeRequired:(i="Upgrade Required",f)=>D(426,i,f),preconditionRequired:(i="Precondition Required",f)=>D(428,i,f),tooManyRequests:(i="Too Many Requests",f)=>D(429,i,f),requestHeaderFieldsTooLarge:(i="Request Header Fields Too Large",f)=>D(431,i,f),unavailableForLegalReasons:(i="Unavailable For Legal Reasons",f)=>D(451,i,f),internalServerError:(i="Internal Server Error",f)=>D($.INTERNAL_SERVER_ERROR,i,f),notImplemented:(i="Not Implemented",f)=>D(501,i,f),badGateway:(i="Bad Gateway",f)=>D(502,i,f),serviceUnavailable:(i="Service Unavailable",f)=>D(503,i,f),gatewayTimeout:(i="Gateway Timeout",f)=>D(504,i,f),httpVersionNotSupported:(i="HTTP Version Not Supported",f)=>D(505,i,f),variantAlsoNegotiates:(i="Variant Also Negotiates",f)=>D(506,i,f),insufficientStorage:(i="Insufficient Storage",f)=>D(507,i,f),loopDetected:(i="Loop Detected",f)=>D(508,i,f),notExtended:(i="Not Extended",f)=>D(510,i,f),networkAuthenticationRequired:(i="Network Authentication Required",f)=>D(511,i,f),invalidArgument:(i="Invalid Argument",f)=>D($.UNPROCESSABLE_ENTITY,i,f),rateLimitExceeded:(i="Rate Limit Exceeded",f)=>D(429,i,f),maintenance:(i="Service Under Maintenance",f)=>D(503,i,f),custom:(i,f,l)=>D(i,f,l)}});var xi={};r(xi,{route:()=>Ai,createResponse:()=>H,APIError:()=>R});module.exports=Ni(xi);B();B();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,cAAc,SAAS,CAAC;AAExB,mDAAmD;AACnD,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,WAAW,EAAU,CAAC;AACtC,CAAC;AAED,qDAAqD;AACrD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AACpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,4CAA4C;AAC5C,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,sCAAsC;AACtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAElD,oCAAoC;AACpC,cAAc,SAAS,CAAC;AAExB,+DAA+D;AAC/D,wEAAwE"}