@tstdl/base 0.93.140 → 0.93.142

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 (123) hide show
  1. package/application/application.d.ts +1 -1
  2. package/application/application.js +1 -1
  3. package/application/providers.d.ts +20 -2
  4. package/application/providers.js +34 -7
  5. package/audit/module.d.ts +5 -0
  6. package/audit/module.js +9 -1
  7. package/authentication/client/authentication.service.d.ts +1 -0
  8. package/authentication/client/authentication.service.js +3 -2
  9. package/authentication/server/module.d.ts +5 -0
  10. package/authentication/server/module.js +9 -1
  11. package/authentication/tests/authentication.api-controller.test.js +1 -1
  12. package/authentication/tests/authentication.api-request-token.provider.test.js +1 -1
  13. package/authentication/tests/authentication.client-service.test.js +1 -1
  14. package/circuit-breaker/circuit-breaker.d.ts +6 -4
  15. package/circuit-breaker/postgres/circuit-breaker.d.ts +1 -0
  16. package/circuit-breaker/postgres/circuit-breaker.js +8 -5
  17. package/circuit-breaker/postgres/module.d.ts +1 -0
  18. package/circuit-breaker/postgres/module.js +5 -1
  19. package/circuit-breaker/tests/circuit-breaker.test.js +20 -0
  20. package/document-management/server/configure.js +5 -1
  21. package/document-management/server/module.d.ts +1 -1
  22. package/document-management/server/module.js +1 -1
  23. package/document-management/server/services/document-management-ancillary.service.js +1 -1
  24. package/document-management/tests/ai-config-hierarchy.test.js +0 -5
  25. package/document-management/tests/document-management-ai-overrides.test.js +0 -1
  26. package/document-management/tests/document-validation-ai-overrides.test.js +0 -1
  27. package/examples/document-management/main.d.ts +1 -0
  28. package/examples/document-management/main.js +14 -11
  29. package/key-value-store/postgres/module.d.ts +1 -0
  30. package/key-value-store/postgres/module.js +5 -1
  31. package/lock/postgres/module.d.ts +1 -0
  32. package/lock/postgres/module.js +5 -1
  33. package/mail/module.d.ts +5 -1
  34. package/mail/module.js +11 -6
  35. package/module/modules/web-server.module.js +2 -3
  36. package/notification/server/module.d.ts +1 -0
  37. package/notification/server/module.js +5 -1
  38. package/notification/tests/notification-api.test.js +5 -1
  39. package/notification/tests/notification-flow.test.js +8 -5
  40. package/orm/decorators.d.ts +22 -5
  41. package/orm/decorators.js +10 -1
  42. package/orm/server/bootstrap.d.ts +11 -0
  43. package/orm/server/bootstrap.js +31 -0
  44. package/orm/server/drizzle/schema-converter.d.ts +3 -1
  45. package/orm/server/drizzle/schema-converter.js +85 -56
  46. package/orm/server/encryption.d.ts +0 -1
  47. package/orm/server/encryption.js +1 -4
  48. package/orm/server/extension.d.ts +14 -0
  49. package/orm/server/extension.js +27 -0
  50. package/orm/server/index.d.ts +3 -6
  51. package/orm/server/index.js +3 -6
  52. package/orm/server/migration.d.ts +18 -0
  53. package/orm/server/migration.js +58 -0
  54. package/orm/server/repository.d.ts +2 -1
  55. package/orm/server/repository.js +19 -9
  56. package/orm/server/transaction.d.ts +6 -10
  57. package/orm/server/transaction.js +25 -26
  58. package/orm/server/transactional.js +3 -3
  59. package/orm/tests/database-extension.test.js +63 -0
  60. package/orm/tests/database-migration.test.js +83 -0
  61. package/orm/tests/encryption.test.js +3 -4
  62. package/orm/tests/repository-compound-primary-key.test.d.ts +2 -0
  63. package/orm/tests/repository-compound-primary-key.test.js +234 -0
  64. package/orm/tests/schema-generation.test.d.ts +1 -0
  65. package/orm/tests/schema-generation.test.js +52 -5
  66. package/orm/utils.d.ts +17 -2
  67. package/orm/utils.js +49 -1
  68. package/package.json +5 -4
  69. package/rate-limit/postgres/module.d.ts +1 -0
  70. package/rate-limit/postgres/module.js +5 -1
  71. package/reflection/decorator-data.js +11 -12
  72. package/task-queue/README.md +2 -10
  73. package/task-queue/postgres/drizzle/0000_great_gwen_stacy.sql +84 -0
  74. package/task-queue/postgres/drizzle/meta/0000_snapshot.json +250 -89
  75. package/task-queue/postgres/drizzle/meta/_journal.json +2 -2
  76. package/task-queue/postgres/module.d.ts +1 -0
  77. package/task-queue/postgres/module.js +6 -1
  78. package/task-queue/postgres/schemas.d.ts +15 -6
  79. package/task-queue/postgres/schemas.js +4 -3
  80. package/task-queue/postgres/task-queue.d.ts +18 -15
  81. package/task-queue/postgres/task-queue.js +797 -499
  82. package/task-queue/postgres/task.model.d.ts +20 -9
  83. package/task-queue/postgres/task.model.js +65 -39
  84. package/task-queue/task-context.d.ts +12 -7
  85. package/task-queue/task-context.js +8 -6
  86. package/task-queue/task-queue.d.ts +364 -43
  87. package/task-queue/task-queue.js +153 -41
  88. package/task-queue/tests/coverage-branch.test.d.ts +1 -0
  89. package/task-queue/tests/coverage-branch.test.js +395 -0
  90. package/task-queue/tests/coverage-enhancement.test.d.ts +1 -0
  91. package/task-queue/tests/coverage-enhancement.test.js +150 -0
  92. package/task-queue/tests/dag.test.d.ts +1 -0
  93. package/task-queue/tests/dag.test.js +188 -0
  94. package/task-queue/tests/dependencies.test.js +165 -47
  95. package/task-queue/tests/enqueue-batch.test.d.ts +1 -0
  96. package/task-queue/tests/enqueue-batch.test.js +125 -0
  97. package/task-queue/tests/fan-out-spawning.test.d.ts +1 -0
  98. package/task-queue/tests/fan-out-spawning.test.js +94 -0
  99. package/task-queue/tests/idempotent-replacement.test.d.ts +1 -0
  100. package/task-queue/tests/idempotent-replacement.test.js +114 -0
  101. package/task-queue/tests/missing-idempotent-tasks.test.d.ts +1 -0
  102. package/task-queue/tests/missing-idempotent-tasks.test.js +39 -0
  103. package/task-queue/tests/queue.test.js +294 -49
  104. package/task-queue/tests/shutdown.test.d.ts +1 -0
  105. package/task-queue/tests/shutdown.test.js +41 -0
  106. package/task-queue/tests/transactions.test.d.ts +1 -0
  107. package/task-queue/tests/transactions.test.js +47 -0
  108. package/task-queue/tests/worker.test.js +63 -15
  109. package/task-queue/tests/zombie-parent.test.d.ts +1 -0
  110. package/task-queue/tests/zombie-parent.test.js +45 -0
  111. package/task-queue/tests/zombie-recovery.test.d.ts +1 -0
  112. package/task-queue/tests/zombie-recovery.test.js +51 -0
  113. package/test5.js +5 -5
  114. package/testing/integration-setup.d.ts +4 -4
  115. package/testing/integration-setup.js +56 -29
  116. package/text/localization.service.js +2 -2
  117. package/utils/file-reader.js +1 -2
  118. package/utils/timing.d.ts +2 -2
  119. package/task-queue/postgres/drizzle/0000_simple_invisible_woman.sql +0 -74
  120. package/task-queue/tests/complex.test.js +0 -306
  121. package/task-queue/tests/extensive-dependencies.test.js +0 -234
  122. /package/{task-queue/tests/complex.test.d.ts → orm/tests/database-extension.test.d.ts} +0 -0
  123. /package/{task-queue/tests/extensive-dependencies.test.d.ts → orm/tests/database-migration.test.d.ts} +0 -0
