taon 21.0.53 → 21.0.54

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 (114) hide show
  1. package/bin/taon +5 -5
  2. package/bin/taon-debug +5 -5
  3. package/bin/taon-debug-brk +4 -4
  4. package/browser/package.json +1 -1
  5. package/browser-prod/package.json +1 -1
  6. package/lib/build-info._auto-generated_.d.ts +1 -1
  7. package/lib/build-info._auto-generated_.js +1 -1
  8. package/lib/package.json +1 -1
  9. package/lib/ui/index.js +2 -2
  10. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  11. package/lib-prod/base-classes/base-abstract-entity.js +17 -31
  12. package/lib-prod/base-classes/base-angular-service.js +83 -55
  13. package/lib-prod/base-classes/base-class.js +33 -35
  14. package/lib-prod/base-classes/base-context.js +17 -19
  15. package/lib-prod/base-classes/base-controller.js +146 -154
  16. package/lib-prod/base-classes/base-crud-controller.js +250 -221
  17. package/lib-prod/base-classes/base-custom-repository.js +7 -18
  18. package/lib-prod/base-classes/base-electron-service.js +49 -0
  19. package/lib-prod/base-classes/base-entity.js +20 -30
  20. package/lib-prod/base-classes/base-file-upload.middleware.js +72 -75
  21. package/lib-prod/base-classes/base-injector.js +176 -194
  22. package/lib-prod/base-classes/base-middleware.js +8 -5
  23. package/lib-prod/base-classes/base-migration.js +19 -22
  24. package/lib-prod/base-classes/base-provider.js +7 -5
  25. package/lib-prod/base-classes/base-repository.js +601 -573
  26. package/lib-prod/base-classes/base-subscriber-for-entity.js +143 -152
  27. package/lib-prod/base-classes/base.js +18 -0
  28. package/lib-prod/build-info._auto-generated_.js +26 -14
  29. package/lib-prod/config/controller-config.js +24 -24
  30. package/lib-prod/config/controller-options.js +2 -5
  31. package/lib-prod/config/method-config.js +6 -8
  32. package/lib-prod/config/param-config.js +2 -8
  33. package/lib-prod/constants.js +29 -25
  34. package/lib-prod/context-db-migrations.js +327 -324
  35. package/lib-prod/create-context.js +211 -146
  36. package/lib-prod/decorators/classes/controller-decorator.js +16 -20
  37. package/lib-prod/decorators/classes/entity-decorator.js +26 -47
  38. package/lib-prod/decorators/classes/middleware-decorator.js +14 -24
  39. package/lib-prod/decorators/classes/migration-decorator.js +13 -22
  40. package/lib-prod/decorators/classes/provider-decorator.js +13 -23
  41. package/lib-prod/decorators/classes/repository-decorator.js +13 -22
  42. package/lib-prod/decorators/classes/subscriber-decorator.js +13 -23
  43. package/lib-prod/decorators/decorator-abstract-opt.js +1 -4
  44. package/lib-prod/decorators/http/http-decorators.js +20 -5
  45. package/lib-prod/decorators/http/http-methods-decorators.js +91 -133
  46. package/lib-prod/decorators/http/http-params-decorators.js +36 -62
  47. package/lib-prod/dependency-injection/di-container.js +28 -29
  48. package/lib-prod/endpoint-context-storage.js +27 -32
  49. package/lib-prod/endpoint-context.js +2294 -1930
  50. package/lib-prod/entity-process.js +209 -198
  51. package/lib-prod/env/env.angular-node-app.js +66 -130
  52. package/lib-prod/env/env.docs-webapp.js +66 -130
  53. package/lib-prod/env/env.electron-app.js +66 -130
  54. package/lib-prod/env/env.mobile-app.js +66 -130
  55. package/lib-prod/env/env.npm-lib-and-cli-tool.js +66 -130
  56. package/lib-prod/env/env.vscode-plugin.js +66 -130
  57. package/lib-prod/env/index.js +6 -6
  58. package/lib-prod/express-types.js +1 -0
  59. package/lib-prod/formly/formly.models.js +1 -0
  60. package/lib-prod/formly/fromly.js +196 -175
  61. package/lib-prod/formly/type-from-entity.js +45 -52
  62. package/lib-prod/get-response-value.js +21 -18
  63. package/lib-prod/global-state/taon-global-state/index.js +6 -5
  64. package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.js +18 -19
  65. package/lib-prod/global-state/taon-global-state/taon-global-state.constants.js +6 -9
  66. package/lib-prod/global-state/taon-global-state/taon-global-state.controller.js +40 -46
  67. package/lib-prod/global-state/taon-global-state/taon-global-state.entity.js +33 -46
  68. package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.js +10 -20
  69. package/lib-prod/global-state/taon-global-state/taon-global-state.models.js +43 -33
  70. package/lib-prod/global-state/taon-global-state/taon-global-state.provider.js +10 -20
  71. package/lib-prod/global-state/taon-global-state/taon-global-state.repository.js +43 -44
  72. package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.js +20 -27
  73. package/lib-prod/global-state/taon-global-state/taon-global-state.utils.js +10 -10
  74. package/lib-prod/global-state/taon-transaction-registry/index.js +11 -10
  75. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.js +20 -21
  76. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.js +4 -7
  77. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.js +34 -39
  78. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.js +34 -54
  79. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.js +10 -20
  80. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.js +7 -10
  81. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.js +10 -20
  82. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.js +29 -34
  83. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.js +20 -27
  84. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.js +4 -5
  85. package/lib-prod/helpers/class-helpers.js +210 -177
  86. package/lib-prod/helpers/clone-obj.js +16 -20
  87. package/lib-prod/helpers/taon-helpers.js +132 -114
  88. package/lib-prod/index._auto-generated_.js +5 -0
  89. package/lib-prod/index.js +248 -227
  90. package/lib-prod/inject.js +88 -33
  91. package/lib-prod/migrations/index.js +2 -1
  92. package/lib-prod/migrations/migrations_index._auto-generated_.js +3 -0
  93. package/lib-prod/models.js +72 -103
  94. package/lib-prod/orm/columns.js +58 -118
  95. package/lib-prod/orm/index.js +56 -1
  96. package/lib-prod/package.json +1 -1
  97. package/lib-prod/realtime/realtime-client.js +188 -186
  98. package/lib-prod/realtime/realtime-core.js +77 -78
  99. package/lib-prod/realtime/realtime-server.js +225 -240
  100. package/lib-prod/realtime/realtime-strategy/index.js +4 -4
  101. package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.js +273 -219
  102. package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.js +267 -240
  103. package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.js +26 -20
  104. package/lib-prod/realtime/realtime-strategy/realtime-strategy.js +10 -13
  105. package/lib-prod/realtime/realtime-subs-manager.js +82 -90
  106. package/lib-prod/realtime/realtime.models.js +2 -0
  107. package/lib-prod/symbols.js +104 -105
  108. package/lib-prod/ui/index.js +1 -5
  109. package/lib-prod/ui/taon-admin-mode-configuration/index.js +1 -5
  110. package/lib-prod/validators.js +43 -37
  111. package/lib-prod.split-namespaces.json +31 -91
  112. package/package.json +1 -1
  113. package/websql/package.json +1 -1
  114. package/websql-prod/package.json +1 -1
