@golemio/fypr 1.7.2-dev.2584873493 → 1.7.2-dev.2602634331

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 (81) hide show
  1. package/db/example/00_clear_test_data.sql +3 -0
  2. package/db/example/06_information_panels_presets.sql +145 -0
  3. package/db/migrations/postgresql/20260601000000-add-information-panels-presets.js +53 -0
  4. package/db/migrations/postgresql/20260615000000-add-is-testing-to-agg-view.js +47 -0
  5. package/db/migrations/postgresql/sqls/20260601000000-add-information-panels-presets-down.sql +4 -0
  6. package/db/migrations/postgresql/sqls/20260601000000-add-information-panels-presets-up.sql +50 -0
  7. package/db/migrations/postgresql/sqls/20260615000000-add-is-testing-to-agg-view-down.sql +21 -0
  8. package/db/migrations/postgresql/sqls/20260615000000-add-is-testing-to-agg-view-up.sql +20 -0
  9. package/dist/integration-engine/ioc/Di.js +10 -2
  10. package/dist/integration-engine/ioc/Di.js.map +1 -1
  11. package/dist/integration-engine/ioc/FYPRIEContainerTokens.d.ts +4 -0
  12. package/dist/integration-engine/ioc/FYPRIEContainerTokens.js +6 -0
  13. package/dist/integration-engine/ioc/FYPRIEContainerTokens.js.map +1 -1
  14. package/dist/integration-engine/repositories/InformationPanelPresetsRepository.d.ts +17 -0
  15. package/dist/integration-engine/repositories/InformationPanelPresetsRepository.js +77 -0
  16. package/dist/integration-engine/repositories/InformationPanelPresetsRepository.js.map +1 -0
  17. package/dist/integration-engine/repositories/InformationPanelPresetsRoutesRepository.d.ts +13 -0
  18. package/dist/integration-engine/repositories/InformationPanelPresetsRoutesRepository.js +63 -0
  19. package/dist/integration-engine/repositories/InformationPanelPresetsRoutesRepository.js.map +1 -0
  20. package/dist/integration-engine/repositories/InformationPanelPresetsStopsRepository.d.ts +13 -0
  21. package/dist/integration-engine/repositories/InformationPanelPresetsStopsRepository.js +61 -0
  22. package/dist/integration-engine/repositories/InformationPanelPresetsStopsRepository.js.map +1 -0
  23. package/dist/integration-engine/workers/FYPRWorker.js +1 -0
  24. package/dist/integration-engine/workers/FYPRWorker.js.map +1 -1
  25. package/dist/integration-engine/workers/tasks/UpdatePresetsTask.d.ts +18 -0
  26. package/dist/integration-engine/workers/tasks/UpdatePresetsTask.js +103 -0
  27. package/dist/integration-engine/workers/tasks/UpdatePresetsTask.js.map +1 -0
  28. package/dist/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.js +4 -2
  29. package/dist/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.js.map +1 -1
  30. package/dist/output-gateway/fypr/data-access/FyprElementRepository.d.ts +6 -1
  31. package/dist/output-gateway/fypr/data-access/FyprElementRepository.js +26 -4
  32. package/dist/output-gateway/fypr/data-access/FyprElementRepository.js.map +1 -1
  33. package/dist/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.js +12 -1
  34. package/dist/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.js.map +1 -1
  35. package/dist/output-gateway/fypr/transformations/InformationPanelOutputTransformation.d.ts +3 -3
  36. package/dist/output-gateway/fypr/transformations/InformationPanelOutputTransformation.js +14 -5
  37. package/dist/output-gateway/fypr/transformations/InformationPanelOutputTransformation.js.map +1 -1
  38. package/dist/output-gateway/interfaces/IOGInformationPanel.d.ts +2 -1
  39. package/dist/output-gateway/interfaces/IOGInformationPanelScopes.d.ts +11 -0
  40. package/dist/output-gateway/interfaces/IOGInformationPanelScopes.js +3 -0
  41. package/dist/output-gateway/interfaces/IOGInformationPanelScopes.js.map +1 -0
  42. package/dist/output-gateway/ioc/Di.js +13 -9
  43. package/dist/output-gateway/ioc/Di.js.map +1 -1
  44. package/dist/schema-definitions/const.d.ts +1 -0
  45. package/dist/schema-definitions/const.js +2 -1
  46. package/dist/schema-definitions/const.js.map +1 -1
  47. package/dist/schema-definitions/data-sources/GolemioPresetsJSONSchema.d.ts +3 -0
  48. package/dist/schema-definitions/data-sources/GolemioPresetsJSONSchema.js +45 -0
  49. package/dist/schema-definitions/data-sources/GolemioPresetsJSONSchema.js.map +1 -0
  50. package/dist/schema-definitions/data-sources/interfaces/IGolemioPresetsResponse.d.ts +15 -0
  51. package/dist/schema-definitions/data-sources/interfaces/IGolemioPresetsResponse.js +3 -0
  52. package/dist/schema-definitions/data-sources/interfaces/IGolemioPresetsResponse.js.map +1 -0
  53. package/dist/schema-definitions/index.d.ts +8 -0
  54. package/dist/schema-definitions/index.js +10 -0
  55. package/dist/schema-definitions/index.js.map +1 -1
  56. package/dist/schema-definitions/models/InformationPanelPresetsModel.d.ts +16 -0
  57. package/dist/schema-definitions/models/InformationPanelPresetsModel.js +45 -0
  58. package/dist/schema-definitions/models/InformationPanelPresetsModel.js.map +1 -0
  59. package/dist/schema-definitions/models/InformationPanelPresetsRoutesAggModel.d.ts +11 -0
  60. package/dist/schema-definitions/models/InformationPanelPresetsRoutesAggModel.js +16 -0
  61. package/dist/schema-definitions/models/InformationPanelPresetsRoutesAggModel.js.map +1 -0
  62. package/dist/schema-definitions/models/InformationPanelPresetsRoutesModel.d.ts +15 -0
  63. package/dist/schema-definitions/models/InformationPanelPresetsRoutesModel.js +50 -0
  64. package/dist/schema-definitions/models/InformationPanelPresetsRoutesModel.js.map +1 -0
  65. package/dist/schema-definitions/models/InformationPanelPresetsStopsModel.d.ts +13 -0
  66. package/dist/schema-definitions/models/InformationPanelPresetsStopsModel.js +38 -0
  67. package/dist/schema-definitions/models/InformationPanelPresetsStopsModel.js.map +1 -0
  68. package/dist/schema-definitions/models/interfaces/IInformationPanelPreset.d.ts +7 -0
  69. package/dist/schema-definitions/models/interfaces/IInformationPanelPreset.js +3 -0
  70. package/dist/schema-definitions/models/interfaces/IInformationPanelPreset.js.map +1 -0
  71. package/dist/schema-definitions/models/interfaces/IInformationPanelPresetRoute.d.ts +6 -0
  72. package/dist/schema-definitions/models/interfaces/IInformationPanelPresetRoute.js +3 -0
  73. package/dist/schema-definitions/models/interfaces/IInformationPanelPresetRoute.js.map +1 -0
  74. package/dist/schema-definitions/models/interfaces/IInformationPanelPresetStop.d.ts +4 -0
  75. package/dist/schema-definitions/models/interfaces/IInformationPanelPresetStop.js +3 -0
  76. package/dist/schema-definitions/models/interfaces/IInformationPanelPresetStop.js.map +1 -0
  77. package/dist/schema-definitions/models/interfaces/IPresetRouteAgg.d.ts +5 -0
  78. package/dist/schema-definitions/models/interfaces/IPresetRouteAgg.js +3 -0
  79. package/dist/schema-definitions/models/interfaces/IPresetRouteAgg.js.map +1 -0
  80. package/docs/openapi-output.yaml +68 -0
  81. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ import { ILogger } from "@golemio/core/dist/helpers";
