@acmekit/framework 2.13.36 → 2.13.37

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 (39) hide show
  1. package/dist/http/index.d.ts +3 -0
  2. package/dist/http/index.d.ts.map +1 -1
  3. package/dist/http/index.js +3 -0
  4. package/dist/http/index.js.map +1 -1
  5. package/dist/http/middlewares/index.d.ts +1 -0
  6. package/dist/http/middlewares/index.d.ts.map +1 -1
  7. package/dist/http/middlewares/index.js +1 -0
  8. package/dist/http/middlewares/index.js.map +1 -1
  9. package/dist/http/middlewares/rate-limiter.d.ts +12 -0
  10. package/dist/http/middlewares/rate-limiter.d.ts.map +1 -0
  11. package/dist/http/middlewares/rate-limiter.js +52 -0
  12. package/dist/http/middlewares/rate-limiter.js.map +1 -0
  13. package/dist/http/router.d.ts.map +1 -1
  14. package/dist/http/router.js +57 -3
  15. package/dist/http/router.js.map +1 -1
  16. package/dist/http/routes-loader.d.ts +13 -1
  17. package/dist/http/routes-loader.d.ts.map +1 -1
  18. package/dist/http/routes-loader.js +128 -2
  19. package/dist/http/routes-loader.js.map +1 -1
  20. package/dist/http/types.d.ts +134 -2
  21. package/dist/http/types.d.ts.map +1 -1
  22. package/dist/http/types.js.map +1 -1
  23. package/dist/http/utils/define-route-config.d.ts +40 -0
  24. package/dist/http/utils/define-route-config.d.ts.map +1 -0
  25. package/dist/http/utils/define-route-config.js +44 -0
  26. package/dist/http/utils/define-route-config.js.map +1 -0
  27. package/dist/http/utils/parse-duration.d.ts +6 -0
  28. package/dist/http/utils/parse-duration.d.ts.map +1 -0
  29. package/dist/http/utils/parse-duration.js +27 -0
  30. package/dist/http/utils/parse-duration.js.map +1 -0
  31. package/dist/http/utils/rate-limit-store.d.ts +18 -0
  32. package/dist/http/utils/rate-limit-store.d.ts.map +1 -0
  33. package/dist/http/utils/rate-limit-store.js +71 -0
  34. package/dist/http/utils/rate-limit-store.js.map +1 -0
  35. package/dist/http/utils/validate-response.d.ts +16 -0
  36. package/dist/http/utils/validate-response.d.ts.map +1 -0
  37. package/dist/http/utils/validate-response.js +37 -0
  38. package/dist/http/utils/validate-response.js.map +1 -0
  39. package/package.json +10 -10
@@ -12,4 +12,7 @@ export * from "./utils/maybe-apply-link-filter";
12
12
  export * from "./utils/refetch-entities";
13
13
  export * from "./utils/unless-path";
14
14
  export * from "./utils/restricted-fields";
15
+ export * from "./utils/parse-duration";
16
+ export * from "./utils/define-route-config";
17
+ export * from "./utils/validate-response";
15
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAE3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAE3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA"}
@@ -28,4 +28,7 @@ __exportStar(require("./utils/maybe-apply-link-filter"), exports);
28
28
  __exportStar(require("./utils/refetch-entities"), exports);
29
29
  __exportStar(require("./utils/unless-path"), exports);
30
30
  __exportStar(require("./utils/restricted-fields"), exports);
31
+ __exportStar(require("./utils/parse-duration"), exports);
32
+ __exportStar(require("./utils/define-route-config"), exports);
33
+ __exportStar(require("./utils/validate-response"), exports);
31
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8BAA2B;AAE3B,mDAAgC;AAChC,2CAAwB;AACxB,0CAAuB;AACvB,gDAA6B;AAC7B,2DAAwC;AACxC,wDAAqC;AACrC,yDAAsC;AACtC,2DAAwC;AACxC,6DAA0C;AAC1C,kEAA+C;AAC/C,2DAAwC;AACxC,sDAAmC;AACnC,4DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8BAA2B;AAE3B,mDAAgC;AAChC,2CAAwB;AACxB,0CAAuB;AACvB,gDAA6B;AAC7B,2DAAwC;AACxC,wDAAqC;AACrC,yDAAsC;AACtC,2DAAwC;AACxC,6DAA0C;AAC1C,kEAA+C;AAC/C,2DAAwC;AACxC,sDAAmC;AACnC,4DAAyC;AACzC,yDAAsC;AACtC,8DAA2C;AAC3C,4DAAyC"}
@@ -6,5 +6,6 @@ export * from "./check-permissions";
6
6
  export * from "./clear-filters-by-key";
7
7
  export * from "./error-handler";
8
8
  export * from "./exception-formatter";
9
+ export * from "./rate-limiter";
9
10
  export * from "./set-context";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA"}
@@ -22,5 +22,6 @@ __exportStar(require("./check-permissions"), exports);
22
22
  __exportStar(require("./clear-filters-by-key"), exports);
23
23
  __exportStar(require("./error-handler"), exports);
24
24
  __exportStar(require("./exception-formatter"), exports);
