@cogenta/core 0.4.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/CHANGELOG.md +3532 -0
  2. package/dist/config/env.d.ts +21 -0
  3. package/dist/config/env.d.ts.map +1 -1
  4. package/dist/config/env.js +72 -0
  5. package/dist/config/env.js.map +1 -1
  6. package/dist/config/index.d.ts +2 -0
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +1 -0
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/config/load-config.d.ts +9 -0
  11. package/dist/config/load-config.d.ts.map +1 -1
  12. package/dist/config/load-config.js +39 -15
  13. package/dist/config/load-config.js.map +1 -1
  14. package/dist/config/resolve-config.d.ts.map +1 -1
  15. package/dist/config/resolve-config.js +39 -0
  16. package/dist/config/resolve-config.js.map +1 -1
  17. package/dist/config/schema.d.ts +49 -0
  18. package/dist/config/schema.d.ts.map +1 -1
  19. package/dist/config/schema.js +149 -1
  20. package/dist/config/schema.js.map +1 -1
  21. package/dist/config/secret-hygiene.d.ts +55 -0
  22. package/dist/config/secret-hygiene.d.ts.map +1 -0
  23. package/dist/config/secret-hygiene.js +94 -0
  24. package/dist/config/secret-hygiene.js.map +1 -0
  25. package/dist/config/types.d.ts +166 -0
  26. package/dist/config/types.d.ts.map +1 -1
  27. package/dist/config/types.js +4 -0
  28. package/dist/config/types.js.map +1 -1
  29. package/dist/drivers/index.d.ts +1 -1
  30. package/dist/drivers/index.d.ts.map +1 -1
  31. package/dist/drivers/index.js.map +1 -1
  32. package/dist/drivers/registry.d.ts.map +1 -1
  33. package/dist/drivers/registry.js +15 -8
  34. package/dist/drivers/registry.js.map +1 -1
  35. package/dist/drivers/types.d.ts +23 -0
  36. package/dist/drivers/types.d.ts.map +1 -1
  37. package/dist/errors/codes.d.ts +1 -1
  38. package/dist/errors/codes.d.ts.map +1 -1
  39. package/dist/errors/codes.js +244 -0
  40. package/dist/errors/codes.js.map +1 -1
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/logger/error-log.d.ts +48 -0
  46. package/dist/logger/error-log.d.ts.map +1 -0
  47. package/dist/logger/error-log.js +57 -0
  48. package/dist/logger/error-log.js.map +1 -0
  49. package/dist/logger/index.d.ts +2 -0
  50. package/dist/logger/index.d.ts.map +1 -1
  51. package/dist/logger/index.js +1 -0
  52. package/dist/logger/index.js.map +1 -1
  53. package/dist/media/exif.d.ts +46 -0
  54. package/dist/media/exif.d.ts.map +1 -0
  55. package/dist/media/exif.js +291 -0
  56. package/dist/media/exif.js.map +1 -0
  57. package/dist/media/folder-path.d.ts +16 -0
  58. package/dist/media/folder-path.d.ts.map +1 -0
  59. package/dist/media/folder-path.js +51 -0
  60. package/dist/media/folder-path.js.map +1 -0
  61. package/dist/media/folder-store.d.ts +26 -0
  62. package/dist/media/folder-store.d.ts.map +1 -0
  63. package/dist/media/folder-store.js +361 -0
  64. package/dist/media/folder-store.js.map +1 -0
  65. package/dist/media/index.d.ts +5 -2
  66. package/dist/media/index.d.ts.map +1 -1
  67. package/dist/media/index.js +4 -1
  68. package/dist/media/index.js.map +1 -1
  69. package/dist/media/sql-fragments.d.ts +19 -0
  70. package/dist/media/sql-fragments.d.ts.map +1 -0
  71. package/dist/media/sql-fragments.js +29 -0
  72. package/dist/media/sql-fragments.js.map +1 -0
  73. package/dist/media/store.d.ts +1 -0
  74. package/dist/media/store.d.ts.map +1 -1
  75. package/dist/media/store.js +175 -20
  76. package/dist/media/store.js.map +1 -1
  77. package/dist/media/types.d.ts +148 -0
  78. package/dist/media/types.d.ts.map +1 -1
  79. package/dist/queue/bullmq.d.ts +4 -0
  80. package/dist/queue/bullmq.d.ts.map +1 -1
  81. package/dist/queue/bullmq.js +53 -10
  82. package/dist/queue/bullmq.js.map +1 -1
  83. package/dist/queue/database.d.ts.map +1 -1
  84. package/dist/queue/database.js +32 -11
  85. package/dist/queue/database.js.map +1 -1
  86. package/dist/queue/types.d.ts +19 -0
  87. package/dist/queue/types.d.ts.map +1 -1
  88. package/dist/rate-limit/index.d.ts +21 -0
  89. package/dist/rate-limit/index.d.ts.map +1 -0
  90. package/dist/rate-limit/index.js +25 -0
  91. package/dist/rate-limit/index.js.map +1 -0
  92. package/dist/rate-limit/memory.d.ts +17 -0
  93. package/dist/rate-limit/memory.d.ts.map +1 -0
  94. package/dist/rate-limit/memory.js +61 -0
  95. package/dist/rate-limit/memory.js.map +1 -0
  96. package/dist/rate-limit/redis.d.ts +55 -0
  97. package/dist/rate-limit/redis.d.ts.map +1 -0
  98. package/dist/rate-limit/redis.js +134 -0
  99. package/dist/rate-limit/redis.js.map +1 -0
  100. package/dist/rate-limit/types.d.ts +52 -0
  101. package/dist/rate-limit/types.d.ts.map +1 -0
  102. package/dist/rate-limit/types.js +2 -0
  103. package/dist/rate-limit/types.js.map +1 -0
  104. package/dist/version.d.ts +39 -0
  105. package/dist/version.d.ts.map +1 -0
  106. package/dist/version.js +84 -0
  107. package/dist/version.js.map +1 -0
  108. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"bullmq.js","sourceRoot":"","sources":["../../src/queue/bullmq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bullmq.js","sourceRoot":"","sources":["../../src/queue/bullmq.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/queue/database.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAMpB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAMV,WAAW,EACX,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAkCD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,CAiP9E"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/queue/database.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAMpB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAOV,WAAW,EACX,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAwDD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,CAwP9E"}
@@ -7,6 +7,17 @@ const TABLE = 'cogenta_jobs';
7
7
  const DEFAULT_LEASE_MS = 5 * 60 * 1000;
8
8
  const DEFAULT_BATCH_SIZE = 10;
9
9
  const MAX_BACKOFF_MS = 60_000;
10
+ function toJobState(row) {
11
+ return {
12
+ id: row.id,
13
+ name: row.name,
14
+ status: row.status,
15
+ attempt: Number(row.attempt),
16
+ maxAttempts: Number(row.max_attempts),
17
+ runAt: Number(row.run_at),
18
+ lastError: row.last_error ?? undefined,
19
+ };
20
+ }
10
21
  /** Exponential, capped. A failing job must not retry in a tight loop. */
11
22
  function backoffMs(attempt) {
12
23
  return Math.min(2 ** attempt * 1000, MAX_BACKOFF_MS);
@@ -222,17 +233,27 @@ export function createDatabaseQueue(options) {
222
233
  select id, name, status, attempt, max_attempts, run_at, last_error
223
234
  from ${table} where id = ${id}`);
224
235
  const row = result.rows[0];
225
- if (row === undefined)
226
- return null;
227
- return {
228
- id: row.id,
229
- name: row.name,
230
- status: row.status,
231
- attempt: Number(row.attempt),
232
- maxAttempts: Number(row.max_attempts),
233
- runAt: Number(row.run_at),
234
- lastError: row.last_error ?? undefined,
235
- };
236
+ return row === undefined ? null : toJobState(row);
237
+ },
238
+ list: async (listOptions = {}) => {
239
+ await ensureTable();
240
+ const statusFilter = listOptions.status === undefined ? sql `1 = 1` : sql `status = ${listOptions.status}`;
241
+ const result = await db.query(sql `
242
+ select id, name, status, attempt, max_attempts, run_at, last_error
243
+ from ${table}
244
+ where ${statusFilter}
245
+ order by run_at desc
246
+ limit ${limit(listOptions.limit ?? 50)}`);
247
+ return result.rows.map(toJobState);
248
+ },
249
+ retry: async (id) => {
250
+ await ensureTable();
251
+ const result = await db.query(sql `
252
+ update ${table}
253
+ set status = ${'pending'}, attempt = ${0}, run_at = ${now()}, last_error = ${null},
254
+ locked_by = ${null}, locked_until = ${null}
255
+ where id = ${id} and status = ${'failed'}`);
256
+ return result.rowsAffected > 0;
236
257
  },
237
258
  close: async () => {
238
259
  handlers.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/queue/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/queue/database.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,12 @@ export interface JobState {
27
27
  readonly lastError: string | undefined;
28
28
  }
29
29
  export type JobHandler<TPayload = unknown> = (job: Job<TPayload>) => Promise<void>;
30
+ export interface ListJobsOptions {
31
+ /** Narrows to one status. Absent lists every status. */
32
+ readonly status?: JobStatus;
33
+ /** Most recently touched first. Defaults to 50. */
34
+ readonly limit?: number;
35
+ }
30
36
  export interface QueueDriver {
31
37
  enqueue(options: EnqueueOptions): Promise<JobId>;
32
38
  /** Registers the handler for a job name. One handler per name. */
@@ -41,6 +47,19 @@ export interface QueueDriver {
41
47
  tick(): Promise<number>;
42
48
  cancel(id: JobId): Promise<void>;
43
49
  status(id: JobId): Promise<JobState | null>;
50
+ /**
51
+ * Lists jobs, most recently touched first — what fiche 28's admin screen
52
+ * shows as "pending / running / failed" in its queue section.
53
+ */
54
+ list(options?: ListJobsOptions): Promise<readonly JobState[]>;
55
+ /**
56
+ * Puts a `failed` job back to `pending` so the next `tick()` picks it up
57
+ * again, with its attempt counter reset. `false` for a job that is not
58
+ * `failed` (already retried, already gone, still running) — a no-op, not
59
+ * an error, since two admins clicking "retry" on the same job at once must
60
+ * not throw for the one who lost the race.
61
+ */
62
+ retry(id: JobId): Promise<boolean>;
44
63
  close(): Promise<void>;
45
64
  }
46
65
  export interface QueueConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/queue/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAE1B,eAAO,MAAM,YAAY,YAAI,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAA;AAE/F,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAErD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,GAAG,CAAC,QAAQ,GAAG,OAAO;IACrC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CACvC;AAED,MAAM,MAAM,UAAU,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAElF,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAChD,kEAAkE;IAClE,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;IAC9E;;;;;;OAMG;IACH,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACvB,MAAM,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/queue/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type DriverRegistry } from '../drivers/index.js';
2
+ import type { Logger } from '../logger/index.js';
3
+ import type { RateLimitConfig, RateLimitDriver, RateLimitDriverOptions } from './types.js';
4
+ export { createMemoryRateLimiter, memoryRateLimitDriver } from './memory.js';
5
+ export type { RedisRateLimitOptions } from './redis.js';
6
+ export { createRedisRateLimiter, loadRateLimitRedisModule, redisRateLimitDriver } from './redis.js';
7
+ export type { RateLimitConfig, RateLimitConsumeOptions, RateLimitDriver, RateLimitDriverOptions, RateLimitResult, } from './types.js';
8
+ export interface RateLimitRegistryOptions extends RateLimitDriverOptions {
9
+ readonly logger?: Logger;
10
+ }
11
+ /**
12
+ * The request-quota drivers Cogenta ships, in tier order (fiche 20 task 3).
13
+ *
14
+ * `redis` before `memory`: both work with no configuration, but only Redis
15
+ * keeps one true count across every process a site runs — the whole reason
16
+ * a multi-process deployment would want it. R1 still holds: `memory` is
17
+ * always available, so a site with no Redis loses nothing but that
18
+ * cross-process precision.
19
+ */
20
+ export declare function createRateLimitRegistry(options?: RateLimitRegistryOptions): DriverRegistry<RateLimitDriver, RateLimitConfig>;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rate-limit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGhD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAE1F,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC5E,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACnG,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAA6B,GACrC,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC,CAWlD"}
@@ -0,0 +1,25 @@
1
+ import { createDriverRegistry } from '../drivers/index.js';
2
+ import { memoryRateLimitDriver } from './memory.js';
3
+ import { redisRateLimitDriver } from './redis.js';
4
+ export { createMemoryRateLimiter, memoryRateLimitDriver } from './memory.js';
5
+ export { createRedisRateLimiter, loadRateLimitRedisModule, redisRateLimitDriver } from './redis.js';
6
+ /**
7
+ * The request-quota drivers Cogenta ships, in tier order (fiche 20 task 3).
8
+ *
9
+ * `redis` before `memory`: both work with no configuration, but only Redis
10
+ * keeps one true count across every process a site runs — the whole reason
11
+ * a multi-process deployment would want it. R1 still holds: `memory` is
12
+ * always available, so a site with no Redis loses nothing but that
13
+ * cross-process precision.
14
+ */
15
+ export function createRateLimitRegistry(options = {}) {
16
+ const { logger, ...driverOptions } = options;
17
+ const registry = createDriverRegistry({
18
+ need: 'rateLimit',
19
+ ...(logger === undefined ? {} : { logger }),
20
+ });
21
+ registry.register(redisRateLimitDriver(driverOptions));
22
+ registry.register(memoryRateLimitDriver(driverOptions));
23
+ return registry;
24
+ }
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rate-limit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAGjD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE5E,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAanG;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAO,GAA6B,EAAE;IAEtC,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAA;IAC5C,MAAM,QAAQ,GAAG,oBAAoB,CAAmC;QACtE,IAAI,EAAE,WAAW;QACjB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC,CAAA;IAEF,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAA;IAEvD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Driver } from '../drivers/index.js';
2
+ import type { RateLimitConfig, RateLimitDriver, RateLimitDriverOptions } from './types.js';
3
+ /**
4
+ * In-process fixed-window counter. Needs nothing at all, so it is what a
5
+ * single-process site falls back to when there is no Redis — exactly the
6
+ * degraded half of R1, and the one that must work by default, since
7
+ * `npm create cogenta` produces a site with nothing else installed.
8
+ *
9
+ * Its counters die with the process, which only matters for a multi-process
10
+ * deployment: each process enforces its own quota independently, so the
11
+ * effective ceiling is `limit * processCount` rather than `limit`. That is
12
+ * the documented trade a site accepts by not running Redis, the same one
13
+ * `memoryCacheDriver` makes for caching.
14
+ */
15
+ export declare function createMemoryRateLimiter(options?: RateLimitDriverOptions): RateLimitDriver;
16
+ export declare function memoryRateLimitDriver(options?: RateLimitDriverOptions): Driver<RateLimitDriver, RateLimitConfig>;
17
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/rate-limit/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EAEvB,MAAM,YAAY,CAAA;AAOnB;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CA+B7F;AAED,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,sBAA2B,GACnC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAsB1C"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * In-process fixed-window counter. Needs nothing at all, so it is what a
3
+ * single-process site falls back to when there is no Redis — exactly the
4
+ * degraded half of R1, and the one that must work by default, since
5
+ * `npm create cogenta` produces a site with nothing else installed.
6
+ *
7
+ * Its counters die with the process, which only matters for a multi-process
8
+ * deployment: each process enforces its own quota independently, so the
9
+ * effective ceiling is `limit * processCount` rather than `limit`. That is
10
+ * the documented trade a site accepts by not running Redis, the same one
11
+ * `memoryCacheDriver` makes for caching.
12
+ */
13
+ export function createMemoryRateLimiter(options = {}) {
14
+ const now = options.now ?? Date.now;
15
+ const buckets = new Map();
16
+ return {
17
+ consume: async (key, { limit, windowMs }) => {
18
+ const current = now();
19
+ const existing = buckets.get(key);
20
+ const bucket = existing !== undefined && existing.resetAt > current
21
+ ? existing
22
+ : { count: 0, resetAt: current + windowMs };
23
+ bucket.count += 1;
24
+ buckets.set(key, bucket);
25
+ return {
26
+ allowed: bucket.count <= limit,
27
+ limit,
28
+ remaining: Math.max(0, limit - bucket.count),
29
+ resetAt: bucket.resetAt,
30
+ };
31
+ },
32
+ // `windowMs` is unused here: this driver stores one bucket per raw key,
33
+ // carrying its own `resetAt`, so it never needs the window length to
34
+ // find it — unlike Redis, which names the bucket by window.
35
+ reset: async (key, _windowMs) => {
36
+ buckets.delete(key);
37
+ },
38
+ };
39
+ }
40
+ export function memoryRateLimitDriver(options = {}) {
41
+ let instance;
42
+ return {
43
+ name: 'memory',
44
+ tier: 'degraded',
45
+ available: async () => true,
46
+ init: async () => {
47
+ instance ??= createMemoryRateLimiter(options);
48
+ return instance;
49
+ },
50
+ dispose: async () => {
51
+ instance = undefined;
52
+ },
53
+ health: async () => ({
54
+ status: 'degraded',
55
+ driver: 'memory',
56
+ tier: 'degraded',
57
+ message: 'In-process request counter. Each server process enforces its own quota independently.',
58
+ }),
59
+ };
60
+ }
61
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/rate-limit/memory.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAO,GAA2B,EAAE;IAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEzC,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAA4B,EAAE;YACpE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAA;YACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEjC,MAAM,MAAM,GACV,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,GAAG,OAAO;gBAClD,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAA;YAC/C,MAAM,CAAC,KAAK,IAAI,CAAC,CAAA;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAExB,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;gBAC9B,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC5C,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAA;QACH,CAAC;QAED,wEAAwE;QACxE,qEAAqE;QACrE,4DAA4D;QAC5D,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;YAC9B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAO,GAA2B,EAAE;IAEpC,IAAI,QAAqC,CAAA;IAEzC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC3B,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,QAAQ,KAAK,uBAAuB,CAAC,OAAO,CAAC,CAAA;YAC7C,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,QAAQ,GAAG,SAAS,CAAA;QACtB,CAAC;QACD,MAAM,EAAE,KAAK,IAA2B,EAAE,CAAC,CAAC;YAC1C,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EACL,uFAAuF;SAC1F,CAAC;KACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { Driver } from '../drivers/index.js';
2
+ import type { RateLimitConfig, RateLimitDriver, RateLimitDriverOptions } from './types.js';
3
+ /**
4
+ * Only what this driver calls, described structurally — the same reasoning as
5
+ * `@cogenta/core`'s cache driver: importing `@redis/client`'s own types would
6
+ * put an optional peer dependency in the published type declarations, and a
7
+ * site with no Redis must not need it installed just to typecheck.
8
+ */
9
+ interface RedisClientLike {
10
+ connect(): Promise<unknown>;
11
+ quit(): Promise<unknown>;
12
+ ping(): Promise<string>;
13
+ incr(key: string): Promise<number>;
14
+ pExpire(key: string, milliseconds: number): Promise<unknown>;
15
+ del(keys: string[]): Promise<number>;
16
+ }
17
+ interface RedisModuleLike {
18
+ createClient(options: {
19
+ url?: string;
20
+ }): RedisClientLike;
21
+ }
22
+ /**
23
+ * Loads the client if the host application installed it. Absent is a normal
24
+ * outcome, not an error: it is what makes the registry fall through to the
25
+ * memory driver, and what lets `pnpm install` stay dependency-free (R1).
26
+ *
27
+ * A second, independent loader from the cache driver's own `loadRedisModule`
28
+ * rather than a shared one: the two needs are unrelated infrastructure
29
+ * (`need: 'cache'` vs `need: 'rateLimit'`), and each keeps its own narrow
30
+ * structural type for exactly the methods it calls, instead of coupling
31
+ * through a shared "everything Redis" interface neither of them wants.
32
+ */
33
+ export declare function loadRateLimitRedisModule(): Promise<RedisModuleLike | null>;
34
+ export interface RedisRateLimitOptions extends RateLimitDriverOptions {
35
+ readonly client: RedisClientLike;
36
+ /** Namespace for every key this driver writes. A Redis instance is often shared. */
37
+ readonly prefix?: string;
38
+ }
39
+ /**
40
+ * A fixed-window counter kept in Redis, so every server process sharing that
41
+ * Redis enforces the *same* quota for a key — the property the in-process
42
+ * driver cannot offer.
43
+ *
44
+ * The window is the bucket's identity, not a value read back and compared:
45
+ * `key:{windowIndex}` names a fresh counter every `windowMs`, `INCR` creates
46
+ * and increments it atomically in one round trip, and `PEXPIRE` is set only
47
+ * once — on the call that creates the bucket — so Redis reclaims it on its
48
+ * own clock without this driver ever having to sweep for expired keys.
49
+ */
50
+ export declare function createRedisRateLimiter(options: RedisRateLimitOptions): RateLimitDriver;
51
+ export declare function redisRateLimitDriver(options?: RateLimitDriverOptions & {
52
+ prefix?: string;
53
+ }): Driver<RateLimitDriver, RateLimitConfig>;
54
+ export {};
55
+ //# sourceMappingURL=redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/rate-limit/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,qBAAqB,CAAA;AAE/D,OAAO,KAAK,EACV,eAAe,EAEf,eAAe,EACf,sBAAsB,EAEvB,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,UAAU,eAAe;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACxB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5D,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACrC;AAED,UAAU,eAAe;IACvB,YAAY,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,CAAA;CACzD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAMhF;AAED,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACnE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,qBAAqB,GAAG,eAAe,CAmCtF;AAED,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,sBAAsB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACzD,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CA4E1C"}
@@ -0,0 +1,134 @@
1
+ import { CogentaError } from '../errors/index.js';
2
+ /**
3
+ * Loads the client if the host application installed it. Absent is a normal
4
+ * outcome, not an error: it is what makes the registry fall through to the
5
+ * memory driver, and what lets `pnpm install` stay dependency-free (R1).
6
+ *
7
+ * A second, independent loader from the cache driver's own `loadRedisModule`
8
+ * rather than a shared one: the two needs are unrelated infrastructure
9
+ * (`need: 'cache'` vs `need: 'rateLimit'`), and each keeps its own narrow
10
+ * structural type for exactly the methods it calls, instead of coupling
11
+ * through a shared "everything Redis" interface neither of them wants.
12
+ */
13
+ export async function loadRateLimitRedisModule() {
14
+ try {
15
+ return (await import('@redis/client'));
16
+ }
17
+ catch {
18
+ return null;
19
+ }
20
+ }
21
+ /**
22
+ * A fixed-window counter kept in Redis, so every server process sharing that
23
+ * Redis enforces the *same* quota for a key — the property the in-process
24
+ * driver cannot offer.
25
+ *
26
+ * The window is the bucket's identity, not a value read back and compared:
27
+ * `key:{windowIndex}` names a fresh counter every `windowMs`, `INCR` creates
28
+ * and increments it atomically in one round trip, and `PEXPIRE` is set only
29
+ * once — on the call that creates the bucket — so Redis reclaims it on its
30
+ * own clock without this driver ever having to sweep for expired keys.
31
+ */
32
+ export function createRedisRateLimiter(options) {
33
+ const now = options.now ?? Date.now;
34
+ const prefix = options.prefix ?? 'cogenta:ratelimit:';
35
+ const { client } = options;
36
+ return {
37
+ consume: async (key, { limit, windowMs }) => {
38
+ const windowIndex = Math.floor(now() / windowMs);
39
+ const bucketKey = `${prefix}${key}:${windowIndex}`;
40
+ const resetAt = (windowIndex + 1) * windowMs;
41
+ const count = await client.incr(bucketKey);
42
+ if (count === 1) {
43
+ // First hit in this window: set the bucket to expire with the window,
44
+ // rather than lingering in memory forever once the site stops
45
+ // calling it.
46
+ await client.pExpire(bucketKey, windowMs);
47
+ }
48
+ return {
49
+ allowed: count <= limit,
50
+ limit,
51
+ remaining: Math.max(0, limit - count),
52
+ resetAt,
53
+ };
54
+ },
55
+ reset: async (key, windowMs) => {
56
+ const windowIndex = Math.floor(now() / windowMs);
57
+ await client.del([`${prefix}${key}:${windowIndex}`]);
58
+ },
59
+ };
60
+ }
61
+ export function redisRateLimitDriver(options = {}) {
62
+ let client;
63
+ async function open(config) {
64
+ const module = await loadRateLimitRedisModule();
65
+ if (module === null) {
66
+ throw new CogentaError({
67
+ code: 'DRIVER_INIT_FAILED',
68
+ message: 'The Redis rate limit driver needs the "@redis/client" package.',
69
+ hint: 'Run `pnpm add @redis/client`, or leave rateLimit.driver unset to use the in-process counter.',
70
+ });
71
+ }
72
+ const created = module.createClient(config.url === undefined ? {} : { url: config.url });
73
+ await created.connect();
74
+ return created;
75
+ }
76
+ return {
77
+ name: 'redis',
78
+ tier: 'optimal',
79
+ // Does Redis actually answer? Not "is a URL configured?" — the difference
80
+ // is what turns a graceful fallback into a startup crash.
81
+ available: async (config) => {
82
+ if (config.url === undefined)
83
+ return false;
84
+ try {
85
+ const probe = await open(config);
86
+ await probe.ping();
87
+ await probe.quit();
88
+ return true;
89
+ }
90
+ catch {
91
+ return false;
92
+ }
93
+ },
94
+ init: async (config) => {
95
+ client ??= await open(config);
96
+ return createRedisRateLimiter({ ...options, client });
97
+ },
98
+ dispose: async () => {
99
+ try {
100
+ await client?.quit();
101
+ }
102
+ catch {
103
+ // Shutdown must not fail because the connection already dropped.
104
+ }
105
+ client = undefined;
106
+ },
107
+ health: async () => {
108
+ if (client === undefined) {
109
+ return { status: 'down', driver: 'redis', tier: 'optimal', message: 'Not connected.' };
110
+ }
111
+ const startedAt = Date.now();
112
+ try {
113
+ await client.ping();
114
+ return {
115
+ status: 'ok',
116
+ driver: 'redis',
117
+ tier: 'optimal',
118
+ latencyMs: Date.now() - startedAt,
119
+ // The URL is not reported: it routinely carries a password.
120
+ message: 'Connected.',
121
+ };
122
+ }
123
+ catch (error) {
124
+ return {
125
+ status: 'down',
126
+ driver: 'redis',
127
+ tier: 'optimal',
128
+ message: error instanceof Error ? error.message : 'Redis did not answer.',
129
+ };
130
+ }
131
+ },
132
+ };
133
+ }
134
+ //# sourceMappingURL=redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/rate-limit/redis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * A per-key request quota (fiche 20, task 3: "Limitation de débit par clé").
3
+ *
4
+ * Drawn from the driver with the least — a single Node process, no external
5
+ * service — the same way `CacheDriver` was: a fixed window counter needs
6
+ * nothing but an atomic increment and an expiry, and that is exactly what
7
+ * both an in-process `Map` and Redis's `INCR`/`PEXPIRE` give for free. A
8
+ * sliding-window or token-bucket algorithm would read nicer but cannot be
9
+ * expressed in one round trip against Redis without a Lua script — a
10
+ * dependency this driver does not need to take (rule R9).
11
+ */
12
+ export interface RateLimitConsumeOptions {
13
+ /** Maximum requests allowed inside one window. */
14
+ readonly limit: number;
15
+ /** Window length, in milliseconds. */
16
+ readonly windowMs: number;
17
+ }
18
+ export interface RateLimitResult {
19
+ /** `count <= limit` for this call. */
20
+ readonly allowed: boolean;
21
+ readonly limit: number;
22
+ /** `max(0, limit - count)`, after this call was counted. */
23
+ readonly remaining: number;
24
+ /** Unix milliseconds when the current window ends and the count resets. */
25
+ readonly resetAt: number;
26
+ }
27
+ /**
28
+ * A counter, keyed by an arbitrary string, that answers "has this key stayed
29
+ * under its quota during the current window?" — nothing else. It is
30
+ * deliberately not a cache: there is no `get` that returns a stored value,
31
+ * only `consume`, which always counts the call it is answering for.
32
+ */
33
+ export interface RateLimitDriver {
34
+ consume(key: string, options: RateLimitConsumeOptions): Promise<RateLimitResult>;
35
+ /**
36
+ * Clears one key's counter for the window it would currently be counted
37
+ * in — a revoked or rotated credential should not inherit a stale count.
38
+ * `windowMs` must match the value `consume` is called with for this key,
39
+ * since it is part of how a windowed driver (Redis) names the bucket.
40
+ */
41
+ reset(key: string, windowMs: number): Promise<void>;
42
+ }
43
+ /** The resolved `rateLimit` section of the configuration. */
44
+ export interface RateLimitConfig {
45
+ readonly driver?: string;
46
+ readonly url?: string | undefined;
47
+ }
48
+ export interface RateLimitDriverOptions {
49
+ /** Injected so tests can move the window without waiting. Milliseconds. */
50
+ readonly now?: () => number;
51
+ }
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rate-limit/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,uBAAuB;IACtC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAChF;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/rate-limit/types.ts"],"names":[],"mappings":""}