@tstdl/base 0.92.167 → 0.93.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 (317) hide show
  1. package/application/application.d.ts +12 -18
  2. package/application/application.js +48 -69
  3. package/application/index.d.ts +1 -5
  4. package/application/index.js +1 -5
  5. package/application/providers.d.ts +10 -0
  6. package/application/providers.js +54 -0
  7. package/audit/audit.model.d.ts +15 -0
  8. package/audit/audit.model.js +73 -0
  9. package/audit/auditor.d.ts +42 -0
  10. package/audit/auditor.js +111 -0
  11. package/audit/index.d.ts +3 -0
  12. package/audit/index.js +3 -0
  13. package/audit/types.d.ts +22 -0
  14. package/audit/types.js +19 -0
  15. package/authentication/client/authentication.service.d.ts +1 -3
  16. package/authentication/client/authentication.service.js +4 -5
  17. package/browser/browser-context-controller.d.ts +2 -4
  18. package/browser/browser-context-controller.js +5 -6
  19. package/browser/browser-controller.d.ts +2 -4
  20. package/browser/browser-controller.js +3 -4
  21. package/browser/browser.service.d.ts +1 -3
  22. package/browser/browser.service.js +1 -2
  23. package/browser/page-controller.d.ts +2 -4
  24. package/browser/page-controller.js +7 -8
  25. package/browser/utils.js +3 -3
  26. package/cancellation/token.d.ts +104 -41
  27. package/cancellation/token.js +125 -54
  28. package/core.d.ts +1 -13
  29. package/core.js +1 -46
  30. package/disposable/disposable.d.ts +0 -8
  31. package/disposable/disposable.js +1 -3
  32. package/disposable/index.d.ts +0 -6
  33. package/disposable/index.js +0 -6
  34. package/disposable/using.d.ts +0 -1
  35. package/disposable/using.js +2 -3
  36. package/distributed-loop/distributed-loop.js +2 -2
  37. package/errors/utils.js +4 -1
  38. package/examples/api/authentication.js +11 -5
  39. package/examples/api/basic-overview.js +17 -12
  40. package/examples/api/custom-authentication.js +13 -7
  41. package/examples/api/streaming.js +15 -12
  42. package/examples/browser/basic.js +6 -3
  43. package/examples/document-management/main.js +6 -3
  44. package/examples/http/client.js +7 -3
  45. package/examples/mail/basic.js +9 -7
  46. package/examples/pdf/basic.js +8 -6
  47. package/examples/template/basic.js +7 -5
  48. package/http/client/http-client-request.d.ts +1 -2
  49. package/http/client/http-client-request.js +1 -2
  50. package/http/server/http-server.d.ts +1 -3
  51. package/http/server/http-server.js +0 -1
  52. package/http/server/node/node-http-server.d.ts +1 -2
  53. package/http/server/node/node-http-server.js +1 -2
  54. package/import.js +1 -1
  55. package/injector/injector.d.ts +1 -1
  56. package/injector/types.d.ts +3 -4
  57. package/lock/lock.d.ts +40 -21
  58. package/lock/lock.js +74 -1
  59. package/lock/postgres/drizzle/0000_busy_tattoo.sql +7 -0
  60. package/lock/postgres/drizzle/meta/0000_snapshot.json +65 -0
  61. package/lock/postgres/drizzle/meta/_journal.json +13 -0
  62. package/lock/postgres/drizzle.config.js +11 -0
  63. package/lock/postgres/index.d.ts +2 -0
  64. package/lock/postgres/index.js +2 -0
  65. package/lock/postgres/lock.d.ts +14 -0
  66. package/lock/postgres/lock.js +127 -0
  67. package/lock/postgres/models/index.d.ts +2 -0
  68. package/lock/postgres/models/index.js +2 -0
  69. package/lock/postgres/models/lock.model.d.ts +7 -0
  70. package/{examples/orm/user.model.js → lock/postgres/models/lock.model.js} +22 -30
  71. package/lock/postgres/models/schemas.d.ts +3 -0
  72. package/lock/postgres/models/schemas.js +4 -0
  73. package/lock/postgres/module.d.ts +6 -0
  74. package/lock/postgres/module.js +26 -0
  75. package/lock/postgres/provider.d.ts +6 -0
  76. package/lock/postgres/provider.js +29 -0
  77. package/lock/provider.d.ts +12 -2
  78. package/lock/provider.js +24 -1
  79. package/lock/web/web-lock.d.ts +4 -3
  80. package/lock/web/web-lock.js +49 -42
  81. package/lock/web/web-lock.provider.d.ts +0 -3
  82. package/lock/web/web-lock.provider.js +5 -22
  83. package/logger/formatter.d.ts +13 -0
  84. package/logger/formatter.js +3 -0
  85. package/logger/formatters/index.d.ts +2 -0
  86. package/logger/formatters/index.js +2 -0
  87. package/logger/formatters/json.d.ts +5 -0
  88. package/logger/formatters/json.js +33 -0
  89. package/logger/formatters/pretty-print.d.ts +5 -0
  90. package/logger/formatters/pretty-print.js +55 -0
  91. package/logger/index.d.ts +5 -2
  92. package/logger/index.js +5 -2
  93. package/logger/level.d.ts +10 -8
  94. package/logger/level.js +9 -9
  95. package/logger/logger.d.ts +21 -30
  96. package/logger/logger.js +98 -26
  97. package/logger/manager.d.ts +20 -0
  98. package/logger/manager.js +86 -0
  99. package/logger/tokens.d.ts +1 -1
  100. package/logger/tokens.js +1 -1
  101. package/logger/transport.d.ts +14 -0
  102. package/logger/transport.js +16 -0
  103. package/logger/transports/console.d.ts +14 -0
  104. package/logger/transports/console.js +36 -0
  105. package/logger/transports/index.d.ts +1 -0
  106. package/logger/transports/index.js +1 -0
  107. package/mail/clients/nodemailer.mail-client.d.ts +0 -1
  108. package/mail/clients/nodemailer.mail-client.js +9 -7
  109. package/message-bus/local/local-message-bus.js +2 -2
  110. package/message-bus/message-bus-base.d.ts +2 -3
  111. package/message-bus/message-bus-base.js +5 -6
  112. package/message-bus/message-bus.d.ts +1 -2
  113. package/message-bus/message-bus.js +1 -2
  114. package/module/index.d.ts +0 -2
  115. package/module/index.js +0 -2
  116. package/module/module.d.ts +17 -18
  117. package/module/module.js +47 -12
  118. package/module/modules/function.module.d.ts +6 -6
  119. package/module/modules/function.module.js +25 -9
  120. package/module/modules/web-server.module.d.ts +2 -10
  121. package/module/modules/web-server.module.js +3 -11
  122. package/openid-connect/index.d.ts +0 -2
  123. package/openid-connect/index.js +0 -2
  124. package/openid-connect/oidc-state.model.d.ts +4 -5
  125. package/openid-connect/oidc-state.model.js +51 -1
  126. package/openid-connect/oidc.service-model.d.ts +1 -1
  127. package/openid-connect/oidc.service.d.ts +2 -6
  128. package/openid-connect/oidc.service.js +24 -37
  129. package/orm/decorators.d.ts +10 -1
  130. package/orm/decorators.js +8 -0
  131. package/orm/server/repository.d.ts +3 -1
  132. package/orm/server/repository.js +32 -3
  133. package/package.json +19 -29
  134. package/pdf/pdf.service.js +9 -9
  135. package/pool/pool.d.ts +1 -3
  136. package/pool/pool.js +3 -4
  137. package/queue/postgres/job.model.d.ts +1 -2
  138. package/queue/postgres/job.model.js +1 -2
  139. package/queue/postgres/module.js +1 -1
  140. package/threading/thread-pool.d.ts +1 -3
  141. package/threading/thread-pool.js +7 -8
  142. package/utils/format-error.d.ts +7 -0
  143. package/utils/format-error.js +59 -17
  144. package/utils/function/memoize.d.ts +22 -7
  145. package/utils/function/memoize.js +82 -23
  146. package/utils/index.d.ts +1 -0
  147. package/utils/index.js +1 -0
  148. package/utils/object/dereference.d.ts +51 -19
  149. package/utils/object/dereference.js +52 -43
  150. package/utils/timing.js +2 -2
  151. package/utils/try-chain.d.ts +22 -0
  152. package/utils/try-chain.js +46 -0
  153. package/database/entity-repository.d.ts +0 -50
  154. package/database/entity-repository.js +0 -3
  155. package/database/entity.d.ts +0 -7
  156. package/database/entity.js +0 -1
  157. package/database/id.d.ts +0 -1
  158. package/database/id.js +0 -9
  159. package/database/index.d.ts +0 -11
  160. package/database/index.js +0 -11
  161. package/database/module.d.ts +0 -8
  162. package/database/module.js +0 -11
  163. package/database/mongo/classes.d.ts +0 -21
  164. package/database/mongo/classes.js +0 -26
  165. package/database/mongo/index.d.ts +0 -15
  166. package/database/mongo/index.js +0 -15
  167. package/database/mongo/model/document.d.ts +0 -29
  168. package/database/mongo/model/document.js +0 -63
  169. package/database/mongo/model/index.d.ts +0 -1
  170. package/database/mongo/model/index.js +0 -1
  171. package/database/mongo/module.d.ts +0 -8
  172. package/database/mongo/module.js +0 -68
  173. package/database/mongo/mongo-base.repository.d.ts +0 -103
  174. package/database/mongo/mongo-base.repository.js +0 -263
  175. package/database/mongo/mongo-bulk.d.ts +0 -35
  176. package/database/mongo/mongo-bulk.js +0 -90
  177. package/database/mongo/mongo-entity-repository.d.ts +0 -98
  178. package/database/mongo/mongo-entity-repository.js +0 -278
  179. package/database/mongo/operations.d.ts +0 -10
  180. package/database/mongo/operations.js +0 -54
  181. package/database/mongo/query-converter.d.ts +0 -6
  182. package/database/mongo/query-converter.js +0 -83
  183. package/database/mongo/simple-entity-repository.d.ts +0 -7
  184. package/database/mongo/simple-entity-repository.js +0 -6
  185. package/database/mongo/types.d.ts +0 -50
  186. package/database/mongo/types.js +0 -3
  187. package/database/query.d.ts +0 -121
  188. package/database/query.js +0 -7
  189. package/database/utils.d.ts +0 -2
  190. package/database/utils.js +0 -3
  191. package/disposable/async-disposer.d.ts +0 -35
  192. package/disposable/async-disposer.js +0 -125
  193. package/examples/orm/drizzle.config.js +0 -6
  194. package/examples/orm/schemas.d.ts +0 -3
  195. package/examples/orm/schemas.js +0 -4
  196. package/examples/orm/test.d.ts +0 -1
  197. package/examples/orm/test.js +0 -11
  198. package/examples/orm/user.model.d.ts +0 -13
  199. package/key-value-store/mongo/index.d.ts +0 -6
  200. package/key-value-store/mongo/index.js +0 -6
  201. package/key-value-store/mongo/module.d.ts +0 -8
  202. package/key-value-store/mongo/module.js +0 -18
  203. package/key-value-store/mongo/mongo-key-value-store.provider.d.ts +0 -8
  204. package/key-value-store/mongo/mongo-key-value-store.provider.js +0 -26
  205. package/key-value-store/mongo/mongo-key-value.model.d.ts +0 -7
  206. package/key-value-store/mongo/mongo-key-value.model.js +0 -1
  207. package/key-value-store/mongo/mongo-key-value.repository.d.ts +0 -10
  208. package/key-value-store/mongo/mongo-key-value.repository.js +0 -31
  209. package/key-value-store/mongo/mongo-key-value.store.d.ts +0 -15
  210. package/key-value-store/mongo/mongo-key-value.store.js +0 -82
  211. package/key-value-store/mongo/tokens.d.ts +0 -3
  212. package/key-value-store/mongo/tokens.js +0 -2
  213. package/lock/mongo/index.d.ts +0 -5
  214. package/lock/mongo/index.js +0 -5
  215. package/lock/mongo/lock.d.ts +0 -14
  216. package/lock/mongo/lock.js +0 -125
  217. package/lock/mongo/model.d.ts +0 -6
  218. package/lock/mongo/model.js +0 -1
  219. package/lock/mongo/module.d.ts +0 -12
  220. package/lock/mongo/module.js +0 -20
  221. package/lock/mongo/mongo-lock-repository.d.ts +0 -14
  222. package/lock/mongo/mongo-lock-repository.js +0 -67
  223. package/lock/mongo/provider.d.ts +0 -8
  224. package/lock/mongo/provider.js +0 -36
  225. package/logger/console/index.d.ts +0 -1
  226. package/logger/console/index.js +0 -1
  227. package/logger/console/logger.d.ts +0 -11
  228. package/logger/console/logger.js +0 -64
  229. package/logger/noop/index.d.ts +0 -1
  230. package/logger/noop/index.js +0 -1
  231. package/logger/noop/logger.d.ts +0 -9
  232. package/logger/noop/logger.js +0 -21
  233. package/migration/index.d.ts +0 -9
  234. package/migration/index.js +0 -9
  235. package/migration/migration-state-repository.d.ts +0 -4
  236. package/migration/migration-state-repository.js +0 -3
  237. package/migration/migration-state.d.ts +0 -6
  238. package/migration/migration-state.js +0 -1
  239. package/migration/migrator.d.ts +0 -23
  240. package/migration/migrator.js +0 -76
  241. package/migration/mongo/index.d.ts +0 -2
  242. package/migration/mongo/index.js +0 -2
  243. package/migration/mongo/migration-state-repository.d.ts +0 -11
  244. package/migration/mongo/migration-state-repository.js +0 -32
  245. package/migration/mongo/module.d.ts +0 -12
  246. package/migration/mongo/module.js +0 -17
  247. package/module/module-base.d.ts +0 -18
  248. package/module/module-base.js +0 -40
  249. package/module/module-metric-reporter.d.ts +0 -29
  250. package/module/module-metric-reporter.js +0 -62
  251. package/openid-connect/mongo-oidc-state.repository.d.ts +0 -21
  252. package/openid-connect/mongo-oidc-state.repository.js +0 -52
  253. package/openid-connect/oidc-state.repository.d.ts +0 -4
  254. package/openid-connect/oidc-state.repository.js +0 -3
  255. package/process-shutdown.d.ts +0 -9
  256. package/process-shutdown.js +0 -65
  257. package/queue/mongo/index.d.ts +0 -4
  258. package/queue/mongo/index.js +0 -4
  259. package/queue/mongo/job.d.ts +0 -12
  260. package/queue/mongo/job.js +0 -1
  261. package/queue/mongo/mongo-job.repository.d.ts +0 -13
  262. package/queue/mongo/mongo-job.repository.js +0 -54
  263. package/queue/mongo/queue.d.ts +0 -38
  264. package/queue/mongo/queue.js +0 -266
  265. package/queue/mongo/queue.provider.d.ts +0 -18
  266. package/queue/mongo/queue.provider.js +0 -38
  267. package/search-index/elastic/config.d.ts +0 -8
  268. package/search-index/elastic/config.js +0 -26
  269. package/search-index/elastic/index.d.ts +0 -8
  270. package/search-index/elastic/index.js +0 -8
  271. package/search-index/elastic/keyword-rewriter.d.ts +0 -8
  272. package/search-index/elastic/keyword-rewriter.js +0 -18
  273. package/search-index/elastic/model/elastic-query.d.ts +0 -16
  274. package/search-index/elastic/model/elastic-query.js +0 -1
  275. package/search-index/elastic/model/index-mapping.d.ts +0 -26
  276. package/search-index/elastic/model/index-mapping.js +0 -4
  277. package/search-index/elastic/model/index.d.ts +0 -3
  278. package/search-index/elastic/model/index.js +0 -3
  279. package/search-index/elastic/model/sort.d.ts +0 -8
  280. package/search-index/elastic/model/sort.js +0 -1
  281. package/search-index/elastic/module.d.ts +0 -10
  282. package/search-index/elastic/module.js +0 -49
  283. package/search-index/elastic/query-builder/boolean-query-builder.d.ts +0 -11
  284. package/search-index/elastic/query-builder/boolean-query-builder.js +0 -52
  285. package/search-index/elastic/query-builder/index.d.ts +0 -1
  286. package/search-index/elastic/query-builder/index.js +0 -1
  287. package/search-index/elastic/query-converter.d.ts +0 -9
  288. package/search-index/elastic/query-converter.js +0 -183
  289. package/search-index/elastic/search-index.d.ts +0 -30
  290. package/search-index/elastic/search-index.js +0 -144
  291. package/search-index/elastic/sort-converter.d.ts +0 -4
  292. package/search-index/elastic/sort-converter.js +0 -14
  293. package/search-index/elastic/types.d.ts +0 -5
  294. package/search-index/elastic/types.js +0 -1
  295. package/search-index/error.d.ts +0 -10
  296. package/search-index/error.js +0 -14
  297. package/search-index/index.d.ts +0 -3
  298. package/search-index/index.js +0 -3
  299. package/search-index/memory/index.d.ts +0 -1
  300. package/search-index/memory/index.js +0 -1
  301. package/search-index/memory/memory-search-index.d.ts +0 -19
  302. package/search-index/memory/memory-search-index.js +0 -144
  303. package/search-index/search-index.d.ts +0 -46
  304. package/search-index/search-index.js +0 -31
  305. package/search-index/search-result.d.ts +0 -12
  306. package/search-index/search-result.js +0 -1
  307. package/theme/adapters/css-adapter.d.ts +0 -5
  308. package/theme/adapters/css-adapter.js +0 -29
  309. package/theme/adapters/index.d.ts +0 -2
  310. package/theme/adapters/index.js +0 -2
  311. package/theme/adapters/tailwind-adapter.d.ts +0 -18
  312. package/theme/adapters/tailwind-adapter.js +0 -32
  313. package/theme/index.d.ts +0 -1
  314. package/theme/index.js +0 -1
  315. package/theme/theme-service.d.ts +0 -43
  316. package/theme/theme-service.js +0 -128
  317. /package/{examples/orm → lock/postgres}/drizzle.config.d.ts +0 -0
