@tstdl/base 0.93.139 → 0.93.141

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 (218) hide show
  1. package/README.md +166 -0
  2. package/ai/genkit/multi-region.plugin.js +5 -3
  3. package/ai/genkit/tests/multi-region.test.d.ts +1 -0
  4. package/ai/genkit/tests/multi-region.test.js +5 -2
  5. package/ai/parser/parser.js +2 -2
  6. package/ai/prompts/build.js +1 -0
  7. package/ai/prompts/instructions-formatter.d.ts +15 -2
  8. package/ai/prompts/instructions-formatter.js +36 -31
  9. package/ai/prompts/prompt-builder.js +5 -5
  10. package/ai/prompts/steering.d.ts +3 -2
  11. package/ai/prompts/steering.js +3 -1
  12. package/ai/tests/instructions-formatter.test.js +1 -0
  13. package/api/README.md +403 -0
  14. package/api/client/client.js +7 -13
  15. package/api/client/tests/api-client.test.js +10 -10
  16. package/api/default-error-handlers.js +1 -1
  17. package/api/response.d.ts +2 -2
  18. package/api/response.js +22 -33
  19. package/api/server/api-controller.d.ts +1 -1
  20. package/api/server/api-controller.js +3 -3
  21. package/api/server/api-request-token.provider.d.ts +1 -0
  22. package/api/server/api-request-token.provider.js +1 -0
  23. package/api/server/middlewares/allowed-methods.middleware.js +2 -1
  24. package/api/server/middlewares/content-type.middleware.js +2 -1
  25. package/api/types.d.ts +3 -2
  26. package/application/README.md +240 -0
  27. package/application/application.d.ts +1 -1
  28. package/application/application.js +3 -3
  29. package/application/providers.d.ts +20 -2
  30. package/application/providers.js +34 -7
  31. package/audit/README.md +267 -0
  32. package/audit/module.d.ts +5 -0
  33. package/audit/module.js +9 -1
  34. package/authentication/README.md +288 -0
  35. package/authentication/client/authentication.service.d.ts +12 -11
  36. package/authentication/client/authentication.service.js +21 -21
  37. package/authentication/client/http-client.middleware.js +2 -2
  38. package/authentication/server/module.d.ts +5 -0
  39. package/authentication/server/module.js +9 -1
  40. package/authentication/tests/authentication.api-controller.test.js +1 -1
  41. package/authentication/tests/authentication.api-request-token.provider.test.js +1 -1
  42. package/authentication/tests/authentication.client-error-handling.test.js +2 -1
  43. package/authentication/tests/authentication.client-service-refresh.test.js +5 -3
  44. package/authentication/tests/authentication.client-service.test.js +1 -1
  45. package/browser/README.md +401 -0
  46. package/cancellation/README.md +156 -0
  47. package/cancellation/tests/coverage.test.d.ts +1 -0
  48. package/cancellation/tests/coverage.test.js +49 -0
  49. package/cancellation/tests/leak.test.js +24 -29
  50. package/cancellation/tests/token.test.d.ts +1 -0
  51. package/cancellation/tests/token.test.js +136 -0
  52. package/cancellation/token.d.ts +53 -177
  53. package/cancellation/token.js +132 -208
  54. package/circuit-breaker/postgres/module.d.ts +1 -0
  55. package/circuit-breaker/postgres/module.js +5 -1
  56. package/context/README.md +174 -0
  57. package/cookie/README.md +161 -0
  58. package/css/README.md +157 -0
  59. package/data-structures/README.md +320 -0
  60. package/decorators/README.md +140 -0
  61. package/distributed-loop/README.md +231 -0
  62. package/distributed-loop/distributed-loop.js +1 -1
  63. package/document-management/README.md +403 -0
  64. package/document-management/server/configure.js +5 -1
  65. package/document-management/server/module.d.ts +1 -1
  66. package/document-management/server/module.js +1 -1
  67. package/document-management/server/services/document-management-ancillary.service.js +1 -1
  68. package/document-management/server/services/document-management.service.js +9 -7
  69. package/document-management/tests/ai-config-hierarchy.test.js +0 -5
  70. package/document-management/tests/document-management-ai-overrides.test.js +0 -1
  71. package/document-management/tests/document-management-core.test.js +2 -7
  72. package/document-management/tests/document-management.api.test.js +6 -7
  73. package/document-management/tests/document-statistics.service.test.js +11 -12
  74. package/document-management/tests/document-validation-ai-overrides.test.js +0 -1
  75. package/document-management/tests/document.service.test.js +3 -3
  76. package/document-management/tests/enum-helpers.test.js +2 -3
  77. package/dom/README.md +213 -0
  78. package/enumerable/README.md +259 -0
  79. package/enumeration/README.md +121 -0
  80. package/errors/README.md +267 -0
  81. package/examples/document-management/main.d.ts +1 -0
  82. package/examples/document-management/main.js +14 -11
  83. package/file/README.md +191 -0
  84. package/formats/README.md +210 -0
  85. package/function/README.md +144 -0
  86. package/http/README.md +318 -0
  87. package/http/client/adapters/undici.adapter.js +1 -1
  88. package/http/client/http-client-request.d.ts +6 -5
  89. package/http/client/http-client-request.js +8 -9
  90. package/http/server/node/node-http-server.js +1 -2
  91. package/image-service/README.md +137 -0
  92. package/injector/README.md +491 -0
  93. package/intl/README.md +113 -0
  94. package/json-path/README.md +182 -0
  95. package/jsx/README.md +154 -0
  96. package/key-value-store/README.md +191 -0
  97. package/key-value-store/postgres/module.d.ts +1 -0
  98. package/key-value-store/postgres/module.js +5 -1
  99. package/lock/README.md +249 -0
  100. package/lock/postgres/module.d.ts +1 -0
  101. package/lock/postgres/module.js +5 -1
  102. package/lock/web/web-lock.js +119 -47
  103. package/logger/README.md +287 -0
  104. package/mail/README.md +256 -0
  105. package/mail/module.d.ts +5 -1
  106. package/mail/module.js +11 -6
  107. package/memory/README.md +144 -0
  108. package/message-bus/README.md +244 -0
  109. package/message-bus/message-bus-base.js +1 -1
  110. package/module/README.md +182 -0
  111. package/module/module.d.ts +1 -1
  112. package/module/module.js +77 -17
  113. package/module/modules/web-server.module.js +3 -4
  114. package/notification/server/module.d.ts +1 -0
  115. package/notification/server/module.js +5 -1
  116. package/notification/tests/notification-flow.test.js +2 -2
  117. package/notification/tests/notification-type.service.test.js +24 -15
  118. package/object-storage/README.md +300 -0
  119. package/openid-connect/README.md +274 -0
  120. package/orm/README.md +423 -0
  121. package/orm/decorators.d.ts +5 -1
  122. package/orm/decorators.js +1 -1
  123. package/orm/server/drizzle/schema-converter.js +17 -30
  124. package/orm/server/encryption.d.ts +0 -1
  125. package/orm/server/encryption.js +1 -4
  126. package/orm/server/index.d.ts +1 -6
  127. package/orm/server/index.js +1 -6
  128. package/orm/server/migration.d.ts +19 -0
  129. package/orm/server/migration.js +72 -0
  130. package/orm/server/repository.d.ts +1 -1
  131. package/orm/server/transaction.d.ts +5 -10
  132. package/orm/server/transaction.js +22 -26
  133. package/orm/server/transactional.js +3 -3
  134. package/orm/tests/database-migration.test.d.ts +1 -0
  135. package/orm/tests/database-migration.test.js +82 -0
  136. package/orm/tests/encryption.test.js +3 -4
  137. package/orm/utils.d.ts +17 -2
  138. package/orm/utils.js +49 -1
  139. package/package.json +9 -6
  140. package/password/README.md +164 -0
  141. package/pdf/README.md +246 -0
  142. package/polyfills.js +1 -0
  143. package/pool/README.md +198 -0
  144. package/process/README.md +237 -0
  145. package/promise/README.md +252 -0
  146. package/promise/cancelable-promise.js +1 -1
  147. package/random/README.md +193 -0
  148. package/rate-limit/postgres/module.d.ts +1 -0
  149. package/rate-limit/postgres/module.js +5 -1
  150. package/reflection/README.md +305 -0
  151. package/reflection/decorator-data.js +11 -12
  152. package/rpc/README.md +386 -0
  153. package/rxjs-utils/README.md +262 -0
  154. package/schema/README.md +342 -0
  155. package/serializer/README.md +342 -0
  156. package/signals/implementation/README.md +134 -0
  157. package/sse/README.md +278 -0
  158. package/task-queue/README.md +293 -0
  159. package/task-queue/postgres/drizzle/{0000_simple_invisible_woman.sql → 0000_wakeful_sunspot.sql} +22 -14
  160. package/task-queue/postgres/drizzle/meta/0000_snapshot.json +160 -82
  161. package/task-queue/postgres/drizzle/meta/_journal.json +2 -2
  162. package/task-queue/postgres/module.d.ts +1 -0
  163. package/task-queue/postgres/module.js +5 -1
  164. package/task-queue/postgres/schemas.d.ts +9 -6
  165. package/task-queue/postgres/schemas.js +4 -3
  166. package/task-queue/postgres/task-queue.d.ts +4 -13
  167. package/task-queue/postgres/task-queue.js +462 -355
  168. package/task-queue/postgres/task.model.d.ts +12 -5
  169. package/task-queue/postgres/task.model.js +51 -25
  170. package/task-queue/task-context.d.ts +2 -2
  171. package/task-queue/task-context.js +8 -8
  172. package/task-queue/task-queue.d.ts +53 -19
  173. package/task-queue/task-queue.js +121 -55
  174. package/task-queue/tests/cascading-cancellations.test.d.ts +1 -0
  175. package/task-queue/tests/cascading-cancellations.test.js +38 -0
  176. package/task-queue/tests/complex.test.js +45 -229
  177. package/task-queue/tests/coverage-branch.test.d.ts +1 -0
  178. package/task-queue/tests/coverage-branch.test.js +407 -0
  179. package/task-queue/tests/coverage-enhancement.test.d.ts +1 -0
  180. package/task-queue/tests/coverage-enhancement.test.js +144 -0
  181. package/task-queue/tests/dag-dependencies.test.d.ts +1 -0
  182. package/task-queue/tests/dag-dependencies.test.js +41 -0
  183. package/task-queue/tests/dependencies.test.js +28 -26
  184. package/task-queue/tests/extensive-dependencies.test.js +64 -139
  185. package/task-queue/tests/fan-out-spawning.test.d.ts +1 -0
  186. package/task-queue/tests/fan-out-spawning.test.js +53 -0
  187. package/task-queue/tests/idempotent-replacement.test.d.ts +1 -0
  188. package/task-queue/tests/idempotent-replacement.test.js +61 -0
  189. package/task-queue/tests/missing-idempotent-tasks.test.d.ts +1 -0
  190. package/task-queue/tests/missing-idempotent-tasks.test.js +38 -0
  191. package/task-queue/tests/queue.test.js +128 -8
  192. package/task-queue/tests/worker.test.js +39 -16
  193. package/task-queue/tests/zombie-parent.test.d.ts +1 -0
  194. package/task-queue/tests/zombie-parent.test.js +45 -0
  195. package/task-queue/tests/zombie-recovery.test.d.ts +1 -0
  196. package/task-queue/tests/zombie-recovery.test.js +51 -0
  197. package/templates/README.md +287 -0
  198. package/test5.js +5 -5
  199. package/testing/README.md +157 -0
  200. package/testing/integration-setup.d.ts +4 -4
  201. package/testing/integration-setup.js +54 -29
  202. package/text/README.md +346 -0
  203. package/text/localization.service.js +2 -2
  204. package/threading/README.md +238 -0
  205. package/types/README.md +311 -0
  206. package/utils/README.md +322 -0
  207. package/utils/async-iterable-helpers/observable-iterable.d.ts +1 -1
  208. package/utils/async-iterable-helpers/observable-iterable.js +4 -8
  209. package/utils/async-iterable-helpers/take-until.js +4 -4
  210. package/utils/backoff.js +89 -30
  211. package/utils/file-reader.js +1 -2
  212. package/utils/retry-with-backoff.js +1 -1
  213. package/utils/timer.d.ts +1 -1
  214. package/utils/timer.js +5 -7
  215. package/utils/timing.d.ts +1 -1
  216. package/utils/timing.js +2 -4
  217. package/utils/z-base32.d.ts +1 -0
  218. package/utils/z-base32.js +1 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "id": "4a091e17-ecca-4dcc-9681-ee533ba465a9",
