@c9up/ream 0.1.31 → 0.1.33

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 (189) hide show
  1. package/README.md +4 -1
  2. package/dist/Application.d.ts +27 -0
  3. package/dist/Application.d.ts.map +1 -1
  4. package/dist/Application.js +29 -0
  5. package/dist/Application.js.map +1 -1
  6. package/dist/ErrorBoundary.d.ts.map +1 -1
  7. package/dist/ErrorBoundary.js +13 -1
  8. package/dist/ErrorBoundary.js.map +1 -1
  9. package/dist/HttpKernel.d.ts +8 -0
  10. package/dist/HttpKernel.d.ts.map +1 -1
  11. package/dist/HttpKernel.js +35 -12
  12. package/dist/HttpKernel.js.map +1 -1
  13. package/dist/Ignitor.d.ts +8 -0
  14. package/dist/Ignitor.d.ts.map +1 -1
  15. package/dist/Ignitor.js +39 -0
  16. package/dist/Ignitor.js.map +1 -1
  17. package/dist/bodyparser/BodyParserMiddleware.d.ts +11 -4
  18. package/dist/bodyparser/BodyParserMiddleware.d.ts.map +1 -1
  19. package/dist/bodyparser/BodyParserMiddleware.js +55 -43
  20. package/dist/bodyparser/BodyParserMiddleware.js.map +1 -1
  21. package/dist/bodyparser/qsParse.d.ts +52 -0
  22. package/dist/bodyparser/qsParse.d.ts.map +1 -0
  23. package/dist/bodyparser/qsParse.js +161 -0
  24. package/dist/bodyparser/qsParse.js.map +1 -0
  25. package/dist/bootstrap/hyper-server.d.ts.map +1 -1
  26. package/dist/bootstrap/hyper-server.js +2 -8
  27. package/dist/bootstrap/hyper-server.js.map +1 -1
  28. package/dist/container/Container.d.ts +41 -0
  29. package/dist/container/Container.d.ts.map +1 -1
  30. package/dist/container/Container.js +193 -26
  31. package/dist/container/Container.js.map +1 -1
  32. package/dist/container/ContainerResolver.d.ts +46 -0
  33. package/dist/container/ContainerResolver.d.ts.map +1 -0
  34. package/dist/container/ContainerResolver.js +60 -0
  35. package/dist/container/ContainerResolver.js.map +1 -0
  36. package/dist/container/ContextualBindingsBuilder.d.ts +20 -0
  37. package/dist/container/ContextualBindingsBuilder.d.ts.map +1 -0
  38. package/dist/container/ContextualBindingsBuilder.js +31 -0
  39. package/dist/container/ContextualBindingsBuilder.js.map +1 -0
  40. package/dist/container/types.d.ts +9 -6
  41. package/dist/container/types.d.ts.map +1 -1
  42. package/dist/decorators/Service.d.ts +1 -5
  43. package/dist/decorators/Service.d.ts.map +1 -1
  44. package/dist/decorators/Service.js +10 -1
  45. package/dist/decorators/Service.js.map +1 -1
  46. package/dist/events/Emitter.d.ts +66 -6
  47. package/dist/events/Emitter.d.ts.map +1 -1
  48. package/dist/events/Emitter.js +165 -28
  49. package/dist/events/Emitter.js.map +1 -1
  50. package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
  51. package/dist/graphql/GraphQLEngine.js +5 -5
  52. package/dist/graphql/GraphQLEngine.js.map +1 -1
  53. package/dist/helpers/duration.d.ts +32 -0
  54. package/dist/helpers/duration.d.ts.map +1 -0
  55. package/dist/helpers/duration.js +74 -0
  56. package/dist/helpers/duration.js.map +1 -0
  57. package/dist/helpers/napi-loader.d.ts +10 -1
  58. package/dist/helpers/napi-loader.d.ts.map +1 -1
  59. package/dist/helpers/napi-loader.js +18 -3
  60. package/dist/helpers/napi-loader.js.map +1 -1
  61. package/dist/helpers/types.d.ts +1 -1
  62. package/dist/helpers/types.d.ts.map +1 -1
  63. package/dist/http/Exception.d.ts.map +1 -1
  64. package/dist/http/Exception.js +17 -5
  65. package/dist/http/Exception.js.map +1 -1
  66. package/dist/http/HttpContext.d.ts +16 -5
  67. package/dist/http/HttpContext.d.ts.map +1 -1
  68. package/dist/http/HttpContext.js +4 -2
  69. package/dist/http/HttpContext.js.map +1 -1
  70. package/dist/http/RedirectBuilder.d.ts +48 -2
  71. package/dist/http/RedirectBuilder.d.ts.map +1 -1
  72. package/dist/http/RedirectBuilder.js +95 -14
  73. package/dist/http/RedirectBuilder.js.map +1 -1
  74. package/dist/http/Request.d.ts +128 -8
  75. package/dist/http/Request.d.ts.map +1 -1
  76. package/dist/http/Request.js +259 -8
  77. package/dist/http/Request.js.map +1 -1
  78. package/dist/http/Response.d.ts +74 -3
  79. package/dist/http/Response.d.ts.map +1 -1
  80. package/dist/http/Response.js +177 -4
  81. package/dist/http/Response.js.map +1 -1
  82. package/dist/index.d.ts +9 -3
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +5 -1
  85. package/dist/index.js.map +1 -1
  86. package/dist/router/Router.d.ts +36 -7
  87. package/dist/router/Router.d.ts.map +1 -1
  88. package/dist/router/Router.js +66 -22
  89. package/dist/router/Router.js.map +1 -1
  90. package/dist/security/CookieSigner.d.ts +35 -4
  91. package/dist/security/CookieSigner.d.ts.map +1 -1
  92. package/dist/security/CookieSigner.js +99 -10
  93. package/dist/security/CookieSigner.js.map +1 -1
  94. package/dist/server/Server.d.ts +2 -3
  95. package/dist/server/Server.d.ts.map +1 -1
  96. package/dist/server/Server.js +30 -13
  97. package/dist/server/Server.js.map +1 -1
  98. package/dist/session/ReadOnlyValuesStore.d.ts +24 -0
  99. package/dist/session/ReadOnlyValuesStore.d.ts.map +1 -0
  100. package/dist/session/ReadOnlyValuesStore.js +45 -0
  101. package/dist/session/ReadOnlyValuesStore.js.map +1 -0
  102. package/dist/session/Session.d.ts +181 -9
  103. package/dist/session/Session.d.ts.map +1 -1
  104. package/dist/session/Session.js +284 -33
  105. package/dist/session/Session.js.map +1 -1
  106. package/dist/session/SessionMiddleware.d.ts.map +1 -1
  107. package/dist/session/SessionMiddleware.js +87 -33
  108. package/dist/session/SessionMiddleware.js.map +1 -1
  109. package/dist/session/drivers/DatabaseDriver.d.ts +66 -0
  110. package/dist/session/drivers/DatabaseDriver.d.ts.map +1 -0
  111. package/dist/session/drivers/DatabaseDriver.js +132 -0
  112. package/dist/session/drivers/DatabaseDriver.js.map +1 -0
  113. package/dist/session/drivers/FileDriver.d.ts +22 -0
  114. package/dist/session/drivers/FileDriver.d.ts.map +1 -0
  115. package/dist/session/drivers/FileDriver.js +66 -0
  116. package/dist/session/drivers/FileDriver.js.map +1 -0
  117. package/dist/session/drivers/MemoryDriver.d.ts +10 -2
  118. package/dist/session/drivers/MemoryDriver.d.ts.map +1 -1
  119. package/dist/session/drivers/MemoryDriver.js +70 -0
  120. package/dist/session/drivers/MemoryDriver.js.map +1 -1
  121. package/dist/session/drivers/RedisDriver.d.ts +10 -2
  122. package/dist/session/drivers/RedisDriver.d.ts.map +1 -1
  123. package/dist/session/drivers/RedisDriver.js +58 -0
  124. package/dist/session/drivers/RedisDriver.js.map +1 -1
  125. package/dist/session/templateTags.d.ts +42 -0
  126. package/dist/session/templateTags.d.ts.map +1 -0
  127. package/dist/session/templateTags.js +101 -0
  128. package/dist/session/templateTags.js.map +1 -0
  129. package/dist/testing/RequestBuilder.d.ts +38 -1
  130. package/dist/testing/RequestBuilder.d.ts.map +1 -1
  131. package/dist/testing/RequestBuilder.js +40 -1
  132. package/dist/testing/RequestBuilder.js.map +1 -1
  133. package/dist/testing/TestClient.d.ts +3 -1
  134. package/dist/testing/TestClient.d.ts.map +1 -1
  135. package/dist/testing/TestClient.js +3 -1
  136. package/dist/testing/TestClient.js.map +1 -1
  137. package/dist/types/helpers.d.ts +1 -1
  138. package/dist/types/helpers.d.ts.map +1 -1
  139. package/dist/utils/Macroable.d.ts +14 -5
  140. package/dist/utils/Macroable.d.ts.map +1 -1
  141. package/dist/utils/Macroable.js +20 -18
  142. package/dist/utils/Macroable.js.map +1 -1
  143. package/events.win32-x64-msvc.node +0 -0
  144. package/index.win32-x64-msvc.node +0 -0
  145. package/package.json +1 -1
  146. package/scheduler.win32-x64-msvc.node +0 -0
  147. package/src/Application.ts +39 -0
  148. package/src/ErrorBoundary.ts +13 -1
  149. package/src/HttpKernel.ts +45 -19
  150. package/src/Ignitor.ts +39 -0
  151. package/src/bodyparser/BodyParserMiddleware.ts +66 -44
  152. package/src/bodyparser/qsParse.ts +179 -0
  153. package/src/bootstrap/hyper-server.ts +2 -9
  154. package/src/container/Container.ts +265 -25
  155. package/src/container/ContainerResolver.ts +84 -0
  156. package/src/container/ContextualBindingsBuilder.ts +41 -0
  157. package/src/container/types.ts +11 -7
  158. package/src/decorators/Service.ts +16 -3
  159. package/src/events/Emitter.ts +200 -25
  160. package/src/graphql/GraphQLEngine.ts +7 -8
  161. package/src/helpers/duration.ts +71 -0
  162. package/src/helpers/napi-loader.ts +19 -3
  163. package/src/helpers/types.ts +4 -1
  164. package/src/http/Exception.ts +17 -5
  165. package/src/http/HttpContext.ts +20 -5
  166. package/src/http/RedirectBuilder.ts +126 -11
  167. package/src/http/Request.ts +283 -13
  168. package/src/http/Response.ts +213 -6
  169. package/src/index.ts +17 -3
  170. package/src/router/Router.ts +98 -33
  171. package/src/security/CookieSigner.ts +102 -10
  172. package/src/server/Server.ts +36 -16
  173. package/src/session/ReadOnlyValuesStore.ts +52 -0
  174. package/src/session/Session.ts +364 -37
  175. package/src/session/SessionMiddleware.ts +93 -30
  176. package/src/session/drivers/DatabaseDriver.ts +184 -0
  177. package/src/session/drivers/FileDriver.ts +82 -0
  178. package/src/session/drivers/MemoryDriver.ts +75 -2
  179. package/src/session/drivers/RedisDriver.ts +77 -2
  180. package/src/session/templateTags.ts +124 -0
  181. package/src/testing/RequestBuilder.ts +76 -0
  182. package/src/testing/TestClient.ts +10 -2
  183. package/src/types/helpers.ts +4 -1
  184. package/src/utils/Macroable.ts +23 -8
  185. package/dist/utils/inflect.d.ts +0 -17
  186. package/dist/utils/inflect.d.ts.map +0 -1
  187. package/dist/utils/inflect.js +0 -32
  188. package/dist/utils/inflect.js.map +0 -1
  189. package/src/utils/inflect.ts +0 -29
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * @implements FR24, FR25, FR26, FR27, FR28
5
5
  */