25
+ __exportStar(require("./rate-limiter"), exports);
25
26
  __exportStar(require("./set-context"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http/middlewares/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AACvC,iDAA8B;AAC9B,4DAAyC;AACzC,4DAAyC;AACzC,sDAAmC;AACnC,yDAAsC;AACtC,kDAA+B;AAC/B,wDAAqC;AACrC,gDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http/middlewares/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AACvC,iDAA8B;AAC9B,4DAAyC;AACzC,4DAAyC;AACzC,sDAAmC;AACnC,yDAAsC;AACtC,kDAA+B;AAC/B,wDAAqC;AACrC,iDAA8B;AAC9B,gDAA6B"}
@@ -0,0 +1,12 @@
1
+ import type { MiddlewareFunction, RateLimitConfig, RateLimitStore } from "../types";
2
+ /**
3
+ * Create a rate-limit middleware from a declarative config.
4
+ *
5
+ * This middleware should be placed BEFORE body/query validation
6
+ * so that expensive parsing is avoided for rate-limited requests.
7
+ */
8
+ export declare function createRateLimiter(config: RateLimitConfig, options?: {
9
+ store?: RateLimitStore;
10
+ prefix?: string;
11
+ }): MiddlewareFunction;
12
+ //# sourceMappingURL=rate-limiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/rate-limiter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,UAAU,CAAA;AAkBjB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,kBAAkB,CA8CpB"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRateLimiter = createRateLimiter;
4
+ const parse_duration_1 = require("../utils/parse-duration");
5
+ const rate_limit_store_1 = require("../utils/rate-limit-store");
6
+ /**
7
+ * Shared default store instance. Lazily created on first use.
8
+ * A single store is shared across all rate-limited routes so that
9
+ * the cleanup timer count stays at 1 regardless of route count.
10
+ */
11
+ let defaultStore;
12
+ function getDefaultStore() {
13
+ if (!defaultStore) {
14
+ defaultStore = new rate_limit_store_1.InMemoryRateLimitStore();
15
+ }
16
+ return defaultStore;
17
+ }
18
+ /**
19
+ * Create a rate-limit middleware from a declarative config.
20
+ *
21
+ * This middleware should be placed BEFORE body/query validation
22
+ * so that expensive parsing is avoided for rate-limited requests.
23
+ */
24
+ function createRateLimiter(config, options) {
25
+ const windowMs = (0, parse_duration_1.parseDuration)(config.window);
26
+ const max = config.max;
27
+ const keyFn = config.key ?? ((req) => req.ip);
28
+ const rateLimitStore = options?.store ?? getDefaultStore();
29
+ const prefix = options?.prefix ?? "";
30
+ async function rateLimiterMiddleware(req, res, next) {
31
+ const rawKey = keyFn(req) ?? "unknown";
32
+ const key = prefix ? `${prefix}:${rawKey}` : rawKey;
33
+ const { totalHits, resetTime } = await rateLimitStore.increment(key, windowMs);
34
+ const resetEpochSeconds = Math.ceil(resetTime.getTime() / 1000);
35
+ res.setHeader("X-RateLimit-Limit", String(max));
36
+ res.setHeader("X-RateLimit-Remaining", String(Math.max(0, max - totalHits)));
37
+ res.setHeader("X-RateLimit-Reset", String(resetEpochSeconds));
38
+ if (totalHits > max) {
39
+ const retryAfterSeconds = Math.ceil((resetTime.getTime() - Date.now()) / 1000);
40
+ res.setHeader("Retry-After", String(Math.max(0, retryAfterSeconds)));
41
+ res.status(429).json({
42
+ type: "too_many_requests",
43
+ message: "Too many requests, please try again later.",
44
+ code: "rate_limit_exceeded",
45
+ });
46
+ return;
47
+ }
48
+ next();
49
+ }
50
+ return rateLimiterMiddleware;
51
+ }
52
+ //# sourceMappingURL=rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../../src/http/middlewares/rate-limiter.ts"],"names":[],"mappings":";;AA+BA,8CAiDC;AAxED,4DAAuD;AACvD,gEAAkE;AAElE;;;;GAIG;AACH,IAAI,YAAgD,CAAA;AAEpD,SAAS,eAAe;IACtB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,yCAAsB,EAAE,CAAA;IAC7C,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,MAAuB,EACvB,OAAqD;IAErD,MAAM,QAAQ,GAAG,IAAA,8BAAa,EAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAG,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,CAAA;IAC1D,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE,CAAA;IAEpC,KAAK,UAAU,qBAAqB,CAClC,GAAmB,EACnB,GAAoB,EACpB,IAAyB;QAEzB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;QACnD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,cAAc,CAAC,SAAS,CAC7D,GAAG,EACH,QAAQ,CACT,CAAA;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;QAE/D,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/C,GAAG,CAAC,SAAS,CACX,uBAAuB,EACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,CACrC,CAAA;QACD,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAE7D,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACpB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CACjC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAC1C,CAAA;YACD,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAA;YAEpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,4CAA4C;gBACrD,IAAI,EAAE,qBAAqB;aAC5B,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,IAAI,EAAE,CAAA;IACR,CAAC;IAED,OAAO,qBAA2C,CAAA;AACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,OAAO,EAEP,cAAc,EACf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAOV,kBAAkB,EAGlB,YAAY,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAU,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAezD,qBAAa,SAAS;;IACpB;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,EAAE,CAClB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KACrC,YAAY,CAAA;IAEjB;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,EAAE,CACvB,OAAO,EAAE,cAAc,GAAG,kBAAkB,EAC5C,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KACtC,cAAc,GAAG,kBAAkB,CAAA;gBAgB5B,EACV,GAAG,EACH,SAAS,EACT,oBAAyB,EACzB,SAAS,GACV,EAAE;QACD,GAAG,EAAE,OAAO,CAAA;QACZ,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;QAC5B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;QAC/B,SAAS,EAAE,gBAAgB,CAAA;KAC5B;IA8VK,IAAI;IAoHV;;;;OAIG;IACH,iBAAiB;CASlB"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,OAAO,EAEP,cAAc,EACf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAOV,kBAAkB,EAGlB,YAAY,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAU,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAezD,qBAAa,SAAS;;IACpB;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,EAAE,CAClB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KACrC,YAAY,CAAA;IAEjB;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,EAAE,CACvB,OAAO,EAAE,cAAc,GAAG,kBAAkB,EAC5C,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KACtC,cAAc,GAAG,kBAAkB,CAAA;gBAgB5B,EACV,GAAG,EACH,SAAS,EACT,oBAAyB,EACzB,SAAS,GACV,EAAE;QACD,GAAG,EAAE,OAAO,CAAA;QACZ,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;QAC5B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;QAC/B,SAAS,EAAE,gBAAgB,CAAA;KAC5B;IAyZK,IAAI;IAoHV;;;;OAIG;IACH,iBAAiB;CASlB"}
@@ -145,13 +145,67 @@ async function _ApiLoader_loadHttpResources() {
145
145
  await routesLoader.scanDir(dir);
146
146
  await middlewareLoader.scanDir(dir);
147
147
  }
148
+ /**
149
+ * Merge config-derived middleware with file-loader results.
150
+ * middlewares.ts takes precedence: if both define config for the
151
+ * same route+method pair, the file-loader version wins.
152
+ */
153
+ const fileMiddlewares = middlewareLoader.getMiddlewares();
154
+ const fileBP = middlewareLoader.getBodyParserConfigRoutes();
155
+ const fileADV = middlewareLoader.getAdditionalDataValidatorRoutes();
156
+ const configMiddlewares = routesLoader.getConfigMiddlewares();
157
+ const configBP = routesLoader.getConfigBodyParserConfigRoutes();
158
+ const configADV = routesLoader.getConfigAdditionalDataValidatorRoutes();
159
+ // Build a set of "METHOD:matcher" keys covered by middlewares.ts
160
+ const fileMiddlewareKeys = new Set();
161
+ for (const mw of fileMiddlewares) {
162
+ const methods = mw.methods
163
+ ? Array.isArray(mw.methods)
164
+ ? mw.methods
165
+ : [mw.methods]
166
+ : [];
167
+ for (const m of methods) {
168
+ fileMiddlewareKeys.add(`${m}:${mw.matcher}`);
169
+ }
170
+ }
171
+ // Filter out config-derived entries where middlewares.ts already covers the route+method
172
+ const filteredConfigMiddlewares = configMiddlewares.filter((mw) => {
173
+ const methods = mw.methods
174
+ ? Array.isArray(mw.methods)
175
+ ? mw.methods
176
+ : [mw.methods]
177
+ : [];
178
+ return !methods.some((m) => fileMiddlewareKeys.has(`${m}:${mw.matcher}`));
179
+ });
180
+ const fileBPKeys = new Set();
181
+ for (const bp of fileBP) {
182
+ const methods = Array.isArray(bp.methods) ? bp.methods : [bp.methods];
183
+ for (const m of methods) {
184
+ fileBPKeys.add(`${m}:${bp.matcher}`);
185
+ }
186
+ }
187
+ const filteredConfigBP = configBP.filter((bp) => {
188
+ const methods = Array.isArray(bp.methods) ? bp.methods : [bp.methods];
189
+ return !methods.some((m) => fileBPKeys.has(`${m}:${bp.matcher}`));
190
+ });
191
+ const fileADVKeys = new Set();
192
+ for (const adv of fileADV) {
193
+ const methods = Array.isArray(adv.methods) ? adv.methods : [adv.methods];
194
+ for (const m of methods) {
195
+ fileADVKeys.add(`${m}:${adv.matcher}`);
196
+ }
197
+ }
198
+ const filteredConfigADV = configADV.filter((adv) => {
199
+ const methods = Array.isArray(adv.methods) ? adv.methods : [adv.methods];
200
+ return !methods.some((m) => fileADVKeys.has(`${m}:${adv.matcher}`));
201
+ });
148
202
  return {
149
203
  routes: routesLoader.getRoutes(),
150
204
  routesFinder: new routes_finder_1.RoutesFinder(),
151
- middlewares: middlewareLoader.getMiddlewares(),
205
+ middlewares: [...filteredConfigMiddlewares, ...fileMiddlewares],
152
206
  errorHandler: middlewareLoader.getErrorHandler(),
153
- bodyParserConfigRoutes: middlewareLoader.getBodyParserConfigRoutes(),
154
- additionalDataValidatorRoutes: middlewareLoader.getAdditionalDataValidatorRoutes(),
207
+ bodyParserConfigRoutes: [...filteredConfigBP, ...fileBP],
208
+ additionalDataValidatorRoutes: [...filteredConfigADV, ...fileADV],
155
209
  };
156
210
  }, _ApiLoader_isRouteFileDisabled = function _ApiLoader_isRouteFileDisabled(matcher) {
157
211
  const routePathSegments = matcher
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type RouteDescriptor } from "./types";
1
+ import { type AdditionalDataValidatorRoute, type BodyParserConfigRoute, type MiddlewareDescriptor, type RouteDescriptor } from "./types";
2
2
  /**
3
3
  * Exposes to API to register routes manually or by scanning the filesystem from a
4
4
  * source directory.
@@ -30,6 +30,18 @@ export declare class RoutesLoader {
30
30
  * manually.
31
31
  */
32
32
  getRoutes(): RouteDescriptor[];
33
+ /**
34
+ * Returns middleware descriptors derived from co-located route config exports.
35
+ */
36
+ getConfigMiddlewares(): MiddlewareDescriptor[];
37
+ /**
38
+ * Returns body parser config routes derived from co-located route config exports.
39
+ */
40
+ getConfigBodyParserConfigRoutes(): BodyParserConfigRoute[];
41
+ /**
42
+ * Returns additional data validator routes derived from co-located route config exports.
43
+ */
44
+ getConfigAdditionalDataValidatorRoutes(): AdditionalDataValidatorRoute[];
33
45
  /**
34
46
  * Reload a single route file
35
47
  * This is used by HMR to reload routes when files change
@@ -1 +1 @@
1
- {"version":3,"file":"routes-loader.d.ts","sourceRoot":"","sources":["../../src/http/routes-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,eAAe,EAAkB,MAAM,SAAS,CAAA;AAqC5E;;;;;;GAMG;AACH,qBAAa,YAAY;;IAMvB;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAoG7C;;;OAGG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM;IA0C/B;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe;IAMpC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;IAIxC;;;OAGG;IACH,SAAS;IAcT;;;OAGG;IACG,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC;CAoB9B"}
1
+ {"version":3,"file":"routes-loader.d.ts","sourceRoot":"","sources":["../../src/http/routes-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAGzB,KAAK,eAAe,EAGrB,MAAM,SAAS,CAAA;AA8ChB;;;;;;GAMG;AACH,qBAAa,YAAY;;IAqBvB;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IA+L7C;;;OAGG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM;IA0C/B;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe;IAMpC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;IAIxC;;;OAGG;IACH,SAAS;IAcT;;OAEG;IACH,oBAAoB,IAAI,oBAAoB,EAAE;IAI9C;;OAEG;IACH,+BAA+B,IAAI,qBAAqB,EAAE;IAI1D;;OAEG;IACH,sCAAsC,IAAI,4BAA4B,EAAE;IAIxE;;;OAGG;IACG,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC;CAgC9B"}
@@ -4,13 +4,24 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
5
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
6
  };
7
- var _RoutesLoader_instances, _RoutesLoader_routes, _RoutesLoader_getRoutesForFile;
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _RoutesLoader_instances, _RoutesLoader_routes, _RoutesLoader_configMiddlewares, _RoutesLoader_configBodyParserConfigRoutes, _RoutesLoader_configAdditionalDataValidatorRoutes, _RoutesLoader_processRouteConfig, _RoutesLoader_getRoutesForFile;
8
14
  Object.defineProperty(exports, "__esModule", { value: true });
9
15
  exports.RoutesLoader = void 0;
16
+ const zod_1 = require("@acmekit/deps/zod");
10
17
  const utils_1 = require("@acmekit/utils");
11
18
  const path_1 = require("path");
12
19
  const logger_1 = require("../logger");
13
20
  const types_1 = require("./types");
21
+ const rate_limiter_1 = require("./middlewares/rate-limiter");
22
+ const validate_body_1 = require("./utils/validate-body");
23
+ const validate_query_1 = require("./utils/validate-query");
24
+ const validate_response_1 = require("./utils/validate-response");
14
25
  /**
15
26
  * File name that is used to indicate that the file is a route file
16
27
  */
@@ -26,6 +37,10 @@ const AUTHTHENTICATION_FLAG = "AUTHENTICATE";
26
37
  * policy.
27
38
  */
28
39
  const CORS_FLAG = "CORS";
40
+ /**
41
+ * Export name for co-located route configuration.
42
+ */
43
+ const CONFIG_EXPORT = "config";
29
44
  /**
30
45
  * The matcher to use to convert the dynamic params from the filesystem
31
46
  * identifier to the express identifier.
@@ -55,6 +70,30 @@ class RoutesLoader {
55
70
  * Routes collected manually or by scanning directories
56
71
  */
57
72
  _RoutesLoader_routes.set(this, {}
73
+ /**
74
+ * Middleware descriptors derived from co-located route config exports
75
+ */
76
+ );
77
+ /**
78
+ * Middleware descriptors derived from co-located route config exports
79
+ */
80
+ _RoutesLoader_configMiddlewares.set(this, []
81
+ /**
82
+ * Body parser config routes derived from co-located route config exports
83
+ */
84
+ );
85
+ /**
86
+ * Body parser config routes derived from co-located route config exports
87
+ */
88
+ _RoutesLoader_configBodyParserConfigRoutes.set(this, []
89
+ /**
90
+ * Additional data validator routes derived from co-located route config exports
91
+ */
92
+ );
93
+ /**
94
+ * Additional data validator routes derived from co-located route config exports
95
+ */
96
+ _RoutesLoader_configAdditionalDataValidatorRoutes.set(this, []
58
97
  /**
59
98
  * Creates the route path from its relative file path.
60
99
  */
@@ -147,6 +186,24 @@ class RoutesLoader {
147
186
  return result;
148
187
  }, []);
149
188
  }
