stratal 0.0.18 → 0.0.20

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 (185) hide show
  1. package/README.md +8 -8
  2. package/dist/{base-email.provider-Cuw4OAB0.mjs → base-email.provider-CfQCA08m.mjs} +1 -1
  3. package/dist/{base-email.provider-Cuw4OAB0.mjs.map → base-email.provider-CfQCA08m.mjs.map} +1 -1
  4. package/dist/bin/cloudflare-workers-loader.mjs.map +1 -1
  5. package/dist/bin/quarry.mjs +26 -35
  6. package/dist/bin/quarry.mjs.map +1 -1
  7. package/dist/cache/index.d.mts +2 -153
  8. package/dist/cache/index.d.mts.map +1 -1
  9. package/dist/cache/index.mjs +4 -6
  10. package/dist/cache/index.mjs.map +1 -1
  11. package/dist/cache.service-DsnKuNyO.d.mts +156 -0
  12. package/dist/cache.service-DsnKuNyO.d.mts.map +1 -0
  13. package/dist/cache.tokens-B7Rw1C9Q.mjs +6 -0
  14. package/dist/cache.tokens-B7Rw1C9Q.mjs.map +1 -0
  15. package/dist/{colors-BTAnQRGU.mjs → colors-DJaRDXoS.mjs} +1 -1
  16. package/dist/{colors-BTAnQRGU.mjs.map → colors-DJaRDXoS.mjs.map} +1 -1
  17. package/dist/{command-DjGqCYHv.mjs → command-BgSlsS4M.mjs} +2 -2
  18. package/dist/{command-DjGqCYHv.mjs.map → command-BgSlsS4M.mjs.map} +1 -1
  19. package/dist/{command-B1YuV-UZ.d.mts → command-Bu-PjJrX.d.mts} +2 -2
  20. package/dist/{command-B1YuV-UZ.d.mts.map → command-Bu-PjJrX.d.mts.map} +1 -1
  21. package/dist/config/index.d.mts +81 -37
  22. package/dist/config/index.d.mts.map +1 -1
  23. package/dist/config/index.mjs +126 -45
  24. package/dist/config/index.mjs.map +1 -1
  25. package/dist/{consumer-registry-BkuHXR_u.d.mts → consumer-registry-B7yUNh0q.d.mts} +1 -1
  26. package/dist/{consumer-registry-BkuHXR_u.d.mts.map → consumer-registry-B7yUNh0q.d.mts.map} +1 -1
  27. package/dist/controller.decorator-DQzenvSN.mjs +66 -0
  28. package/dist/controller.decorator-DQzenvSN.mjs.map +1 -0
  29. package/dist/cron/index.d.mts +4 -3
  30. package/dist/cron/index.d.mts.map +1 -1
  31. package/dist/cron/index.mjs +1 -1
  32. package/dist/{cron-manager-1KnZvojs.mjs → cron-manager-7Symz_TE.mjs} +29 -19
  33. package/dist/cron-manager-7Symz_TE.mjs.map +1 -0
  34. package/dist/{cron-manager-BnEZquBL.d.mts → cron-manager-BEsH1mjW.d.mts} +27 -13
  35. package/dist/cron-manager-BEsH1mjW.d.mts.map +1 -0
  36. package/dist/di/index.d.mts +1 -1
  37. package/dist/di/index.mjs +2 -2
  38. package/dist/email/index.d.mts +3 -3
  39. package/dist/email/index.mjs +87 -10
  40. package/dist/email/index.mjs.map +1 -1
  41. package/dist/{en-3QnZwP-u.mjs → en-DSH_bhh6.mjs} +10 -30
  42. package/dist/en-DSH_bhh6.mjs.map +1 -0
  43. package/dist/env-D1rcZ8_r.d.mts +25 -0
  44. package/dist/env-D1rcZ8_r.d.mts.map +1 -0
  45. package/dist/errors/index.d.mts +1 -1
  46. package/dist/errors/index.mjs +1 -1
  47. package/dist/{errors--RBIvDXr.mjs → errors-BdyV5PnY.mjs} +180 -15
  48. package/dist/errors-BdyV5PnY.mjs.map +1 -0
  49. package/dist/{errors-B7hCnXgB.mjs → errors-Da3Pz2X7.mjs} +14 -7
  50. package/dist/errors-Da3Pz2X7.mjs.map +1 -0
  51. package/dist/events/index.d.mts +2 -2
  52. package/dist/events/index.mjs +1 -1
  53. package/dist/{events-UTJliZhl.mjs → events-COKixqnG.mjs} +2 -2
  54. package/dist/{events-UTJliZhl.mjs.map → events-COKixqnG.mjs.map} +1 -1
  55. package/dist/{gateway-context-BdBFoQd8.mjs → gateway-context-CdJjpUCW.mjs} +5 -70
  56. package/dist/gateway-context-CdJjpUCW.mjs.map +1 -0
  57. package/dist/guards/index.d.mts +14 -5
  58. package/dist/guards/index.d.mts.map +1 -1
  59. package/dist/guards/index.mjs +1 -1
  60. package/dist/{guards-MtDgcHnF.mjs → guards-DUk_Kzst.mjs} +1 -1
  61. package/dist/guards-DUk_Kzst.mjs.map +1 -0
  62. package/dist/http-method.decorator-DXwxAfb_.mjs +96 -0
  63. package/dist/http-method.decorator-DXwxAfb_.mjs.map +1 -0
  64. package/dist/i18n/index.d.mts +3 -3
  65. package/dist/i18n/index.mjs +2 -2
  66. package/dist/i18n/messages/en/index.d.mts +1 -1
  67. package/dist/i18n/messages/en/index.mjs +1 -1
  68. package/dist/i18n/utils/index.mjs +1 -1
  69. package/dist/i18n/validation/index.d.mts +2 -2
  70. package/dist/i18n/validation/index.mjs +2 -2
  71. package/dist/{i18n.module-BpLLLCTg.mjs → i18n.module-BBlNNlcG.mjs} +234 -204
  72. package/dist/i18n.module-BBlNNlcG.mjs.map +1 -0
  73. package/dist/index-7-hU3GTV.d.mts +101 -0
  74. package/dist/index-7-hU3GTV.d.mts.map +1 -0
  75. package/dist/{index-Dfpd_ypO.d.mts → index-Bnpfq6uk.d.mts} +81 -19
  76. package/dist/index-Bnpfq6uk.d.mts.map +1 -0
  77. package/dist/{index-BDh9J2KD.d.mts → index-C1KvMncZ.d.mts} +9 -29
  78. package/dist/{index-BDh9J2KD.d.mts.map → index-C1KvMncZ.d.mts.map} +1 -1
  79. package/dist/{index-DPxmo6AY.d.mts → index-CjaQ6_tZ.d.mts} +5 -4
  80. package/dist/index-CjaQ6_tZ.d.mts.map +1 -0
  81. package/dist/{index-BrmS34sa.d.mts → index-D0US0X14.d.mts} +375 -235
  82. package/dist/index-D0US0X14.d.mts.map +1 -0
  83. package/dist/{index-BR23zDMy.d.mts → index-DBd_2wv8.d.mts} +1 -1
  84. package/dist/{index-BR23zDMy.d.mts.map → index-DBd_2wv8.d.mts.map} +1 -1
  85. package/dist/index.d.mts +3 -2
  86. package/dist/index.d.mts.map +1 -1
  87. package/dist/index.mjs +1 -1
  88. package/dist/{is-command-PvULqiTa.mjs → is-command-C6a7WTPw.mjs} +2 -2
  89. package/dist/{is-command-PvULqiTa.mjs.map → is-command-C6a7WTPw.mjs.map} +1 -1
  90. package/dist/{is-seeder-BN9Ej1r7.mjs → is-seeder-CebjZCDn.mjs} +1 -1
  91. package/dist/{is-seeder-BN9Ej1r7.mjs.map → is-seeder-CebjZCDn.mjs.map} +1 -1
  92. package/dist/logger/index.d.mts +1 -1
  93. package/dist/logger/index.mjs +1 -1
  94. package/dist/{logger-c0ftIK4G.mjs → logger-V6Ms3QnQ.mjs} +38 -20
  95. package/dist/{logger-c0ftIK4G.mjs.map → logger-V6Ms3QnQ.mjs.map} +1 -1
  96. package/dist/macroable/index.d.mts +2 -0
  97. package/dist/macroable/index.mjs +2 -0
  98. package/dist/macroable-BmufBshB.mjs +122 -0
  99. package/dist/macroable-BmufBshB.mjs.map +1 -0
  100. package/dist/module/index.d.mts +2 -2
  101. package/dist/module/index.mjs +1 -1
  102. package/dist/{module-C3YZ-kZN.mjs → module-Dk2qTa77.mjs} +160 -19
  103. package/dist/module-Dk2qTa77.mjs.map +1 -0
  104. package/dist/openapi/index.d.mts +3 -3
  105. package/dist/openapi/index.mjs +2 -2
  106. package/dist/{openapi-tools.service-B77QXD56.mjs → openapi-tools.service-Zs-Ewv7F.mjs} +4 -1
  107. package/dist/{openapi-tools.service-B77QXD56.mjs.map → openapi-tools.service-Zs-Ewv7F.mjs.map} +1 -1
  108. package/dist/{openapi.service-6yj0BUY4.d.mts → openapi.service-BLgvn3hJ.d.mts} +3 -3
  109. package/dist/{openapi.service-6yj0BUY4.d.mts.map → openapi.service-BLgvn3hJ.d.mts.map} +1 -1
  110. package/dist/quarry/index.d.mts +7 -7
  111. package/dist/quarry/index.d.mts.map +1 -1
  112. package/dist/quarry/index.mjs +4 -4
  113. package/dist/{quarry-registry-CQCIlYTO.mjs → quarry-registry-DNEej-Db.mjs} +17 -15
  114. package/dist/quarry-registry-DNEej-Db.mjs.map +1 -0
  115. package/dist/queue/index.d.mts +2 -2
  116. package/dist/queue/index.mjs +2 -2
  117. package/dist/{queue.module-DIjD6nr-.mjs → queue.module-BCdCiySt.mjs} +4 -4
  118. package/dist/{queue.module-DIjD6nr-.mjs.map → queue.module-BCdCiySt.mjs.map} +1 -1
  119. package/dist/r2-storage.provider-Co6F0ZYV.mjs +244 -0
  120. package/dist/r2-storage.provider-Co6F0ZYV.mjs.map +1 -0
  121. package/dist/rate-limit.decorator--o6Q6p9w.mjs +55 -0
  122. package/dist/rate-limit.decorator--o6Q6p9w.mjs.map +1 -0
  123. package/dist/rate-limiter/index.d.mts +420 -0
  124. package/dist/rate-limiter/index.d.mts.map +1 -0
  125. package/dist/rate-limiter/index.mjs +365 -0
  126. package/dist/rate-limiter/index.mjs.map +1 -0
  127. package/dist/{resend.provider-Bvw36rQy.mjs → resend.provider-M6qRLrcy.mjs} +2 -2
  128. package/dist/{resend.provider-Bvw36rQy.mjs.map → resend.provider-M6qRLrcy.mjs.map} +1 -1
  129. package/dist/router/index.d.mts +2 -2
  130. package/dist/router/index.mjs +7 -5
  131. package/dist/seeder/index.d.mts +3 -3
  132. package/dist/seeder/index.mjs +2 -2
  133. package/dist/{seeder-D7VXULXB.mjs → seeder-CJAOHEIo.mjs} +5 -5
  134. package/dist/{seeder-D7VXULXB.mjs.map → seeder-CJAOHEIo.mjs.map} +1 -1
  135. package/dist/{setup-BRIN-iYT.mjs → setup-CefZKV_e.mjs} +1 -1
  136. package/dist/{setup-BRIN-iYT.mjs.map → setup-CefZKV_e.mjs.map} +1 -1
  137. package/dist/signed-url-BQPbv2In.mjs +74 -0
  138. package/dist/signed-url-BQPbv2In.mjs.map +1 -0
  139. package/dist/{smtp.provider-CAwpvzvD.mjs → smtp.provider-w0Ve52Xg.mjs} +2 -2
  140. package/dist/{smtp.provider-CAwpvzvD.mjs.map → smtp.provider-w0Ve52Xg.mjs.map} +1 -1
  141. package/dist/storage/index.d.mts +39 -17
  142. package/dist/storage/index.d.mts.map +1 -1
  143. package/dist/storage/index.mjs +3 -3
  144. package/dist/storage/providers/index.d.mts +30 -70
  145. package/dist/storage/providers/index.d.mts.map +1 -1
  146. package/dist/storage/providers/index.mjs +2 -2
  147. package/dist/{storage-CJ-QOwNv.mjs → storage-1zw-6Yiz.mjs} +101 -27
  148. package/dist/storage-1zw-6Yiz.mjs.map +1 -0
  149. package/dist/{storage-provider.interface-YRtyYBxV.d.mts → storage-provider.interface-Bd6vA4ak.d.mts} +20 -21
  150. package/dist/storage-provider.interface-Bd6vA4ak.d.mts.map +1 -0
  151. package/dist/{stratal-B7G4i9-N.mjs → stratal-DeEcGgdq.mjs} +57 -26
  152. package/dist/stratal-DeEcGgdq.mjs.map +1 -0
  153. package/dist/{types-CN0zONAZ.d.mts → types-cySNS_lp.d.mts} +1 -1
  154. package/dist/types-cySNS_lp.d.mts.map +1 -0
  155. package/dist/{usage-generator-Cl1HPlUp.mjs → usage-generator-BUdlhnCK.mjs} +2 -2
  156. package/dist/{usage-generator-Cl1HPlUp.mjs.map → usage-generator-BUdlhnCK.mjs.map} +1 -1
  157. package/dist/{validation-B4bePOa_.mjs → validation-DtJwAv7O.mjs} +62 -8
  158. package/dist/validation-DtJwAv7O.mjs.map +1 -0
  159. package/dist/websocket/index.d.mts +9 -4
  160. package/dist/websocket/index.d.mts.map +1 -1
  161. package/dist/websocket/index.mjs +1 -1
  162. package/dist/workers/index.d.mts +2 -1
  163. package/dist/workers/index.d.mts.map +1 -1
  164. package/dist/workers/index.mjs +2 -2
  165. package/package.json +32 -40
  166. package/dist/cron-manager-1KnZvojs.mjs.map +0 -1
  167. package/dist/cron-manager-BnEZquBL.d.mts.map +0 -1
  168. package/dist/en-3QnZwP-u.mjs.map +0 -1
  169. package/dist/errors--RBIvDXr.mjs.map +0 -1
  170. package/dist/errors-B7hCnXgB.mjs.map +0 -1
  171. package/dist/gateway-context-BdBFoQd8.mjs.map +0 -1
  172. package/dist/guards-MtDgcHnF.mjs.map +0 -1
  173. package/dist/i18n.module-BpLLLCTg.mjs.map +0 -1
  174. package/dist/index-BrmS34sa.d.mts.map +0 -1
  175. package/dist/index-DPxmo6AY.d.mts.map +0 -1
  176. package/dist/index-Dfpd_ypO.d.mts.map +0 -1
  177. package/dist/module-C3YZ-kZN.mjs.map +0 -1
  178. package/dist/quarry-registry-CQCIlYTO.mjs.map +0 -1
  179. package/dist/s3-storage.provider-BAhHDMI3.mjs +0 -343
  180. package/dist/s3-storage.provider-BAhHDMI3.mjs.map +0 -1
  181. package/dist/storage-CJ-QOwNv.mjs.map +0 -1
  182. package/dist/storage-provider.interface-YRtyYBxV.d.mts.map +0 -1
  183. package/dist/stratal-B7G4i9-N.mjs.map +0 -1
  184. package/dist/types-CN0zONAZ.d.mts.map +0 -1
  185. package/dist/validation-B4bePOa_.mjs.map +0 -1