6
+ import { singular, snakeCase } from '../helpers/string.js';
6
7
  import { safeDecodeURIComponent } from '../http/urlDecode.js';
7
8
  import { resolveMiddlewareEntry, resolveParametrizedMiddlewareEntry } from '../server/Server.js';
8
- import { singular, snakeCase } from '../utils/inflect.js';
9
9
  import { Macroable } from '../utils/Macroable.js';
10
10
  /**
11
11
  * Distinguish a lazy-import loader from a controller class in a handler tuple.
@@ -469,15 +469,23 @@ export class OnRouteBuilder {
469
469
  this.#router = router;
470
470
  this.#path = path;
471
471
  }
472
- /** Render a view (requires Photon/view provider). */
472
+ /**
473
+ * Render a template with no handler of your own (AdonisJS brisk `render`).
474
+ *
475
+ * Reads the request's `ctx.view` — the per-request renderer the template
476
+ * provider installs. It used to look only in `ctx.store` under `view`, which
477
+ * nothing has ever populated, so this route always threw; the message even
478
+ * named the wrong package. `ctx.store` is still honoured for a host that
479
+ * seeds its own engine there.
480
+ */
473
481
  render(view, data) {
474
482
  return this.#router.get(this.#path, async (ctx) => {
475
- const raw = ctx.store.get('view');
476
- if (!isViewEngine(raw)) {
477
- throw new Error('View engine not configured. Register a view provider (Photon) first.');
483
+ const candidate = Reflect.get(Object(ctx), 'view') ?? ctx.store.get('view');
484
+ if (!isViewEngine(candidate)) {
485
+ throw new Error(`[E_NO_VIEW_ENGINE] router.on('${this.#path}').render('${view}') needs a template engine. ` +
486
+ 'Register one (its provider installs `ctx.view`), or seed `ctx.store` with a `view` that has a render() method.');
478
487
  }
479
- const viewEngine = raw;
480
- const html = await viewEngine.render(view, data);
488
+ const html = await candidate.render(view, data);
481
489
  ctx.response.type('text/html; charset=utf-8').send(html);
482
490
  });
