@tstdl/base 0.93.86 → 0.93.89

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 (318) hide show
  1. package/ai/genkit/helpers.d.ts +3 -1
  2. package/ai/genkit/helpers.js +3 -3
  3. package/api/server/gateway.d.ts +3 -0
  4. package/api/server/gateway.js +15 -4
  5. package/api/server/middlewares/catch-error.middleware.js +2 -4
  6. package/api/server/middlewares/cors.middleware.js +2 -3
  7. package/api/server/middlewares/csrf.middleware.d.ts +41 -0
  8. package/api/server/middlewares/csrf.middleware.js +108 -0
  9. package/api/server/middlewares/index.d.ts +1 -0
  10. package/api/server/middlewares/index.js +1 -0
  11. package/api/server/module.d.ts +8 -2
  12. package/api/server/module.js +14 -8
  13. package/api/server/tests/csrf.middleware.test.js +91 -0
  14. package/audit/drizzle/{0000_bored_stick.sql → 0000_lumpy_thunderball.sql} +3 -3
  15. package/audit/drizzle/meta/0000_snapshot.json +4 -4
  16. package/audit/drizzle/meta/_journal.json +2 -9
  17. package/audit/module.d.ts +4 -1
  18. package/audit/module.js +3 -2
  19. package/audit/schemas.d.ts +1 -1
  20. package/audit/types.d.ts +1 -1
  21. package/audit/types.js +1 -1
  22. package/authentication/client/authentication.service.d.ts +14 -1
  23. package/authentication/client/authentication.service.js +82 -23
  24. package/authentication/client/http-client.middleware.d.ts +6 -0
  25. package/authentication/client/http-client.middleware.js +36 -0
  26. package/authentication/client/module.js +8 -2
  27. package/authentication/models/service-account.model.d.ts +2 -2
  28. package/authentication/models/service-account.model.js +10 -5
  29. package/authentication/models/subject.model.d.ts +19 -5
  30. package/authentication/models/subject.model.js +25 -29
  31. package/authentication/models/system-account.model.d.ts +3 -2
  32. package/authentication/models/system-account.model.js +11 -5
  33. package/authentication/models/user.model.d.ts +2 -11
  34. package/authentication/models/user.model.js +5 -16
  35. package/authentication/server/authentication-api-request-token.provider.d.ts +0 -2
  36. package/authentication/server/authentication-api-request-token.provider.js +3 -11
  37. package/authentication/server/authentication.api-controller.d.ts +1 -2
  38. package/authentication/server/authentication.api-controller.js +8 -9
  39. package/authentication/server/authentication.audit.d.ts +3 -2
  40. package/authentication/server/authentication.service.d.ts +27 -1
  41. package/authentication/server/authentication.service.js +67 -18
  42. package/authentication/server/drizzle/{0000_normal_paper_doll.sql → 0000_soft_tag.sql} +25 -32
  43. package/authentication/server/drizzle/meta/0000_snapshot.json +180 -205
  44. package/authentication/server/drizzle/meta/_journal.json +2 -2
  45. package/authentication/server/helper.js +9 -2
  46. package/authentication/server/module.d.ts +4 -1
  47. package/authentication/server/module.js +9 -5
  48. package/authentication/server/schemas.d.ts +2 -1
  49. package/authentication/server/schemas.js +2 -2
  50. package/authentication/server/subject.service.d.ts +14 -8
  51. package/authentication/server/subject.service.js +86 -84
  52. package/authentication/tests/authentication-ancillary.service.test.d.ts +1 -0
  53. package/authentication/tests/authentication-ancillary.service.test.js +13 -0
  54. package/authentication/tests/authentication-secret-requirements.validator.test.d.ts +1 -0
  55. package/authentication/tests/authentication-secret-requirements.validator.test.js +29 -0
  56. package/authentication/tests/authentication.api-controller.test.d.ts +1 -0
  57. package/authentication/tests/authentication.api-controller.test.js +88 -0
  58. package/authentication/tests/authentication.api-request-token.provider.test.d.ts +1 -0
  59. package/authentication/tests/authentication.api-request-token.provider.test.js +48 -0
  60. package/authentication/tests/authentication.client-middleware.test.d.ts +1 -0
  61. package/authentication/tests/authentication.client-middleware.test.js +23 -0
  62. package/authentication/tests/authentication.client-service.test.d.ts +1 -0
  63. package/authentication/tests/authentication.client-service.test.js +70 -0
  64. package/authentication/tests/authentication.service.test.d.ts +1 -0
  65. package/authentication/tests/authentication.service.test.js +186 -0
  66. package/authentication/tests/authentication.test-ancillary-service.d.ts +9 -0
  67. package/authentication/tests/authentication.test-ancillary-service.js +27 -0
  68. package/authentication/tests/helper.test.d.ts +1 -0
  69. package/authentication/tests/helper.test.js +107 -0
  70. package/authentication/tests/secret-requirements.error.test.d.ts +1 -0
  71. package/authentication/tests/secret-requirements.error.test.js +14 -0
  72. package/authentication/tests/subject.service.test.d.ts +1 -0
  73. package/authentication/tests/subject.service.test.js +140 -0
  74. package/circuit-breaker/postgres/drizzle/meta/0000_snapshot.json +1 -1
  75. package/circuit-breaker/postgres/drizzle/meta/_journal.json +2 -2
  76. package/circuit-breaker/postgres/module.d.ts +7 -1
  77. package/circuit-breaker/postgres/module.js +8 -6
  78. package/circuit-breaker/tests/circuit-breaker.test.js +2 -22
  79. package/document-management/api/document-management.api.js +2 -6
  80. package/document-management/server/services/document-validation.service.js +6 -5
  81. package/document-management/server/services/document-workflow.service.js +5 -5
  82. package/document-management/service-models/document-folders.view-model.d.ts +5 -2
  83. package/document-management/service-models/document-folders.view-model.js +42 -9
  84. package/document-management/service-models/enriched/enriched-document-management-data.view.js +1 -1
  85. package/examples/document-management/main.js +4 -4
  86. package/http/client/adapters/undici.adapter.d.ts +7 -5
  87. package/http/client/adapters/undici.adapter.js +13 -10
  88. package/http/client/module.d.ts +3 -1
  89. package/http/client/module.js +8 -9
  90. package/http/server/http-server.d.ts +2 -0
  91. package/http/server/node/module.d.ts +6 -2
  92. package/http/server/node/module.js +6 -4
  93. package/http/server/node/node-http-server.d.ts +2 -0
  94. package/http/server/node/node-http-server.js +7 -0
  95. package/http/types.d.ts +1 -1
  96. package/key-value-store/postgres/module.d.ts +7 -1
  97. package/key-value-store/postgres/module.js +7 -3
  98. package/lock/postgres/lock.js +0 -1
  99. package/lock/postgres/module.d.ts +7 -1
  100. package/lock/postgres/module.js +9 -5
  101. package/logger/formatter.d.ts +2 -0
  102. package/logger/formatters/json.js +2 -2
  103. package/logger/formatters/pretty-print.js +8 -10
  104. package/logger/logger.d.ts +1 -1
  105. package/logger/logger.js +15 -12
  106. package/message-bus/local/module.d.ts +5 -2
  107. package/message-bus/local/module.js +5 -4
  108. package/module/module.d.ts +2 -1
  109. package/module/module.js +3 -0
  110. package/module/modules/web-server.module.d.ts +11 -6
  111. package/module/modules/web-server.module.js +15 -10
  112. package/orm/decorators.d.ts +24 -1
  113. package/orm/decorators.js +40 -4
  114. package/orm/index.d.ts +1 -1
  115. package/orm/index.js +1 -1
  116. package/orm/query/base.d.ts +17 -17
  117. package/orm/query/base.js +1 -1
  118. package/orm/repository.types.d.ts +46 -2
  119. package/orm/schemas/tsvector.js +1 -1
  120. package/orm/server/drizzle/schema-converter.d.ts +3 -1
  121. package/orm/server/drizzle/schema-converter.js +120 -14
  122. package/orm/server/index.d.ts +1 -0
  123. package/orm/server/index.js +1 -0
  124. package/orm/server/module.d.ts +4 -2
  125. package/orm/server/module.js +6 -5
  126. package/orm/server/query-converter.d.ts +6 -3
  127. package/orm/server/query-converter.js +33 -21
  128. package/orm/server/repository-config.d.ts +8 -0
  129. package/orm/server/repository-config.js +8 -0
  130. package/orm/server/repository.d.ts +117 -43
  131. package/orm/server/repository.js +758 -254
  132. package/orm/server/transaction.d.ts +4 -2
  133. package/orm/server/transaction.js +14 -5
  134. package/orm/server/transactional.d.ts +6 -2
  135. package/orm/server/transactional.js +39 -9
  136. package/orm/server/types.d.ts +2 -0
  137. package/orm/sqls/case-when.d.ts +25 -0
  138. package/orm/sqls/case-when.js +54 -0
  139. package/orm/sqls/index.d.ts +2 -0
  140. package/orm/sqls/index.js +2 -0
  141. package/orm/{sqls.d.ts → sqls/sqls.d.ts} +67 -19
  142. package/orm/{sqls.js → sqls/sqls.js} +116 -22
  143. package/orm/tests/data-types.test.d.ts +1 -0
  144. package/orm/tests/data-types.test.js +39 -0
  145. package/orm/tests/decorators.test.d.ts +1 -0
  146. package/orm/tests/decorators.test.js +77 -0
  147. package/orm/tests/encryption.test.d.ts +1 -0
  148. package/orm/tests/encryption.test.js +34 -0
  149. package/orm/tests/query-complex.test.d.ts +1 -0
  150. package/orm/tests/query-complex.test.js +203 -0
  151. package/orm/tests/query-converter-complex.test.d.ts +1 -0
  152. package/orm/tests/query-converter-complex.test.js +126 -0
  153. package/orm/tests/query-converter.test.d.ts +1 -0
  154. package/orm/tests/query-converter.test.js +123 -0
  155. package/orm/tests/repository-advanced.test.d.ts +1 -0
  156. package/orm/tests/repository-advanced.test.js +232 -0
  157. package/orm/tests/repository-attributes.test.d.ts +1 -0
  158. package/orm/tests/repository-attributes.test.js +99 -0
  159. package/orm/tests/repository-comprehensive.test.d.ts +1 -0
  160. package/orm/tests/repository-comprehensive.test.js +187 -0
  161. package/orm/tests/repository-coverage.test.d.ts +1 -0
  162. package/orm/tests/repository-coverage.test.js +303 -0
  163. package/orm/tests/repository-cti-complex.test.d.ts +1 -0
  164. package/orm/tests/repository-cti-complex.test.js +170 -0
  165. package/orm/tests/repository-cti-embedded.test.d.ts +1 -0
  166. package/orm/tests/repository-cti-embedded.test.js +188 -0
  167. package/orm/tests/repository-cti-extensive.test.d.ts +1 -0
  168. package/orm/tests/repository-cti-extensive.test.js +308 -0
  169. package/orm/tests/repository-cti-mapping.test.d.ts +1 -0
  170. package/orm/tests/repository-cti-mapping.test.js +121 -0
  171. package/orm/tests/repository-cti-search.test.d.ts +1 -0
  172. package/orm/tests/repository-cti-search.test.js +152 -0
  173. package/orm/tests/repository-cti-soft-delete.test.d.ts +1 -0
  174. package/orm/tests/repository-cti-soft-delete.test.js +115 -0
  175. package/orm/tests/repository-cti-transactions.test.d.ts +1 -0
  176. package/orm/tests/repository-cti-transactions.test.js +126 -0
  177. package/orm/tests/repository-cti-upsert-many.test.d.ts +1 -0
  178. package/orm/tests/repository-cti-upsert-many.test.js +127 -0
  179. package/orm/tests/repository-cti.test.d.ts +1 -0
  180. package/orm/tests/repository-cti.test.js +456 -0
  181. package/orm/tests/repository-edge-cases.test.d.ts +1 -0
  182. package/orm/tests/repository-edge-cases.test.js +216 -0
  183. package/orm/tests/repository-expiration.test.d.ts +1 -0
  184. package/orm/tests/repository-expiration.test.js +153 -0
  185. package/orm/tests/repository-extra-coverage.test.d.ts +1 -0
  186. package/orm/tests/repository-extra-coverage.test.js +546 -0
  187. package/orm/tests/repository-mapping.test.d.ts +1 -0
  188. package/orm/tests/repository-mapping.test.js +71 -0
  189. package/orm/tests/repository-regression.test.d.ts +1 -0
  190. package/orm/tests/repository-regression.test.js +330 -0
  191. package/orm/tests/repository-search-coverage.test.d.ts +1 -0
  192. package/orm/tests/repository-search-coverage.test.js +129 -0
  193. package/orm/tests/repository-search.test.d.ts +1 -0
  194. package/orm/tests/repository-search.test.js +116 -0
  195. package/orm/tests/repository-soft-delete.test.d.ts +1 -0
  196. package/orm/tests/repository-soft-delete.test.js +143 -0
  197. package/orm/tests/repository-transactions-nested.test.d.ts +1 -0
  198. package/orm/tests/repository-transactions-nested.test.js +202 -0
  199. package/orm/tests/repository-types.test.d.ts +1 -0
  200. package/orm/tests/repository-types.test.js +218 -0
  201. package/orm/tests/schema-converter.test.d.ts +1 -0
  202. package/orm/tests/schema-converter.test.js +81 -0
  203. package/orm/tests/schema-generation.test.d.ts +1 -0
  204. package/orm/tests/schema-generation.test.js +127 -0
  205. package/orm/tests/sql-helpers.test.d.ts +1 -0
  206. package/orm/tests/sql-helpers.test.js +67 -0
  207. package/orm/tests/transaction-safety.test.d.ts +1 -0
  208. package/orm/tests/transaction-safety.test.js +81 -0
  209. package/orm/tests/transactional.test.d.ts +1 -0
  210. package/orm/tests/transactional.test.js +224 -0
  211. package/orm/tests/utils.test.d.ts +1 -0
  212. package/orm/tests/utils.test.js +70 -0
  213. package/orm/utils.d.ts +7 -0
  214. package/orm/utils.js +26 -6
  215. package/package.json +12 -7
  216. package/pool/pool.js +1 -1
  217. package/rate-limit/index.d.ts +2 -0
  218. package/rate-limit/index.js +2 -0
  219. package/rate-limit/postgres/drizzle/0000_watery_rage.sql +7 -0
  220. package/{queue → rate-limit}/postgres/drizzle/meta/0000_snapshot.json +14 -39
  221. package/rate-limit/postgres/drizzle/meta/_journal.json +13 -0
  222. package/{queue → rate-limit}/postgres/drizzle.config.js +1 -1
  223. package/rate-limit/postgres/index.d.ts +4 -0
  224. package/rate-limit/postgres/index.js +4 -0
  225. package/rate-limit/postgres/module.d.ts +12 -0
  226. package/rate-limit/postgres/module.js +28 -0
  227. package/rate-limit/postgres/postgres-rate-limiter.d.ts +9 -0
  228. package/rate-limit/postgres/postgres-rate-limiter.js +56 -0
  229. package/rate-limit/postgres/rate-limit.model.d.ts +8 -0
  230. package/rate-limit/postgres/rate-limit.model.js +35 -0
  231. package/rate-limit/postgres/rate-limiter.provider.d.ts +6 -0
  232. package/rate-limit/postgres/rate-limiter.provider.js +21 -0
  233. package/rate-limit/postgres/schemas.d.ts +3 -0
  234. package/rate-limit/postgres/schemas.js +4 -0
  235. package/rate-limit/provider.d.ts +9 -0
  236. package/rate-limit/provider.js +2 -0
  237. package/rate-limit/rate-limiter.d.ts +35 -0
  238. package/rate-limit/rate-limiter.js +3 -0
  239. package/rate-limit/tests/postgres-rate-limiter.test.d.ts +1 -0
  240. package/rate-limit/tests/postgres-rate-limiter.test.js +92 -0
  241. package/signals/implementation/configure.d.ts +3 -0
  242. package/signals/implementation/configure.js +3 -0
  243. package/sse/data-stream-source.d.ts +1 -1
  244. package/sse/data-stream-source.js +6 -6
  245. package/task-queue/enqueue-batch.d.ts +17 -0
  246. package/task-queue/enqueue-batch.js +24 -0
  247. package/{queue → task-queue}/index.d.ts +1 -1
  248. package/{queue → task-queue}/index.js +1 -1
  249. package/task-queue/postgres/drizzle/0000_thin_black_panther.sql +74 -0
  250. package/task-queue/postgres/drizzle/meta/0000_snapshot.json +592 -0
  251. package/task-queue/postgres/drizzle/meta/_journal.json +13 -0
  252. package/task-queue/postgres/drizzle.config.d.ts +2 -0
  253. package/task-queue/postgres/drizzle.config.js +11 -0
  254. package/task-queue/postgres/index.d.ts +4 -0
  255. package/task-queue/postgres/index.js +4 -0
  256. package/task-queue/postgres/module.d.ts +12 -0
  257. package/task-queue/postgres/module.js +28 -0
  258. package/task-queue/postgres/schemas.d.ts +16 -0
  259. package/task-queue/postgres/schemas.js +8 -0
  260. package/task-queue/postgres/task-queue.d.ts +83 -0
  261. package/task-queue/postgres/task-queue.js +1054 -0
  262. package/task-queue/postgres/task-queue.provider.d.ts +7 -0
  263. package/{queue/postgres/queue.provider.js → task-queue/postgres/task-queue.provider.js} +8 -8
  264. package/task-queue/postgres/task.model.d.ts +39 -0
  265. package/task-queue/postgres/task.model.js +178 -0
  266. package/{queue → task-queue}/provider.d.ts +3 -3
  267. package/task-queue/provider.js +2 -0
  268. package/{queue → task-queue}/task-context.d.ts +7 -7
  269. package/{queue → task-queue}/task-context.js +8 -8
  270. package/{queue/queue.d.ts → task-queue/task-queue.d.ts} +128 -59
  271. package/task-queue/task-queue.js +200 -0
  272. package/task-queue/tests/complex.test.d.ts +1 -0
  273. package/task-queue/tests/complex.test.js +299 -0
  274. package/task-queue/tests/dependencies.test.d.ts +1 -0
  275. package/task-queue/tests/dependencies.test.js +174 -0
  276. package/task-queue/tests/queue.test.d.ts +1 -0
  277. package/task-queue/tests/queue.test.js +334 -0
  278. package/task-queue/tests/worker.test.d.ts +1 -0
  279. package/task-queue/tests/worker.test.js +163 -0
  280. package/test1.js +1 -1
  281. package/test4.js +2 -2
  282. package/unit-test/index.d.ts +1 -0
  283. package/unit-test/index.js +1 -0
  284. package/unit-test/integration-setup.d.ts +55 -0
  285. package/unit-test/integration-setup.js +182 -0
  286. package/utils/patterns.d.ts +3 -0
  287. package/utils/patterns.js +6 -1
  288. package/audit/drizzle/0001_previous_network.sql +0 -2
  289. package/audit/drizzle/meta/0001_snapshot.json +0 -195
  290. package/queue/enqueue-batch.d.ts +0 -17
  291. package/queue/enqueue-batch.js +0 -18
  292. package/queue/postgres/drizzle/0000_zippy_moondragon.sql +0 -11
  293. package/queue/postgres/drizzle/0001_certain_wild_pack.sql +0 -2
  294. package/queue/postgres/drizzle/0002_dear_meggan.sql +0 -2
  295. package/queue/postgres/drizzle/0003_tricky_venom.sql +0 -30
  296. package/queue/postgres/drizzle/meta/0001_snapshot.json +0 -103
  297. package/queue/postgres/drizzle/meta/0002_snapshot.json +0 -90
  298. package/queue/postgres/drizzle/meta/0003_snapshot.json +0 -288
  299. package/queue/postgres/drizzle/meta/_journal.json +0 -34
  300. package/queue/postgres/index.d.ts +0 -4
  301. package/queue/postgres/index.js +0 -4
  302. package/queue/postgres/module.d.ts +0 -9
  303. package/queue/postgres/module.js +0 -29
  304. package/queue/postgres/queue.d.ts +0 -60
  305. package/queue/postgres/queue.js +0 -681
  306. package/queue/postgres/queue.provider.d.ts +0 -7
  307. package/queue/postgres/schemas.d.ts +0 -14
  308. package/queue/postgres/schemas.js +0 -6
  309. package/queue/postgres/task.model.d.ts +0 -24
  310. package/queue/postgres/task.model.js +0 -115
  311. package/queue/provider.js +0 -2
  312. package/queue/queue.js +0 -131
  313. package/queue/tests/queue.test.js +0 -623
  314. package/test3.d.ts +0 -1
  315. package/test3.js +0 -47
  316. /package/{queue/tests/queue.test.d.ts → api/server/tests/csrf.middleware.test.d.ts} +0 -0
  317. /package/circuit-breaker/postgres/drizzle/{0000_hard_shocker.sql → 0000_cooing_korath.sql} +0 -0
  318. /package/{queue → rate-limit}/postgres/drizzle.config.d.ts +0 -0