@@ -1,48 +1,42 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __decorateClass = (decorators, target, key, kind) => {
4
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
- if (decorator = decorators[i])
7
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
- if (kind && result) __defProp(target, key, result);
9
- return result;
1
+ //#region imports
2
+ import { TaonController } from '../../decorators/classes/controller-decorator';
3
+ import { TaonBaseCrudController } from '../../base-classes/base-crud-controller';
4
+ import { Query } from '../../decorators/http/http-params-decorators';
5
+ import { GET } from '../../decorators/http/http-methods-decorators';
6
+ import { POST } from '../../decorators/http/http-methods-decorators';
7
+ import { TAON_GLOBAL_STATE } from './taon-global-state.entity';
8
+ import { TaonGlobalStateRepository } from './taon-global-state.repository';
9
+ //#endregion
10
+ let TaonGlobalStateController = class TaonGlobalStateController extends TaonBaseCrudController {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.entityClassResolveFn = () => TAON_GLOBAL_STATE;
14
+ this.taonGlobalStateRepository = this.injectCustomRepo(TaonGlobalStateRepository);
15
+ }
16
+ getStatus() {
17
+ return async () => {
18
+ //#region @websqlFunc
19
+ const stateEntity = await this.taonGlobalStateRepository.getLastStatus();
20
+ return stateEntity.status;
21
+ //#endregion
22
+ };
23
+ }
24
+ setDraining(secondsBeforeReadonly = 0) {
25
+ return async () => {
26
+ await this.taonGlobalStateRepository.setDraining(secondsBeforeReadonly);
27
+ };
28
+ }
10
29
  };