483
491
  }
@@ -522,7 +530,14 @@ export class Router extends Macroable {
522
530
  // ─── Router-level middleware (like AdonisJS) ──────────────
523
531
  /**
524
532
  * Register router-level middleware (runs on requests with a matched route).
525
- * router.use([() => import('#middleware/auth_middleware')])
533
+ *
534
+ * router.use([() => import('#middleware/auth_middleware')])
535
+ *
536
+ * Imports of middleware CLASSES only, as in AdonisJS — its `use()` runs
537
+ * `moduleImporter(one, 'handle')` over every entry, so a closure has no
538
+ * place here. An inline function goes on the route or group instead
539
+ * (`router.get(...).use(fn)`), which is also what removes the ambiguity
540
+ * between a zero-arity closure and an import factory.
526
541
  */
527
542
  use(middleware) {
528
543
  for (const mw of middleware) {
@@ -726,14 +741,32 @@ export class Router extends Macroable {
726
741
  }
727
742
  route.lazyController = { loader, method: route.stringRef.method };
728
743
  }
729
- // Named route index
744
+ // Named route index. A duplicate name is refused, as AdonisJS does:
745
+ // `urlFor(name)` can only mean one route, and silently keeping the last
746
+ // one makes every link built from that name point somewhere unintended.
730
747
  if (route.name) {
748
+ const existing = this.#nameIndex.get(route.name);
749
+ // Same name on the same PATH is one logical route split across verbs —
750
+ // `route(['PUT','PATCH'], …)` and `resource()`'s `update` both do it,
751
+ // and AdonisJS models those as a single route object. Only a name
752
+ // reused for a DIFFERENT path is the ambiguity worth refusing.
753
+ if (existing && existing.path !== route.path) {
754
+ throw new Error(`[E_DUPLICATE_ROUTE_NAME] A route with name "${route.name}" already exists ` +
755
+ `(${existing.method} ${existing.path}); ${route.method} ${route.path} reuses it. ` +
756
+ `It may happen when two routes share a controller — give each an explicit name.`);
757
+ }
731
758
  this.#nameIndex.set(route.name, route);
732
759
  }
733
760
  const isParam = route.path.includes(':') || route.path.includes('*');
734
761
  if (!isParam && !route.domain) {
735
762
  // Static route — O(1) exact match
736
763
  const key = route.method === '*' ? `*:${route.path}` : `${route.method}:${route.path}`;
764
+ // Refused rather than overwritten, as AdonisJS does. A silent overwrite
765
+ // is how an authenticated endpoint gets shadowed by a later, unguarded
766
+ // one that happens to share its path — with nothing in the logs.
767
+ if (this.#staticIndex.has(key)) {
768
+ throw new Error(`[E_DUPLICATE_ROUTE] Duplicate route found. "${route.method}: ${route.path}" route already exists.`);
769
+ }
737
770
  this.#staticIndex.set(key, route);
738
771
  }
739
772
  else {
@@ -778,10 +811,17 @@ export class Router extends Macroable {
778
811
  const params = matchPath(route.path, candidatePath);
779
812
  if (params === null)
780
813
  continue;
781
- if (!this.#validateMatchers(params, route.matchers))
782
- continue;
783
- if (!this.#validateMatchers(params, this.#globalMatchers))
814
+ // A route's own matcher REPLACES the global one for that param, as
815
+ // AdonisJS merges them (`{ ...global, ...local }`). Applying both as
816
+ // separate gates meant the global always had the final say, so a route
817
+ // could never loosen it — a global `id: /^[0-9]+$/` plus a route-level
818
+ // slug matcher 404'd instead of matching.
819
+ if (!this.#validateMatchers(params, {
820
+ ...this.#globalMatchers,
821
+ ...route.matchers,
822
+ })) {
784
823
  continue;
824
+ }
785
825
  return { route, params };
786
826
  }
787
827
  }
@@ -956,14 +996,19 @@ export class Router extends Macroable {
956
996
  const matcher = matcherMap[param];
957
997
  if (!matcher)
958
998
  continue;
999
+ // The wildcard holds several segments; every one has to satisfy the
1000
+ // matcher, or a `/assets/*` guard would pass on its first segment alone.
1001
+ const values = Array.isArray(value) ? value : [value];
959
1002
  const regex = matcher instanceof RegExp ? matcher : matcher.pattern;
960
1003
  // A user-supplied /g or /y regex is stateful (`lastIndex` advances on
961
1004
  // match) — without a reset, the same URL alternates match/no-match
962
1005
  // across requests. Reset before every test.
963
- if (regex.global || regex.sticky)
964
- regex.lastIndex = 0;
965
- if (!regex.test(value))
966
- return false;
1006
+ for (const single of values) {
1007
+ if (regex.global || regex.sticky)
1008
+ regex.lastIndex = 0;
1009
+ if (!regex.test(single))
1010
+ return false;
1011
+ }
967
1012
  }
968
1013
  return true;
969
1014
  }
@@ -992,12 +1037,11 @@ function matchPath(pattern, actual) {
992
1037
  return null;
993
1038
  }
994
1039
  }