@@ -1,14 +0,0 @@
1
- import { PostgresTask } from './task.model.js';
2
- export declare const queueSchema: import("../../orm/server/index.js").DatabaseSchema<"queue">;
3
- export declare const taskState: import("../../orm/enums.js").PgEnumFromEnumeration<{
4
- readonly Pending: "pending";
5
- readonly Running: "running";
6
- readonly Completed: "completed";
7
- readonly Cancelled: "cancelled";
8
- readonly Waiting: "waiting";
9
- readonly Dead: "dead";
10
- }>;
11
- export declare const task: import("../../orm/server/types.js").PgTableFromType<{
12
- new (): PostgresTask<any, any, any>;
13
- readonly entityName: "Task";
14
- }, "queue">;
@@ -1,6 +0,0 @@
1
- import { databaseSchema } from '../../orm/server/index.js';
2
- import { TaskState } from '../queue.js';
3
- import { PostgresTask } from './task.model.js';
4
- export const queueSchema = databaseSchema('queue');
5
- export const taskState = queueSchema.getEnum(TaskState);
6
- export const task = queueSchema.getTable((PostgresTask));
@@ -1,24 +0,0 @@
1
- import { BaseEntity, type Json, type Timestamp } from '../../orm/index.js';
2
- import type { ObjectLiteral } from '../../types/types.js';
3
- import { type Task, TaskState } from '../queue.js';
4
- export declare class PostgresTask<Data extends ObjectLiteral = ObjectLiteral, State extends ObjectLiteral = ObjectLiteral, Result extends ObjectLiteral = ObjectLiteral> extends BaseEntity implements Task<Data, State, Result> {
5
- static readonly entityName = "Task";
6
- queue: string;
7
- status: TaskState;
8
- tag: string | null;
9
- priority: number;
10
- parentId: string | null;
11
- lease: string | null;
12
- enqueueTimestamp: Timestamp;
13
- scheduleTimestamp: Timestamp;
14
- startTimestamp: Timestamp | null;
15
- expirationTimestamp: Timestamp | null;
16
- lockExpirationTimestamp: Timestamp | null;
17
- completeTimestamp: Timestamp | null;
18
- tries: number;
19
- progress: number;
20
- data: Json<Data>;
21
- state: Json<State> | null;
22
- result: Json<Result> | null;
23
- error: Json<ObjectLiteral> | null;
24
- }
@@ -1,115 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { BaseEntity, Index, JsonProperty, Reference, Table, TimestampProperty, Unique, UuidProperty } from '../../orm/index.js';
11
- import { Enumeration, Integer, NumberProperty, StringProperty } from '../../schema/index.js';
12
- import { TaskState } from '../queue.js';
13
- let PostgresTask = class PostgresTask extends BaseEntity {
14
- static entityName = 'Task';
15
- queue;
16
- status;
17
- tag;
18
- priority;
19
- parentId;
20
- lease;
21
- enqueueTimestamp;
22
- scheduleTimestamp;
23
- startTimestamp;
24
- expirationTimestamp;
25
- lockExpirationTimestamp;
26
- completeTimestamp;
27
- tries;
28
- progress;
29
- data;
30
- state;
31
- result;
32
- error;
33
- };
34
- __decorate([
35
- StringProperty(),
36
- __metadata("design:type", String)
37
- ], PostgresTask.prototype, "queue", void 0);
38
- __decorate([
39
- Enumeration(TaskState),
40
- __metadata("design:type", String)
41
- ], PostgresTask.prototype, "status", void 0);
42
- __decorate([
43
- StringProperty({ nullable: true }),
44
- __metadata("design:type", Object)
45
- ], PostgresTask.prototype, "tag", void 0);
46
- __decorate([
47
- Integer(),
48
- __metadata("design:type", Number)
49
- ], PostgresTask.prototype, "priority", void 0);
50
- __decorate([
51
- Reference(() => PostgresTask),
52
- UuidProperty({ nullable: true }),
53
- __metadata("design:type", Object)
54
- ], PostgresTask.prototype, "parentId", void 0);
55
- __decorate([
56
- UuidProperty({ nullable: true }),
57
- __metadata("design:type", Object)
58
- ], PostgresTask.prototype, "lease", void 0);
59
- __decorate([
60
- TimestampProperty(),
61
- __metadata("design:type", Number)
62
- ], PostgresTask.prototype, "enqueueTimestamp", void 0);
63
- __decorate([
64
- TimestampProperty(),
65
- __metadata("design:type", Number)
66
- ], PostgresTask.prototype, "scheduleTimestamp", void 0);
67
- __decorate([
68
- TimestampProperty({ nullable: true }),
69
- __metadata("design:type", Object)
70
- ], PostgresTask.prototype, "startTimestamp", void 0);
71
- __decorate([
72
- TimestampProperty({ nullable: true }),
73
- __metadata("design:type", Object)
74
- ], PostgresTask.prototype, "expirationTimestamp", void 0);
75
- __decorate([
76
- TimestampProperty({ nullable: true }),
77
- __metadata("design:type", Object)
78
- ], PostgresTask.prototype, "lockExpirationTimestamp", void 0);
79
- __decorate([
80
- TimestampProperty({ nullable: true }),
81
- __metadata("design:type", Object)
82
- ], PostgresTask.prototype, "completeTimestamp", void 0);
83
- __decorate([
84
- Integer(),
85
- __metadata("design:type", Number)
86
- ], PostgresTask.prototype, "tries", void 0);
87
- __decorate([
88
- NumberProperty(),
89
- __metadata("design:type", Number)
90
- ], PostgresTask.prototype, "progress", void 0);
91
- __decorate([
92
- JsonProperty({ nullable: true }),
93
- __metadata("design:type", Object)
94
- ], PostgresTask.prototype, "data", void 0);
95
- __decorate([
96
- JsonProperty({ nullable: true }),
97
- __metadata("design:type", Object)
98
- ], PostgresTask.prototype, "state", void 0);
99
- __decorate([
100
- JsonProperty({ nullable: true }),
101
- __metadata("design:type", Object)
102
- ], PostgresTask.prototype, "result", void 0);
103
- __decorate([
104
- JsonProperty({ nullable: true }),
105
- __metadata("design:type", Object)
106
- ], PostgresTask.prototype, "error", void 0);
107
- PostgresTask = __decorate([
108
- Table('task', { schema: 'queue' }),
109
- Unique(['queue', 'tag']),
110
- Index(['queue', 'status', 'priority', 'scheduleTimestamp']),
111
- Index(['queue', 'status', 'lockExpirationTimestamp']),
112
- Index(['queue', 'completeTimestamp']),
113
- Index(['parentId', 'status'])
114
- ], PostgresTask);
115
- export { PostgresTask };
package/queue/provider.js DELETED
@@ -1,2 +0,0 @@
1
- export class QueueProvider {
2
- }
package/queue/queue.js DELETED
@@ -1,131 +0,0 @@
1
- import { defineEnum } from '../enumeration/enumeration.js';
2
- import { createArray } from '../utils/array/array.js';
3
- import { cancelableTimeout } from '../utils/timing.js';
4
- import { isDefined } from '../utils/type-guards.js';
5
- import { millisecondsPerDay, millisecondsPerMinute, millisecondsPerSecond } from '../utils/units.js';
6
- import { QueueEnqueueBatch } from './enqueue-batch.js';
7
- import { BatchTaskContext } from './task-context.js';
8
- export const TaskState = defineEnum('TaskState', {
9
- /**
10
- * The task is waiting to be processed.
11
- */
12
- Pending: 'pending',
13
- /**
14
- * The task is currently being processed.
15
- */
16
- Running: 'running',
17
- /**
18
- * The task has been completed successfully.
19
- */
20
- Completed: 'completed',
21
- /**
22
- * The task has been cancelled and will not be processed.
23
- */
24
- Cancelled: 'cancelled',
25
- /**
26
- * The task is scheduled to be processed in the future when all children have completed.
27
- */
28
- Waiting: 'waiting',
29
- /**
30
- * The task has failed and will not be retried.
31
- */
32
- Dead: 'dead',
33
- });
34
- export const defaultTaskPriority = 1000;
35
- export const UniqueTagStrategy = defineEnum('UniqueTagStrategy', {
36
- KeepOld: 0,
37
- TakeNew: 1,
38
- });
39
- export const defaultQueueConfig = {
40
- processTimeout: millisecondsPerMinute * 5,
41
- executionTimeout: millisecondsPerMinute * 60,
42
- maxTries: 3,
43
- retentionPeriod: 30 * millisecondsPerDay,
44
- globalConcurrency: null,
45
- circuitBreakerThreshold: 5,
46
- circuitBreakerResetTimeout: 30 * millisecondsPerSecond,
47
- retryDelayMinimum: 5 * millisecondsPerSecond,
48
- retryDelayMaximum: 5 * millisecondsPerMinute,
49
- retryDelayGrowth: 2,
50
- };
51
- export class Queue {
52
- batch() {
53
- return new QueueEnqueueBatch(this);
54
- }
55
- process({ concurrency = 1, cancellationSignal }, handler, logger) {
56
- for (let i = 0; i < concurrency; i++) {
57
- void this.processWorker(cancellationSignal, handler, logger);
58
- }
59
- }
60
- processBatch({ batchSize = 10, concurrency = 1, cancellationSignal }, handler, logger) {
61
- for (let i = 0; i < concurrency; i++) {
62
- void this.processBatchWorker(batchSize, cancellationSignal, handler, logger);
63
- }
64
- }
65
- async processWorker(cancellationSignal, handler, logger) {
66
- await this.processBatchWorker(1, cancellationSignal, async (batchContext) => {
67
- const task = batchContext.tasks[0];
68
- const context = batchContext.for(task);
69
- const result = await handler(context);
70
- if (isDefined(result)) {
71
- return [result];
72
- }
73
- return undefined;
74
- }, logger);
75
- }
76
- async processBatchWorker(size, cancellationSignal, handler, logger) {
77
- for await (const tasks of this.getBatchConsumer(size, cancellationSignal)) {
78
- const batchToken = cancellationSignal.createChild();
79
- const context = new BatchTaskContext(this, tasks, batchToken, logger);
80
- let activeTaskIds = new Set(tasks.map((t) => t.id));
81
- context.logger.verbose(`Processing batch of ${tasks.length}`);
82
- void (async () => {
83
- while (batchToken.isUnset) {
84
- await cancelableTimeout(Math.min(this.processTimeout / 2, 5000), batchToken);
85
- if (batchToken.isSet) {
86
- break;
87
- }
88
- try {
89
- const tasksToTouch = tasks.filter((t) => activeTaskIds.has(t.id));
90
- if (tasksToTouch.length > 0) {
91
- const touchedIds = await this.touchMany(tasksToTouch);
92
- if (touchedIds.length != tasksToTouch.length) {
93
- const lostCount = tasksToTouch.length - touchedIds.length;
94
- context.logger.warn(`Batch integrity compromised: ${lostCount} tasks lost lease. Aborting batch.`);
95
- activeTaskIds = new Set(touchedIds);
96
- batchToken.set();
97
- }
98
- else {
99
- activeTaskIds = new Set(touchedIds);
100
- }
101
- }
102
- if (activeTaskIds.size == 0 && batchToken.isUnset) {
103
- context.logger.warn(`All tasks in batch lost lease. Stopping worker.`);
104
- batchToken.set();
105
- }
106
- }
107
- catch (error) {
108
- context.logger.error(error);
109
- }
110
- }
111
- })();
112
- try {
113
- if (batchToken.isSet) {
114
- throw new Error('Tasks cancelled before start');
115
- }
116
- const results = await handler(context);
117
- if (isDefined(results)) {
118
- context.logger.verbose(`Acknowledging batch`);
119
- await this.acknowledgeMany(tasks, results);
120
- }
121
- }
122
- catch (error) {
123
- context.logger.error(error);
124
- await this.failMany(tasks, createArray(tasks.length, () => error));
125
- }
126
- finally {
127
- batchToken.set();
128
- }
129
- }
130
- }
131
- }