2
+ "id": "748b4480-a37e-43bb-a9fc-6920c03c3ed3",
3
3
  "prevId": "00000000-0000-0000-0000-000000000000",
4
4
  "version": "7",
5
5
  "dialect": "postgresql",
@@ -52,40 +52,26 @@
52
52
  "primaryKey": false,
53
53
  "notNull": true
54
54
  },
55
- "complete_after_tags": {
56
- "name": "complete_after_tags",
57
- "type": "text[]",
58
- "primaryKey": false,
59
- "notNull": true
60
- },
61
- "schedule_after_tags": {
62
- "name": "schedule_after_tags",
63
- "type": "text[]",
64
- "primaryKey": false,
65
- "notNull": true
66
- },
67
55
  "fail_fast": {
68
56
  "name": "fail_fast",
69
57
  "type": "boolean",
70
58
  "primaryKey": false,
71
59
  "notNull": true
72
60
  },
73
- "dependency_join_mode": {
74
- "name": "dependency_join_mode",
75
- "type": "dependency_join_mode",
76
- "typeSchema": "task_queue",
61
+ "priority": {
62
+ "name": "priority",
63
+ "type": "integer",
77
64
  "primaryKey": false,
78
65
  "notNull": true
79
66
  },
80
- "dependency_trigger_statuses": {
81
- "name": "dependency_trigger_statuses",
82
- "type": "task_status[]",
83
- "typeSchema": "task_queue",
67
+ "unresolved_schedule_dependencies": {
68
+ "name": "unresolved_schedule_dependencies",
69
+ "type": "integer",
84
70
  "primaryKey": false,
85
71
  "notNull": true
86
72
  },
87
- "priority": {
88
- "name": "priority",
73
+ "unresolved_complete_dependencies": {
74
+ "name": "unresolved_complete_dependencies",
89
75
  "type": "integer",
90
76
  "primaryKey": false,
91
77
  "notNull": true
@@ -239,36 +225,6 @@
239
225
  "method": "btree",
240
226
  "with": {}
241
227
  },
242
- "task_schedule_after_tags_idx": {
243
- "name": "task_schedule_after_tags_idx",
244
- "columns": [
245
- {
246
- "expression": "schedule_after_tags",
247
- "isExpression": false,
248
- "asc": true,
249
- "nulls": "last"
250
- }
251
- ],
252
- "isUnique": false,
253
- "concurrently": false,
254
- "method": "gin",
255
- "with": {}
256
- },
257
- "task_complete_after_tags_idx": {
258
- "name": "task_complete_after_tags_idx",
259
- "columns": [
260
- {
261
- "expression": "complete_after_tags",
262
- "isExpression": false,
263
- "asc": true,
264
- "nulls": "last"
265
- }
266
- ],
267
- "isUnique": false,
268
- "concurrently": false,
269
- "method": "gin",
270
- "with": {}
271
- },
272
228
  "task_tags_idx": {
273
229
  "name": "task_tags_idx",
274
230
  "columns": [
@@ -319,15 +275,17 @@
319
275
  }
320
276
  },
321
277
  "foreignKeys": {
322
- "task_parent_id_task_id_fk": {
323
- "name": "task_parent_id_task_id_fk",
278
+ "task_namespace_parentId_task_fkey": {
279
+ "name": "task_namespace_parentId_task_fkey",
324
280
  "tableFrom": "task",
325
281
  "tableTo": "task",
326
282
  "schemaTo": "task_queue",
327
283
  "columnsFrom": [
284
+ "namespace",
328
285
  "parent_id"
329
286
  ],
330
287
  "columnsTo": [
288
+ "namespace",
331
289
  "id"
332
290
  ],
333
291
  "onDelete": "no action",
@@ -336,6 +294,14 @@
336
294
  },
337
295
  "compositePrimaryKeys": {},
338
296
  "uniqueConstraints": {
297
+ "task_namespace_id_unique": {
298
+ "name": "task_namespace_id_unique",
299
+ "nullsNotDistinct": false,
300
+ "columns": [
301
+ "namespace",
302
+ "id"
303
+ ]
304
+ },
339
305
  "task_namespace_idempotency_key_unique": {
340
306
  "name": "task_namespace_idempotency_key_unique",
341
307
  "nullsNotDistinct": false,
@@ -397,40 +363,26 @@
397
363
  "primaryKey": false,
398
364
  "notNull": true
399
365
  },
400
- "complete_after_tags": {
401
- "name": "complete_after_tags",
402
- "type": "text[]",
403
- "primaryKey": false,
404
- "notNull": true
405
- },
406
- "schedule_after_tags": {
407
- "name": "schedule_after_tags",
408
- "type": "text[]",
409
- "primaryKey": false,
410
- "notNull": true
411
- },
412
366
  "fail_fast": {
413
367
  "name": "fail_fast",
414
368
  "type": "boolean",
415
369
  "primaryKey": false,
416
370
  "notNull": true
417
371
  },
418
- "dependency_join_mode": {
419
- "name": "dependency_join_mode",
420
- "type": "dependency_join_mode",
421
- "typeSchema": "task_queue",
372
+ "priority": {
373
+ "name": "priority",
374
+ "type": "integer",
422
375
  "primaryKey": false,
423
376
  "notNull": true
424
377
  },
425
- "dependency_trigger_statuses": {
426
- "name": "dependency_trigger_statuses",
427
- "type": "task_status[]",
428
- "typeSchema": "task_queue",
378
+ "unresolved_schedule_dependencies": {
379
+ "name": "unresolved_schedule_dependencies",
380
+ "type": "integer",
429
381
  "primaryKey": false,
430
382
  "notNull": true
431
383
  },
432
- "priority": {
433
- "name": "priority",
384
+ "unresolved_complete_dependencies": {
385
+ "name": "unresolved_complete_dependencies",
434
386
  "type": "integer",
435
387
  "primaryKey": false,
436
388
  "notNull": true
@@ -555,15 +507,139 @@
555
507
  "policies": {},
556
508
  "checkConstraints": {},
557
509
  "isRLSEnabled": false
510
+ },
511
+ "task_queue.task_dependency": {
512
+ "name": "task_dependency",
513
+ "schema": "task_queue",
514
+ "columns": {
515
+ "id": {
516
+ "name": "id",
517
+ "type": "uuid",
518
+ "primaryKey": true,
519
+ "notNull": true,
520
+ "default": "gen_random_uuid()"
521
+ },
522
+ "namespace": {
523
+ "name": "namespace",
524
+ "type": "text",
525
+ "primaryKey": false,
526
+ "notNull": true
527
+ },
528
+ "task_id": {
529
+ "name": "task_id",
530
+ "type": "uuid",
531
+ "primaryKey": false,
532
+ "notNull": true
533
+ },
534
+ "dependency_task_id": {
535
+ "name": "dependency_task_id",
536
+ "type": "uuid",
537
+ "primaryKey": false,
538
+ "notNull": true
539
+ },
540
+ "type": {
541
+ "name": "type",
542
+ "type": "task_dependency_type",
543
+ "typeSchema": "task_queue",
544
+ "primaryKey": false,
545
+ "notNull": true
546
+ },
547
+ "required_statuses": {
548
+ "name": "required_statuses",
549
+ "type": "task_status[]",
550
+ "typeSchema": "task_queue",
551
+ "primaryKey": false,
552
+ "notNull": true
553
+ }
554
+ },
555
+ "indexes": {
556
+ "task_dependency_namespace_dependency_task_id_type_idx": {
557
+ "name": "task_dependency_namespace_dependency_task_id_type_idx",
558
+ "columns": [
559
+ {
560
+ "expression": "namespace",
561
+ "isExpression": false,
562
+ "asc": true,
563
+ "nulls": "last"
564
+ },
565
+ {
566
+ "expression": "dependency_task_id",
567
+ "isExpression": false,
568
+ "asc": true,
569
+ "nulls": "last"
570
+ },
571
+ {
572
+ "expression": "type",
573
+ "isExpression": false,
574
+ "asc": true,
575
+ "nulls": "last"
576
+ }
577
+ ],
578
+ "isUnique": false,
579
+ "concurrently": false,
580
+ "method": "btree",
581
+ "with": {}
582
+ }
583
+ },
584
+ "foreignKeys": {
585
+ "task_dependency_namespace_dependencyTaskId_task_fkey": {
586
+ "name": "task_dependency_namespace_dependencyTaskId_task_fkey",
587
+ "tableFrom": "task_dependency",
588
+ "tableTo": "task",
589
+ "schemaTo": "task_queue",
590
+ "columnsFrom": [
591
+ "namespace",
592
+ "dependency_task_id"
593
+ ],
594
+ "columnsTo": [
595
+ "namespace",
596
+ "id"
597
+ ],
598
+ "onDelete": "cascade",
599
+ "onUpdate": "no action"
600
+ },
601
+ "task_dependency_namespace_taskId_task_fkey": {
602
+ "name": "task_dependency_namespace_taskId_task_fkey",
603
+ "tableFrom": "task_dependency",
604
+ "tableTo": "task",
605
+ "schemaTo": "task_queue",
606
+ "columnsFrom": [
607
+ "namespace",
608
+ "task_id"
609
+ ],
610
+ "columnsTo": [
611
+ "namespace",
612
+ "id"
613
+ ],
614
+ "onDelete": "cascade",
615
+ "onUpdate": "no action"
616
+ }
617
+ },
618
+ "compositePrimaryKeys": {},
619
+ "uniqueConstraints": {
620
+ "td_namespace_task_id_dependency_task_id_type_unique": {
621
+ "name": "td_namespace_task_id_dependency_task_id_type_unique",
622
+ "nullsNotDistinct": false,
623
+ "columns": [
624
+ "namespace",
625
+ "task_id",
626
+ "dependency_task_id",
627
+ "type"
628
+ ]
629
+ }
630
+ },
631
+ "policies": {},
632
+ "checkConstraints": {},
633
+ "isRLSEnabled": false
558
634
  }
559
635
  },
560
636
  "enums": {
561
- "task_queue.dependency_join_mode": {
562
- "name": "dependency_join_mode",
637
+ "task_queue.task_dependency_type": {
638
+ "name": "task_dependency_type",
563
639
  "schema": "task_queue",
564
640
  "values": [
565
- "and",
566
- "or"
641
+ "schedule",
642
+ "complete"
567
643
  ]
568
644
  },
569
645
  "task_queue.task_status": {
@@ -574,8 +650,10 @@
574
650
  "running",
575
651
  "completed",
576
652
  "cancelled",
653
+ "dead",
577
654
  "waiting",
578
- "dead"
655
+ "waiting-children",
656
+ "paused"
579
657
  ]
580
658
  }
581
659
  },
@@ -5,8 +5,8 @@
5
5
  {
6
6
  "idx": 0,
7
7
  "version": "7",
8
- "when": 1769034172474,
9
- "tag": "0000_simple_invisible_woman",
8
+ "when": 1771949216507,
9
+ "tag": "0000_wakeful_sunspot",
10
10
  "breakpoints": true
11
11
  }
12
12
  ]
@@ -2,6 +2,7 @@ import { Injector } from '../../injector/injector.js';
2
2
  import { type DatabaseConfig } from '../../orm/server/index.js';
3
3
  export declare class PostgresTaskQueueModuleConfig {
4
4
  database?: DatabaseConfig;
5
+ autoMigrate?: boolean;
5
6
  }
6
7
  /**
7
8
  * configure queue module
@@ -1,12 +1,13 @@
1
1
  import { inject } from '../../injector/index.js';
2
2
  import { Injector } from '../../injector/injector.js';
3
- import { Database, migrate } from '../../orm/server/index.js';
3
+ import { Database, migrate, registerDatabaseMigration } from '../../orm/server/index.js';
4
4
  import { TaskQueueProvider } from '../provider.js';
5
5
  import { TaskQueue } from '../task-queue.js';
6
6
  import { PostgresTaskQueue } from './task-queue.js';
7
7
  import { PostgresTaskQueueProvider } from './task-queue.provider.js';
8
8
  export class PostgresTaskQueueModuleConfig {
9
9
  database;
10
+ autoMigrate;
10
11
  }
11
12
  /**
12
13
  * configure queue module
@@ -16,6 +17,9 @@ export function configurePostgresTaskQueue({ injector, ...config } = {}) {
16
17
  targetInjector.register(PostgresTaskQueueModuleConfig, { useValue: config });
17
18
  targetInjector.registerSingleton(TaskQueueProvider, { useToken: PostgresTaskQueueProvider });
18
19
  targetInjector.registerSingleton(TaskQueue, { useToken: PostgresTaskQueue });
20
+ if (config.autoMigrate != false) {
21
+ registerDatabaseMigration('PostgresTaskQueue', migratePostgresTaskQueueSchema, { injector });
22
+ }
19
23
  }
20
24
  export async function migratePostgresTaskQueueSchema() {
21
25
  const connection = inject(PostgresTaskQueueModuleConfig, undefined, { optional: true })?.database?.connection;
@@ -1,16 +1,19 @@
1
- import { PostgresTask, PostgresTaskArchive } from './task.model.js';
1
+ import { PostgresTask, PostgresTaskArchive, PostgresTaskDependency } from './task.model.js';
2
2
  export declare const taskQueueSchema: import("../../orm/server/index.js").DatabaseSchema<"task_queue">;
3
+ export declare const taskDependencyType: import("../../orm/enums.js").PgEnumFromEnumeration<{
4
+ readonly Schedule: "schedule";
5
+ readonly Complete: "complete";
6
+ }>;
3
7
  export declare const taskStatus: import("../../orm/enums.js").PgEnumFromEnumeration<{
4
8
  readonly Pending: "pending";
5
9
  readonly Running: "running";
6
10
  readonly Completed: "completed";
7
11
  readonly Cancelled: "cancelled";
8
- readonly Waiting: "waiting";
9
12
  readonly Dead: "dead";
10
- }>;
11
- export declare const dependencyJoinMode: import("../../orm/enums.js").PgEnumFromEnumeration<{
12
- readonly And: "and";
13
- readonly Or: "or";
13
+ readonly Waiting: "waiting";
14
+ readonly WaitingChildren: "waiting-children";
15
+ readonly Paused: "paused";
14
16
  }>;
15
17
  export declare const task: import("../../orm/server/types.js").PgTableFromType<typeof PostgresTask, "task_queue">;
16
18
  export declare const taskArchive: import("../../orm/server/types.js").PgTableFromType<typeof PostgresTaskArchive, "task_queue">;
19
+ export declare const taskDependency: import("../../orm/server/types.js").PgTableFromType<typeof PostgresTaskDependency, "task_queue">;
@@ -1,8 +1,9 @@
1
1
  import { databaseSchema } from '../../orm/server/index.js';
2
- import { DependencyJoinMode, TaskStatus } from '../task-queue.js';
3
- import { PostgresTask, PostgresTaskArchive } from './task.model.js';
2
+ import { TaskDependencyType, TaskStatus } from '../task-queue.js';
3
+ import { PostgresTask, PostgresTaskArchive, PostgresTaskDependency } from './task.model.js';
4
4
  export const taskQueueSchema = databaseSchema('task_queue');
5
+ export const taskDependencyType = taskQueueSchema.getEnum(TaskDependencyType);
5
6
  export const taskStatus = taskQueueSchema.getEnum(TaskStatus);
6
- export const dependencyJoinMode = taskQueueSchema.getEnum(DependencyJoinMode);
7
7
  export const task = taskQueueSchema.getTable(PostgresTask);
8
8
  export const taskArchive = taskQueueSchema.getTable(PostgresTaskArchive);
9
+ export const taskDependency = taskQueueSchema.getTable(PostgresTaskDependency);
@@ -3,7 +3,7 @@ import { afterResolve } from '../../injector/index.js';
3
3
  import type { Query } from '../../orm/index.js';
4
4
  import { type Transaction } from '../../orm/server/index.js';
5
5
  import type { OneOrMany } from '../../schema/index.js';
6
- import { TaskQueue, type EnqueueManyItem, type EnqueueManyOptions, type EnqueueOneOptions, type Task } from '../task-queue.js';
6
+ import { TaskQueue, type EnqueueManyItem, type EnqueueManyOptions, type EnqueueOneOptions, type Task, type TaskQueueWaitOptions, type TaskQueueWaitResult } from '../task-queue.js';
7
7
  import type { TaskData, TaskDefinitionMap, TaskOfType, TaskResult, TasksResults, TasksStates, TaskState, TaskTypes } from '../types.js';
8
8
  export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = TaskDefinitionMap> extends TaskQueue<Definitions> {
9
9
  #private;
@@ -49,6 +49,7 @@ export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = T
49
49
  getTreeByQuery(query: Query<Task>, options?: {
50
50
  transaction?: Transaction;
51
51
  }): Promise<Task[]>;
52
+ waitForTasks(ids: string[], options?: TaskQueueWaitOptions): Promise<TaskQueueWaitResult>;
52
53
  cancel(id: string, options?: {
53
54
  transaction?: Transaction;
54
55
  }): Promise<void>;
@@ -102,13 +103,12 @@ export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = T
102
103
  fatal?: boolean;
103
104
  transaction?: Transaction;
104
105
  }): Promise<void>;
105
- triggerTagFanIn(tags: string[], options?: {
106
- transaction?: Transaction;
107
- }): Promise<void>;
108
106
  failMany(tasks: Task<Definitions>[], errors: unknown[], options?: {
109
107
  transaction?: Transaction;
110
108
  }): Promise<void>;
111
109
  private resolveDependencies;
110
+ private evaluateTaskStatus;
111
+ private transitionTask;
112
112
  maintenance(options?: {
113
113
  transaction?: Transaction;
114
114
  }): Promise<void>;
@@ -122,15 +122,6 @@ export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = T
122
122
  types?: Type[];
123
123
  }): AsyncIterableIterator<TaskOfType<Definitions, Type>>;
124
124
  private maintenanceLoop;
125
- /**
126
- * @internal for internal unit test use only
127
- * @param options
128
- * @returns
129
- */
130
- processPendingFanIn(options?: {
131
- transaction?: Transaction;
132
- }): Promise<number>;
133
- private startSystemWorker;
134
125
  getBatchConsumer<Type extends TaskTypes<Definitions>>(size: number, cancellationSignal: CancellationSignal, options?: {
135
126
  forceDequeue?: boolean;
136
127
  types?: Type[];