189
+ /**
190
+ * Returns middleware descriptors derived from co-located route config exports.
191
+ */
192
+ getConfigMiddlewares() {
193
+ return __classPrivateFieldGet(this, _RoutesLoader_configMiddlewares, "f");
194
+ }
195
+ /**
196
+ * Returns body parser config routes derived from co-located route config exports.
197
+ */
198
+ getConfigBodyParserConfigRoutes() {
199
+ return __classPrivateFieldGet(this, _RoutesLoader_configBodyParserConfigRoutes, "f");
200
+ }
201
+ /**
202
+ * Returns additional data validator routes derived from co-located route config exports.
203
+ */
204
+ getConfigAdditionalDataValidatorRoutes() {
205
+ return __classPrivateFieldGet(this, _RoutesLoader_configAdditionalDataValidatorRoutes, "f");
206
+ }
150
207
  /**
151
208
  * Reload a single route file
152
209
  * This is used by HMR to reload routes when files change
@@ -154,6 +211,10 @@ class RoutesLoader {
154
211
  async reloadRouteFile(absolutePath, sourceDir) {
155
212
  const relativePath = absolutePath.replace(sourceDir, "");
156
213
  const route = this.createRoutePath(relativePath);
214
+ // Clear previously cached config entries for this route
215
+ __classPrivateFieldSet(this, _RoutesLoader_configMiddlewares, __classPrivateFieldGet(this, _RoutesLoader_configMiddlewares, "f").filter((m) => m.matcher !== route), "f");
216
+ __classPrivateFieldSet(this, _RoutesLoader_configBodyParserConfigRoutes, __classPrivateFieldGet(this, _RoutesLoader_configBodyParserConfigRoutes, "f").filter((r) => r.matcher !== route), "f");
217
+ __classPrivateFieldSet(this, _RoutesLoader_configAdditionalDataValidatorRoutes, __classPrivateFieldGet(this, _RoutesLoader_configAdditionalDataValidatorRoutes, "f").filter((r) => r.matcher !== route), "f");
157
218
  const routes = await __classPrivateFieldGet(this, _RoutesLoader_instances, "m", _RoutesLoader_getRoutesForFile).call(this, route, absolutePath);
158
219
  // Register the new routes (will overwrite existing)
159
220
  routes.forEach((routeConfig) => {
@@ -171,7 +232,66 @@ class RoutesLoader {
171
232
  }
172
233
  }
173
234
  exports.RoutesLoader = RoutesLoader;
174
- _RoutesLoader_routes = new WeakMap(), _RoutesLoader_instances = new WeakSet(), _RoutesLoader_getRoutesForFile =
235
+ _RoutesLoader_routes = new WeakMap(), _RoutesLoader_configMiddlewares = new WeakMap(), _RoutesLoader_configBodyParserConfigRoutes = new WeakMap(), _RoutesLoader_configAdditionalDataValidatorRoutes = new WeakMap(), _RoutesLoader_instances = new WeakSet(), _RoutesLoader_processRouteConfig = function _RoutesLoader_processRouteConfig(routePath, config) {
236
+ for (const key of Object.keys(config)) {
237
+ if (!types_1.HTTP_METHODS.includes(key)) {
238
+ continue;
239
+ }
240
+ const method = key;
241
+ const methodConfig = config[method];
242
+ const middlewares = [];
243
+ if (methodConfig.rateLimit) {
244
+ middlewares.push((0, rate_limiter_1.createRateLimiter)(methodConfig.rateLimit, {
245
+ prefix: `${method}:${routePath}`,
246
+ }));
247
+ }
248
+ if (methodConfig.response) {
249
+ middlewares.push((0, validate_response_1.validateAndTransformResponse)(methodConfig.response));
250
+ }
251
+ if (methodConfig.body) {
252
+ middlewares.push((0, validate_body_1.validateAndTransformBody)(methodConfig.body));
253
+ }
254
+ if (methodConfig.query) {
255
+ if (!methodConfig.queryConfig) {
256
+ logger_1.logger.warn(`Route config for ${method} ${routePath} has "query" but no "queryConfig". Query validation will be skipped.`);
257
+ }
258
+ else {
259
+ middlewares.push((0, validate_query_1.validateAndTransformQuery)(methodConfig.query, methodConfig.queryConfig));
260
+ }
261
+ }
262
+ if (methodConfig.middlewares) {
263
+ middlewares.push(...methodConfig.middlewares);
264
+ }
265
+ if (middlewares.length || methodConfig.policies) {
266
+ const handlers = middlewares.length
267
+ ? middlewares
268
+ : [((_, __, next) => next())];
269
+ for (const handler of handlers) {
270
+ __classPrivateFieldGet(this, _RoutesLoader_configMiddlewares, "f").push({
271
+ handler,
272
+ matcher: routePath,
273
+ methods: [method],
274
+ policies: methodConfig.policies,
275
+ });
276
+ }
277
+ }
278
+ if (methodConfig.bodyParser !== undefined) {
279
+ __classPrivateFieldGet(this, _RoutesLoader_configBodyParserConfigRoutes, "f").push({
280
+ matcher: routePath,
281
+ methods: [method],
282
+ config: methodConfig.bodyParser,
283
+ });
284
+ }
285
+ if (methodConfig.additionalDataValidator) {
286
+ __classPrivateFieldGet(this, _RoutesLoader_configAdditionalDataValidatorRoutes, "f").push({
287
+ matcher: routePath,
288
+ methods: [method],
289
+ schema: methodConfig.additionalDataValidator,
290
+ validator: zod_1.z.object(methodConfig.additionalDataValidator).nullish(),
291
+ });
292
+ }
293
+ }
294
+ }, _RoutesLoader_getRoutesForFile =
175
295
  /**
176
296
  * Returns the route config by exporting the route file and parsing
177
297
  * its exports
@@ -181,6 +301,12 @@ async function _RoutesLoader_getRoutesForFile(routePath, absolutePath) {
181
301
  if ((0, utils_1.isFileSkipped)(routeExports)) {
182
302
  return [];
183
303
  }
304
+ /**
305
+ * Process the co-located config export if present
306
+ */
307
+ if (CONFIG_EXPORT in routeExports && routeExports[CONFIG_EXPORT]) {
308
+ __classPrivateFieldGet(this, _RoutesLoader_instances, "m", _RoutesLoader_processRouteConfig).call(this, routePath, routeExports[CONFIG_EXPORT]);
309
+ }
184
310
  /**
185
311
  * Find the route type based upon its prefix.
186
312
  */
