@tstdl/base 0.93.140 → 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 (98) 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/server/module.d.ts +5 -0
  8. package/authentication/server/module.js +9 -1
  9. package/authentication/tests/authentication.api-controller.test.js +1 -1
  10. package/authentication/tests/authentication.api-request-token.provider.test.js +1 -1
  11. package/authentication/tests/authentication.client-service.test.js +1 -1
  12. package/circuit-breaker/postgres/module.d.ts +1 -0
  13. package/circuit-breaker/postgres/module.js +5 -1
  14. package/document-management/server/configure.js +5 -1
  15. package/document-management/server/module.d.ts +1 -1
  16. package/document-management/server/module.js +1 -1
  17. package/document-management/server/services/document-management-ancillary.service.js +1 -1
  18. package/document-management/tests/ai-config-hierarchy.test.js +0 -5
  19. package/document-management/tests/document-management-ai-overrides.test.js +0 -1
  20. package/document-management/tests/document-validation-ai-overrides.test.js +0 -1
  21. package/examples/document-management/main.d.ts +1 -0
  22. package/examples/document-management/main.js +14 -11
  23. package/key-value-store/postgres/module.d.ts +1 -0
  24. package/key-value-store/postgres/module.js +5 -1
  25. package/lock/postgres/module.d.ts +1 -0
  26. package/lock/postgres/module.js +5 -1
  27. package/mail/module.d.ts +5 -1
  28. package/mail/module.js +11 -6
  29. package/module/modules/web-server.module.js +2 -3
  30. package/notification/server/module.d.ts +1 -0
  31. package/notification/server/module.js +5 -1
  32. package/notification/tests/notification-flow.test.js +2 -2
  33. package/orm/decorators.d.ts +5 -1
  34. package/orm/decorators.js +1 -1
  35. package/orm/server/drizzle/schema-converter.js +17 -30
  36. package/orm/server/encryption.d.ts +0 -1
  37. package/orm/server/encryption.js +1 -4
  38. package/orm/server/index.d.ts +1 -6
  39. package/orm/server/index.js +1 -6
  40. package/orm/server/migration.d.ts +19 -0
  41. package/orm/server/migration.js +72 -0
  42. package/orm/server/repository.d.ts +1 -1
  43. package/orm/server/transaction.d.ts +5 -10
  44. package/orm/server/transaction.js +22 -26
  45. package/orm/server/transactional.js +3 -3
  46. package/orm/tests/database-migration.test.d.ts +1 -0
  47. package/orm/tests/database-migration.test.js +82 -0
  48. package/orm/tests/encryption.test.js +3 -4
  49. package/orm/utils.d.ts +17 -2
  50. package/orm/utils.js +49 -1
  51. package/package.json +4 -3
  52. package/rate-limit/postgres/module.d.ts +1 -0
  53. package/rate-limit/postgres/module.js +5 -1
  54. package/reflection/decorator-data.js +11 -12
  55. package/task-queue/README.md +2 -9
  56. package/task-queue/postgres/drizzle/{0000_simple_invisible_woman.sql → 0000_wakeful_sunspot.sql} +22 -14
  57. package/task-queue/postgres/drizzle/meta/0000_snapshot.json +160 -82
  58. package/task-queue/postgres/drizzle/meta/_journal.json +2 -2
  59. package/task-queue/postgres/module.d.ts +1 -0
  60. package/task-queue/postgres/module.js +5 -1
  61. package/task-queue/postgres/schemas.d.ts +9 -6
  62. package/task-queue/postgres/schemas.js +4 -3
  63. package/task-queue/postgres/task-queue.d.ts +2 -12
  64. package/task-queue/postgres/task-queue.js +431 -354
  65. package/task-queue/postgres/task.model.d.ts +12 -5
  66. package/task-queue/postgres/task.model.js +51 -25
  67. package/task-queue/task-context.d.ts +2 -2
  68. package/task-queue/task-context.js +7 -7
  69. package/task-queue/task-queue.d.ts +36 -19
  70. package/task-queue/task-queue.js +18 -10
  71. package/task-queue/tests/cascading-cancellations.test.d.ts +1 -0
  72. package/task-queue/tests/cascading-cancellations.test.js +38 -0
  73. package/task-queue/tests/complex.test.js +44 -228
  74. package/task-queue/tests/coverage-branch.test.d.ts +1 -0
  75. package/task-queue/tests/coverage-branch.test.js +407 -0
  76. package/task-queue/tests/coverage-enhancement.test.d.ts +1 -0
  77. package/task-queue/tests/coverage-enhancement.test.js +144 -0
  78. package/task-queue/tests/dag-dependencies.test.d.ts +1 -0
  79. package/task-queue/tests/dag-dependencies.test.js +41 -0
  80. package/task-queue/tests/dependencies.test.js +26 -26
  81. package/task-queue/tests/extensive-dependencies.test.js +64 -139
  82. package/task-queue/tests/fan-out-spawning.test.d.ts +1 -0
  83. package/task-queue/tests/fan-out-spawning.test.js +53 -0
  84. package/task-queue/tests/idempotent-replacement.test.d.ts +1 -0
  85. package/task-queue/tests/idempotent-replacement.test.js +61 -0
  86. package/task-queue/tests/missing-idempotent-tasks.test.d.ts +1 -0
  87. package/task-queue/tests/missing-idempotent-tasks.test.js +38 -0
  88. package/task-queue/tests/queue.test.js +33 -24
  89. package/task-queue/tests/worker.test.js +20 -5
  90. package/task-queue/tests/zombie-parent.test.d.ts +1 -0
  91. package/task-queue/tests/zombie-parent.test.js +45 -0
  92. package/task-queue/tests/zombie-recovery.test.d.ts +1 -0
  93. package/task-queue/tests/zombie-recovery.test.js +51 -0
  94. package/test5.js +5 -5
  95. package/testing/integration-setup.d.ts +4 -4
  96. package/testing/integration-setup.js +54 -29
  97. package/text/localization.service.js +2 -2
  98. package/utils/file-reader.js +1 -2
@@ -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);
@@ -103,13 +103,12 @@ export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = T
103
103
  fatal?: boolean;
104
104
  transaction?: Transaction;
105
105
  }): Promise<void>;
106
- triggerTagFanIn(tags: string[], options?: {
107
- transaction?: Transaction;
108
- }): Promise<void>;
109
106
  failMany(tasks: Task<Definitions>[], errors: unknown[], options?: {
110
107
  transaction?: Transaction;
111
108
  }): Promise<void>;
112
109
  private resolveDependencies;
110
+ private evaluateTaskStatus;
111
+ private transitionTask;
113
112
  maintenance(options?: {
114
113
  transaction?: Transaction;
115
114
  }): Promise<void>;
@@ -123,15 +122,6 @@ export declare class PostgresTaskQueue<Definitions extends TaskDefinitionMap = T
123
122
  types?: Type[];
124
123
  }): AsyncIterableIterator<TaskOfType<Definitions, Type>>;
125
124
  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
125
  getBatchConsumer<Type extends TaskTypes<Definitions>>(size: number, cancellationSignal: CancellationSignal, options?: {
136
126
  forceDequeue?: boolean;
137
127
  types?: Type[];