@@ -1,16 +1,25 @@
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
+ readonly Child: "child";
7
+ }>;
3
8
  export declare const taskStatus: import("../../orm/enums.js").PgEnumFromEnumeration<{
4
9
  readonly Pending: "pending";
5
10
  readonly Running: "running";
6
11
  readonly Completed: "completed";
7
12
  readonly Cancelled: "cancelled";
8
- readonly Waiting: "waiting";
9
13
  readonly Dead: "dead";
10
- }>;
11
- export declare const dependencyJoinMode: import("../../orm/enums.js").PgEnumFromEnumeration<{
12
- readonly And: "and";
13
- readonly Or: "or";
14
+ readonly Waiting: "waiting";
15
+ readonly WaitingChildren: "waiting-children";
16
+ readonly Paused: "paused";
17
+ readonly Retrying: "retrying";
18
+ readonly TimedOut: "timed-out";
19
+ readonly Expired: "expired";
20
+ readonly Skipped: "skipped";
21
+ readonly Orphaned: "orphaned";
14
22
  }>;
15
23
  export declare const task: import("../../orm/server/types.js").PgTableFromType<typeof PostgresTask, "task_queue">;
16
24
  export declare const taskArchive: import("../../orm/server/types.js").PgTableFromType<typeof PostgresTaskArchive, "task_queue">;