@@ -1,11 +1,11 @@
1
- import { t as index_d_exports$1 } from "./index-BDh9J2KD.mjs";
1
+ import { t as index_d_exports$1 } from "./index-C1KvMncZ.mjs";
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
- import { OpenAPIHono, z as z$1 } from "@hono/zod-openapi";
3
+ import { OpenAPIHono, z, z as z$2 } from "@hono/zod-openapi";
4
4
  import * as _$zod from "zod";
5
5
  import { ZodError } from "zod";
6
6
  import { OpenAPIObject, PathItemObject } from "openapi3-ts/oas30";
7
7
  import * as _$zod_v4_core0 from "zod/v4/core";
8
- import { $ZodIssueCustom } from "zod/v4/core";
8
+ import { $ZodIssueCustom, $ZodRawIssue } from "zod/v4/core";
9
9
 
10
10
  //#region src/i18n/i18n.types.d.ts
11
11
  /**
@@ -26,24 +26,38 @@ type DeepKeys<T, Prefix extends string = ''> = T extends object ? { [K in keyof
26
26
  */
27
27
  type SystemMessageKeys = DeepKeys<typeof index_d_exports$1>;
28
28
  /**
29
- * Augmentable interface for app-specific messages
29
+ * Augmentable registry for app-specific message namespaces.
30
30
  *
31
- * Applications should augment this interface with their message types:
31
+ * Each module owns ONE top-level key here. Two modules CANNOT augment the same
32
+ * key with different shapes — TypeScript requires same-named interface properties
33
+ * across declarations to be structurally identical. By giving every module its
34
+ * own distinct key, interface merging is safe.
32
35
  *
33
- * @example
36
+ * @example Module declares its own namespace
34
37
  * ```typescript
35
- * // In apps/backend/src/i18n/types.ts
36
- * import type * as appEn from 'stratal/i18n/messages/en'
38
+ * // packages/framework/src/auth/i18n/en.ts
39
+ * export const authMessages = {
40
+ * en: { auth: { errors: { invalidCredentials: '...' }, org: { ... } } },
41
+ * } as const
37
42
  *
38
- * declare module 'stratal' {
39
- * interface AppMessages extends typeof appEn {}
43
+ * declare module 'stratal/i18n' {
44
+ * interface AppMessageNamespaces {
45
+ * auth: typeof authMessages['en']['auth']
46
+ * }
40
47
  * }
41
48
  * ```
49
+ *
50
+ * Access with flat dot-notation: `i18n.t('auth.errors.invalidCredentials')`.
51
+ */
52
+ interface AppMessageNamespaces {}
53
+ /**
54
+ * Composed app messages tree, derived from AppMessageNamespaces.
55
+ * Each module contributes one property; the union forms the full tree.
42
56
  */