@@ -1,32 +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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { ForwardArg, ResolveArg, Singleton, resolveArgumentType } from '../../injector/index.js';
14
- import { Logger } from '../../logger/index.js';
15
- import { Collection } from '../../database/mongo/classes.js';
16
- import { MongoEntityRepository, noopTransformer } from '../../database/mongo/mongo-entity-repository.js';
17
- import { mongoMigrationStateRepositoryModuleConfig } from './module.js';
18
- const indexes = [
19
- { key: { name: 1 }, unique: true }
20
- ];
21
- let MongoMigrationStateRepository = class MongoMigrationStateRepository extends MongoEntityRepository {
22
- constructor(collection, logger) {
23
- super(collection, noopTransformer, { logger, indexes });
24
- }
25
- };
26
- MongoMigrationStateRepository = __decorate([
27
- Singleton({ defaultArgumentProvider: () => mongoMigrationStateRepositoryModuleConfig.defaultMigrationStateRepositoryConfig }),
28
- __param(0, ForwardArg()),
29
- __param(1, ResolveArg('MongoMigrationStateRepository')),
30
- __metadata("design:paramtypes", [Collection, Logger])
31
- ], MongoMigrationStateRepository);
32
- export { MongoMigrationStateRepository };
@@ -1,12 +0,0 @@
1
- import type { MongoRepositoryConfig } from '../../database/mongo/index.js';
2
- import type { MigrationState } from '../../migration/migration-state.js';
3
- export type MongoMigrationStateRepositoryModuleConfig = {
4
- defaultMigrationStateRepositoryConfig: MongoRepositoryConfig<MigrationState> | undefined;
5
- };
6
- export declare const mongoMigrationStateRepositoryModuleConfig: MongoMigrationStateRepositoryModuleConfig;
7
- /**
8
- * configure mongo migration state repository module
9
- * @param migrationStateRepositoryConfig repository configuration for states
10
- * @param register whether to register for {@link MigrationStateRepository}
11
- */
12
- export declare function configureMongoMigrationStateRepository(migrationStateRepositoryConfig: MongoRepositoryConfig<MigrationState>, register?: boolean): void;
@@ -1,17 +0,0 @@
1
- import { Injector } from '../../injector/injector.js';
2
- import { MigrationStateRepository } from '../../migration/migration-state-repository.js';
3
- import { MongoMigrationStateRepository } from './migration-state-repository.js';
4
- export const mongoMigrationStateRepositoryModuleConfig = {
5
- defaultMigrationStateRepositoryConfig: undefined
6
- };
7
- /**
8
- * configure mongo migration state repository module
9
- * @param migrationStateRepositoryConfig repository configuration for states
10
- * @param register whether to register for {@link MigrationStateRepository}
11
- */
12
- export function configureMongoMigrationStateRepository(migrationStateRepositoryConfig, register = true) {
13
- mongoMigrationStateRepositoryModuleConfig.defaultMigrationStateRepositoryConfig = migrationStateRepositoryConfig;
14
- if (register) {
15
- Injector.registerSingleton(MigrationStateRepository, { useToken: MongoMigrationStateRepository });
16
- }
17
- }
@@ -1,18 +0,0 @@
1
- import type { CancellationSignal } from '../cancellation/index.js';
2
- import { CancellationToken } from '../cancellation/index.js';
3
- import type { StringMap } from '../types/index.js';
4
- import type { Module, ModuleMetric } from './module.js';
5
- import { ModuleState } from './module.js';
6
- export declare abstract class ModuleBase implements Module {
7
- private runPromise;
8
- private _state;
9
- protected readonly cancellationToken: CancellationToken;
10
- readonly name: string;
11
- abstract readonly metrics: StringMap<ModuleMetric>;
12
- get state(): ModuleState;
13
- private get stateString();
14
- constructor(name: string);
15
- run(): Promise<void>;
16
- stop(): Promise<void>;
17
- protected abstract _run(cancellationSignal: CancellationSignal): Promise<void>;
18
- }
@@ -1,40 +0,0 @@
1
- import { CancellationToken } from '../cancellation/index.js';
2
- import { ModuleState } from './module.js';
3
- export class ModuleBase {
4
- runPromise;
5
- _state;
6
- cancellationToken;
7
- name;
8
- get state() {
9
- return this._state;
10
- }
11
- get stateString() {
12
- return ModuleState[this._state].toLowerCase();
13
- }
14
- constructor(name) {
15
- this.name = name;
16
- this.runPromise = Promise.resolve();
17
- this._state = ModuleState.Stopped;
18
- this.cancellationToken = new CancellationToken();
19
- }
20
- async run() {
21
- if (this._state != ModuleState.Stopped) {
22
- throw new Error(`cannot start module, it is ${this.stateString}`);
23
- }
24
- this.cancellationToken.unset();
25
- try {
26
- this._state = ModuleState.Running;
27
- this.runPromise = this._run(this.cancellationToken);
28
- await this.runPromise;
29
- this._state = ModuleState.Stopped;
30
- }
31
- catch (error) {
32
- this._state = ModuleState.Erroneous;
33
- throw error;
34
- }
35
- }
36
- async stop() {
37
- this.cancellationToken.set();
38
- await this.runPromise.catch(() => { });
39
- }
40
- }
@@ -1,29 +0,0 @@
1
- import type { CancellationSignal } from '../cancellation/index.js';
2
- import type { MetricAggregation, MetricAggregationOptions } from '../utils/moving-metric.js';
3
- import { MovingMetric } from '../utils/moving-metric.js';
4
- import type { ModuleMetric } from './module.js';
5
- export type MetricReport<Aggregation extends MetricAggregation> = {
6
- displayName: string;
7
- aggregation: Aggregation;
8
- aggregationOptions?: MetricAggregationOptions<Aggregation>;
9
- };
10
- export type MetricReportRegistration = {
11
- metric: ModuleMetric;
12
- moving: MovingMetric;
13
- reports: MetricReport<MetricAggregation>[];
14
- };
15
- export declare class ModuleMetricReporter {
16
- private readonly metricGroups;
17
- private readonly sampleInterval;
18
- private readonly sampleCount;
19
- private readonly reportEveryNthSample;
20
- private longestGroupName;
21
- private longestDisplayName;
22
- constructor(sampleInterval: number, sampleCount: number, reportEveryNthSample: number);
23
- register(groupName: string, ...metrics: {
24
- metric: ModuleMetric;
25
- reports: MetricReport<MetricAggregation>[];
26
- }[]): void;
27
- run(cancellationSignal: CancellationSignal): Promise<void>;
28
- private updateNameLengths;
29
- }
@@ -1,62 +0,0 @@
1
- /* eslint-disable no-console */
2
- import { reduce } from '../utils/iterable-helpers/reduce.js';
3
- import { MovingMetric } from '../utils/moving-metric.js';
4
- import { cancelableTimeout } from '../utils/timing.js';
5
- export class ModuleMetricReporter {
6
- metricGroups;
7
- sampleInterval;
8
- sampleCount;
9
- reportEveryNthSample;
10
- longestGroupName;
11
- longestDisplayName;
12
- constructor(sampleInterval, sampleCount, reportEveryNthSample) {
13
- this.sampleInterval = sampleInterval;
14
- this.sampleCount = sampleCount;
15
- this.reportEveryNthSample = reportEveryNthSample;
16
- this.metricGroups = [];
17
- this.longestGroupName = 0;
18
- this.longestDisplayName = 0;
19
- }
20
- register(groupName, ...metrics) {
21
- const registrations = metrics.map(({ metric, reports }) => {
22
- const registration = {
23
- metric,
24
- moving: new MovingMetric(this.sampleCount * this.sampleInterval),
25
- reports,
26
- };
27
- return registration;
28
- });
29
- this.metricGroups.push({ groupName, registrations });
30
- this.updateNameLengths();
31
- }
32
- async run(cancellationSignal) {
33
- let counter = 0;
34
- while (cancellationSignal.isUnset) {
35
- for (const { registrations } of this.metricGroups) {
36
- for (const { metric, moving } of registrations) {
37
- moving.add(metric.getValue());
38
- }
39
- }
40
- if (counter++ % this.reportEveryNthSample == 0) {
41
- for (const { groupName, registrations } of this.metricGroups) {
42
- console.log(`--- ${groupName} `.padEnd(this.longestGroupName + 8));
43
- for (const { moving, reports } of registrations) {
44
- for (const report of reports) { // eslint-disable-line max-depth
45
- const value = moving.aggregate(report.aggregation, report.aggregationOptions);
46
- const paddedName = report.displayName.padEnd(this.longestDisplayName);
47
- console.log(`| ${paddedName} : ${value}`);
48
- }
49
- }
50
- }
51
- }
52
- await cancelableTimeout(this.sampleInterval, cancellationSignal);
53
- }
54
- }
55
- updateNameLengths() {
56
- this.longestGroupName = reduce(this.metricGroups, (longest, { groupName }) => Math.max(longest, groupName.length), 0);
57
- this.longestDisplayName = this.metricGroups
58
- .flatMap((group) => group.registrations)
59
- .flatMap((registration) => registration.reports)
60
- .reduce((longest, report) => Math.max(longest, report.displayName.length), 0);
61
- }
62
- }
@@ -1,21 +0,0 @@
1
- import type { CollectionArgument, MongoRepositoryConfig } from '../database/mongo/index.js';
2
- import { Collection, MongoEntityRepository } from '../database/mongo/index.js';
3
- import type { Resolvable } from '../injector/index.js';
4
- import { resolveArgumentType } from '../injector/index.js';
5
- import { Logger } from '../logger/index.js';
6
- import type { TypedOmit } from '../types/index.js';
7
- import type { OidcState } from './oidc-state.model.js';
8
- import { OidcStateRepository } from './oidc-state.repository.js';
9
- export type MongoOidcState = TypedOmit<OidcState, 'expiration'> & {
10
- expiration: Date;
11
- };
12
- export declare class MongoOidcStateRepository extends MongoEntityRepository<OidcState, MongoOidcState> implements OidcStateRepository, Resolvable<CollectionArgument<MongoOidcState>> {
13
- readonly [resolveArgumentType]: CollectionArgument<MongoOidcState>;
14
- constructor(collection: Collection<MongoOidcState>, logger: Logger);
15
- }
16
- /**
17
- * configure mongo oidc state repository module
18
- * @param mongoOidcStateRepositoryConfig repository configuration for states
19
- * @param register whether to register for {@link OidcStateRepository}
20
- */
21
- export declare function configureMongoOidcStateRepository(mongoOidcStateRepositoryConfig: MongoRepositoryConfig<OidcState, MongoOidcState>, register?: boolean): void;
@@ -1,52 +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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { Collection, MongoEntityRepository, mapTo } from '../database/mongo/index.js';
14
- import { ForwardArg, ResolveArg, Singleton, resolveArgumentType } from '../injector/index.js';
15
- import { Injector } from '../injector/injector.js';
16
- import { Logger } from '../logger/index.js';
17
- import { OidcStateRepository } from './oidc-state.repository.js';
18
- let repositoryConfig;
19
- const indexes = [
20
- { key: { value: 1 }, unique: true },
21
- { key: { expiration: 1 }, expireAfterSeconds: 1 }
22
- ];
23
- const transformer = {
24
- transform: (state) => ({ ...state, expiration: new Date(state.expiration) }),
25
- untransform: (state) => ({ ...state, expiration: state.expiration.getTime() }),
26
- mapping: {
27
- expiration: mapTo('expiration', (timestamp) => new Date(timestamp))
28
- }
29
- };
30
- let MongoOidcStateRepository = class MongoOidcStateRepository extends MongoEntityRepository {
31
- constructor(collection, logger) {
32
- super(collection, transformer, { logger, indexes });
33
- }
34
- };
35
- MongoOidcStateRepository = __decorate([
36
- Singleton({ defaultArgumentProvider: () => repositoryConfig }),
37
- __param(0, ForwardArg()),
38
- __param(1, ResolveArg('MongoOidcStateRepository')),
39
- __metadata("design:paramtypes", [Collection, Logger])
40
- ], MongoOidcStateRepository);
41
- export { MongoOidcStateRepository };
42
- /**
43
- * configure mongo oidc state repository module
44
- * @param mongoOidcStateRepositoryConfig repository configuration for states
45
- * @param register whether to register for {@link OidcStateRepository}
46
- */
47
- export function configureMongoOidcStateRepository(mongoOidcStateRepositoryConfig, register = true) {
48
- repositoryConfig = mongoOidcStateRepositoryConfig;
49
- if (register) {
50
- Injector.registerSingleton(OidcStateRepository, { useToken: MongoOidcStateRepository });
51
- }
52
- }
@@ -1,4 +0,0 @@
1
- import { EntityRepository } from '../database/index.js';
2
- import type { OidcState } from './oidc-state.model.js';
3
- export declare abstract class OidcStateRepository extends EntityRepository<OidcState> {
4
- }
@@ -1,3 +0,0 @@
1
- import { EntityRepository } from '../database/index.js';
2
- export class OidcStateRepository extends EntityRepository {
3
- }
@@ -1,9 +0,0 @@
1
- import type { CancellationSignal } from './cancellation/index.js';
2
- import { CancellationToken } from './cancellation/index.js';
3
- import type { Logger } from './logger/index.js';
4
- export declare function getShutdownToken(): CancellationToken;
5
- export declare function getShutdownSignal(): CancellationSignal;
6
- export declare function setProcessShutdownLogger(shutdownLogger: Logger): void;
7
- export declare function requestShutdown(exitCode?: number): void;
8
- export declare function forceShutdown(exitCode?: number): void;
9
- export declare function initializeSignals(): void;
@@ -1,65 +0,0 @@
1
- import { CancellationToken } from './cancellation/index.js';
2
- import { isDefined, isUndefined } from './utils/type-guards.js';
3
- const quitSignals = ['SIGTERM', 'SIGINT', 'SIGHUP', 'SIGBREAK'];
4
- const quitEvents = ['uncaughtException' /* , 'multipleResolves' */, 'unhandledRejection', 'rejectionHandled'];
5
- let shutdownToken;
6
- export function getShutdownToken() {
7
- if (isUndefined(shutdownToken)) {
8
- shutdownToken = new CancellationToken();
9
- }
10
- return shutdownToken;
11
- }
12
- export function getShutdownSignal() {
13
- return getShutdownToken().signal;
14
- }
15
- let logger;
16
- export function setProcessShutdownLogger(shutdownLogger) {
17
- logger = shutdownLogger;
18
- }
19
- let shutdownRequested = false;
20
- export function requestShutdown(exitCode = 1) {
21
- if (shutdownRequested) {
22
- return;
23
- }
24
- shutdownRequested = true;
25
- getShutdownToken().set();
26
- const timeout = setTimeout(() => {
27
- logger.warn('forcefully quitting after 20 seconds...');
28
- setTimeout(() => process.exit(exitCode), 1);
29
- }, 20000);
30
- timeout.unref();
31
- }
32
- export function forceShutdown(exitCode = 1) {
33
- logger.warn('forcefully quitting');
34
- setTimeout(() => process.exit(exitCode), 1);
35
- }
36
- let signalsInitialized = false;
37
- export function initializeSignals() {
38
- if (signalsInitialized || (typeof process == 'undefined')) {
39
- return;
40
- }
41
- signalsInitialized = true;
42
- let signalCounter = 0;
43
- let quitReason;
44
- process.on('beforeExit', () => {
45
- if (isDefined(quitReason)) {
46
- console.info('\nquit reason:', ...quitReason);
47
- }
48
- });
49
- for (const event of quitEvents) {
50
- process.on(event, (...args) => {
51
- console.error(event, ...args);
52
- quitReason = args;
53
- requestShutdown();
54
- });
55
- }
56
- for (const quitSignal of quitSignals) {
57
- process.on(quitSignal, (signal) => {
58
- logger.info(`${signal} received, quitting.`);
59
- requestShutdown();
60
- if (++signalCounter > 1) {
61
- forceShutdown();
62
- }
63
- });
64
- }
65
- }
@@ -1,4 +0,0 @@
1
- export * from './job.js';
2
- export * from './mongo-job.repository.js';
3
- export * from './queue.js';
4
- export * from './queue.provider.js';
@@ -1,4 +0,0 @@
1
- export * from './job.js';
2
- export * from './mongo-job.repository.js';
3
- export * from './queue.js';
4
- export * from './queue.provider.js';
@@ -1,12 +0,0 @@
1
- import type { Entity, NewEntity } from '../../database/index.js';
2
- import type { Job } from '../../queue/index.js';
3
- import type { TypedOmit } from '../../types/index.js';
4
- export type MongoJob<T = unknown> = Entity & TypedOmit<Job<T>, 'id'> & {
5
- queue: string;
6
- jobId: string;
7
- enqueueTimestamp: number;
8
- tries: number;
9
- lastDequeueTimestamp: number;
10
- batch: null | string;
11
- };
12
- export type NewMongoJob<T> = NewEntity<MongoJob<T>>;
@@ -1 +0,0 @@
1
- export {};
@@ -1,13 +0,0 @@
1
- import type { CollectionArgument } from '../../database/mongo/index.js';
2
- import { Collection, MongoEntityRepository } from '../../database/mongo/index.js';
3
- import type { Resolvable } from '../../injector/index.js';
4
- import { resolveArgumentType } from '../../injector/index.js';
5
- import { Logger } from '../../logger/index.js';
6
- import { UniqueTagStrategy } from '../../queue/index.js';
7
- import type { MongoJob, NewMongoJob } from './job.js';
8
- export declare class MongoJobRepository<T> extends MongoEntityRepository<MongoJob<T>> implements Resolvable<CollectionArgument<MongoJob<T>>> {
9
- readonly [resolveArgumentType]: CollectionArgument<MongoJob<T>>;
10
- constructor(collection: Collection<MongoJob<T>>, logger: Logger);
11
- insertWithUniqueTagStrategy(newJob: NewMongoJob<T>, uniqueTagStrategy: UniqueTagStrategy): Promise<MongoJob<T>>;
12
- bulkInsertWithUniqueTagStrategy(newJobs: NewMongoJob<T>[], uniqueTagStrategy: UniqueTagStrategy): Promise<void>;
13
- }
@@ -1,54 +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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { getNewId } from '../../database/index.js';
14
- import { Collection, MongoEntityRepository, noopTransformer } from '../../database/mongo/index.js';
15
- import { ForwardArg, ResolveArg, Singleton, resolveArgumentType } from '../../injector/index.js';
16
- import { Logger } from '../../logger/index.js';
17
- import { UniqueTagStrategy } from '../../queue/index.js';
18
- const indexes = [
19
- { key: { queue: 1, jobId: 1 }, unique: true },
20
- { key: { queue: 1, priority: 1, enqueueTimestamp: 1, lastDequeueTimestamp: 1, tries: 1 } },
21
- { key: { queue: 1, tag: 1 } },
22
- { key: { queue: 1, batch: 1 } },
23
- { key: { queue: 1, tries: 1 } },
24
- ];
25
- let MongoJobRepository = class MongoJobRepository extends MongoEntityRepository {
26
- constructor(collection, logger) {
27
- super(collection, noopTransformer, { indexes: indexes, logger });
28
- }
29
- async insertWithUniqueTagStrategy(newJob, uniqueTagStrategy) {
30
- const { queue, tag, ...rest } = newJob;
31
- const updateQuery = (uniqueTagStrategy == UniqueTagStrategy.KeepOld)
32
- ? { $setOnInsert: { _id: getNewId(), ...rest } }
33
- : { $set: rest, $setOnInsert: { _id: getNewId() } };
34
- return await this.baseRepository.loadByFilterAndUpdate({ queue, tag }, updateQuery, { upsert: true, returnDocument: 'after' });
35
- }
36
- async bulkInsertWithUniqueTagStrategy(newJobs, uniqueTagStrategy) {
37
- const bulk = this.baseRepository.bulk();
38
- for (const newJob of newJobs) {
39
- const { queue, tag, ...rest } = newJob;
40
- const updateQuery = (uniqueTagStrategy == UniqueTagStrategy.KeepOld)
41
- ? { $setOnInsert: { _id: getNewId(), ...rest } }
42
- : { $set: rest, $setOnInsert: { _id: getNewId() } };
43
- bulk.update({ queue, tag }, updateQuery, { upsert: true });
44
- }
45
- await bulk.execute(false);
46
- }
47
- };
48
- MongoJobRepository = __decorate([
49
- Singleton(),
50
- __param(0, ForwardArg()),
51
- __param(1, ResolveArg(MongoJobRepository.name)),
52
- __metadata("design:paramtypes", [Collection, Logger])
53
- ], MongoJobRepository);
54
- export { MongoJobRepository };
@@ -1,38 +0,0 @@
1
- import type { CancellationSignal } from '../../cancellation/index.js';
2
- import { Lock } from '../../lock/index.js';
3
- import { MessageBusProvider } from '../../message-bus/index.js';
4
- import type { EnqueueManyItem, EnqueueManyOptions, EnqueueOneOptions, Job, JobTag } from '../../queue/index.js';
5
- import { Queue, type QueueConfig } from '../../queue/index.js';
6
- import { MongoJobRepository } from './mongo-job.repository.js';
7
- export declare class MongoQueue<T = unknown> extends Queue<T> {
8
- private readonly repository;
9
- private readonly lock;
10
- private readonly queueKey;
11
- private readonly messageBus;
12
- readonly processTimeout: number;
13
- readonly maxTries: number;
14
- constructor(repository: MongoJobRepository<T>, lock: Lock, messageBusProvider: MessageBusProvider, key: string, config?: QueueConfig);
15
- enqueue(data: T, options?: EnqueueOneOptions): Promise<Job<T>>;
16
- enqueueMany(items: EnqueueManyItem<T>[], options?: EnqueueManyOptions & {
17
- returnJobs?: false;
18
- }): Promise<void>;
19
- enqueueMany(items: EnqueueManyItem<T>[], options: EnqueueManyOptions & {
20
- returnJobs: true;
21
- }): Promise<Job<T>[]>;
22
- enqueueMany(items: EnqueueManyItem<T>[], options?: EnqueueManyOptions): Promise<void | Job<T>[]>;
23
- has(id: string): Promise<boolean>;
24
- countByTag(tag: JobTag): Promise<number>;
25
- get(id: string): Promise<Job<T> | undefined>;
26
- getByTag(tag: JobTag): Promise<Job<T>[]>;
27
- getByTags(tags: JobTag[]): Promise<Job<T>[]>;
28
- cancel(id: string): Promise<void>;
29
- cancelMany(ids: string[]): Promise<void>;
30
- cancelByTag(tag: JobTag): Promise<void>;
31
- cancelByTags(tags: JobTag[]): Promise<void>;
32
- dequeue(): Promise<Job<T> | undefined>;
33
- dequeueMany(count: number): Promise<Job<T>[]>;
34
- acknowledge(job: Job<T>): Promise<void>;
35
- acknowledgeMany(jobs: Job<T>[]): Promise<void>;
36
- getConsumer(cancellationSignal: CancellationSignal): AsyncIterableIterator<Job<T>>;
37
- getBatchConsumer(size: number, cancellationSignal: CancellationSignal): AsyncIterableIterator<Job<T>[]>;
38
- }