995
- // Decode per segment, then rejoin — an encoded `/` inside a segment stays
996
- // a value character, the path structure was already split on raw `/`.
997
- params['*'] = actualParts
998
- .slice(wildcardIdx)
999
- .map((s) => safeDecodeURIComponent(s))
1000
- .join('/');
1040
+ // An ARRAY of segments, as AdonisJS hands it (`@poppinss/matchit` does
1041
+ // `out['*'] = segs.slice(i).map(decode)`, and the generated route types say
1042
+ // `'*': ParamValue[]`). Joining them lost the boundary between a segment
1043
+ // containing an encoded `/` and a real path separator.
1044
+ params['*'] = actualParts.slice(wildcardIdx).map((s) => safeDecodeURIComponent(s));
1001
1045
  return params;
1002
1046
  }
1003
1047
  // Count required (non-optional) pattern parts
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,44 @@
1
1
  /**
2
2
  * Cookie signing and encryption.
3
3
  * Uses Rust NAPI via crypto facade when available.
4
+ *
5
+ * NAMED DEVIATION — the wire format is NOT AdonisJS's.
6
+ *
7
+ * AdonisJS encrypts with `aes-256-cbc` and appends its own HMAC
8
+ * (`base64url(payload).base64url(iv).hmac`). Ream uses `aes-256-gcm`, where
9
+ * authentication is part of the cipher rather than a second primitive bolted on
10
+ * — encrypt-then-MAC assembled by hand is a well-known source of subtle breaks,
11
+ * and there is no reason to reproduce it.
12
+ *
13
+ * The consequence, stated plainly: a cookie encrypted by an AdonisJS app cannot
14
+ * be decrypted here. Migrating an app invalidates the encrypted cookies already
15
+ * in users' browsers — they are signed out once, at deploy. Everything the app
16
+ * CALLS (`encrypt` / `decrypt` / `sign` / `unsign`, with purpose and expiry)
17
+ * behaves the same.
4
18
  */