43
- interface AppMessages {}
57
+ type AppMessages = { [K in keyof AppMessageNamespaces]: AppMessageNamespaces[K] };
44
58
  /**
45
59
  * Auto-derive app keys from AppMessages
46
- * When AppMessages is augmented, this type automatically includes all app message keys
60
+ * When AppMessageNamespaces is augmented, this type automatically includes all app message keys
47
61
  */
48
62
  type AppMessageKeys = DeepKeys<AppMessages>;
49
63
  /**
@@ -123,17 +137,65 @@ interface II18nService {
123
137
  * const schema = z.string().email(withI18n('validation.email'))
124
138
  * ```
125
139
  *
126
- * Note: This is the backend version using AsyncLocalStorage.
127
- * For frontend, use withI18nFrontend from the frontend validation module
128
- *
129
140
  * @param key - Message key from shared i18n messages (type-safe via MessageKeys)
130
141
  * @param params - Optional interpolation parameters for the message
131
142
  * @returns Zod error configuration object with translated message
132
143
  */
133
144
  declare function withI18n(key: MessageKeys, params?: Record<string, unknown>): {
134
- error: () => string;
145
+ error: (_issue: $ZodRawIssue) => string;
135
146
  };
136
147
  //#endregion
148
+ //#region src/i18n/validation/cuid2.d.ts
149
+ /**
150
+ * Default cuid2 shape: 24-32 lowercase-alphanumeric chars, starting with a
151
+ * letter. Matches what `@paralleldrive/cuid2` produces with default settings
152
+ * and what most apps expect when they say "cuid2".
153
+ *
154
+ * Used as the default for {@link cuid2}; exposed for callers who want to
155
+ * compose it into other patterns.
156
+ */
157
+ declare const CUID2_REGEX: RegExp;
158
+ /**
159
+ * Stratal's cuid2 validator — a stricter drop-in for Zod 4.3.6's `z.cuid2()`.
160
+ *
161
+ * **Why this exists.** Zod 4.3.6's built-in `z.cuid2()` uses the regex
162
+ * `/^[0-9a-z]+$/`, which accepts *any* non-empty lowercase-alphanumeric
163
+ * string (including 2-letter locale prefixes like `'sw'`). That makes it
164
+ * effectively useless as a tenant-id / external-id validator.
165
+ *
166
+ * This helper layers the proper shape regex on top of `z.cuid2()`, so:
167
+ * - validation actually enforces cuid2 shape;
168
+ * - the schema still carries `z.cuid2()`'s OpenAPI metadata (i.e. spec
169
+ * output keeps `format: 'cuid2'`).
170
+ *
171
+ * @example
172
+ * ```ts
173
+ * import { z, withI18n } from 'stratal/validation'
174
+ * import { cuid2 } from 'stratal/validation'
175
+ *
176
+ * // Default 24-32 char cuid2:
177
+ * router.prefix('/:tenantId', z.object({ tenantId: cuid2() }))
178
+ *
179
+ * // Custom regex (e.g. fixed-length 24):
180
+ * router.prefix('/:tenantId', z.object({
181
+ * tenantId: cuid2({ pattern: /^[a-z][0-9a-z]{23}$/ }),
182
+ * }))
183
+ *
184
+ * // Custom error message:
185
+ * cuid2(withI18n('tenants.errors.invalidId'))
186
+ *
187
+ * // Compose: chain anything Zod string accepts
188
+ * cuid2().describe('Tenant ID')
189
+ * ```
190
+ *
191
+ * @param options.pattern - Override the shape regex. Defaults to {@link CUID2_REGEX}.
192
+ * @param options.error - Custom error message (string or i18n key) for the regex check.
193
+ */
194
+ declare function cuid2(options?: {
195
+ pattern?: RegExp;
196
+ error?: string | ((_issue: $ZodRawIssue) => string);
197
+ }): z.ZodCUID2;
198
+ //#endregion
137
199
  //#region src/i18n/validation/validation.types.d.ts