@@ -1 +1 @@
1
- {"version":3,"file":"routes-loader.js","sourceRoot":"","sources":["../../src/http/routes-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes-loader.js","sourceRoot":"","sources":["../../src/http/routes-loader.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { ZodNullable, ZodObject, ZodOptional, ZodRawShape } from "@acmekit/deps/zod";
1
+ import type { ZodEffects, ZodNullable, ZodObject, ZodOptional, ZodRawShape, ZodTypeAny } from "@acmekit/deps/zod";
2
2
  import type { NextFunction, Request, Response } from "express";
3
- import { FindConfig, RequestQueryFields } from "@acmekit/types";
3
+ import { FindConfig, QueryConfig, RequestQueryFields } from "@acmekit/types";
4
4
  /** @internal Kernel-only; pricing context type removed with commerce. */
5
5
  export type AcmeKitPricingContext = Record<string, unknown>;
6
6
  import { AcmeKitContainer } from "../container";
@@ -89,6 +89,76 @@ export type AdditionalDataValidatorRoute = {
89
89
  schema: ZodRawShape;
90
90
  validator: ZodOptional<ZodNullable<ZodObject<any, any>>>;
91
91
  };
92
+ /**
93
+ * Per-method configuration co-located with route handlers.
94
+ */
95
+ export type RouteMethodConfig = {
96
+ /** Zod schema for query validation (used with queryConfig) */
97
+ query?: ZodObject<any, any> | ZodEffects<any, any>;
98
+ /** Query config (defaults, isList, entity). Required when query is set. */
99
+ queryConfig?: QueryConfig<any>;
100
+ /** Zod schema for body validation */
101
+ body?: ZodObject<any, any> | ZodEffects<any, any> | ((customSchema?: ZodOptional<ZodNullable<ZodObject<any, any>>>) => ZodObject<any, any> | ZodEffects<any, any>);
102
+ /** Additional data validator shape */
103
+ additionalDataValidator?: ZodRawShape;
104
+ /** Body parser config override */
105
+ bodyParser?: ParserConfig;
106
+ /** RBAC policies */
107
+ policies?: {
108
+ resource: string;
109
+ operation: string;
110
+ } | Array<{
111
+ resource: string;
112
+ operation: string | string[];
113
+ }>;
114
+ /** Additional middleware functions */
115
+ middlewares?: MiddlewareFunction[];
116
+ /** Rate limiting configuration */
117
+ rateLimit?: RateLimitConfig;
118
+ /** Zod schema for response validation and type inference */
119
+ response?: ZodTypeAny;
120
+ };
121
+ /**
122
+ * Function that extracts the rate-limit key from a request.
123
+ * Defaults to req.ip when not provided.
124
+ */
125
+ export type RateLimitKeyFn = (req: AcmeKitRequest) => string | undefined;
126
+ /**
127
+ * Declarative rate-limit configuration for a single route method.
128
+ */
129
+ export type RateLimitConfig = {
130
+ /** Maximum number of requests allowed within the window. */
131
+ max: number;
132
+ /** Duration string, e.g. "1m", "30s", "1h". */
133
+ window: string;
134
+ /** Optional function to derive the rate-limit key. Defaults to req.ip. */
135
+ key?: RateLimitKeyFn;
136
+ };
137
+ /**
138
+ * Interface for pluggable rate-limit stores.
139
+ * The default implementation is in-memory; Redis can be plugged in later.
140
+ */
141
+ export interface RateLimitStore {
142
+ /**
143
+ * Increment the hit count for a key and return the current state.
144
+ * If the key does not exist, it should be created with a TTL of windowMs.
145
+ */
146
+ increment(key: string, windowMs: number): Promise<{
147
+ totalHits: number;
148
+ resetTime: Date;
149
+ }>;
150
+ /**
151
+ * Shut down the store (clear timers, connections, etc.).
152
+ */
153
+ shutdown(): void;
154
+ }
155
+ /**
156
+ * Route configuration exported from route.ts files.
157
+ * Keys are HTTP methods (GET, POST, PUT, PATCH, DELETE, etc.).
158
+ */
159
+ export type RouteConfig = {
160
+ [K in RouteVerb]?: RouteMethodConfig;
161
+ };
92
162
  export type GlobalMiddlewareDescriptor = {
93
163
  config?: MiddlewaresConfig;
94
164
  };
@@ -194,5 +264,67 @@ export interface AcmeKitClientKeyRequest<Body = Record<string, unknown>, QueryFi
194
264
  export type AcmeKitResponse<Body = unknown> = Response<Body>;
195
265
  export type AcmeKitNextFunction = NextFunction;
196
266
  export type AcmeKitRequestHandler<Body = unknown, Res = unknown> = (req: AcmeKitRequest<Body>, res: AcmeKitResponse<Res>, next: AcmeKitNextFunction) => Promise<void> | void;
267
+ /**
268
+ * Extract the inferred TypeScript type from a Zod schema, or fall back to
269
+ * `Fallback` when the config field is absent or not a Zod type.
270
+ * @internal
271
+ */
272
+ type InferZodOrFallback<T, Fallback> = T extends ZodTypeAny ? T["_output"] : Fallback;
273
+ /**
274
+ * Infer the body type from a single `RouteMethodConfig` value.
275
+ * @internal
276
+ */
277
+ type InferBodyFromMethodConfig<TMethodConfig> = TMethodConfig extends {
278
+ body: infer B;
279
+ } ? InferZodOrFallback<B, Record<string, unknown>> : Record<string, unknown>;
280
+ /**
281
+ * Infer the validated-query type from a single `RouteMethodConfig` value.
282
+ * @internal
283
+ */
284
+ type InferQueryFromMethodConfig<TMethodConfig> = TMethodConfig extends {
285
+ query: infer Q;
286
+ } ? InferZodOrFallback<Q, Record<string, unknown>> : Record<string, unknown>;
287
+ /**
288
+ * Infer the response type from a single `RouteMethodConfig` value.
289
+ * @internal
290
+ */
291
+ type InferResponseFromMethodConfig<TMethodConfig> = TMethodConfig extends {
292
+ response: infer R;
293
+ } ? InferZodOrFallback<R, unknown> : unknown;
294
+ /**
295
+ * Derive the `AcmeKitRequest` type for a specific HTTP method from a typed
296
+ * route config produced by `defineRouteConfig()`.
297
+ *
298
+ * @example
299
+ * ```ts
300
+ * export const config = defineRouteConfig({
301
+ * GET: {
302
+ * query: z.object({ limit: z.number().optional() }),
303
+ * response: z.object({ items: z.array(z.string()) }),
304
+ * },
305
+ * })
306
+ *
307
+ * export async function GET(
308
+ * req: AcmeKitTypedRequest<typeof config, "GET">,
309
+ * res: AcmeKitTypedResponse<typeof config, "GET">,
310
+ * ) {
311
+ * const { limit } = req.validatedQuery // typed: { limit?: number }
312
+ * res.json({ items: [] }) // enforced: { items: string[] }
313
+ * }
314
+ * ```
315
+ */
316
+ export type AcmeKitTypedRequest<TConfig extends RouteConfig, TMethod extends RouteVerb> = AcmeKitRequest<InferBodyFromMethodConfig<TConfig[TMethod]>, InferQueryFromMethodConfig<TConfig[TMethod]>>;
317
+ /**
318
+ * Derive the `AcmeKitResponse` type for a specific HTTP method from a typed
319
+ * route config produced by `defineRouteConfig()`.
320
+ *
321
+ * See {@link AcmeKitTypedRequest} for a usage example.
322
+ */
323
+ export type AcmeKitTypedResponse<TConfig extends RouteConfig, TMethod extends RouteVerb> = AcmeKitResponse<InferResponseFromMethodConfig<TConfig[TMethod]>>;
324
+ /**
325
+ * Derive a fully-typed authenticated request for a specific HTTP method.
326
+ * Combines `AuthenticatedAcmeKitRequest` with config-driven body/query types.
327
+ */
328
+ export type AuthenticatedAcmeKitTypedRequest<TConfig extends RouteConfig, TMethod extends RouteVerb> = AuthenticatedAcmeKitRequest<InferBodyFromMethodConfig<TConfig[TMethod]>, InferQueryFromMethodConfig<TConfig[TMethod]>>;
197
329
  export {};
198
330
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,EACX,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAE5E,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D;;GAEG;AACH,eAAO,MAAM,YAAY,uEAQf,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AACrD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;AAEtD,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI,CAAA;AAE3E,MAAM,MAAM,iBAAiB,GAAG,CAC9B,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,eAAe,KACjB,OAAO,CAAC,IAAI,CAAC,CAAA;AAElB,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAE/D,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAA;AAE7B,MAAM,MAAM,2BAA2B,GAAG,CACxC,KAAK,EAAE,GAAG,EACV,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,mBAAmB,KACtB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAEzB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACvC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,gBAAgB,CAAA;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;IAC1C,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;IAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,uBAAuB,CAAC,EAAE,WAAW,CAAA;IACrC,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAClC,cAAc;IACd,QAAQ,CAAC,EACL;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACvC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,CAAC,EAAE,KAAK,GAAG,2BAA2B,CAAA;IAClD,MAAM,CAAC,EAAE,eAAe,EAAE,CAAA;CAC3B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,YAAY,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,IAAI,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,oBAAoB,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;IAC3C,OAAO,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,CAAC,EACL;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACvC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;IAC1C,MAAM,EAAE,YAAY,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;IAC1C,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;CACzD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClD,2EAA2E;IAC3E,WAAW,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IAC9B,qCAAqC;IACrC,IAAI,CAAC,EACD,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GACnB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GACpB,CAAC,CACC,YAAY,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KACzD,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,sCAAsC;IACtC,uBAAuB,CAAC,EAAE,WAAW,CAAA;IACrC,kCAAkC;IAClC,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,oBAAoB;IACpB,QAAQ,CAAC,EACL;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACvC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;IAC7D,sCAAsC;IACtC,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAClC,kCAAkC;IAClC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,UAAU,CAAA;CACtB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,GAAG,SAAS,CAAA;AAExE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAA;IACX,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CACP,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;IAElD;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;KACvB,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,iBAAiB;CACrC,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,MAAM,WAAW,cAAc,CAC7B,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,SAAQ,OAAO,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,IAAI,CAAC;IACrD,aAAa,EAAE,IAAI,CAAA;IACnB,cAAc,EAAE,kBAAkB,GAAG,WAAW,CAAA;IAChD;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IAC/B;;OAEG;IACH,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IAEnC;;;;OAIG;IACH,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,UAAU,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC3E,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,CAAA;IAED;;OAEG;IACH,iBAAiB,EAAE,cAAc,CAAC,aAAa,CAAC,CAAA;IAEhD;;OAEG;IACH,gBAAgB,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAElC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,gBAAgB,CAAA;IACvB,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE7B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAEvE;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACvC;AAED,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,2BAA2B,CAC1C,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,SAAQ,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC;IACzC,YAAY,EAAE,WAAW,CAAA;IACzB,sBAAsB,CAAC,EAAE,mBAAmB,CAAA;IAC5C,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,6EAA6E;AAC7E,MAAM,WAAW,uBAAuB,CACtC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,SAAQ,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC;IACzC,YAAY,CAAC,EAAE,WAAW,CAAA;IAC1B,sBAAsB,EAAE,mBAAmB,CAAA;IAC3C,QAAQ,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAA;CACzC;AAED,MAAM,MAAM,eAAe,CAAC,IAAI,GAAG,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE5D,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAA;AAE9C,MAAM,MAAM,qBAAqB,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,CACjE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EACzB,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,EACzB,IAAI,EAAE,mBAAmB,KACtB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAMzB;;;;GAIG;AACH,KAAK,kBAAkB,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,SAAS,UAAU,GACvD,CAAC,CAAC,SAAS,CAAC,GACZ,QAAQ,CAAA;AAEZ;;;GAGG;AACH,KAAK,yBAAyB,CAAC,aAAa,IAC1C,aAAa,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GACnC,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE7B;;;GAGG;AACH,KAAK,0BAA0B,CAAC,aAAa,IAC3C,aAAa,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GACpC,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE7B;;;GAGG;AACH,KAAK,6BAA6B,CAAC,aAAa,IAC9C,aAAa,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;CAAE,GACvC,kBAAkB,CAAC,CAAC,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAA;AAEb;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,mBAAmB,CAC7B,OAAO,SAAS,WAAW,EAC3B,OAAO,SAAS,SAAS,IACvB,cAAc,CAChB,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAC3C,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAC7C,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,WAAW,EAC3B,OAAO,SAAS,SAAS,IACvB,eAAe,CAAC,6BAA6B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,gCAAgC,CAC1C,OAAO,SAAS,WAAW,EAC3B,OAAO,SAAS,SAAS,IACvB,2BAA2B,CAC7B,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAC3C,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAC7C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":";;;AAgBA;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;CACE,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":";;;AAkBA;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;CACE,CAAA"}
@@ -0,0 +1,40 @@
1
+ import type { RouteConfig } from "../types";
2
+ /**
3
+ * Define a co-located route configuration with full type inference.
4
+ *
5
+ * This is a zero-runtime-cost identity function whose sole purpose is to
6
+ * preserve the literal/inferred generic type of the config object so that
7
+ * `AcmeKitTypedRequest` and `AcmeKitTypedResponse` can extract body, query,
8
+ * and response types directly from Zod schemas declared in the config.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // admin/users/route.ts
13
+ * import { z } from "@acmekit/deps/zod"
14
+ * import {
15
+ * defineRouteConfig,
16
+ * AcmeKitTypedRequest,
17
+ * AcmeKitTypedResponse,
18
+ * } from "@acmekit/framework/http"
19
+ *
20
+ * export const config = defineRouteConfig({
21
+ * GET: {
22
+ * query: z.object({ limit: z.number().int().positive().optional() }),
23
+ * response: z.object({
24
+ * users: z.array(z.object({ id: z.string(), email: z.string() })),
25
+ * count: z.number(),
26
+ * }),
27
+ * },
28
+ * })
29
+ *
30
+ * export async function GET(
31
+ * req: AcmeKitTypedRequest<typeof config, "GET">,
32
+ * res: AcmeKitTypedResponse<typeof config, "GET">,
33
+ * ) {
34
+ * const { limit } = req.validatedQuery // typed: { limit?: number }
35
+ * res.json({ users: [], count: 0 }) // enforced: { users: ..., count: number }
36
+ * }
37
+ * ```
38
+ */
39
+ export declare function defineRouteConfig<T extends RouteConfig>(config: T): T;
40
+ //# sourceMappingURL=define-route-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-route-config.d.ts","sourceRoot":"","sources":["../../../src/http/utils/define-route-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAErE"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineRouteConfig = defineRouteConfig;
4
+ /**
5
+ * Define a co-located route configuration with full type inference.
6
+ *
7
+ * This is a zero-runtime-cost identity function whose sole purpose is to
8
+ * preserve the literal/inferred generic type of the config object so that
9
+ * `AcmeKitTypedRequest` and `AcmeKitTypedResponse` can extract body, query,
10
+ * and response types directly from Zod schemas declared in the config.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // admin/users/route.ts
15
+ * import { z } from "@acmekit/deps/zod"
16
+ * import {
17
+ * defineRouteConfig,
18
+ * AcmeKitTypedRequest,
19
+ * AcmeKitTypedResponse,
20
+ * } from "@acmekit/framework/http"
21
+ *
22
+ * export const config = defineRouteConfig({
23
+ * GET: {
24
+ * query: z.object({ limit: z.number().int().positive().optional() }),
25
+ * response: z.object({
26
+ * users: z.array(z.object({ id: z.string(), email: z.string() })),
27
+ * count: z.number(),
28
+ * }),
29
+ * },
30
+ * })
31
+ *
32
+ * export async function GET(
33
+ * req: AcmeKitTypedRequest<typeof config, "GET">,
34
+ * res: AcmeKitTypedResponse<typeof config, "GET">,
35
+ * ) {
36
+ * const { limit } = req.validatedQuery // typed: { limit?: number }
37
+ * res.json({ users: [], count: 0 }) // enforced: { users: ..., count: number }
38
+ * }
39
+ * ```
40
+ */
41
+ function defineRouteConfig(config) {
42
+ return config;
43
+ }
44
+ //# sourceMappingURL=define-route-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-route-config.js","sourceRoot":"","sources":["../../../src/http/utils/define-route-config.ts"],"names":[],"mappings":";;AAuCA,8CAEC;AAvCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAgB,iBAAiB,CAAwB,MAAS;IAChE,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Parse a duration string like "30s", "5m", "1h" into milliseconds.
3
+ * Throws if the format is invalid.
4
+ */
5
+ export declare function parseDuration(input: string): number;
6
+ //# sourceMappingURL=parse-duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-duration.d.ts","sourceRoot":"","sources":["../../../src/http/utils/parse-duration.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqBnD"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseDuration = parseDuration;
4
+ const DURATION_RE = /^(\d+)(s|m|h)$/;
5
+ /**
6
+ * Parse a duration string like "30s", "5m", "1h" into milliseconds.
7
+ * Throws if the format is invalid.
8
+ */
9
+ function parseDuration(input) {
10
+ const match = input.match(DURATION_RE);
11
+ if (!match) {
12
+ throw new Error(`Invalid duration format: "${input}". Expected format: "<number>s", "<number>m", or "<number>h".`);
13
+ }
14
+ const value = parseInt(match[1], 10);
15
+ const unit = match[2];
16
+ switch (unit) {
17
+ case "s":
18
+ return value * 1000;
19
+ case "m":
20
+ return value * 60 * 1000;
21
+ case "h":
22
+ return value * 60 * 60 * 1000;
23
+ default:
24
+ throw new Error(`Unknown duration unit: "${unit}"`);
25
+ }
26
+ }
27
+ //# sourceMappingURL=parse-duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-duration.js","sourceRoot":"","sources":["../../../src/http/utils/parse-duration.ts"],"names":[],"mappings":";;AAMA,sCAqBC;AA3BD,MAAM,WAAW,GAAG,gBAAgB,CAAA;AAEpC;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,+DAA+D,CAClG,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAErB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,IAAI,CAAA;QACrB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,IAAI,CAAA;QAC1B,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,GAAG,CAAC,CAAA;IACvD,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { RateLimitStore } from "../types";
2
+ /**
3
+ * In-memory rate limit store backed by a Map.
4
+ *
5
+ * Expired entries are cleaned up on a periodic timer (not on every request)
6
+ * for memory safety. Implements the RateLimitStore interface so it can be
7
+ * swapped with a Redis-backed implementation later.
8
+ */
9
+ export declare class InMemoryRateLimitStore implements RateLimitStore {
10
+ #private;
11
+ constructor(cleanupIntervalMs?: number);
12
+ increment(key: string, windowMs: number): Promise<{
13
+ totalHits: number;
14
+ resetTime: Date;
15
+ }>;
16
+ shutdown(): void;
17
+ }
18
+ //# sourceMappingURL=rate-limit-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit-store.d.ts","sourceRoot":"","sources":["../../../src/http/utils/rate-limit-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAS9C;;;;;;GAMG;AACH,qBAAa,sBAAuB,YAAW,cAAc;;gBAI/C,iBAAiB,GAAE,MAAoC;IAW7D,SAAS,CACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC;IAuBlD,QAAQ,IAAI,IAAI;CAajB"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _InMemoryRateLimitStore_instances, _InMemoryRateLimitStore_hits, _InMemoryRateLimitStore_cleanupTimer, _InMemoryRateLimitStore_cleanup;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.InMemoryRateLimitStore = void 0;
16
+ const DEFAULT_CLEANUP_INTERVAL_MS = 60_000;
17
+ /**
18
+ * In-memory rate limit store backed by a Map.
19
+ *
20
+ * Expired entries are cleaned up on a periodic timer (not on every request)
21
+ * for memory safety. Implements the RateLimitStore interface so it can be
22
+ * swapped with a Redis-backed implementation later.
23
+ */
24
+ class InMemoryRateLimitStore {
25
+ constructor(cleanupIntervalMs = DEFAULT_CLEANUP_INTERVAL_MS) {
26
+ _InMemoryRateLimitStore_instances.add(this);
27
+ _InMemoryRateLimitStore_hits.set(this, new Map());
28
+ _InMemoryRateLimitStore_cleanupTimer.set(this, void 0);
29
+ __classPrivateFieldSet(this, _InMemoryRateLimitStore_cleanupTimer, setInterval(() => {
30
+ __classPrivateFieldGet(this, _InMemoryRateLimitStore_instances, "m", _InMemoryRateLimitStore_cleanup).call(this);
31
+ }, cleanupIntervalMs), "f");
32
+ // Allow the process to exit even if the timer is still running
33
+ if (__classPrivateFieldGet(this, _InMemoryRateLimitStore_cleanupTimer, "f").unref) {
34
+ __classPrivateFieldGet(this, _InMemoryRateLimitStore_cleanupTimer, "f").unref();
35
+ }
36
+ }
37
+ async increment(key, windowMs) {
38
+ const now = Date.now();
39
+ const existing = __classPrivateFieldGet(this, _InMemoryRateLimitStore_hits, "f").get(key);
40
+ if (existing && existing.resetTime.getTime() > now) {
41
+ existing.totalHits += 1;
42
+ return {
43
+ totalHits: existing.totalHits,
44
+ resetTime: existing.resetTime,
45
+ };
46
+ }
47
+ const entry = {
48
+ totalHits: 1,
49
+ resetTime: new Date(now + windowMs),
50
+ };
51
+ __classPrivateFieldGet(this, _InMemoryRateLimitStore_hits, "f").set(key, entry);
52
+ return {
53
+ totalHits: entry.totalHits,
54
+ resetTime: entry.resetTime,
55
+ };
56
+ }
57
+ shutdown() {
58
+ clearInterval(__classPrivateFieldGet(this, _InMemoryRateLimitStore_cleanupTimer, "f"));
59
+ __classPrivateFieldGet(this, _InMemoryRateLimitStore_hits, "f").clear();
60
+ }
61
+ }
62
+ exports.InMemoryRateLimitStore = InMemoryRateLimitStore;
63
+ _InMemoryRateLimitStore_hits = new WeakMap(), _InMemoryRateLimitStore_cleanupTimer = new WeakMap(), _InMemoryRateLimitStore_instances = new WeakSet(), _InMemoryRateLimitStore_cleanup = function _InMemoryRateLimitStore_cleanup() {
64
+ const now = Date.now();
65
+ for (const [key, entry] of __classPrivateFieldGet(this, _InMemoryRateLimitStore_hits, "f")) {
66
+ if (entry.resetTime.getTime() <= now) {
67
+ __classPrivateFieldGet(this, _InMemoryRateLimitStore_hits, "f").delete(key);
68
+ }
69
+ }
70
+ };
71
+ //# sourceMappingURL=rate-limit-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit-store.js","sourceRoot":"","sources":["../../../src/http/utils/rate-limit-store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAOA,MAAM,2BAA2B,GAAG,MAAM,CAAA;AAE1C;;;;;;GAMG;AACH,MAAa,sBAAsB;IAIjC,YAAY,oBAA4B,2BAA2B;;QAHnE,uCAAiC,IAAI,GAAG,EAAE,EAAA;QAC1C,uDAA6C;QAG3C,uBAAA,IAAI,wCAAiB,WAAW,CAAC,GAAG,EAAE;YACpC,uBAAA,IAAI,0EAAS,MAAb,IAAI,CAAW,CAAA;QACjB,CAAC,EAAE,iBAAiB,CAAC,MAAA,CAAA;QAErB,+DAA+D;QAC/D,IAAI,uBAAA,IAAI,4CAAc,CAAC,KAAK,EAAE,CAAC;YAC7B,uBAAA,IAAI,4CAAc,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAW,EACX,QAAgB;QAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,QAAQ,GAAG,uBAAA,IAAI,oCAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEpC,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;YACnD,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAA;YACvB,OAAO;gBACL,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAA;QACH,CAAC;QAED,MAAM,KAAK,GAAe;YACxB,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;SACpC,CAAA;QACD,uBAAA,IAAI,oCAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC1B,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAA;IACH,CAAC;IAED,QAAQ;QACN,aAAa,CAAC,uBAAA,IAAI,4CAAc,CAAC,CAAA;QACjC,uBAAA,IAAI,oCAAM,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CAUF;AAtDD,wDAsDC;;IAPG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,uBAAA,IAAI,oCAAM,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC;YACrC,uBAAA,IAAI,oCAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ZodTypeAny } from "@acmekit/deps/zod";
2
+ import type { AcmeKitNextFunction, AcmeKitRequest, AcmeKitResponse } from "../types";
3
+ /**
4
+ * Express middleware that wraps `res.json()` to validate the outgoing response
5
+ * body against the provided Zod schema before sending.
6
+ *
7
+ * In development (`NODE_ENV !== "production"`) a validation failure throws a
8
+ * 500 error so problems are surfaced immediately during local development.
9
+ * In production the response is sent as-is and the validation error is only
10
+ * logged, keeping the server fault-tolerant.
11
+ *
12
+ * Wire it up automatically by declaring a `response` schema in your route's
13
+ * co-located `config` export via `defineRouteConfig`.
14
+ */
15
+ export declare function validateAndTransformResponse(schema: ZodTypeAny): (req: AcmeKitRequest, res: AcmeKitResponse, next: AcmeKitNextFunction) => void;
16
+ //# sourceMappingURL=validate-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-response.d.ts","sourceRoot":"","sources":["../../../src/http/utils/validate-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEpF;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,UAAU,IAE3D,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,mBAAmB,UAyB5B"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAndTransformResponse = validateAndTransformResponse;
4
+ const logger_1 = require("../../logger");
5
+ /**
6
+ * Express middleware that wraps `res.json()` to validate the outgoing response
7
+ * body against the provided Zod schema before sending.
8
+ *
9
+ * In development (`NODE_ENV !== "production"`) a validation failure throws a
10
+ * 500 error so problems are surfaced immediately during local development.
11
+ * In production the response is sent as-is and the validation error is only
12
+ * logged, keeping the server fault-tolerant.
13
+ *
14
+ * Wire it up automatically by declaring a `response` schema in your route's
15
+ * co-located `config` export via `defineRouteConfig`.
16
+ */
17
+ function validateAndTransformResponse(schema) {
18
+ return (req, res, next) => {
19
+ const originalJson = res.json.bind(res);
20
+ // Override res.json to intercept and validate before sending.
21
+ res.json = function (data) {
22
+ const result = schema.safeParse(data);
23
+ if (!result.success) {
24
+ const message = `Response validation failed for ${req.method} ${req.path}: ${result.error.message}`;
25
+ if (process.env.NODE_ENV !== "production") {
26
+ // Surface schema mismatches immediately during development.
27
+ return next(new Error(message));
28
+ }
29
+ // In production, log and send the unvalidated response to avoid downtime.
30
+ logger_1.logger.warn(message);
31
+ }
32
+ return originalJson(data);
33
+ };
34
+ next();
35
+ };
36
+ }
37
+ //# sourceMappingURL=validate-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-response.js","sourceRoot":"","sources":["../../../src/http/utils/validate-response.ts"],"names":[],"mappings":";;AAgBA,oEA6BC;AA5CD,yCAAqC;AAGrC;;;;;;;;;;;GAWG;AACH,SAAgB,4BAA4B,CAAC,MAAkB;IAC7D,OAAO,CACL,GAAmB,EACnB,GAAoB,EACpB,IAAyB,EACzB,EAAE;QACF,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEvC,8DAA8D;QAC9D,GAAG,CAAC,IAAI,GAAG,UAAU,IAAa;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAErC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,kCAAkC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;gBAEnG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;oBAC1C,4DAA4D;oBAC5D,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAA0B,CAAA;gBAC1D,CAAC;gBAED,0EAA0E;gBAC1E,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtB,CAAC;YAED,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAoB,CAAA;QAEpB,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acmekit/framework",
3
- "version": "2.13.36",
3
+ "version": "2.13.37",
4
4
  "description": "Framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -71,16 +71,16 @@
71
71
  "test": "../../../node_modules/.bin/jest --bail --forceExit --testPathPattern=src"
72
72
  },
73
73
  "devDependencies": {
74
- "@acmekit/cli": "2.13.36"
74
+ "@acmekit/cli": "2.13.37"
75
75
  },
76
76
  "dependencies": {
77
- "@acmekit/deps": "2.13.36",
78
- "@acmekit/modules-sdk": "2.13.36",
79
- "@acmekit/orchestration": "2.13.36",
80
- "@acmekit/telemetry": "2.13.36",
81
- "@acmekit/types": "2.13.36",
82
- "@acmekit/utils": "2.13.36",
83
- "@acmekit/workflows-sdk": "2.13.36",
77
+ "@acmekit/deps": "2.13.37",
78
+ "@acmekit/modules-sdk": "2.13.37",
79
+ "@acmekit/orchestration": "2.13.37",
80
+ "@acmekit/telemetry": "2.13.37",
81
+ "@acmekit/types": "2.13.37",
82
+ "@acmekit/utils": "2.13.37",
83
+ "@acmekit/workflows-sdk": "2.13.37",
84
84
  "@jercle/yargonaut": "^1.1.5",
85
85
  "@types/express": "^4.17.21",
86
86
  "chokidar": "^4.0.3",
@@ -99,7 +99,7 @@
99
99
  "zod-validation-error": "3.5.1"
100
100
  },
101
101
  "peerDependencies": {
102
- "@acmekit/cli": "2.13.36",
102
+ "@acmekit/cli": "2.13.37",
103
103
  "@aws-sdk/client-dynamodb": "^3.218.0",
104
104
  "connect-dynamodb": "^3.0.5",
105
105
  "ioredis": "^5.4.1"