11
- var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
12
- import { TaonController } from "../../decorators/classes/controller-decorator";
13
- import { TaonBaseCrudController } from "../../base-classes/base-crud-controller";
14
- import { Query } from "../../decorators/http/http-params-decorators";
15
- import { GET } from "../../decorators/http/http-methods-decorators";
16
- import { POST } from "../../decorators/http/http-methods-decorators";
17
- import { TAON_GLOBAL_STATE } from "./taon-global-state.entity";
18
- import { TaonGlobalStateRepository } from "./taon-global-state.repository";
19
- let TaonGlobalStateController = class extends TaonBaseCrudController {
20
- entityClassResolveFn = () => TAON_GLOBAL_STATE;
21
- taonGlobalStateRepository = this.injectCustomRepo(TaonGlobalStateRepository);
22
- getStatus() {
23
- return async () => {
24
- const stateEntity = await this.taonGlobalStateRepository.getLastStatus();
25
- return stateEntity.status;
26
- };
27
- }
28
- setDraining(secondsBeforeReadonly = 0) {
29
- return async () => {
30
- await this.taonGlobalStateRepository.setDraining(secondsBeforeReadonly);
31
- };
32
- }
33
- };
34
- __decorateClass([
35
- GET()
36
- ], TaonGlobalStateController.prototype, "getStatus", 1);
37
- __decorateClass([
38
- POST(),
39
- __decorateParam(0, Query("secondsBeforeReadonly"))
40
- ], TaonGlobalStateController.prototype, "setDraining", 1);
41
- TaonGlobalStateController = __decorateClass([
42
- TaonController({
43
- className: "TaonGlobalStateController"
44
- })
30
+ __decorate([
31
+ GET()
32
+ ], TaonGlobalStateController.prototype, "getStatus", null);
33
+ __decorate([
34
+ POST(),
35
+ __param(0, Query('secondsBeforeReadonly'))
36
+ ], TaonGlobalStateController.prototype, "setDraining", null);
37
+ TaonGlobalStateController = __decorate([
38
+ TaonController({
39
+ className: 'TaonGlobalStateController',
40
+ })
45
41
  ], TaonGlobalStateController);
46
- export {
47
- TaonGlobalStateController
48
- };
42
+ export { TaonGlobalStateController };
@@ -1,48 +1,35 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __decorateClass = (decorators, target, key, kind) => {
4
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
- if (decorator = decorators[i])
7
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
- if (kind && result) __defProp(target, key, result);
9
- return result;
1
+ //#region imports
2
+ import { CreateDateColumn, CustomColumn } from '../../orm/columns';
3
+ import { TaonGlobalStateDefaultsValues } from './taon-global-state.constants';
4
+ import { TaonBaseAbstractEntity } from '../../base-classes/base-abstract-entity';
5
+ import { TaonEntity } from '../../decorators/classes/entity-decorator';
6
+ //#endregion
7
+ let TAON_GLOBAL_STATE = class TAON_GLOBAL_STATE extends TaonBaseAbstractEntity {
10
8
  };
11
- import { CreateDateColumn, CustomColumn } from "../../orm/columns";
12
- import { TaonGlobalStateDefaultsValues } from "./taon-global-state.constants";
13
- import { TaonBaseAbstractEntity } from "../../base-classes/base-abstract-entity";
14
- import { TaonEntity } from "../../decorators/classes/entity-decorator";
15
- let TAON_GLOBAL_STATE = class extends TaonBaseAbstractEntity {
16
- //#endregion
17
- status;
18
- //#endregion
19
- createdAt;
20
- //#endregion
21
- secondsBeforeReadonly;
22
- };
23
- __decorateClass([
24
- CustomColumn({
25
- type: "varchar",
26
- length: 20,
27
- nullable: false,
28
- default: TaonGlobalStateDefaultsValues.status
29
- })
30
- ], TAON_GLOBAL_STATE.prototype, "status", 2);
31
- __decorateClass([
32
- CreateDateColumn()
33
- ], TAON_GLOBAL_STATE.prototype, "createdAt", 2);
34
- __decorateClass([
35
- CustomColumn({
36
- type: "int",
37
- nullable: true
38
- })
39
- ], TAON_GLOBAL_STATE.prototype, "secondsBeforeReadonly", 2);
40
- TAON_GLOBAL_STATE = __decorateClass([
41
- TaonEntity({
42
- className: "TAON_GLOBAL_STATE",
43
- createTable: true
44
- })
9
+ __decorate([
10
+ CustomColumn({
11
+ type: 'varchar',
12
+ length: 20,
13
+ nullable: false,
14
+ default: TaonGlobalStateDefaultsValues.status,
15
+ })
16
+ //#endregion
17
+ ], TAON_GLOBAL_STATE.prototype, "status", void 0);
18
+ __decorate([
19
+ CreateDateColumn()
20
+ //#endregion
21
+ ], TAON_GLOBAL_STATE.prototype, "createdAt", void 0);
22
+ __decorate([
23
+ CustomColumn({
24
+ type: 'int',
25
+ nullable: true,
26
+ })
27
+ //#endregion
28
+ ], TAON_GLOBAL_STATE.prototype, "secondsBeforeReadonly", void 0);
29
+ TAON_GLOBAL_STATE = __decorate([
30
+ TaonEntity({
31
+ className: 'TAON_GLOBAL_STATE',
32
+ createTable: true,
33
+ })
45
34
  ], TAON_GLOBAL_STATE);
46
- export {
47
- TAON_GLOBAL_STATE
48
- };
35
+ export { TAON_GLOBAL_STATE };
@@ -1,22 +1,12 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __decorateClass = (decorators, target, key, kind) => {
4
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
- if (decorator = decorators[i])
7
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
- if (kind && result) __defProp(target, key, result);
9
- return result;
1
+ //#region imports
2
+ import { TaonBaseMiddleware } from '../../base-classes/base-middleware';
3
+ import { TaonMiddleware } from '../../decorators/classes/middleware-decorator';
4
+ //#endregion
5
+ let TaonGlobalStateMiddleware = class TaonGlobalStateMiddleware extends TaonBaseMiddleware {
10
6
  };
11
- import { TaonBaseMiddleware } from "../../base-classes/base-middleware";
12
- import { TaonMiddleware } from "../../decorators/classes/middleware-decorator";
13
- let TaonGlobalStateMiddleware = class extends TaonBaseMiddleware {
14
- };
15
- TaonGlobalStateMiddleware = __decorateClass([
16
- TaonMiddleware({
17
- className: "TaonGlobalStateMiddleware"
18
- })
7
+ TaonGlobalStateMiddleware = __decorate([
8
+ TaonMiddleware({
9
+ className: 'TaonGlobalStateMiddleware',
10
+ })
19
11
  ], TaonGlobalStateMiddleware);
20
- export {
21
- TaonGlobalStateMiddleware
22
- };
12
+ export { TaonGlobalStateMiddleware };
@@ -1,34 +1,44 @@
1
- var TaonGlobalStateStatus = /* @__PURE__ */ ((TaonGlobalStateStatus2) => {
2
- TaonGlobalStateStatus2["NORMAL"] = "normal";
3
- TaonGlobalStateStatus2["DRAINING"] = "draining";
4
- TaonGlobalStateStatus2["READONLY"] = "readonly";
5
- TaonGlobalStateStatus2["MIGRATING"] = "migrating";
6
- TaonGlobalStateStatus2["FROZEN"] = "frozen";
7
- return TaonGlobalStateStatus2;
8
- })(TaonGlobalStateStatus || {});
9
- const allowedTaonGlobalStatusOrders = {
10
- ["normal" /* NORMAL */]: [
11
- "draining" /* DRAINING */,
12
- "frozen" /* FROZEN */
13
- ],
14
- ["draining" /* DRAINING */]: [
15
- "readonly" /* READONLY */,
16
- "frozen" /* FROZEN */
17
- ],
18
- ["readonly" /* READONLY */]: [
19
- "migrating" /* MIGRATING */,
20
- "normal" /* NORMAL */,
21
- "frozen" /* FROZEN */
22
- ],
23
- ["migrating" /* MIGRATING */]: [
24
- "readonly" /* READONLY */
25
- ],
26
- ["frozen" /* FROZEN */]: [
27
- "readonly" /* READONLY */,
28
- "normal" /* NORMAL */
29
- ]
30
- };
31
- export {
32
- TaonGlobalStateStatus,
33
- allowedTaonGlobalStatusOrders
1
+ export var TaonGlobalStateStatus;
2
+ (function (TaonGlobalStateStatus) {
3
+ TaonGlobalStateStatus["NORMAL"] = "normal";
4
+ /**
5
+ * no new transactions allowed
6
+ * existing ones may finish
7
+ */
8
+ TaonGlobalStateStatus["DRAINING"] = "draining";
9
+ /**
10
+ * DB is readonly
11
+ * app is readonly (no writes, no side effects)
12
+ */
13
+ TaonGlobalStateStatus["READONLY"] = "readonly";
14
+ /**
15
+ * Db and app still readonly - migration in progress
16
+ */
17
+ TaonGlobalStateStatus["MIGRATING"] = "migrating";
18
+ /**
19
+ * emergency stop / maintenance mode
20
+ */
21
+ TaonGlobalStateStatus["FROZEN"] = "frozen";
22
+ })(TaonGlobalStateStatus || (TaonGlobalStateStatus = {}));
23
+ export const allowedTaonGlobalStatusOrders = {
24
+ [TaonGlobalStateStatus.NORMAL]: [
25
+ TaonGlobalStateStatus.DRAINING,
26
+ TaonGlobalStateStatus.FROZEN,
27
+ ],
28
+ [TaonGlobalStateStatus.DRAINING]: [
29
+ TaonGlobalStateStatus.READONLY,
30
+ TaonGlobalStateStatus.FROZEN,
31
+ ],
32
+ [TaonGlobalStateStatus.READONLY]: [
33
+ TaonGlobalStateStatus.MIGRATING,
34
+ TaonGlobalStateStatus.NORMAL,
35
+ TaonGlobalStateStatus.FROZEN,
36
+ ],
37
+ [TaonGlobalStateStatus.MIGRATING]: [
38
+ TaonGlobalStateStatus.READONLY
39
+ ],
40
+ [TaonGlobalStateStatus.FROZEN]: [
41
+ TaonGlobalStateStatus.READONLY,
42
+ TaonGlobalStateStatus.NORMAL,
43
+ ],
34
44
  };
@@ -1,22 +1,12 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __decorateClass = (decorators, target, key, kind) => {
4
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
- if (decorator = decorators[i])
7
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
- if (kind && result) __defProp(target, key, result);
9
- return result;
1
+ //#region imports
2
+ import { TaonBaseProvider } from '../../base-classes/base-provider';
3
+ import { TaonProvider } from '../../decorators/classes/provider-decorator';
4
+ //#endregion
5
+ let TaonGlobalStateProvider = class TaonGlobalStateProvider extends TaonBaseProvider {
10
6
  };
11
- import { TaonBaseProvider } from "../../base-classes/base-provider";
12
- import { TaonProvider } from "../../decorators/classes/provider-decorator";
13
- let TaonGlobalStateProvider = class extends TaonBaseProvider {
14
- };
15
- TaonGlobalStateProvider = __decorateClass([
16
- TaonProvider({
17
- className: "TaonGlobalStateProvider"
18
- })
7
+ TaonGlobalStateProvider = __decorate([
8
+ TaonProvider({
9
+ className: 'TaonGlobalStateProvider',
10
+ })
19
11
  ], TaonGlobalStateProvider);
20
- export {
21
- TaonGlobalStateProvider
22
- };
12
+ export { TaonGlobalStateProvider };
@@ -1,47 +1,46 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __decorateClass = (decorators, target, key, kind) => {
4
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
- if (decorator = decorators[i])
7
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
- if (kind && result) __defProp(target, key, result);
9
- return result;
10
- };
11
- import { TaonBaseRepository } from "../../base-classes/base-repository";
12
- import { TaonRepository } from "../../decorators/classes/repository-decorator";
13
- import { TAON_GLOBAL_STATE } from "./taon-global-state.entity";
14
- import { TaonGlobalStateStatus } from "./taon-global-state.models";
15
- import { TaonGlobalStateUtils__NS__assertAllowedTransition } from "./taon-global-state.utils";
16
- let TaonGlobalStateRepository = class extends TaonBaseRepository {
17
- entityClassResolveFn = () => TAON_GLOBAL_STATE;
18
- async getLastStatus() {
19
- const lastStatus = await this.findOne({
20
- order: { createdAt: "DESC" }
21
- });
22
- return lastStatus;
23
- }
24
- async setDraining(secondsBeforeReadonly = 0) {
25
- await this.transitionTo(TaonGlobalStateStatus.DRAINING);
26
- if (secondsBeforeReadonly > 0) {
27
- setTimeout(async () => {
28
- await this.transitionTo(TaonGlobalStateStatus.READONLY);
29
- }, secondsBeforeReadonly);
1
+ //#region imports
2
+ import { TaonBaseRepository } from '../../base-classes/base-repository';
3
+ import { TaonRepository } from '../../decorators/classes/repository-decorator';
4
+ import { TAON_GLOBAL_STATE } from './taon-global-state.entity';
5
+ import { TaonGlobalStateStatus } from './taon-global-state.models';
6
+ import { TaonGlobalStateUtils__NS__assertAllowedTransition } from './taon-global-state.utils';
7
+ //#endregion
8
+ let TaonGlobalStateRepository = class TaonGlobalStateRepository extends TaonBaseRepository {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.entityClassResolveFn = () => TAON_GLOBAL_STATE;
12
+ }
13
+ async getLastStatus() {
14
+ //#region @websqlFunc
15
+ const lastStatus = await this.findOne({
16
+ order: { createdAt: 'DESC' },
17
+ });
18
+ return lastStatus;
19
+ //#endregion
20
+ }
21
+ async setDraining(secondsBeforeReadonly = 0) {
22
+ //#region @websqlFunc
23
+ await this.transitionTo(TaonGlobalStateStatus.DRAINING);
24
+ if (secondsBeforeReadonly > 0) {
25
+ setTimeout(async () => {
26
+ await this.transitionTo(TaonGlobalStateStatus.READONLY);
27
+ }, secondsBeforeReadonly);
28
+ }
29
+ //#endregion
30
+ }
31
+ async transitionTo(next) {
32
+ //#region @websqlFunc
33
+ const current = await this.getLastStatus();
34
+ TaonGlobalStateUtils__NS__assertAllowedTransition(current.status, next);
35
+ const newState = this.create({ status: next });
36
+ await this.save(newState);
37
+ return newState;
38
+ //#endregion
30
39
  }
31
- }
32
- async transitionTo(next) {
33
- const current = await this.getLastStatus();
34
- TaonGlobalStateUtils__NS__assertAllowedTransition(current.status, next);
35
- const newState = this.create({ status: next });
36
- await this.save(newState);
37
- return newState;
38
- }
39
40
  };
40
- TaonGlobalStateRepository = __decorateClass([
41
- TaonRepository({
42
- className: "TaonGlobalStateRepository"
43
- })
41
+ TaonGlobalStateRepository = __decorate([
42
+ TaonRepository({
43
+ className: 'TaonGlobalStateRepository',
44
+ })
44
45
  ], TaonGlobalStateRepository);
45
- export {
46
- TaonGlobalStateRepository
47
- };
46
+ export { TaonGlobalStateRepository };
@@ -1,29 +1,22 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __decorateClass = (decorators, target, key, kind) => {
4
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
- if (decorator = decorators[i])
7
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
- if (kind && result) __defProp(target, key, result);
9
- return result;
1
+ //#region imports
2
+ import { TaonBaseSubscriberForEntity } from '../../base-classes/base-subscriber-for-entity';
3
+ import { TaonSubscriber } from '../../decorators/classes/subscriber-decorator';
4
+ import { TAON_GLOBAL_STATE } from './taon-global-state.entity';
5
+ import { TaonGlobalStateProvider } from './taon-global-state.provider';
6
+ //#endregion
7
+ let TaonGlobalStateSubscriber = class TaonGlobalStateSubscriber extends TaonBaseSubscriberForEntity {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.taonGlobalStateProvider = this.injectProvider(TaonGlobalStateProvider);
11
+ }
12
+ listenTo() {
13
+ return TAON_GLOBAL_STATE;
14
+ }
10
15
  };
11
- import { TaonBaseSubscriberForEntity } from "../../base-classes/base-subscriber-for-entity";
12
- import { TaonSubscriber } from "../../decorators/classes/subscriber-decorator";
13
- import { TAON_GLOBAL_STATE } from "./taon-global-state.entity";
14
- import { TaonGlobalStateProvider } from "./taon-global-state.provider";
15
- let TaonGlobalStateSubscriber = class extends TaonBaseSubscriberForEntity {
16
- taonGlobalStateProvider = this.injectProvider(TaonGlobalStateProvider);
17
- listenTo() {
18
- return TAON_GLOBAL_STATE;
19
- }
20
- };
21
- TaonGlobalStateSubscriber = __decorateClass([
22
- TaonSubscriber({
23
- className: "TaonGlobalStateSubscriber"
24
- // allowedEvents: ['afterUpdate'],
25
- })
16
+ TaonGlobalStateSubscriber = __decorate([
17
+ TaonSubscriber({
18
+ className: 'TaonGlobalStateSubscriber',
19
+ // allowedEvents: ['afterUpdate'],
20
+ })
26
21
  ], TaonGlobalStateSubscriber);
27
- export {
28
- TaonGlobalStateSubscriber
29
- };
22
+ export { TaonGlobalStateSubscriber };
@@ -1,11 +1,11 @@
1
- import {
2
- allowedTaonGlobalStatusOrders
3
- } from "./taon-global-state.models";
4
- const TaonGlobalStateUtils__NS__assertAllowedTransition = (from, to) => {
5
- if (!allowedTaonGlobalStatusOrders[from]?.includes(to)) {
6
- throw new Error(`Invalid state transition: ${from} \u2192 ${to}`);
7
- }
8
- };
9
- export {
10
- TaonGlobalStateUtils__NS__assertAllowedTransition
1
+ import { allowedTaonGlobalStatusOrders, } from './taon-global-state.models';
2
+ //namespace TaonGlobalStateUtils
3
+ // export function isActive(state: string): state is TaonGlobalStateStatus {
4
+ // return state === 'active';
5
+ // }
6
+ export const TaonGlobalStateUtils__NS__assertAllowedTransition = (from, to) => {
7
+ if (!allowedTaonGlobalStatusOrders[from]?.includes(to)) {
8
+ throw new Error(`Invalid state transition: ${from} → ${to}`);
9
+ }
11
10
  };
11
+ //end of namespace TaonGlobalStateUtils
@@ -1,10 +1,11 @@
1
- export * from "./taon-transaction-registry.abstract.context";
2
- export * from "./taon-transaction-registry.constants";
3
- export * from "./taon-transaction-registry.controller";
4
- export * from "./taon-transaction-registry.entity";
5
- export * from "./taon-transaction-registry.middleware";
6
- export * from "./taon-transaction-registry.models";
7
- export * from "./taon-transaction-registry.provider";
8
- export * from "./taon-transaction-registry.repository";
9
- export * from "./taon-transaction-registry.subscriber";
10
- export * from "./taon-transaction-registry.utils";
1
+ /* */
2
+ export * from './taon-transaction-registry.abstract.context';
3
+ export * from './taon-transaction-registry.constants';
4
+ export * from './taon-transaction-registry.controller';
5
+ export * from './taon-transaction-registry.entity';
6
+ export * from './taon-transaction-registry.middleware';
7
+ export * from './taon-transaction-registry.models';
8
+ export * from './taon-transaction-registry.provider';
9
+ export * from './taon-transaction-registry.repository';
10
+ export * from './taon-transaction-registry.subscriber';
11
+ export * from './taon-transaction-registry.utils';
@@ -1,22 +1,21 @@
1
- import { TaonBaseContext } from "../../base-classes/base-context";
2
- import { createContext } from "../../create-context";
3
- import { TaonTransactionRegistryController } from "./taon-transaction-registry.controller";
4
- import { TAON_TANSACTION_REGISTRY } from "./taon-transaction-registry.entity";
5
- import { TaonTransactionRegistryMiddleware } from "./taon-transaction-registry.middleware";
6
- import { TaonTransactionRegistryProvider } from "./taon-transaction-registry.provider";
7
- import { TaonTransactionRegistryRepository } from "./taon-transaction-registry.repository";
8
- import { TaonTransactionRegistrySubscriber } from "./taon-transaction-registry.subscriber";
9
- const TaonTransactionRegistryContext = createContext(() => ({
10
- contextName: "TaonTransactionRegistryContext",
11
- abstract: true,
12
- contexts: { TaonBaseContext },
13
- entities: { TAON_TANSACTION_REGISTRY },
14
- controllers: { TaonTransactionRegistryController },
15
- repositories: { TaonTransactionRegistryRepository },
16
- providers: { TaonTransactionRegistryProvider },
17
- middlewares: { TaonTransactionRegistryMiddleware },
18
- subscribers: { TaonTransactionRegistrySubscriber }
1
+ //#region imports
2
+ import { TaonBaseContext } from '../../base-classes/base-context';
3
+ import { createContext } from '../../create-context';
4
+ import { TaonTransactionRegistryController } from './taon-transaction-registry.controller';
5
+ import { TAON_TANSACTION_REGISTRY } from './taon-transaction-registry.entity';
6
+ import { TaonTransactionRegistryMiddleware } from './taon-transaction-registry.middleware';
7
+ import { TaonTransactionRegistryProvider } from './taon-transaction-registry.provider';
8
+ import { TaonTransactionRegistryRepository } from './taon-transaction-registry.repository';
9
+ import { TaonTransactionRegistrySubscriber } from './taon-transaction-registry.subscriber';
10
+ //#endregion
11
+ export const TaonTransactionRegistryContext = createContext(() => ({
12
+ contextName: 'TaonTransactionRegistryContext',
13
+ abstract: true,
14
+ contexts: { TaonBaseContext },
15
+ entities: { TAON_TANSACTION_REGISTRY },
16
+ controllers: { TaonTransactionRegistryController },
17
+ repositories: { TaonTransactionRegistryRepository },
18
+ providers: { TaonTransactionRegistryProvider },
19
+ middlewares: { TaonTransactionRegistryMiddleware },
20
+ subscribers: { TaonTransactionRegistrySubscriber },
19
21
  }));
20
- export {
21
- TaonTransactionRegistryContext
22
- };
@@ -1,8 +1,5 @@
1
- const TaonTransactionRegistryDefaultsValues = {
2
- description: "",
3
- version: 0,
4
- id: void 0
5
- };
6
- export {
7
- TaonTransactionRegistryDefaultsValues
1
+ export const TaonTransactionRegistryDefaultsValues = {
2
+ description: '',
3
+ version: 0,
4
+ id: void 0,
8
5
  };