138
200
  /**
139
201
  * Context provided to error map for locale-aware translation
@@ -205,10 +267,10 @@ declare const backendErrorMap: _$zod.ZodErrorMap<_$zod_v4_core0.$ZodIssue>;
205
267
  */
206
268
  declare function runWithErrorMapContext<T>(context: ErrorMapContext, fn: () => T): T;
207
269
  declare namespace index_d_exports {
208
- export { ErrorMapContext, I18nErrorMetadata, LocaleProvider, OpenAPIHono, OpenAPIObject, PathItemObject, ZodCustomIssue, ZodError, backendErrorMap, runWithErrorMapContext, withI18n, z$1 as z };
270
+ export { CUID2_REGEX, ErrorMapContext, I18nErrorMetadata, LocaleProvider, OpenAPIHono, OpenAPIObject, PathItemObject, ZodCustomIssue, ZodError, backendErrorMap, cuid2, runWithErrorMapContext, withI18n, z$2 as z };
209
271
  }
210
272
  import * as import_zod from "zod";
211
273
  import * as import__hono_zod_openapi from "@hono/zod-openapi";
212
274
  //#endregion
213
- export { SystemMessageKeys as S, II18nService as _, index_d_exports as a, MessageParams as b, runWithErrorMapContext as c, LocaleProvider as d, ZodCustomIssue as f, DeepKeys as g, AppMessages as h, ZodError as i, ErrorMapContext as l, AppMessageKeys as m, OpenAPIObject as n, z$1 as o, withI18n as p, PathItemObject as r, backendErrorMap as s, OpenAPIHono as t, I18nErrorMetadata as u, MessageKeyPrefix as v, Prefixes as x, MessageKeys as y };
214
- //# sourceMappingURL=index-Dfpd_ypO.d.mts.map
275
+ export { MessageParams as C, MessageKeys as S, SystemMessageKeys as T, AppMessageNamespaces as _, index_d_exports as a, II18nService as b, runWithErrorMapContext as c, LocaleProvider as d, ZodCustomIssue as f, AppMessageKeys as g, withI18n as h, ZodError as i, ErrorMapContext as l, cuid2 as m, OpenAPIObject as n, z$2 as o, CUID2_REGEX as p, PathItemObject as r, backendErrorMap as s, OpenAPIHono as t, I18nErrorMetadata as u, AppMessages as v, Prefixes as w, MessageKeyPrefix as x, DeepKeys as y };
276
+ //# sourceMappingURL=index-Bnpfq6uk.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Bnpfq6uk.d.mts","names":[],"sources":["../src/i18n/i18n.types.ts","../src/i18n/validation/with-i18n.ts","../src/i18n/validation/cuid2.ts","../src/i18n/validation/validation.types.ts","../src/i18n/validation/validation.context.ts","../src/i18n/validation/index.ts"],"mappings":";;;;;;;;;;;;;;AAoBA;;;;;;;KAAY,QAAA,kCAA0C,CAAA,gCAEtC,CAAA,YAAa,CAAA,CAAE,CAAA,mBACzB,QAAA,CAAS,CAAA,CAAE,CAAA,MAAO,MAAA,GAAS,CAAA,UACxB,MAAA,GAAS,CAAA,WACR,CAAA;;;;;KAOE,iBAAA,GAAoB,QAAA,QAAgB,iBAAA;;;;;;;;;;;;;;;;;;;;AAAhD;;;;;UA0BiB,oBAAA;;;;AAMjB;KAAY,WAAA,iBAA4B,oBAAA,GAAuB,oBAAA,CAAqB,CAAA;;;;;KAMxE,cAAA,GAAiB,QAAA,CAAS,WAAA;;;;;KAO1B,WAAA,GAAc,iBAAA,GAAoB,cAAA;AAP9C;;;;;AAOA;;;;;AAeA;;;AAtBA,KAsBY,QAAA,qBAA6B,CAAA,yCACrC,IAAA,MAAU,IAAA,IAAQ,QAAA,CAAS,IAAA,MAC3B,CAAA;;;;;;;;;;;;;;;KAgBQ,gBAAA,GAAmB,QAAA,CAAS,WAAA;;;;AAAxC;KAMY,aAAA,GAAgB,MAAA;;;;UAKX,YAAA;EALQ;;;;AAKzB;;;EAQE,CAAA,CAAE,GAAA,EAAK,WAAA,EAAa,MAAA,GAAS,aAAA;EAA7B;;;;;EAOA,SAAA;AAAA;;;;;;;;;;;;AApHF;;;;;;;;;;;;iBCKgB,QAAA,CACd,GAAA,EAAK,WAAA,EACL,MAAA,GAAS,MAAA;EACN,KAAA,GAAQ,MAAA,EAAQ,YAAA;AAAA;;;;;;;;;;;cCjBR,WAAA,EAAW,MAAA;AFSxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;AAZA,iBE6BgB,KAAA,CAAM,OAAA;EAAY,OAAA,GAAU,MAAA;EAAQ,KAAA,cAAmB,MAAA,EAAQ,YAAA;AAAA,IAA0B,CAAA,CAAA,QAAA;;;;;;UC3CxF,eAAA;;;;EAIf,CAAA,GAAI,GAAA,EAAK,WAAA,EAAa,MAAA,GAAS,MAAA;;AHUjC;;EGLE,MAAA;AAAA;;;;;KAOU,cAAA,SAAuB,eAAA;;;;UAKlB,iBAAA;EHHC;;;EGOhB,GAAA,EAAK,WAAA;EHXc;;;EGgBnB,MAAA,GAAS,MAAA;AAAA;;;;;KAOC,cAAA,GAAiB,eAAA;EAC3B,MAAA;IACE,IAAA,GAAO,iBAAA;IAAA,CACN,GAAA;EAAA;AAAA;;;;;;;cCzBQ,eAAA,EAAe,KAAA,CAAA,WAAA,CAAyC,cAAA,CAAzC,SAAA;;;;;;;;;;;;;;;;;;;;;iBAsBZ,sBAAA,GAAA,CACd,OAAA,EAAS,eAAA,EACT,EAAA,QAAU,CAAA,GACT,CAAA;AAAA"}
@@ -39,6 +39,7 @@ declare const errors: {
39
39
  readonly routeNameNotFound: "Route \"{name}\" not found in registry.";
40
40
  readonly missingRouteParam: "Missing required parameter \"{param}\" for route \"{name}\" (path: {path}).";
41
41
  readonly routerUseScopeViolation: "router.use() can only be called on the root Router, not inside group() callbacks. Use router.middleware() for scoped middleware.";
42
+ readonly middlewareNextCalledMultipleTimes: "next() was called multiple times in \"{middlewareName}\" middleware. Ensure each middleware calls next() at most once.";
42
43
  readonly missingEnvironmentVariable: "Environment variable \"{variable}\" is required but not set.";
43
44
  readonly websocketBodyNotAvailable: "body() is not available in WebSocket gateways. Use WebSocket messages instead.";
44
45
  readonly websocketDuplicateEventHandler: "@{decorator}() is already applied to '{existingMethod}'. Only one method per gateway can handle this event.";
@@ -96,8 +97,9 @@ declare const errors: {
96
97
  readonly fileTooLarge: "File size {size} exceeds maximum allowed size of {maxSize}";
97
98
  readonly presignedUrlInvalidExpiry: "Expiry must be between {min} and {max} seconds";
98
99
  readonly diskNotConfigured: "Disk \"{disk}\" is not configured";
99
- readonly providerNotSupported: "Storage provider \"{provider}\" is not supported";
100
100
  readonly responseBodyMissing: "No body in storage response for path: {path}";
101
+ readonly r2BindingNotFound: "R2 binding \"{binding}\" was not found in the environment";
102
+ readonly r2PresignedUrlSecretMissing: "APP_SECRET environment variable is required for presigned URLs";
101
103
  };
102
104
  readonly cache: {
103
105
  readonly getFailed: "Failed to retrieve value from cache for key '{key}'";
@@ -105,33 +107,11 @@ declare const errors: {
105
107
  readonly deleteFailed: "Failed to delete value from cache for key '{key}'";
106
108
  readonly listFailed: "Failed to list cache keys";
107
109
  };
108
- readonly auth: {
109
- readonly tokenRequired: "Verification token is required";
110
- readonly invalidToken: "Invalid or expired verification token";
111
- readonly verificationFailed: "Verification failed. Please try again.";
112
- readonly userNotFound: "User not found. Please check your credentials.";
113
- readonly invalidCredentials: "Invalid email or password";
114
- readonly invalidPassword: "Invalid password";
115
- readonly invalidEmail: "Invalid email address";
116
- readonly sessionExpired: "Your session has expired. Please sign in again.";
117
- readonly emailNotVerified: "Please verify your email address before signing in";
118
- readonly passwordTooShort: "Password must be at least {minLength} characters";
119
- readonly passwordTooLong: "Password must be at most {maxLength} characters";
120
- readonly accountAlreadyExists: "An account with this email already exists";
121
- readonly failedToCreateUser: "Failed to create user account. Please try again.";
122
- readonly failedToCreateSession: "Failed to create session. Please try again.";
123
- readonly failedToGetSession: "Failed to retrieve session. Please try again.";
124
- readonly failedToUpdateUser: "Failed to update user information. Please try again.";
125
- readonly failedToGetUserInfo: "Failed to retrieve user information. Please try again.";
126
- readonly socialAccountLinked: "This social account is already linked to another user";
127
- readonly providerNotFound: "Authentication provider not found";
128
- readonly userEmailNotFound: "User email address not found";
129
- readonly accountNotFound: "Account not found";
130
- readonly credentialAccountNotFound: "Credential account not found";
131
- readonly cannotUnlinkLastAccount: "Cannot unlink your last account";
132
- readonly userAlreadyHasPassword: "User already has a password set";
133
- readonly emailCannotBeUpdated: "Email address cannot be updated at this time";
134
- readonly tokenExpired: "The verification token has expired. Please request a new verification email.";
110
+ readonly rateLimit: {
111
+ readonly tooManyRequests: "Too Many Requests";
112
+ readonly notDefined: "Rate limiter \"{name}\" is not defined. Register it via RateLimiterRegistry.for(\"{name}\", ...) inside a module's onInitialize hook.";
113
+ readonly notConfigured: "RateLimiterModule.forRoot() was not called. Pass { store: \"kv\" | \"memory\" | { useClass } } to enable rate limiting.";
114
+ readonly moduleNotImported: "Rate limiter \"{name}\" was used (router.throttle / @RateLimit) but RateLimiterModule is not imported in your AppModule. Add RateLimiterModule.forRoot({ store: ... }) to imports.";
135
115
  };
136
116
  readonly seederNameCollision: "Seeder name collision: \"{name}\" is already registered. Use distinct class names for each seeder.";
137
117
  readonly seederNotRegistered: "Seeder \"{name}\" is not registered";
@@ -325,4 +305,4 @@ declare namespace index_d_exports {
325
305
  }
326
306
  //#endregion
327
307
  export { errors as a, emails as i, zodI18n as n, common as o, validation as r, index_d_exports as t };
328
- //# sourceMappingURL=index-BDh9J2KD.d.mts.map
308
+ //# sourceMappingURL=index-C1KvMncZ.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BDh9J2KD.d.mts","names":[],"sources":["../src/i18n/messages/en/common.ts","../src/i18n/messages/en/errors.ts","../src/i18n/messages/en/emails.ts","../src/i18n/messages/en/validation.ts","../src/i18n/messages/en/zod.ts","../src/i18n/messages/en/index.ts"],"mappings":";;;;AAOA;;;cAAa,MAAA;EAAA;;;;;;;;;;;;;;;;AAAb;;;cCAa,MAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADAb;;;cEAa,MAAA;EAAA,SAIH,SAAA;IAAA,SAAA,OAAA;EAAA;AAAA;;;;;;cCPG,UAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AHGb;;;cIAa,OAAA;EAAA"}
1
+ {"version":3,"file":"index-C1KvMncZ.d.mts","names":[],"sources":["../src/i18n/messages/en/common.ts","../src/i18n/messages/en/errors.ts","../src/i18n/messages/en/emails.ts","../src/i18n/messages/en/validation.ts","../src/i18n/messages/en/zod.ts","../src/i18n/messages/en/index.ts"],"mappings":";;;;AAOA;;;cAAa,MAAA;EAAA;;;;;;;;;;;;;;;;AAAb;;;cCAa,MAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADAb;;;cEAa,MAAA;EAAA,SAIH,SAAA;IAAA,SAAA,OAAA;EAAA;AAAA;;;;;;cCPG,UAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AHGb;;;cIAa,OAAA;EAAA"}
@@ -1,6 +1,7 @@
1
- import { d as ApplicationError, fn as AsyncModuleOptions, ir as StratalEnv, mn as DynamicModule } from "./index-BrmS34sa.mjs";
2
- import { _ as II18nService } from "./index-Dfpd_ypO.mjs";
3
- import { r as QueueMessage, t as ConsumerRegistry } from "./consumer-registry-BkuHXR_u.mjs";
1
+ import { d as ApplicationError, gn as AsyncModuleOptions, vn as DynamicModule } from "./index-D0US0X14.mjs";
2
+ import { t as StratalEnv } from "./env-D1rcZ8_r.mjs";
3
+ import { b as II18nService } from "./index-Bnpfq6uk.mjs";
4
+ import { r as QueueMessage, t as ConsumerRegistry } from "./consumer-registry-B7yUNh0q.mjs";
4
5
 
5
6
  //#region src/queue/queue-manager.d.ts
6
7
  /**
@@ -490,4 +491,4 @@ declare class QueueProviderNotSupportedError extends ApplicationError {
490
491
  }
491
492
  //#endregion
492
493
  export { QueueNames as _, InjectQueue as a, QueueModule as c, SyncQueueProvider as d, CloudflareQueueProvider as f, QueueName as g, IQueueSender as h, QueueToken as i, QueueModuleOptions as l, DispatchMessage as m, QueueBindingNotFoundError as n, QueueRegistry as o, IQueueProvider as p, QUEUE_TOKENS as r, QueueProviderFactory as s, QueueProviderNotSupportedError as t, QueueSender as u, QueueManager as v };
493
- //# sourceMappingURL=index-DPxmo6AY.d.mts.map
494
+ //# sourceMappingURL=index-CjaQ6_tZ.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CjaQ6_tZ.d.mts","names":[],"sources":["../src/queue/queue-manager.ts","../src/queue/queue-name.ts","../src/queue/queue-sender.interface.ts","../src/queue/providers/queue-provider.interface.ts","../src/queue/providers/cloudflare-queue.provider.ts","../src/queue/providers/sync-queue.provider.ts","../src/queue/queue-sender.ts","../src/queue/queue.module.ts","../src/queue/services/queue-provider-factory.ts","../src/queue/queue-registry.ts","../src/queue/decorators/inject-queue.decorator.ts","../src/queue/queue.tokens.ts","../src/queue/errors/queue-binding-not-found.error.ts","../src/queue/errors/queue-provider-not-supported.error.ts"],"mappings":"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"}