25
+ 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, type TaskQueueWaitOptions, type TaskQueueWaitResult } from '../task-queue.js';
6
+ import { TaskQueue, TaskStatus, 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;
@@ -21,7 +21,6 @@ export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = T
21
21
  readonly rateLimit: number;
22
22
  readonly rateInterval: number;
23
23
  readonly idempotencyWindow: number;
24
- readonly globalConcurrency: number | null;
25
24
  [afterResolve](): void;
26
25
  enqueue<Type extends TaskTypes<Definitions>>(type: Type, data: TaskData<Definitions, Type>, options?: EnqueueOneOptions): Promise<TaskOfType<Definitions, Type>>;
27
26
  enqueueMany<Type extends TaskTypes<Definitions>>(items: EnqueueManyItem<Definitions, Type>[], options?: EnqueueManyOptions & {
@@ -31,12 +30,17 @@ export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = T
31
30
  returnTasks: true;
32
31
  }): Promise<TaskOfType<Definitions, Type>[]>;
33
32
  enqueueMany<Type extends TaskTypes<Definitions>>(items: EnqueueManyItem<Definitions, Type>[], options?: EnqueueManyOptions): Promise<TaskOfType<Definitions, Type>[] | undefined>;
33
+ private incrementCounters;
34
34
  has(id: string, options?: {
35
35
  transaction?: Transaction;
36
36
  }): Promise<boolean>;
37
37
  countByTags(tags: OneOrMany<string>, options?: {
38
38
  transaction?: Transaction;
39
39
  }): Promise<number>;
40
+ count(options?: {
41
+ status?: TaskStatus;
42
+ transaction?: Transaction;
43
+ }): Promise<number>;
40
44
  getTask<Type extends TaskTypes<Definitions> = TaskTypes<Definitions>>(id: string, options?: {
41
45
  transaction?: Transaction;
42
46
  }): Promise<TaskOfType<Definitions, Type> | undefined>;
@@ -103,35 +107,34 @@ export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = T
103
107
  fatal?: boolean;
104
108
  transaction?: Transaction;
105
109
  }): Promise<void>;
106
- triggerTagFanIn(tags: string[], options?: {
107
- transaction?: Transaction;
108
- }): Promise<void>;
109
110
  failMany(tasks: Task<Definitions>[], errors: unknown[], options?: {
110
111
  transaction?: Transaction;
111
112
  }): Promise<void>;
112
113
  private resolveDependencies;
114
+ private resolveDependenciesMany;
113
115
  maintenance(options?: {
114
116
  transaction?: Transaction;
115
117
  }): Promise<void>;
118
+ private performArchival;
119
+ private performArchivePurge;
120
+ private processExpirations;
121
+ private processZombieRetries;
122
+ private processZombieExhaustions;
123
+ private processHardTimeouts;
124
+ private processPriorityAging;
116
125
  restart(id: string, options?: {
117
126
  resetState?: boolean;
118
127
  transaction?: Transaction;
119
128
  }): Promise<void>;
120
- notify(): void;
129
+ notify(namespace?: string): void;
121
130
  getConsumer<Type extends TaskTypes<Definitions>>(cancellationSignal: CancellationSignal, options?: {
122
131
  forceDequeue?: boolean;
123
132
  types?: Type[];
124
133
  }): AsyncIterableIterator<TaskOfType<Definitions, Type>>;
125
134
  private maintenanceLoop;
126
- /**
127
- * @internal for internal unit test use only
128
- * @param options
129
- * @returns
130
- */
131
- processPendingFanIn(options?: {
132
- transaction?: Transaction;
133
- }): Promise<number>;
134
- private startSystemWorker;
135
+ private lowFrequencyMaintenanceLoop;
136
+ private mediumFrequencyMaintenanceLoop;
137
+ private highFrequencyMaintenanceLoop;
135
138
  getBatchConsumer<Type extends TaskTypes<Definitions>>(size: number, cancellationSignal: CancellationSignal, options?: {
136
139
  forceDequeue?: boolean;
137
140
  types?: Type[];