19
+ /** Raised when no APP_KEY is configured (AdonisJS `E_MISSING_APP_KEY`). */
20
+ export declare class E_MISSING_APP_KEY extends Error {
21
+ readonly code: "E_MISSING_APP_KEY";
22
+ constructor();
23
+ }
24
+ /** Raised when the APP_KEY is too short to be worth having. */
25
+ export declare class E_INSECURE_APP_KEY extends Error {
26
+ readonly code: "E_INSECURE_APP_KEY";
27
+ constructor();
28
+ }
5
29
  export declare class CookieSigner {
6
30
  #private;
7
31
  constructor(secret: string);
8
- sign(value: string): string;
9
- unsign(signed: string): string | null;
10
- encrypt(value: string): string;
11
- decrypt(encrypted: string): string | null;
32
+ /**
33
+ * Sign a value (AdonisJS `Encryption.verifier.sign`).
34
+ *
35
+ * `expiresIn` is in milliseconds; `purpose` scopes the signature so it cannot
36
+ * be replayed somewhere else.
37
+ */
38
+ sign(value: string, expiresIn?: number, purpose?: string): string;
39
+ /** Verify and unwrap, returning null when tampered, expired, or mis-purposed. */
40
+ unsign(signed: string, purpose?: string): string | null;
41
+ encrypt(value: string, expiresIn?: number, purpose?: string): string;
42
+ decrypt(encrypted: string, purpose?: string): string | null;
12
43
  }
13
44
  //# sourceMappingURL=CookieSigner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CookieSigner.d.ts","sourceRoot":"","sources":["../../src/security/CookieSigner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,qBAAa,YAAY;;gBAIX,MAAM,EAAE,MAAM;IAM1B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK3B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQrC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQ9B,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAc1C"}