2
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
3
+ import { AbstractValidatableRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository";
4
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
5
+ import { IInformationPanelPresetStop } from "../../schema-definitions/models/interfaces/IInformationPanelPresetStop";
6
+ export declare class InformationPanelPresetsStopsRepository extends AbstractValidatableRepository {
7
+ schema: string;
8
+ tableName: string;
9
+ validator: JSONSchemaValidator;
10
+ private sequelizeModel;
11
+ constructor(connector: IDatabaseConnector, log: ILogger);
12
+ updateList(data: IInformationPanelPresetStop[]): Promise<void>;
13
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.InformationPanelPresetsStopsRepository = void 0;
16
+ const AbstractValidatableRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository");
17
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
18
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
19
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
20
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
21
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
22
+ const const_1 = require("../../schema-definitions/const");
23
+ const InformationPanelPresetsStopsModel_1 = require("../../schema-definitions/models/InformationPanelPresetsStopsModel");
24
+ let InformationPanelPresetsStopsRepository = class InformationPanelPresetsStopsRepository extends AbstractValidatableRepository_1.AbstractValidatableRepository {
25
+ constructor(connector, log) {
26
+ super(connector, log);
27
+ this.schema = const_1.PG_SCHEMA;
28
+ this.tableName = InformationPanelPresetsStopsModel_1.InformationPanelPresetsStopsModel.tableName;
29
+ this.validator = new golemio_validator_1.JSONSchemaValidator("InformationPanelPresetsStopsRepository", InformationPanelPresetsStopsModel_1.InformationPanelPresetsStopsModel.jsonSchema);
30
+ this.sequelizeModel = connector
31
+ .getConnection()
32
+ .define(this.tableName, InformationPanelPresetsStopsModel_1.InformationPanelPresetsStopsModel.attributeModel, { schema: this.schema });
33
+ }
34
+ async updateList(data) {
35
+ this.validator.Validate(data);
36
+ const transaction = await this.sequelizeModel.sequelize.transaction();
37
+ try {
38
+ await this.sequelizeModel.bulkCreate(data, {
39
+ updateOnDuplicate: InformationPanelPresetsStopsModel_1.InformationPanelPresetsStopsModel.getUpdateAttributes(),
40
+ transaction,
41
+ });
42
+ await this.sequelizeModel.destroy({
43
+ where: { updated_at: { [sequelize_1.Op.lt]: (0, sequelize_1.literal)(const_1.STALE_ROW_THRESHOLD) } },
44
+ transaction,
45
+ });
46
+ await transaction.commit();
47
+ }
48
+ catch (err) {
49
+ await transaction.rollback();
50
+ throw new golemio_errors_1.GeneralError("updateList error", this.constructor.name, err);
51
+ }
52
+ }
53
+ };
54
+ exports.InformationPanelPresetsStopsRepository = InformationPanelPresetsStopsRepository;
55
+ exports.InformationPanelPresetsStopsRepository = InformationPanelPresetsStopsRepository = __decorate([
56
+ (0, tsyringe_1.injectable)(),
57
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
58
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
59
+ __metadata("design:paramtypes", [Object, Object])
60
+ ], InformationPanelPresetsStopsRepository);
61
+ //# sourceMappingURL=InformationPanelPresetsStopsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InformationPanelPresetsStopsRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/InformationPanelPresetsStopsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,8IAA2I;AAC3I,wEAAqE;AACrE,6EAAwE;AACxE,mFAAkF;AAClF,mEAA+E;AAC/E,iEAAwE;AACxE,0DAA4D;AAC5D,yHAAkG;AAI3F,IAAM,sCAAsC,GAA5C,MAAM,sCAAuC,SAAQ,6DAA6B;IAOrF,YAAiD,SAA6B,EAA4B,GAAY;QAClH,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAPnB,WAAM,GAAG,iBAAS,CAAC;QACnB,cAAS,GAAG,qEAAiC,CAAC,SAAS,CAAC;QAO3D,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAmB,CACpC,wCAAwC,EACxC,qEAAiC,CAAC,UAAU,CAC/C,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,SAAS;aAC1B,aAAa,EAAE;aACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,qEAAiC,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3G,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,IAAmC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAU,CAAC,WAAW,EAAE,CAAC;QACvE,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAW,EAAE;gBAC9C,iBAAiB,EAAE,qEAAiC,CAAC,mBAAmB,EAAS;gBACjF,WAAW;aACd,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC9B,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,IAAA,mBAAO,EAAC,2BAAmB,CAAC,EAAE,EAAE;gBAChE,WAAW;aACd,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,6BAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;CACJ,CAAA;AAtCY,wFAAsC;iDAAtC,sCAAsC;IADlD,IAAA,qBAAU,GAAE;IAQI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IAAiC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAPhG,sCAAsC,CAsClD"}
@@ -23,6 +23,7 @@ class FYPRWorker extends workers_1.AbstractWorker {
23
23
  Di_1.fyprIEContainer.resolve(FYPRIEContainerTokens_1.fyprIEContainerTokens.UpdateObelisksTask),
24
24
  Di_1.fyprIEContainer.resolve(FYPRIEContainerTokens_1.fyprIEContainerTokens.UpdateSignpostsTask),
25
25
  Di_1.fyprIEContainer.resolve(FYPRIEContainerTokens_1.fyprIEContainerTokens.UpdateTotemsTask),
26
+ Di_1.fyprIEContainer.resolve(FYPRIEContainerTokens_1.fyprIEContainerTokens.UpdatePresetsTask),
26
27
  ];
27
28
  for (const task of tasks) {
28
29
  this.registerTask(task);
@@ -1 +1 @@
1
- {"version":3,"file":"FYPRWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/FYPRWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA6C;AAC7C,wEAAsE;AACtE,2EAA+E;AAE/E,2CAA+C;AAQ/C,MAAa,UAAW,SAAQ,wBAAc;IAG1C;QACI,KAAK,EAAE,CAAC;QAHgB,SAAI,GAAG,4BAAgB,CAAC,WAAW,EAAE,CAAC;QAI9D,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEe,YAAY,CAAC,IAAW;QACpC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7C,CAAC;IAEO,aAAa;QACjB,MAAM,KAAK,GAAG;YACV,oBAAe,CAAC,OAAO,CAAkB,6CAAqB,CAAC,eAAe,CAAC;YAC/E,oBAAe,CAAC,OAAO,CAAyB,6CAAqB,CAAC,sBAAsB,CAAC;YAC7F,oBAAe,CAAC,OAAO,CAA8B,6CAAqB,CAAC,2BAA2B,CAAC;YACvG,oBAAe,CAAC,OAAO,CAAqB,6CAAqB,CAAC,kBAAkB,CAAC;YACrF,oBAAe,CAAC,OAAO,CAAsB,6CAAqB,CAAC,mBAAmB,CAAC;YACvF,oBAAe,CAAC,OAAO,CAAmB,6CAAqB,CAAC,gBAAgB,CAAC;SACpF,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;CACJ;AA1BD,gCA0BC"}
1
+ {"version":3,"file":"FYPRWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/FYPRWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA6C;AAC7C,wEAAsE;AACtE,2EAA+E;AAE/E,2CAA+C;AAS/C,MAAa,UAAW,SAAQ,wBAAc;IAG1C;QACI,KAAK,EAAE,CAAC;QAHgB,SAAI,GAAG,4BAAgB,CAAC,WAAW,EAAE,CAAC;QAI9D,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEe,YAAY,CAAC,IAAW;QACpC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7C,CAAC;IAEO,aAAa;QACjB,MAAM,KAAK,GAAG;YACV,oBAAe,CAAC,OAAO,CAAkB,6CAAqB,CAAC,eAAe,CAAC;YAC/E,oBAAe,CAAC,OAAO,CAAyB,6CAAqB,CAAC,sBAAsB,CAAC;YAC7F,oBAAe,CAAC,OAAO,CAA8B,6CAAqB,CAAC,2BAA2B,CAAC;YACvG,oBAAe,CAAC,OAAO,CAAqB,6CAAqB,CAAC,kBAAkB,CAAC;YACrF,oBAAe,CAAC,OAAO,CAAsB,6CAAqB,CAAC,mBAAmB,CAAC;YACvF,oBAAe,CAAC,OAAO,CAAmB,6CAAqB,CAAC,gBAAgB,CAAC;YACjF,oBAAe,CAAC,OAAO,CAAoB,6CAAqB,CAAC,iBAAiB,CAAC;SACtF,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;CACJ;AA3BD,gCA2BC"}
@@ -0,0 +1,18 @@
1
+ import { InformationPanelPresetsRepository } from "../../repositories/InformationPanelPresetsRepository";
2
+ import { InformationPanelPresetsRoutesRepository } from "../../repositories/InformationPanelPresetsRoutesRepository";
3
+ import { InformationPanelPresetsStopsRepository } from "../../repositories/InformationPanelPresetsStopsRepository";
4
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
5
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
6
+ export declare class UpdatePresetsTask extends AbstractEmptyTask {
7
+ private readonly presetsRepository;
8
+ private readonly presetsStopsRepository;
9
+ private readonly presetsRoutesRepository;
10
+ readonly queueName = "updatePresetsWithRoutes";
11
+ readonly queueTtl: number;
12
+ private readonly apiKey;
13
+ private readonly presetUrl;
14
+ private readonly presetsValidator;
15
+ constructor(config: ISimpleConfig, presetsRepository: InformationPanelPresetsRepository, presetsStopsRepository: InformationPanelPresetsStopsRepository, presetsRoutesRepository: InformationPanelPresetsRoutesRepository);
16
+ protected execute(): Promise<void>;
17
+ private fetchPresets;
18
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UpdatePresetsTask = void 0;
16
+ const ErrorHelper_1 = require("../../../helpers/errors/ErrorHelper");
17
+ const InformationPanelPresetsRepository_1 = require("../../repositories/InformationPanelPresetsRepository");
18
+ const InformationPanelPresetsRoutesRepository_1 = require("../../repositories/InformationPanelPresetsRoutesRepository");
19
+ const InformationPanelPresetsStopsRepository_1 = require("../../repositories/InformationPanelPresetsStopsRepository");
20
+ const FYPRIEContainerTokens_1 = require("../../ioc/FYPRIEContainerTokens");
21
+ const GolemioPresetsJSONSchema_1 = require("../../../schema-definitions/data-sources/GolemioPresetsJSONSchema");
22
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
23
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
24
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
25
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
26
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
27
+ const constants_1 = require("../constants");
28
+ let UpdatePresetsTask = class UpdatePresetsTask extends integration_engine_1.AbstractEmptyTask {
29
+ constructor(config, presetsRepository, presetsStopsRepository, presetsRoutesRepository) {
30
+ super(constants_1.FYPR_WORKER_NAME.toLowerCase());
31
+ this.presetsRepository = presetsRepository;
32
+ this.presetsStopsRepository = presetsStopsRepository;
33
+ this.presetsRoutesRepository = presetsRoutesRepository;
34
+ this.queueName = "updatePresetsWithRoutes";
35
+ this.queueTtl = 59 * 60 * 1000;
36
+ this.presetsValidator = new golemio_validator_1.JSONSchemaValidator("golemioPresetsValidation", GolemioPresetsJSONSchema_1.golemioPresetsJSONSchema);
37
+ this.apiKey = config.getValue("env.GOLEMIO_API_KEY", "");
38
+ this.presetUrl = config.getValue("module.fypr.ropidPresetsApi.url", "");
39
+ }
40
+ async execute() {
41
+ try {
42
+ const data = await this.fetchPresets();
43
+ const presets = await this.presetsRepository.updateListAndRelink(data.map(({ is_testing, note, route_name }) => ({
44
+ is_testing,
45
+ note,
46
+ route_name,
47
+ information_panel_document_id: null,
48
+ })));
49
+ const presetByRouteName = new Map(presets.map((p) => [p.route_name, p.id]));
50
+ const stops = [];
51
+ const routes = [];
52
+ for (const item of data) {
53
+ const preset_id = presetByRouteName.get(item.route_name);
54
+ for (const stop_id of item.stops) {
55
+ stops.push({ preset_id, stop_id });
56
+ }
57
+ for (const stopRoutes of item.stops_routes ?? []) {
58
+ for (const route of stopRoutes.routes) {
59
+ routes.push({
60
+ preset_id,
61
+ stop_id: stopRoutes.stop_id,
62
+ route_type: route.type,
63
+ route_short_name: route.name,
64
+ });
65
+ }
66
+ }
67
+ }
68
+ await this.presetsStopsRepository.updateList(stops);
69
+ await this.presetsRoutesRepository.updateList(routes);
70
+ }
71
+ catch (err) {
72
+ throw ErrorHelper_1.ErrorHelper.ensureGolemioError(err, new golemio_errors_1.GeneralError("UpdatePresetsTask process error", this.constructor.name, err));
73
+ }
74
+ }
75
+ async fetchPresets() {
76
+ try {
77
+ const response = await fetch(this.presetUrl, {
78
+ headers: { "X-Access-Token": this.apiKey },
79
+ });
80
+ if (!response.ok) {
81
+ throw new Error(`HTTP error - status: ${response.status}`);
82
+ }
83
+ const data = await response.json();
84
+ this.presetsValidator.Validate(data);
85
+ return data;
86
+ }
87
+ catch (err) {
88
+ throw new golemio_errors_1.DatasourceError("Error while fetching presets data", this.constructor.name, err);
89
+ }
90
+ }
91
+ };
92
+ exports.UpdatePresetsTask = UpdatePresetsTask;
93
+ exports.UpdatePresetsTask = UpdatePresetsTask = __decorate([
94
+ (0, tsyringe_1.injectable)(),
95
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
96
+ __param(1, (0, tsyringe_1.inject)(FYPRIEContainerTokens_1.fyprIEContainerTokens.InformationPanelPresetsRepository)),
97
+ __param(2, (0, tsyringe_1.inject)(FYPRIEContainerTokens_1.fyprIEContainerTokens.InformationPanelPresetsStopsRepository)),
98
+ __param(3, (0, tsyringe_1.inject)(FYPRIEContainerTokens_1.fyprIEContainerTokens.InformationPanelPresetsRoutesRepository)),
99
+ __metadata("design:paramtypes", [Object, InformationPanelPresetsRepository_1.InformationPanelPresetsRepository,
100
+ InformationPanelPresetsStopsRepository_1.InformationPanelPresetsStopsRepository,
101
+ InformationPanelPresetsRoutesRepository_1.InformationPanelPresetsRoutesRepository])
102
+ ], UpdatePresetsTask);
103
+ //# sourceMappingURL=UpdatePresetsTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdatePresetsTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/UpdatePresetsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qEAA0D;AAC1D,4GAAuG;AACvG,wHAAmH;AACnH,sHAAiH;AACjH,2EAAsE;AACtE,gHAAsF;AAKtF,wEAAqE;AACrE,8EAA0E;AAC1E,6EAAyF;AACzF,iEAAwE;AACxE,mFAAkF;AAClF,4CAAgD;AAGzC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,sCAAiB;IAQpD,YACoC,MAAqB,EAErD,iBAAqE,EAErE,sBAA+E,EAE/E,uBAAiF;QAEjF,KAAK,CAAC,4BAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;QANrB,sBAAiB,GAAjB,iBAAiB,CAAmC;QAEpD,2BAAsB,GAAtB,sBAAsB,CAAwC;QAE9D,4BAAuB,GAAvB,uBAAuB,CAAyC;QAd5D,cAAS,GAAG,yBAAyB,CAAC;QACtC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAIlC,qBAAgB,GAAG,IAAI,uCAAmB,CAAC,0BAA0B,EAAE,mDAAwB,CAAC,CAAC;QAY9G,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAS,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAS,iCAAiC,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAEkB,KAAK,CAAC,OAAO;QAC5B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAEvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5C,UAAU;gBACV,IAAI;gBACJ,UAAU;gBACV,6BAA6B,EAAE,IAAI;aACtC,CAAC,CAAC,CACN,CAAC;YAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5E,MAAM,KAAK,GAAkC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAmC,EAAE,CAAC;YAElD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC;gBAE1D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;oBAC/C,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;wBACpC,MAAM,CAAC,IAAI,CAAC;4BACR,SAAS;4BACT,OAAO,EAAE,UAAU,CAAC,OAAO;4BAC3B,UAAU,EAAE,KAAK,CAAC,IAAI;4BACtB,gBAAgB,EAAE,KAAK,CAAC,IAAI;yBAC/B,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;YACL,CAAC;YAED,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,yBAAW,CAAC,kBAAkB,CAChC,GAAG,EACH,IAAI,6BAAY,CAAC,iCAAiC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAClF,CAAC;QACN,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;gBACzC,OAAO,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE;aAC7C,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,IAAiC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,gCAAe,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/F,CAAC;IACL,CAAC;CACJ,CAAA;AApFY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,qBAAU,GAAE;IAUJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;IAC9B,WAAA,IAAA,iBAAM,EAAC,6CAAqB,CAAC,iCAAiC,CAAC,CAAA;IAE/D,WAAA,IAAA,iBAAM,EAAC,6CAAqB,CAAC,sCAAsC,CAAC,CAAA;IAEpE,WAAA,IAAA,iBAAM,EAAC,6CAAqB,CAAC,uCAAuC,CAAC,CAAA;6CAHlC,qEAAiC;QAE5B,+EAAsC;QAErC,iFAAuC;GAf5E,iBAAiB,CAoF7B"}
@@ -26,18 +26,20 @@ let V1FyprElementKindsController = class V1FyprElementKindsController {
26
26
  this.informationPanelOutputTransformation = informationPanelOutputTransformation;
27
27
  this.getAll = async (req, res, next) => {
28
28
  try {
29
- const { kind, limit, offset, jis } = (0, express_validator_1.matchedData)(req);
29
+ const { kind, limit, offset, jis, scopes } = (0, express_validator_1.matchedData)(req);
30
30
  const effectiveLimit = req.query.limit !== undefined ? Number(limit) : this.defaultLimit;
31
31
  const where = jis !== undefined && kind === "information-panels" ? { jis_graphic: jis } : undefined;
32
+ const embeds = scopes ? [scopes] : undefined;
32
33
  const data = await this.getRepositoryByKind(kind).getAll({
33
34
  limit: effectiveLimit,
34
35
  offset: offset != null ? Number(offset) : undefined,
35
36
  where,
37
+ embeds,
36
38
  });
37
39
  // if more kinds need transformation, consider extracting to a transformation dispatcher
38
40
  switch (kind) {
39
41
  case "information-panels":
40
- res.status(200).json(this.informationPanelOutputTransformation.transformArray(data));
42
+ res.status(200).json(this.informationPanelOutputTransformation.transformArray(data, embeds));
41
43
  break;
42
44
  default:
43
45
  res.status(200).json(data);
@@ -1 +1 @@
1
- {"version":3,"file":"V1FyprElementKindsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"V1FyprElementKindsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { FyprEmbedConfig } from "../../../schema-definitions/index";
1
2
  import { ILogger } from "@golemio/core/dist/helpers";
2
3
  import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
3
4
  import { AbstractBasicRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractBasicRepository";
@@ -7,13 +8,17 @@ export declare class FyprElementRepository<T> extends AbstractBasicRepository {
7
8
  readonly tableName: string;
8
9
  private readonly modelName;
9
10
  private readonly attributeModel;
11
+ private readonly embedsConfig;
10
12
  private _sequelizeModel?;
13
+ private _embedIncludes?;
11
14
  private get sequelizeModel();
12
- constructor(connector: IDatabaseConnector, logger: ILogger, modelName: string, tableName: string, attributeModel: ModelAttributes<any>);
15
+ private get embedIncludes();
16
+ constructor(connector: IDatabaseConnector, logger: ILogger, modelName: string, tableName: string, attributeModel: ModelAttributes<any>, embeds?: Record<string, FyprEmbedConfig>);
13
17
  getAll(options?: {
14
18
  limit?: number;
15
19
  offset?: number;
16
20
  where?: Record<string, unknown>;
21
+ embeds?: string[];
17
22
  }): Promise<T[]>;
18
23
  getOne(id: string): Promise<T | null>;
19
24
  }
@@ -4,7 +4,8 @@ exports.FyprElementRepository = void 0;
4
4
  const const_1 = require("../../../schema-definitions/const");
5
5
  const AbstractBasicRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractBasicRepository");
6
6
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
7
- // Manually instantiated in Di.ts not registered with the DI container
7
+ // Manually instantiated via instanceCachingFactory in Di.ts (deferred until first resolve, after connect()).
8
+ // sequelizeModel and embedIncludes are lazy so getConnection() is safe to call at first query time.
8
9
  class FyprElementRepository extends AbstractBasicRepository_1.AbstractBasicRepository {
9
10
  get sequelizeModel() {
10
11
  if (!this._sequelizeModel) {
@@ -14,22 +15,43 @@ class FyprElementRepository extends AbstractBasicRepository_1.AbstractBasicRepos
14
15
  }
15
16
  return this._sequelizeModel;
16
17
  }
17
- constructor(connector, logger, modelName, tableName, attributeModel) {
18
+ get embedIncludes() {
19
+ if (!this._embedIncludes) {
20
+ const sequelize = this.connector.getConnection();
21
+ this._embedIncludes = Object.fromEntries(Object.entries(this.embedsConfig).map(([key, cfg]) => {
22
+ const embedModel = sequelize.models[cfg.tableName] ??
23
+ sequelize.define(cfg.tableName, cfg.attributeModel, { schema: const_1.PG_SCHEMA, timestamps: false });
24
+ if (!this.sequelizeModel.associations[cfg.as]) {
25
+ this.sequelizeModel.hasMany(embedModel, {
26
+ foreignKey: cfg.foreignKey,
27
+ sourceKey: cfg.sourceKey,
28
+ as: cfg.as,
29
+ });
30
+ }
31
+ return [key, { model: embedModel, as: cfg.as }];
32
+ }));
33
+ }
34
+ return this._embedIncludes;
35
+ }
36
+ constructor(connector, logger, modelName, tableName, attributeModel, embeds = {}) {
18
37
  super(connector, logger);
19
38
  this.schema = const_1.PG_SCHEMA;
20
39
  this.modelName = modelName;
21
40
  this.tableName = tableName;
22
41
  this.attributeModel = attributeModel;
42
+ this.embedsConfig = embeds;
23
43
  }
24
44
  async getAll(options = {}) {
25
45
  try {
26
- return await this.sequelizeModel.findAll({
46
+ const include = options.embeds?.flatMap((e) => (this.embedIncludes[e] ? [this.embedIncludes[e]] : []));
47
+ const instances = await this.sequelizeModel.findAll({
27
48
  limit: options.limit,
28
49
  offset: options.offset,
29
50
  where: options.where,
30
51
  order: [["source_created_at", "ASC"]],
31
- raw: true,
52
+ include,
32
53
  });
54
+ return instances.map((i) => i.toJSON());
33
55
  }
34
56
  catch (err) {
35
57
  throw new golemio_errors_1.GeneralError(`Database error when listing '${this.modelName}'`, this.constructor.name, err, 500);
@@ -1 +1 @@
1
- {"version":3,"file":"FyprElementRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/fypr/data-access/FyprElementRepository.ts"],"names":[],"mappings":";;;AAAA,6DAAuC;AAGvC,kIAA+H;AAC/H,6EAAwE;AAGxE,wEAAwE;AACxE,MAAa,qBAAyB,SAAQ,iDAAuB;IAOjE,IAAY,cAAc;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS;iBAChC,aAAa,EAAE;iBACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,YACI,SAA6B,EAC7B,MAAe,EACf,SAAiB,EACjB,SAAiB,EACjB,cAAoC;QAEpC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAtBb,WAAM,GAAG,iBAAS,CAAC;QAuB/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,UAAgF,EAAE;QAClG,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBACrC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK,EAAE,CAAC,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBACrC,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,gCAAgC,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/G,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,EAAU;QAC1B,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,iCAAiC,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChH,CAAC;IACL,CAAC;CACJ;AAlDD,sDAkDC"}
1
+ {"version":3,"file":"FyprElementRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/fypr/data-access/FyprElementRepository.ts"],"names":[],"mappings":"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"}
@@ -38,8 +38,19 @@ class V1FyprElementKindsRouter extends AbstractRouter_1.AbstractRouter {
38
38
  .isBoolean({ strict: false })
39
39
  .withMessage("jis must be a boolean")
40
40
  .toBoolean();
41
+ const scopesQueryMiddleware = (0, express_validator_1.query)("scopes")
42
+ .optional()
43
+ .custom((_value, { req }) => {
44
+ if (req.params?.["kind"] !== "information-panels") {
45
+ throw new Error("scopes is only supported for information-panels");
46
+ }
47
+ return true;
48
+ })
49
+ .bail()
50
+ .isIn(["routes"])
51
+ .withMessage("scopes must be one of: routes");
41
52
  this.router.get("/", cacheMiddleware, this.controller.getIndex(`/${this.version}/${this.path}`));
42
- this.router.get("/:kind", kindParamMiddleware, jisQueryMiddleware, (0, Validation_1.paginationLimitMiddleware)("FyprElementKindsRouter"), Validation_1.checkErrors, cacheMiddleware, this.controller.getAll);
53
+ this.router.get("/:kind", kindParamMiddleware, jisQueryMiddleware, scopesQueryMiddleware, (0, Validation_1.paginationLimitMiddleware)("FyprElementKindsRouter"), Validation_1.checkErrors, cacheMiddleware, this.controller.getAll);
43
54
  this.router.get("/:kind/:id", kindParamMiddleware, (0, express_validator_1.param)("id").isUUID(), Validation_1.checkErrors, cacheMiddleware, this.controller.getOne);
44
55
  }
45
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"V1FyprElementKindsRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AAC7C,8EAAsE;AACtE,yDAAwD;AAExD,wEAAqE;AACrE,sFAAmF;AAEnF,6EAAsG;AACtG,+DAA+F;AAC/F,+DAA2D;AAC3D,mFAA2E;AAE3E,MAAa,wBAAyB,SAAQ,+BAAc;IAKxD;QACI,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAL1B,WAAM,GAAW,IAAA,gBAAM,GAAE,CAAC;QAM7B,IAAI,CAAC,qBAAqB,GAAG,4BAAsB,CAAC,OAAO,CAAwB,oBAAc,CAAC,qBAAqB,CAAC,CAAC;QACzH,IAAI,CAAC,UAAU,GAAG,oBAAe,CAAC,OAAO,CACrC,6CAAqB,CAAC,4BAA4B,CACrD,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,MAAM,MAAM,GAAG,4BAAsB,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAS,kDAAkD,EAAE,CAAC,GAAG,EAAE,CAAW,CAAC;QAC7G,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CACxC,gEAAgE,EAChE,EAAE,CACK,CAAC;QAEZ,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAC/F,MAAM,mBAAmB,GAAG,IAAA,yBAAK,EAAC,MAAM,CAAC;aACpC,IAAI,CAAC,4BAAgB,CAAC;aACtB,WAAW,CAAC,wBAAwB,4BAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,kBAAkB,GAAG,IAAA,yBAAK,EAAC,KAAK,CAAC;aAClC,QAAQ,EAAE;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACxB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,oBAAoB,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;aACD,IAAI,EAAE;aACN,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAC5B,WAAW,CAAC,uBAAuB,CAAC;aACpC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEjG,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,EAClB,IAAA,sCAAyB,EAAC,wBAAwB,CAAC,EACnD,wBAAW,EACX,eAAe,EACf,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,YAAY,EACZ,mBAAmB,EACnB,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EACpB,wBAAW,EACX,eAAe,EACf,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;IACN,CAAC;CACJ;AA5DD,4DA4DC;AAEY,QAAA,wBAAwB,GAAmB,IAAI,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"V1FyprElementKindsRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AAC7C,8EAAsE;AACtE,yDAAwD;AAExD,wEAAqE;AACrE,sFAAmF;AAEnF,6EAAsG;AACtG,+DAA+F;AAC/F,+DAA2D;AAC3D,mFAA2E;AAE3E,MAAa,wBAAyB,SAAQ,+BAAc;IAKxD;QACI,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAL1B,WAAM,GAAW,IAAA,gBAAM,GAAE,CAAC;QAM7B,IAAI,CAAC,qBAAqB,GAAG,4BAAsB,CAAC,OAAO,CAAwB,oBAAc,CAAC,qBAAqB,CAAC,CAAC;QACzH,IAAI,CAAC,UAAU,GAAG,oBAAe,CAAC,OAAO,CACrC,6CAAqB,CAAC,4BAA4B,CACrD,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,MAAM,MAAM,GAAG,4BAAsB,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAS,kDAAkD,EAAE,CAAC,GAAG,EAAE,CAAW,CAAC;QAC7G,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CACxC,gEAAgE,EAChE,EAAE,CACK,CAAC;QAEZ,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE/F,MAAM,mBAAmB,GAAG,IAAA,yBAAK,EAAC,MAAM,CAAC;aACpC,IAAI,CAAC,4BAAgB,CAAC;aACtB,WAAW,CAAC,wBAAwB,4BAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExE,MAAM,kBAAkB,GAAG,IAAA,yBAAK,EAAC,KAAK,CAAC;aAClC,QAAQ,EAAE;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACxB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,oBAAoB,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;aACD,IAAI,EAAE;aACN,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAC5B,WAAW,CAAC,uBAAuB,CAAC;aACpC,SAAS,EAAE,CAAC;QAEjB,MAAM,qBAAqB,GAAG,IAAA,yBAAK,EAAC,QAAQ,CAAC;aACxC,QAAQ,EAAE;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACxB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,oBAAoB,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;aACD,IAAI,EAAE;aACN,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;aAChB,WAAW,CAAC,+BAA+B,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEjG,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,IAAA,sCAAyB,EAAC,wBAAwB,CAAC,EACnD,wBAAW,EACX,eAAe,EACf,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,YAAY,EACZ,mBAAmB,EACnB,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EACpB,wBAAW,EACX,eAAe,EACf,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;IACN,CAAC;CACJ;AA3ED,4DA2EC;AAEY,QAAA,wBAAwB,GAAmB,IAAI,wBAAwB,EAAE,CAAC"}
@@ -3,11 +3,11 @@ import { AnyFyprElement } from "../../../schema-definitions";
3
3
  import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
4
4
  export declare class InformationPanelOutputTransformation extends AbstractTransformation<AnyFyprElement, IOGInformationPanel> {
5
5
  readonly name = "InformationPanelOutputTransformation";
6
- transformArray: (data: AnyFyprElement[]) => IOGInformationPanel[];
6
+ transformArray: (data: AnyFyprElement[], embeds?: string[]) => IOGInformationPanel[];
7
7
  transformElement: (element: AnyFyprElement & {
8
8
  toJSON?: () => AnyFyprElement;
9
- }) => IOGInformationPanel;
10
- protected transformInternal: (panel: AnyFyprElement) => IOGInformationPanel;
9
+ }, embeds?: string[]) => IOGInformationPanel;
10
+ protected transformInternal: (panel: AnyFyprElement, embeds?: string[]) => IOGInformationPanel;
11
11
  private convertDelimitedStringToArray;
12
12
  private parsePanelSize;
13
13
  }
@@ -13,15 +13,24 @@ let InformationPanelOutputTransformation = class InformationPanelOutputTransform
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this.name = "InformationPanelOutputTransformation";
16
- this.transformArray = (data) => data.map((item) => this.transformInternal(item.toJSON ? item.toJSON() : item));
17
- this.transformElement = (element) => this.transformInternal(element.toJSON ? element.toJSON() : element);
18
- this.transformInternal = (panel) => {
19
- const { preset, panel_size, ...rest } = panel;
20
- return {
16
+ this.transformArray = (data, embeds) => data.map((item) => this.transformInternal(item.toJSON ? item.toJSON() : item, embeds));
17
+ this.transformElement = (element, embeds) => this.transformInternal(element.toJSON ? element.toJSON() : element, embeds);
18
+ this.transformInternal = (panel, embeds) => {
19
+ const { preset, panel_size, presetsRoutesAgg, ...rest } = panel;
20
+ const result = {
21
21
  ...rest,
22
22
  presets: this.convertDelimitedStringToArray(preset),
23
23
  panel_size: this.parsePanelSize(panel_size),
24
24
  };
25
+ if (embeds?.includes("routes") && presetsRoutesAgg?.length) {
26
+ result.routes = presetsRoutesAgg.map(({ route_name, note, is_testing, routes }) => ({
27
+ route_name,
28
+ note,
29
+ is_testing,
30
+ routes,
31
+ }));
32
+ }
33
+ return result;
25
34
  };
26
35
  }
27
36
  convertDelimitedStringToArray(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"InformationPanelOutputTransformation.js","sourceRoot":"","sources":["../../../../src/output-gateway/fypr/transformations/InformationPanelOutputTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAGA,6GAA0G;AAC1G,iEAAgE;AAGzD,IAAM,oCAAoC,GAA1C,MAAM,oCAAqC,SAAQ,+CAA2D;IAA9G;;QACa,SAAI,GAAG,sCAAsC,CAAC;QAE9C,mBAAc,GAAG,CAAC,IAAsB,EAAyB,EAAE,CAC/E,IAAI,CAAC,GAAG,CAAC,CAAC,IAAwD,EAAE,EAAE,CAClE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7D,CAAC;QAEU,qBAAgB,GAAG,CAAC,OAA2D,EAAuB,EAAE,CACpH,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE9D,sBAAiB,GAAG,CAAC,KAAqB,EAAuB,EAAE;YACzE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,KAA0B,CAAC;YACnE,OAAO;gBACH,GAAG,IAAI;gBACP,OAAO,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC;gBACnD,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;aAC9C,CAAC;QACN,CAAC,CAAC;IAgBN,CAAC;IAdW,6BAA6B,CAAC,KAAoB;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK;aACd,KAAK,CAAC,QAAQ,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAEO,cAAc,CAAC,KAAoB;QACvC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;CACJ,CAAA;AAlCY,oFAAoC;+CAApC,oCAAoC;IADhD,IAAA,qBAAU,GAAE;GACA,oCAAoC,CAkChD"}
1
+ {"version":3,"file":"InformationPanelOutputTransformation.js","sourceRoot":"","sources":["../../../../src/output-gateway/fypr/transformations/InformationPanelOutputTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAIA,6GAA0G;AAC1G,iEAAgE;AAGzD,IAAM,oCAAoC,GAA1C,MAAM,oCAAqC,SAAQ,+CAA2D;IAA9G;;QACa,SAAI,GAAG,sCAAsC,CAAC;QAE9C,mBAAc,GAAG,CAAC,IAAsB,EAAE,MAAiB,EAAyB,EAAE,CAClG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAwD,EAAE,EAAE,CAClE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CACrE,CAAC;QAEU,qBAAgB,GAAG,CAC/B,OAA2D,EAC3D,MAAiB,EACE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5F,sBAAiB,GAAG,CAAC,KAAqB,EAAE,MAAiB,EAAuB,EAAE;YAC5F,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,KAEzD,CAAC;YACF,MAAM,MAAM,GAAwB;gBAChC,GAAG,IAAI;gBACP,OAAO,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC;gBACnD,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;aAC9C,CAAC;YACF,IAAI,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBACzD,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChF,UAAU;oBACV,IAAI;oBACJ,UAAU;oBACV,MAAM;iBACT,CAAC,CAAC,CAAC;YACR,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IAgBN,CAAC;IAdW,6BAA6B,CAAC,KAAoB;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK;aACd,KAAK,CAAC,QAAQ,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAEO,cAAc,CAAC,KAAoB;QACvC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;CACJ,CAAA;AA/CY,oFAAoC;+CAApC,oCAAoC;IADhD,IAAA,qBAAU,GAAE;GACA,oCAAoC,CA+ChD"}
@@ -1,5 +1,6 @@
1
1
  import { IInformationPanel } from "../../schema-definitions/models/interfaces/IInformationPanel";
2
- export type IOGInformationPanel = Omit<IInformationPanel, "preset" | "panel_size"> & {
2
+ import { IOGInformationPanelScopes } from "./IOGInformationPanelScopes";
3
+ export type IOGInformationPanel = Omit<IInformationPanel, "preset" | "panel_size"> & Partial<IOGInformationPanelScopes> & {
3
4
  presets: string[] | null;
4
5
  panel_size: number | null;
5
6
  };
@@ -0,0 +1,11 @@
1
+ import { IPresetRouteAgg } from "../../schema-definitions/models/interfaces/IPresetRouteAgg";
2
+ export type IOGPresetRoute = IPresetRouteAgg;
3
+ export interface IOGPresetRoutes {
4
+ route_name: string;
5
+ note: string;
6
+ is_testing: boolean;
7
+ routes: IOGPresetRoute[];
8
+ }
9
+ export interface IOGInformationPanelScopes {
10
+ routes: IOGPresetRoutes[];
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IOGInformationPanelScopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IOGInformationPanelScopes.js","sourceRoot":"","sources":["../../../src/output-gateway/interfaces/IOGInformationPanelScopes.ts"],"names":[],"mappings":""}
@@ -8,20 +8,24 @@ const FyprElementRepository_1 = require("../fypr/data-access/FyprElementReposito
8
8
  const _sch_1 = require("../../schema-definitions");
9
9
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
10
10
  const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
11
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
11
12
  const FYPROGContainerTokens_1 = require("./FYPROGContainerTokens");
12
13
  //#region Initialization
13
14
  exports.fyprOGContainer = ioc_1.OutputGatewayContainer.createChildContainer();
14
15
  //#endregion
15
16
  //#region Repositories
16
- const connector = exports.fyprOGContainer.resolve(CoreToken_1.CoreToken.PostgresConnector);
17
- const logger = exports.fyprOGContainer.resolve(CoreToken_1.CoreToken.Logger);
18
- const fyprElementRepositoriesMap = new Map();
19
- for (const kind of _sch_1.fyprElementKinds) {
20
- const { modelName, tableName, attributeModel } = _sch_1.FyprElementsConfig[kind];
21
- // Register repository
22
- fyprElementRepositoriesMap.set(kind, new FyprElementRepository_1.FyprElementRepository(connector, logger, modelName, tableName, attributeModel));
23
- }
24
- exports.fyprOGContainer.registerInstance(FYPROGContainerTokens_1.fyprOGContainerTokens.FyprElementRepositoriesMap, fyprElementRepositoriesMap);
17
+ exports.fyprOGContainer.register(FYPROGContainerTokens_1.fyprOGContainerTokens.FyprElementRepositoriesMap, {
18
+ useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => {
19
+ const connector = c.resolve(CoreToken_1.CoreToken.PostgresConnector);
20
+ const logger = c.resolve(CoreToken_1.CoreToken.Logger);
21
+ const map = new Map();
22
+ for (const kind of _sch_1.fyprElementKinds) {
23
+ const { modelName, tableName, attributeModel, embeds } = _sch_1.FyprElementsConfig[kind];
24
+ map.set(kind, new FyprElementRepository_1.FyprElementRepository(connector, logger, modelName, tableName, attributeModel, embeds));
25
+ }
26
+ return map;
27
+ }),
28
+ });
25
29
  //#endregion
26
30
  //#region Transformations
27
31
  exports.fyprOGContainer.registerSingleton(FYPROGContainerTokens_1.fyprOGContainerTokens.InformationPanelOutputTransformation, InformationPanelOutputTransformation_1.InformationPanelOutputTransformation);
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,sGAAoG;AACpG,uHAAqH;AACrH,8FAA4F;AAC5F,qFAAmF;AACnF,mDAA6F;AAG7F,wEAAqE;AACrE,+DAA+E;AAE/E,mEAAgE;AAEhE,wBAAwB;AACX,QAAA,eAAe,GAAwB,4BAAsB,CAAC,oBAAoB,EAAE,CAAC;AAClG,YAAY;AAEZ,sBAAsB;AACtB,MAAM,SAAS,GAAG,uBAAe,CAAC,OAAO,CAAqB,qBAAS,CAAC,iBAAiB,CAAC,CAAC;AAC3F,MAAM,MAAM,GAAG,uBAAe,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;AAElE,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA0D,CAAC;AAErG,KAAK,MAAM,IAAI,IAAI,uBAAgB,EAAE,CAAC;IAClC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,yBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1E,sBAAsB;IACtB,0BAA0B,CAAC,GAAG,CAC1B,IAAI,EACJ,IAAI,6CAAqB,CAAiB,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CACrG,CAAC;AACN,CAAC;AAED,uBAAe,CAAC,gBAAgB,CAAC,6CAAqB,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;AAC/G,YAAY;AAEZ,yBAAyB;AACzB,uBAAe,CAAC,iBAAiB,CAC7B,6CAAqB,CAAC,oCAAoC,EAC1D,2EAAoC,CACvC,CAAC;AACF,YAAY;AAEZ,qBAAqB;AACrB,uBAAe,CAAC,iBAAiB,CAAC,6CAAqB,CAAC,4BAA4B,EAAE,2DAA4B,CAAC,CAAC;AACpH,uBAAe,CAAC,iBAAiB,CAAC,6CAAqB,CAAC,wBAAwB,EAAE,mDAAwB,CAAC,CAAC;AAC5G,YAAY"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,sGAAoG;AACpG,uHAAqH;AACrH,8FAA4F;AAC5F,qFAAmF;AACnF,mDAA6F;AAG7F,wEAAqE;AACrE,+DAA+E;AAC/E,iEAAiG;AACjG,mEAAgE;AAEhE,wBAAwB;AACX,QAAA,eAAe,GAAwB,4BAAsB,CAAC,oBAAoB,EAAE,CAAC;AAClG,YAAY;AAEZ,sBAAsB;AACtB,uBAAe,CAAC,QAAQ,CAAC,6CAAqB,CAAC,0BAA0B,EAAE;IACvE,UAAU,EAAE,IAAA,iCAAsB,EAAC,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAqB,qBAAS,CAAC,iBAAiB,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0D,CAAC;QAC9E,KAAK,MAAM,IAAI,IAAI,uBAAgB,EAAE,CAAC;YAClC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,yBAAkB,CAAC,IAAI,CAAC,CAAC;YAClF,GAAG,CAAC,GAAG,CACH,IAAI,EACJ,IAAI,6CAAqB,CAAiB,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,CAC7G,CAAC;QACN,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;CACL,CAAC,CAAC;AACH,YAAY;AAEZ,yBAAyB;AACzB,uBAAe,CAAC,iBAAiB,CAC7B,6CAAqB,CAAC,oCAAoC,EAC1D,2EAAoC,CACvC,CAAC;AACF,YAAY;AAEZ,qBAAqB;AACrB,uBAAe,CAAC,iBAAiB,CAAC,6CAAqB,CAAC,4BAA4B,EAAE,2DAA4B,CAAC,CAAC;AACpH,uBAAe,CAAC,iBAAiB,CAAC,6CAAqB,CAAC,wBAAwB,EAAE,mDAAwB,CAAC,CAAC;AAC5G,YAAY"}
@@ -1,4 +1,5 @@
1
1
  export declare const PG_SCHEMA = "fypr";
2
+ export declare const STALE_ROW_THRESHOLD = "NOW() - INTERVAL '1 minute'";
2
3
  export declare const nullableString: {
3
4
  readonly oneOf: readonly [{
4
5
  readonly type: "string";
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nullableStringArray = exports.nullableDateString = exports.nullableBoolean = exports.nullableNumber = exports.nullableString = exports.PG_SCHEMA = void 0;
3
+ exports.nullableStringArray = exports.nullableDateString = exports.nullableBoolean = exports.nullableNumber = exports.nullableString = exports.STALE_ROW_THRESHOLD = exports.PG_SCHEMA = void 0;
4
4
  exports.PG_SCHEMA = "fypr";
5
+ exports.STALE_ROW_THRESHOLD = "NOW() - INTERVAL '1 minute'";
5
6
  // Reusable JSON schema fragments for nullable properties
6
7
  exports.nullableString = { oneOf: [{ type: "string" }, { type: "null", nullable: true }] };
7
8
  exports.nullableNumber = { oneOf: [{ type: "number" }, { type: "null", nullable: true }] };
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/schema-definitions/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,MAAM,CAAC;AAEhC,yDAAyD;AAC5C,QAAA,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC5F,QAAA,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC5F,QAAA,eAAe,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC9F,QAAA,kBAAkB,GAAG;IAC9B,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;CACK,CAAC;AACE,QAAA,mBAAmB,GAAG;IAC/B,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;CACK,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/schema-definitions/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,MAAM,CAAC;AACnB,QAAA,mBAAmB,GAAG,6BAA6B,CAAC;AAEjE,yDAAyD;AAC5C,QAAA,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC5F,QAAA,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC5F,QAAA,eAAe,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC9F,QAAA,kBAAkB,GAAG;IAC9B,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;CACK,CAAC;AACE,QAAA,mBAAmB,GAAG;IAC/B,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;CACK,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
+ import { IGolemioPresetsResponse } from "./interfaces/IGolemioPresetsResponse";
3
+ export declare const golemioPresetsJSONSchema: JSONSchemaType<IGolemioPresetsResponse[]>;