1
+ {"version":3,"file":"CookieSigner.d.ts","sourceRoot":"","sources":["../../src/security/CookieSigner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,2EAA2E;AAC3E,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAG,mBAAmB,CAAS;;CAK7C;AAED,+DAA+D;AAC/D,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAG,oBAAoB,CAAS;;CAK9C;AAYD,qBAAa,YAAY;;gBAIX,MAAM,EAAE,MAAM;IAyC1B;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAMjE,iFAAiF;IACjF,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAavD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IASpE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAe5D"}
@@ -1,37 +1,125 @@
1
1
  /**
2
2
  * Cookie signing and encryption.
3
3
  * Uses Rust NAPI via crypto facade when available.
4
+ *
5
+ * NAMED DEVIATION — the wire format is NOT AdonisJS's.
6
+ *
7
+ * AdonisJS encrypts with `aes-256-cbc` and appends its own HMAC
8
+ * (`base64url(payload).base64url(iv).hmac`). Ream uses `aes-256-gcm`, where
9
+ * authentication is part of the cipher rather than a second primitive bolted on
10
+ * — encrypt-then-MAC assembled by hand is a well-known source of subtle breaks,
11
+ * and there is no reason to reproduce it.
12
+ *
13
+ * The consequence, stated plainly: a cookie encrypted by an AdonisJS app cannot
14
+ * be decrypted here. Migrating an app invalidates the encrypted cookies already
15
+ * in users' browsers — they are signed out once, at deploy. Everything the app
16
+ * CALLS (`encrypt` / `decrypt` / `sign` / `unsign`, with purpose and expiry)
17
+ * behaves the same.
4
18
  */
5
19
  import { createCipheriv, createDecipheriv, createHmac, randomBytes } from 'node:crypto';
6
20
  import { hmacSign, hmacVerify } from './crypto.js';
21
+ /** Raised when no APP_KEY is configured (AdonisJS `E_MISSING_APP_KEY`). */
22
+ export class E_MISSING_APP_KEY extends Error {
23
+ code = 'E_MISSING_APP_KEY';
24
+ constructor() {
25
+ super('Missing APP_KEY. Set it in your environment before encrypting anything.');
26
+ this.name = 'E_MISSING_APP_KEY';
27
+ }
28
+ }
29
+ /** Raised when the APP_KEY is too short to be worth having. */
30
+ export class E_INSECURE_APP_KEY extends Error {
31
+ code = 'E_INSECURE_APP_KEY';
32
+ constructor() {
33
+ super('APP_KEY is too short — it must be at least 16 characters.');
34
+ this.name = 'E_INSECURE_APP_KEY';
35
+ }
36
+ }
7
37
  export class CookieSigner {
8
38
  #secret;
9
39
  #keyBuffer;
10
40
  constructor(secret) {
41
+ // Validated as AdonisJS does: an absent or trivially short key is a
42
+ // configuration error, not something to discover at decrypt time.
43
+ if (typeof secret !== 'string' || secret.length === 0)
44
+ throw new E_MISSING_APP_KEY();
45
+ if (secret.length < 16)
46
+ throw new E_INSECURE_APP_KEY();
11
47
  this.#secret = secret;
12
48
  // Derive a 32-byte key for AES-256-GCM via HKDF-like derivation
13
49
  this.#keyBuffer = Buffer.from(createHmac('sha256', secret).update('cookie-key').digest());
14
50
  }
15
- sign(value) {
16
- const sig = hmacSign(value, this.#secret);
17
- return `${value}.${sig}`;
51
+ /**
52
+ * Wrap a payload with its expiry and purpose.
53
+ *
54
+ * `purpose` is what stops a value sealed for one use being replayed into
55
+ * another — a password-reset token presented as a session cookie fails here
56
+ * rather than being honoured.
57
+ */
58
+ #seal(value, expiresIn, purpose) {
59
+ const envelope = { m: value };
60
+ if (expiresIn !== undefined)
61
+ envelope.e = Date.now() + expiresIn;
62
+ if (purpose !== undefined)
63
+ envelope.p = purpose;
64
+ return JSON.stringify(envelope);
65
+ }
66
+ /** Unwrap a sealed payload, refusing an expired one or the wrong purpose. */
67
+ #open(raw, purpose) {
68
+ let envelope;
69
+ try {
70
+ const parsed = JSON.parse(raw);
71
+ if (typeof parsed !== 'object' || parsed === null)
72
+ return null;
73
+ envelope = parsed;
74
+ }
75
+ catch {
76
+ // Not an envelope — a value sealed before this format existed.
77
+ return raw;
78
+ }
79
+ if (typeof envelope.m !== 'string')
80
+ return raw;
81
+ if (envelope.e !== undefined && envelope.e < Date.now())
82
+ return null;
83
+ if ((envelope.p ?? undefined) !== purpose)
84
+ return null;
85
+ return envelope.m;
86
+ }
87
+ /**
88
+ * Sign a value (AdonisJS `Encryption.verifier.sign`).
89
+ *
90
+ * `expiresIn` is in milliseconds; `purpose` scopes the signature so it cannot
91
+ * be replayed somewhere else.
92
+ */
93
+ sign(value, expiresIn, purpose) {
94
+ const sealed = Buffer.from(this.#seal(value, expiresIn, purpose)).toString('base64url');
95
+ const sig = hmacSign(sealed, this.#secret);
96
+ return `${sealed}.${sig}`;
18
97
  }
19
- unsign(signed) {
98
+ /** Verify and unwrap, returning null when tampered, expired, or mis-purposed. */
99
+ unsign(signed, purpose) {
20
100
  const lastDot = signed.lastIndexOf('.');
21
101
  if (lastDot === -1)
22
102
  return null;
23
- const value = signed.slice(0, lastDot);
103
+ const sealed = signed.slice(0, lastDot);
24
104
  const sig = signed.slice(lastDot + 1);
25
- return hmacVerify(value, sig, this.#secret) ? value : null;
105
+ if (!hmacVerify(sealed, sig, this.#secret))
106
+ return null;
107
+ try {
108
+ return this.#open(Buffer.from(sealed, 'base64url').toString('utf8'), purpose);
109
+ }
110
+ catch {
111
+ return null;
112
+ }
26
113
  }
27
- encrypt(value) {
114
+ encrypt(value, expiresIn, purpose) {
28
115
  const iv = randomBytes(12);
29
116
  const cipher = createCipheriv('aes-256-gcm', this.#keyBuffer, iv);
30
- const encrypted = Buffer.concat([cipher.update(value, 'utf8'), cipher.final()]);
117
+ const sealed = this.#seal(value, expiresIn, purpose);
118
+ const encrypted = Buffer.concat([cipher.update(sealed, 'utf8'), cipher.final()]);
31
119
  const tag = cipher.getAuthTag();
32
120
  return `${iv.toString('base64url')}.${encrypted.toString('base64url')}.${tag.toString('base64url')}`;
33
121
  }
34
- decrypt(encrypted) {
122
+ decrypt(encrypted, purpose) {
35
123
  const parts = encrypted.split('.');
36
124
  if (parts.length !== 3)
37
125
  return null;
@@ -41,7 +129,8 @@ export class CookieSigner {
41
129
  const tag = Buffer.from(parts[2], 'base64url');
42
130
  const decipher = createDecipheriv('aes-256-gcm', this.#keyBuffer, iv);
43
131
  decipher.setAuthTag(tag);
44
- return Buffer.concat([decipher.update(data), decipher.final()]).toString('utf8');
132
+ const raw = Buffer.concat([decipher.update(data), decipher.final()]).toString('utf8');
133
+ return this.#open(raw, purpose);
45
134
  }
46
135
  catch {
47
136
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"CookieSigner.js","sourceRoot":"","sources":["../../src/security/CookieSigner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CookieSigner.js","sourceRoot":"","sources":["../../src/security/CookieSigner.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,8 @@ export interface MiddlewareClass {
21
21
  export type LazyImport<T> = () => Promise<{
22
22
  default: T;
23
23
  }>;
24
- export type ErrorHandlerClass = new (...args: any[]) => ExceptionHandler;
25
- type MiddlewareClassConstructor = new (...args: any[]) => MiddlewareClass;
24
+ export type ErrorHandlerClass = new (...args: never[]) => ExceptionHandler;
25
+ export type MiddlewareClassConstructor = new (...args: never[]) => MiddlewareClass;
26
26
  /** What server.use() and router.use() accept: lazy imports or direct functions. */
27
27
  export type MiddlewareEntry = LazyImport<MiddlewareClassConstructor> | MiddlewareFunction;
28
28
  export declare class Server {
@@ -77,5 +77,4 @@ export declare function resolveMiddlewareEntry(entry: MiddlewareEntry): Middlewa
77
77
  * caching mirror {@link resolveMiddlewareEntry} (imported once, instance via DI).
78
78
  */
79
79
  export declare function resolveParametrizedMiddlewareEntry(entry: MiddlewareEntry): (args?: unknown) => MiddlewareFunction;
80
- export {};
81
80
  //# sourceMappingURL=Server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC1F;AAED,4DAA4D;AAC5D,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC,CAAA;AAGzD,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,gBAAgB,CAAA;AAGxE,KAAK,0BAA0B,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,eAAe,CAAA;AAEzE,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,0BAA0B,CAAC,GAAG,kBAAkB,CAAA;AAEzF,qBAAa,MAAM;;gBAOL,MAAM,EAAE,MAAM;IAI1B;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKrC,yEAAyE;IACzE,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAItC;;;;OAIG;IACH,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI;IAOxC;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAK1D,8EAA8E;IACxE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,mBAAmB,IAAI,kBAAkB,EAAE;IAI3C,eAAe,IAAI,gBAAgB,GAAG,SAAS;IAI/C,SAAS,IAAI,MAAM;CAGpB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,kBAAkB,CAqBjF;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,eAAe,GACrB,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,kBAAkB,CAmBxC"}
1
+ {"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC1F;AAED,4DAA4D;AAC5D,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC,CAAA;AAIzD,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,gBAAgB,CAAA;AAE1E,MAAM,MAAM,0BAA0B,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,eAAe,CAAA;AAElF,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,0BAA0B,CAAC,GAAG,kBAAkB,CAAA;AAEzF,qBAAa,MAAM;;gBAOL,MAAM,EAAE,MAAM;IAI1B;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKrC,yEAAyE;IACzE,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAItC;;;;OAIG;IACH,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI;IAOxC;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAK1D,8EAA8E;IACxE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,mBAAmB,IAAI,kBAAkB,EAAE;IAI3C,eAAe,IAAI,gBAAgB,GAAG,SAAS;IAI/C,SAAS,IAAI,MAAM;CAGpB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,kBAAkB,CAiCjF;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,eAAe,GACrB,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,kBAAkB,CAmBxC"}
@@ -92,6 +92,16 @@ export function resolveMiddlewareEntry(entry) {
92
92
  return async (ctx, next) => {
93
93
  if (!cachedClass) {
94
94
  const mod = await lazyImport();
95
+ if (mod === null || typeof mod !== 'object' || !('default' in mod)) {
96
+ // The zero-arity ambiguity, reported where it can be acted on: a bound
97
+ // or rest-args middleware lands here because it declares no parameters
98
+ // and was read as an import factory.
99
+ throw new Error('[E_MIDDLEWARE_ENTRY] A middleware entry with no declared parameters was treated as a lazy import, ' +
100
+ 'but it did not resolve to a module with a default export. ' +
101
+ 'If this is an inline middleware (e.g. `handle.bind(this)` or `(...args) => …`), register it on the ' +
102
+ 'route or group — `router.get(...).use(fn)` — rather than in `router.use([...])`, which takes ' +
103
+ 'imports of middleware classes, as AdonisJS does.');
104
+ }
95
105
  cachedClass = mod.default;
96
106
  }
97
107
  const instance = ctx.containerResolver
@@ -126,22 +136,29 @@ export function resolveParametrizedMiddlewareEntry(entry) {
126
136
  };
127
137
  };
128
138
  }
129
- /** Check if an entry is a direct middleware function (not a lazy import). */
139
+ /**
140
+ * Whether an entry is a middleware to run, rather than a module to import.
141
+ *
142
+ * The two are separated by WHERE they are registered, exactly as in AdonisJS:
143
+ * `router.use([...])` takes imports of middleware classes (its own `use()`
144
+ * runs `moduleImporter(one, 'handle')` over every entry), while an inline
145
+ * function goes on a route or group. So this only has to cope with the entries
146
+ * that reach it, and a zero-arity function is an import factory.
147
+ *
148
+ * A middleware that lost its parameters — `handle.bind(this)`, `(...args) =>`
149
+ * — still lands here looking like a factory, which is why the resolver below
150
+ * raises a named error instead of failing somewhere deeper.
151
+ */
130
152
  function isMiddlewareFunction(entry) {
131
- // A lazy import factory returns a promise (dynamic import). Middleware functions don't.
132
- // We check: if calling it with no args returns a thenable, it's a lazy import.
133
- // Better heuristic: lazy imports are () => import(...) which have .length === 0
134
- // and middleware functions have .length >= 2 (ctx, next).
135
- // Edge case: arrow with defaults has length 1. But lazy import() always has length 0.
136
153
  if (typeof entry !== 'function')
137
154
  return false;
138
- // Functions with 2+ params are definitely middleware
139
- if (entry.length >= 2)
155
+ // A declared parameter means a middleware: `(ctx)`, `(ctx, next)`.
156
+ if (entry.length > 0)
140
157
  return true;
141
- // Functions with 0 params are likely lazy imports
142
- if (entry.length === 0)
143
- return false;
144
- // 1 param is ambiguous — treat as middleware (ctx only, no next)
145
- return true;
158
+ // Zero declared parameters: an import factory. `router.use()` only takes
159
+ // those, so this is not a guess about which kind an entry is — a closure
160
+ // that reaches here was registered in the wrong place, and the resolver
161
+ // says so rather than running it as a module.
162
+ return false;
146
163
  }
147
164
  //# sourceMappingURL=Server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"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"}