@owox/backend 0.0.0 → 0.1.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 (214) hide show
  1. package/dist/commands/create-migration-template.js +8 -0
  2. package/dist/public/assets/index-CISA6IwH.css +1 -0
  3. package/dist/public/assets/index-xNsUEA9g.js +550 -0
  4. package/dist/public/index.html +2 -2
  5. package/dist/{app.module.js → src/app.module.js} +2 -5
  6. package/dist/src/common/schemas/google-service-account-key.schema.js +33 -0
  7. package/dist/src/common/zod/zod-transformer.js +14 -0
  8. package/dist/src/config/data-source-options.config.js +49 -0
  9. package/dist/{config → src/config}/express-static.config.js +7 -3
  10. package/dist/src/config/get-sqlite-database-path.js +36 -0
  11. package/dist/src/config/migrations.config.js +30 -0
  12. package/dist/src/data-marts/connector-types/connector-definition.js +11 -0
  13. package/dist/src/data-marts/connector-types/connector-fields-schema.js +18 -0
  14. package/dist/src/data-marts/connector-types/connector-specification.js +20 -0
  15. package/dist/src/data-marts/controllers/connector.controller.js +79 -0
  16. package/dist/src/data-marts/controllers/data-destination.controller.js +124 -0
  17. package/dist/{data-marts → src/data-marts}/controllers/data-mart.controller.js +20 -2
  18. package/dist/src/data-marts/controllers/report.controller.js +159 -0
  19. package/dist/src/data-marts/controllers/spec/connector.api.js +20 -0
  20. package/dist/src/data-marts/controllers/spec/data-destination.api.js +28 -0
  21. package/dist/{data-marts → src/data-marts}/controllers/spec/data-mart.api.js +4 -0
  22. package/dist/src/data-marts/controllers/spec/report.api.js +55 -0
  23. package/dist/src/data-marts/data-destination-types/data-destination-config.guards.js +13 -0
  24. package/dist/src/data-marts/data-destination-types/data-destination-config.type.js +7 -0
  25. package/dist/src/data-marts/data-destination-types/data-destination-credentials.guards.js +13 -0
  26. package/dist/src/data-marts/data-destination-types/data-destination-credentials.type.js +9 -0
  27. package/dist/src/data-marts/data-destination-types/data-destination-facades.js +10 -0
  28. package/dist/src/data-marts/data-destination-types/data-destination-providers.js +40 -0
  29. package/dist/src/data-marts/data-destination-types/enums/data-destination-type.enum.js +17 -0
  30. package/dist/src/data-marts/data-destination-types/facades/data-destination-access-validator.facade.js +40 -0
  31. package/dist/{data-marts/data-storage-types/facades/data-storage-title.facade.js → src/data-marts/data-destination-types/facades/data-destination-credentials-validator.facade.js} +13 -13
  32. package/dist/{data-marts/data-storage-types/athena/services/athena-title.generator.js → src/data-marts/data-destination-types/google-sheets/adapters/google-sheets-api-adapter.factory.js} +9 -12
  33. package/dist/src/data-marts/data-destination-types/google-sheets/adapters/google-sheets-api.adapter.js +104 -0
  34. package/dist/src/data-marts/data-destination-types/google-sheets/schemas/google-sheets-config.schema.js +11 -0
  35. package/dist/src/data-marts/data-destination-types/google-sheets/schemas/google-sheets-credentials.schema.js +13 -0
  36. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-access-validator.js +59 -0
  37. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-credentials-validator.js +45 -0
  38. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-report-writer.js +158 -0
  39. package/dist/src/data-marts/data-destination-types/google-sheets/services/sheet-formatters/sheet-header-formatter.js +54 -0
  40. package/dist/src/data-marts/data-destination-types/google-sheets/services/sheet-formatters/sheet-metadata-formatter.js +60 -0
  41. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-access-validator.interface.js +17 -0
  42. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-credentials-validator.interface.js +15 -0
  43. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-report-writer.interface.js +3 -0
  44. package/dist/src/data-marts/data-marts.module.js +127 -0
  45. package/dist/{data-marts/data-storage-types/bigquery/services/bigquery-title.generator.js → src/data-marts/data-storage-types/athena/adapters/athena-api-adapter.factory.js} +9 -12
  46. package/dist/src/data-marts/data-storage-types/athena/adapters/athena-api.adapter.js +91 -0
  47. package/dist/src/data-marts/data-storage-types/athena/adapters/s3-api-adapter.factory.js +21 -0
  48. package/dist/src/data-marts/data-storage-types/athena/adapters/s3-api.adapter.js +53 -0
  49. package/dist/src/data-marts/data-storage-types/athena/services/athena-report-reader.service.js +158 -0
  50. package/dist/src/data-marts/data-storage-types/bigquery/adapters/bigquery-api-adapter.factory.js +21 -0
  51. package/dist/src/data-marts/data-storage-types/bigquery/adapters/bigquery-api.adapter.js +36 -0
  52. package/dist/src/data-marts/data-storage-types/bigquery/schemas/bigquery-credentials.schema.js +6 -0
  53. package/dist/src/data-marts/data-storage-types/bigquery/services/bigquery-report-reader.service.js +132 -0
  54. package/dist/src/data-marts/data-storage-types/data-storage-config.guards.js +13 -0
  55. package/dist/src/data-marts/data-storage-types/data-storage-credentials.guards.js +13 -0
  56. package/dist/src/data-marts/data-storage-types/data-storage-credentials.type.js +3 -0
  57. package/dist/src/data-marts/data-storage-types/data-storage-facades.js +6 -0
  58. package/dist/src/data-marts/data-storage-types/data-storage-providers.js +32 -0
  59. package/dist/src/data-marts/data-storage-types/interfaces/data-storage-report-reader.interface.js +3 -0
  60. package/dist/src/data-marts/dto/domain/create-data-destination.command.js +17 -0
  61. package/dist/src/data-marts/dto/domain/create-report.command.js +21 -0
  62. package/dist/src/data-marts/dto/domain/data-destination.dto.js +23 -0
  63. package/dist/src/data-marts/dto/domain/delete-data-destination.command.js +13 -0
  64. package/dist/src/data-marts/dto/domain/get-data-destination.command.js +13 -0
  65. package/dist/src/data-marts/dto/domain/get-report.command.js +15 -0
  66. package/dist/src/data-marts/dto/domain/list-data-destinations.command.js +11 -0
  67. package/dist/src/data-marts/dto/domain/list-reports-by-data-mart.command.js +15 -0
  68. package/dist/src/data-marts/dto/domain/list-reports-by-project.command.js +13 -0
  69. package/dist/src/data-marts/dto/domain/report-data-batch.dto.js +13 -0
  70. package/dist/src/data-marts/dto/domain/report-data-description.dto.js +13 -0
  71. package/dist/src/data-marts/dto/domain/report.dto.js +31 -0
  72. package/dist/src/data-marts/dto/domain/run-data-mart.command.js +15 -0
  73. package/dist/src/data-marts/dto/domain/run-report.command.js +3 -0
  74. package/dist/src/data-marts/dto/domain/update-data-destination.command.js +17 -0
  75. package/dist/src/data-marts/dto/domain/update-report.command.js +21 -0
  76. package/dist/src/data-marts/dto/presentation/connector-definition-response-api.dto.js +37 -0
  77. package/dist/src/data-marts/dto/presentation/connector-fields-response-api.dto.js +60 -0
  78. package/dist/src/data-marts/dto/presentation/connector-specification-response-api.dto.js +65 -0
  79. package/dist/src/data-marts/dto/presentation/create-data-destination-api.dto.js +42 -0
  80. package/dist/src/data-marts/dto/presentation/create-report-request-api.dto.js +46 -0
  81. package/dist/src/data-marts/dto/presentation/data-destination-response-api.dto.js +57 -0
  82. package/dist/src/data-marts/dto/presentation/report-response-api.dto.js +75 -0
  83. package/dist/src/data-marts/dto/presentation/update-data-destination-api.dto.js +35 -0
  84. package/dist/src/data-marts/dto/presentation/update-report-request-api.dto.js +39 -0
  85. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/connector-definition.schema.js +23 -0
  86. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/data-mart-definition.guards.js +23 -0
  87. package/dist/src/data-marts/entities/data-destination.entity.js +66 -0
  88. package/dist/src/data-marts/entities/data-mart-run.entity.js +63 -0
  89. package/dist/src/data-marts/entities/report.entity.js +85 -0
  90. package/dist/{data-marts → src/data-marts}/enums/data-mart-definition-type.enum.js +1 -0
  91. package/dist/src/data-marts/enums/data-mart-run-status.enum.js +10 -0
  92. package/dist/src/data-marts/enums/report-run-status.enum.js +10 -0
  93. package/dist/src/data-marts/mappers/connector.mapper.js +54 -0
  94. package/dist/src/data-marts/mappers/data-destination.mapper.js +58 -0
  95. package/dist/{data-marts → src/data-marts}/mappers/data-mart.mapper.js +4 -0
  96. package/dist/{data-marts → src/data-marts}/mappers/data-storage.mapper.js +2 -6
  97. package/dist/src/data-marts/mappers/report.mapper.js +81 -0
  98. package/dist/src/data-marts/services/connector-execution.service.js +190 -0
  99. package/dist/src/data-marts/services/connector.service.js +79 -0
  100. package/dist/src/data-marts/services/data-destination.service.js +39 -0
  101. package/dist/src/data-marts/use-cases/connector/available-connector.service.js +29 -0
  102. package/dist/src/data-marts/use-cases/connector/fields-connector.service.js +29 -0
  103. package/dist/src/data-marts/use-cases/connector/specification-connector.service.js +29 -0
  104. package/dist/src/data-marts/use-cases/create-data-destination.service.js +51 -0
  105. package/dist/src/data-marts/use-cases/create-report.service.js +83 -0
  106. package/dist/src/data-marts/use-cases/delete-data-destination.service.js +59 -0
  107. package/dist/src/data-marts/use-cases/delete-report.service.js +46 -0
  108. package/dist/src/data-marts/use-cases/get-data-destination.service.js +34 -0
  109. package/dist/src/data-marts/use-cases/get-report.service.js +51 -0
  110. package/dist/src/data-marts/use-cases/list-data-destinations.service.js +42 -0
  111. package/dist/src/data-marts/use-cases/list-reports-by-data-mart.service.js +47 -0
  112. package/dist/src/data-marts/use-cases/list-reports-by-project.service.js +47 -0
  113. package/dist/src/data-marts/use-cases/run-data-mart.service.js +39 -0
  114. package/dist/src/data-marts/use-cases/run-report.service.js +97 -0
  115. package/dist/src/data-marts/use-cases/update-data-destination.service.js +52 -0
  116. package/dist/src/data-marts/use-cases/update-report.service.js +77 -0
  117. package/dist/src/data-source.js +11 -0
  118. package/dist/src/load-env.js +34 -0
  119. package/dist/{main.js → src/main.js} +7 -1
  120. package/dist/src/migrations/1750350724543-create-data-mart-and-data-storage-tables.js +53 -0
  121. package/dist/src/migrations/helper.js +13 -0
  122. package/package.json +28 -9
  123. package/dist/config/database.config.js +0 -31
  124. package/dist/data-marts/data-marts.module.js +0 -65
  125. package/dist/data-marts/data-storage-types/bigquery/schemas/bigquery-credentials.schema.js +0 -11
  126. package/dist/data-marts/data-storage-types/data-storage-facades.js +0 -7
  127. package/dist/data-marts/data-storage-types/data-storage-providers.js +0 -27
  128. package/dist/data-marts/data-storage-types/interfaces/data-storage-title-generator.interface.js +0 -3
  129. package/dist/public/assets/index-BZJIHZWS.js +0 -502
  130. package/dist/public/assets/index-BpZgB8Pl.css +0 -1
  131. /package/dist/{common → src/common}/authorization-context/authorization.context.js +0 -0
  132. /package/dist/{common → src/common}/common.module.js +0 -0
  133. /package/dist/{common → src/common}/exceptions/access-validation.exception.js +0 -0
  134. /package/dist/{common → src/common}/exceptions/base-exception.filter.js +0 -0
  135. /package/dist/{common → src/common}/exceptions/base.exception.js +0 -0
  136. /package/dist/{common → src/common}/exceptions/business-violation.exception.js +0 -0
  137. /package/dist/{common → src/common}/resolver/type-resolver.js +0 -0
  138. /package/dist/{common → src/common}/resolver/typed-component.resolver.js +0 -0
  139. /package/dist/{common → src/common}/scheduler/facades/scheduler-facade.impl.js +0 -0
  140. /package/dist/{common → src/common}/scheduler/scheduler.module.js +0 -0
  141. /package/dist/{common → src/common}/scheduler/services/fetchers/time-based-trigger-fetcher.factory.js +0 -0
  142. /package/dist/{common → src/common}/scheduler/services/fetchers/time-based-trigger-fetcher.service.js +0 -0
  143. /package/dist/{common → src/common}/scheduler/services/graceful-shutdown.service.js +0 -0
  144. /package/dist/{common → src/common}/scheduler/services/runners/abstract-trigger-runner.service.js +0 -0
  145. /package/dist/{common → src/common}/scheduler/services/runners/direct-trigger-runner.service.js +0 -0
  146. /package/dist/{common → src/common}/scheduler/services/runners/pubsub-trigger-runner.service.js +0 -0
  147. /package/dist/{common → src/common}/scheduler/services/runners/trigger-runner.factory.js +0 -0
  148. /package/dist/{common → src/common}/scheduler/services/runners/trigger-runner.interface.js +0 -0
  149. /package/dist/{common → src/common}/scheduler/services/system-time.service.js +0 -0
  150. /package/dist/{common → src/common}/scheduler/shared/entities/scheduled-trigger.entity.js +0 -0
  151. /package/dist/{common → src/common}/scheduler/shared/entities/time-based-trigger.entity.js +0 -0
  152. /package/dist/{common → src/common}/scheduler/shared/scheduler.facade.js +0 -0
  153. /package/dist/{common → src/common}/scheduler/shared/time-based-trigger-handler.interface.js +0 -0
  154. /package/dist/{config → src/config}/global-pipes.config.js +0 -0
  155. /package/dist/{config → src/config}/swagger.config.js +0 -0
  156. /package/dist/{data-marts → src/data-marts}/controllers/data-storage.controller.js +0 -0
  157. /package/dist/{data-marts → src/data-marts}/controllers/spec/data-storage.api.js +0 -0
  158. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/schemas/athena-config.schema.js +0 -0
  159. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/schemas/athena-credentials.schema.js +0 -0
  160. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/services/athena-access.validator.js +0 -0
  161. /package/dist/{data-marts → src/data-marts}/data-storage-types/bigquery/schemas/bigquery-config.schema.js +0 -0
  162. /package/dist/{data-marts → src/data-marts}/data-storage-types/bigquery/services/bigquery-access.validator.js +0 -0
  163. /package/dist/{data-marts → src/data-marts}/data-storage-types/data-storage-config.type.js +0 -0
  164. /package/dist/{data-marts → src/data-marts}/data-storage-types/enums/data-storage-type.enum.js +0 -0
  165. /package/dist/{data-marts → src/data-marts}/data-storage-types/facades/data-storage-access.facade.js +0 -0
  166. /package/dist/{data-marts → src/data-marts}/data-storage-types/interfaces/data-storage-access-validator.interface.js +0 -0
  167. /package/dist/{data-marts → src/data-marts}/dto/domain/create-data-mart.command.js +0 -0
  168. /package/dist/{data-marts → src/data-marts}/dto/domain/create-data-storage.command.js +0 -0
  169. /package/dist/{data-marts → src/data-marts}/dto/domain/data-mart.dto.js +0 -0
  170. /package/dist/{data-marts → src/data-marts}/dto/domain/data-storage.dto.js +0 -0
  171. /package/dist/{data-marts → src/data-marts}/dto/domain/delete-data-mart.command.js +0 -0
  172. /package/dist/{data-marts → src/data-marts}/dto/domain/delete-data-storage.command.js +0 -0
  173. /package/dist/{data-marts → src/data-marts}/dto/domain/get-data-mart.command.js +0 -0
  174. /package/dist/{data-marts → src/data-marts}/dto/domain/get-data-storage.command.js +0 -0
  175. /package/dist/{data-marts → src/data-marts}/dto/domain/list-data-marts.command.js +0 -0
  176. /package/dist/{data-marts → src/data-marts}/dto/domain/list-data-storages.command.js +0 -0
  177. /package/dist/{data-marts → src/data-marts}/dto/domain/publish-data-mart.command.js +0 -0
  178. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-definition.command.js +0 -0
  179. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-description.command.js +0 -0
  180. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-title.command.js +0 -0
  181. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-storage.command.js +0 -0
  182. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-mart-request-api.dto.js +0 -0
  183. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-mart-response-api.dto.js +0 -0
  184. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-storage-api.dto.js +0 -0
  185. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-mart-response-api.dto.js +0 -0
  186. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-storage-list-response-api.dto.js +0 -0
  187. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-storage-response-api.dto.js +0 -0
  188. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-definition-api.dto.js +0 -0
  189. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-description-api.dto.js +0 -0
  190. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-title-api.dto.js +0 -0
  191. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-storage-api.dto.js +0 -0
  192. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/data-mart-definition.js +0 -0
  193. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/sql-definition.schema.js +0 -0
  194. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/table-definition.schema.js +0 -0
  195. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/table-pattern-definition.schema.js +0 -0
  196. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/view-definition.schema.js +0 -0
  197. /package/dist/{data-marts → src/data-marts}/entities/data-mart.entity.js +0 -0
  198. /package/dist/{data-marts → src/data-marts}/entities/data-storage.entity.js +0 -0
  199. /package/dist/{data-marts → src/data-marts}/enums/data-mart-status.enum.js +0 -0
  200. /package/dist/{data-marts → src/data-marts}/services/data-mart.service.js +0 -0
  201. /package/dist/{data-marts → src/data-marts}/services/data-storage.service.js +0 -0
  202. /package/dist/{data-marts → src/data-marts}/use-cases/create-data-mart.service.js +0 -0
  203. /package/dist/{data-marts → src/data-marts}/use-cases/create-data-storage.service.js +0 -0
  204. /package/dist/{data-marts → src/data-marts}/use-cases/delete-data-mart.service.js +0 -0
  205. /package/dist/{data-marts → src/data-marts}/use-cases/delete-data-storage.service.js +0 -0
  206. /package/dist/{data-marts → src/data-marts}/use-cases/get-data-mart.service.js +0 -0
  207. /package/dist/{data-marts → src/data-marts}/use-cases/get-data-storage.service.js +0 -0
  208. /package/dist/{data-marts → src/data-marts}/use-cases/list-data-marts.service.js +0 -0
  209. /package/dist/{data-marts → src/data-marts}/use-cases/list-data-storages.service.js +0 -0
  210. /package/dist/{data-marts → src/data-marts}/use-cases/publish-data-mart.service.js +0 -0
  211. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-definition.service.js +0 -0
  212. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-description.service.js +0 -0
  213. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-title.service.js +0 -0
  214. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-storage.service.js +0 -0
@@ -0,0 +1,34 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GetDataDestinationService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const data_destination_mapper_1 = require("../mappers/data-destination.mapper");
15
+ const data_destination_service_1 = require("../services/data-destination.service");
16
+ let GetDataDestinationService = class GetDataDestinationService {
17
+ dataDestinationService;
18
+ dataDestinationMapper;
19
+ constructor(dataDestinationService, dataDestinationMapper) {
20
+ this.dataDestinationService = dataDestinationService;
21
+ this.dataDestinationMapper = dataDestinationMapper;
22
+ }
23
+ async run(command) {
24
+ const dataDestinationEntity = await this.dataDestinationService.getByIdAndProjectId(command.projectId, command.id);
25
+ return this.dataDestinationMapper.toDomainDto(dataDestinationEntity);
26
+ }
27
+ };
28
+ exports.GetDataDestinationService = GetDataDestinationService;
29
+ exports.GetDataDestinationService = GetDataDestinationService = __decorate([
30
+ (0, common_1.Injectable)(),
31
+ __metadata("design:paramtypes", [data_destination_service_1.DataDestinationService,
32
+ data_destination_mapper_1.DataDestinationMapper])
33
+ ], GetDataDestinationService);
34
+ //# sourceMappingURL=get-data-destination.service.js.map
@@ -0,0 +1,51 @@
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.GetReportService = void 0;
16
+ const typeorm_1 = require("typeorm");
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_2 = require("@nestjs/typeorm");
19
+ const report_entity_1 = require("../entities/report.entity");
20
+ const report_mapper_1 = require("../mappers/report.mapper");
21
+ let GetReportService = class GetReportService {
22
+ reportRepository;
23
+ mapper;
24
+ constructor(reportRepository, mapper) {
25
+ this.reportRepository = reportRepository;
26
+ this.mapper = mapper;
27
+ }
28
+ async run(command) {
29
+ const report = await this.reportRepository.findOne({
30
+ where: {
31
+ id: command.id,
32
+ dataMart: {
33
+ projectId: command.projectId,
34
+ },
35
+ },
36
+ relations: ['dataMart', 'dataDestination'],
37
+ });
38
+ if (!report) {
39
+ throw new common_1.NotFoundException(`Report with ID ${command.id} not found`);
40
+ }
41
+ return this.mapper.toDomainDto(report);
42
+ }
43
+ };
44
+ exports.GetReportService = GetReportService;
45
+ exports.GetReportService = GetReportService = __decorate([
46
+ (0, common_1.Injectable)(),
47
+ __param(0, (0, typeorm_2.InjectRepository)(report_entity_1.Report)),
48
+ __metadata("design:paramtypes", [typeorm_1.Repository,
49
+ report_mapper_1.ReportMapper])
50
+ ], GetReportService);
51
+ //# sourceMappingURL=get-report.service.js.map
@@ -0,0 +1,42 @@
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.ListDataDestinationsService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const typeorm_2 = require("typeorm");
19
+ const data_destination_entity_1 = require("../entities/data-destination.entity");
20
+ const data_destination_mapper_1 = require("../mappers/data-destination.mapper");
21
+ let ListDataDestinationsService = class ListDataDestinationsService {
22
+ dataDestinationRepo;
23
+ mapper;
24
+ constructor(dataDestinationRepo, mapper) {
25
+ this.dataDestinationRepo = dataDestinationRepo;
26
+ this.mapper = mapper;
27
+ }
28
+ async run(command) {
29
+ const dataDestinations = await this.dataDestinationRepo.find({
30
+ where: { projectId: command.projectId },
31
+ });
32
+ return this.mapper.toDomainDtoList(dataDestinations);
33
+ }
34
+ };
35
+ exports.ListDataDestinationsService = ListDataDestinationsService;
36
+ exports.ListDataDestinationsService = ListDataDestinationsService = __decorate([
37
+ (0, common_1.Injectable)(),
38
+ __param(0, (0, typeorm_1.InjectRepository)(data_destination_entity_1.DataDestination)),
39
+ __metadata("design:paramtypes", [typeorm_2.Repository,
40
+ data_destination_mapper_1.DataDestinationMapper])
41
+ ], ListDataDestinationsService);
42
+ //# sourceMappingURL=list-data-destinations.service.js.map
@@ -0,0 +1,47 @@
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.ListReportsByDataMartService = void 0;
16
+ const typeorm_1 = require("typeorm");
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_2 = require("@nestjs/typeorm");
19
+ const report_entity_1 = require("../entities/report.entity");
20
+ const report_mapper_1 = require("../mappers/report.mapper");
21
+ let ListReportsByDataMartService = class ListReportsByDataMartService {
22
+ reportRepository;
23
+ mapper;
24
+ constructor(reportRepository, mapper) {
25
+ this.reportRepository = reportRepository;
26
+ this.mapper = mapper;
27
+ }
28
+ async run(command) {
29
+ const reports = await this.reportRepository.find({
30
+ where: {
31
+ dataMart: {
32
+ id: command.dataMartId,
33
+ },
34
+ },
35
+ relations: ['dataMart', 'dataDestination'],
36
+ });
37
+ return this.mapper.toDomainDtoList(reports);
38
+ }
39
+ };
40
+ exports.ListReportsByDataMartService = ListReportsByDataMartService;
41
+ exports.ListReportsByDataMartService = ListReportsByDataMartService = __decorate([
42
+ (0, common_1.Injectable)(),
43
+ __param(0, (0, typeorm_2.InjectRepository)(report_entity_1.Report)),
44
+ __metadata("design:paramtypes", [typeorm_1.Repository,
45
+ report_mapper_1.ReportMapper])
46
+ ], ListReportsByDataMartService);
47
+ //# sourceMappingURL=list-reports-by-data-mart.service.js.map
@@ -0,0 +1,47 @@
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.ListReportsByProjectService = void 0;
16
+ const typeorm_1 = require("typeorm");
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_2 = require("@nestjs/typeorm");
19
+ const report_entity_1 = require("../entities/report.entity");
20
+ const report_mapper_1 = require("../mappers/report.mapper");
21
+ let ListReportsByProjectService = class ListReportsByProjectService {
22
+ reportRepository;
23
+ mapper;
24
+ constructor(reportRepository, mapper) {
25
+ this.reportRepository = reportRepository;
26
+ this.mapper = mapper;
27
+ }
28
+ async run(command) {
29
+ const reports = await this.reportRepository.find({
30
+ where: {
31
+ dataMart: {
32
+ projectId: command.projectId,
33
+ },
34
+ },
35
+ relations: ['dataMart', 'dataDestination'],
36
+ });
37
+ return this.mapper.toDomainDtoList(reports);
38
+ }
39
+ };
40
+ exports.ListReportsByProjectService = ListReportsByProjectService;
41
+ exports.ListReportsByProjectService = ListReportsByProjectService = __decorate([
42
+ (0, common_1.Injectable)(),
43
+ __param(0, (0, typeorm_2.InjectRepository)(report_entity_1.Report)),
44
+ __metadata("design:paramtypes", [typeorm_1.Repository,
45
+ report_mapper_1.ReportMapper])
46
+ ], ListReportsByProjectService);
47
+ //# sourceMappingURL=list-reports-by-project.service.js.map
@@ -0,0 +1,39 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RunDataMartService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const data_mart_service_1 = require("../services/data-mart.service");
15
+ const data_mart_definition_type_enum_1 = require("../enums/data-mart-definition-type.enum");
16
+ const connector_execution_service_1 = require("../services/connector-execution.service");
17
+ let RunDataMartService = class RunDataMartService {
18
+ dataMartService;
19
+ connectorExecutionService;
20
+ constructor(dataMartService, connectorExecutionService) {
21
+ this.dataMartService = dataMartService;
22
+ this.connectorExecutionService = connectorExecutionService;
23
+ }
24
+ async run(dataMartId, projectId, userId) {
25
+ const dataMart = await this.dataMartService.getByIdAndProjectIdAndUserId(dataMartId, projectId, userId);
26
+ if (dataMart.definitionType !== data_mart_definition_type_enum_1.DataMartDefinitionType.CONNECTOR) {
27
+ throw new Error('Only data marts with connector definition type can be run manually');
28
+ }
29
+ const runId = await this.connectorExecutionService.run(dataMart);
30
+ return runId;
31
+ }
32
+ };
33
+ exports.RunDataMartService = RunDataMartService;
34
+ exports.RunDataMartService = RunDataMartService = __decorate([
35
+ (0, common_1.Injectable)(),
36
+ __metadata("design:paramtypes", [data_mart_service_1.DataMartService,
37
+ connector_execution_service_1.ConnectorExecutionService])
38
+ ], RunDataMartService);
39
+ //# sourceMappingURL=run-data-mart.service.js.map
@@ -0,0 +1,97 @@
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
+ var RunReportService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.RunReportService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_1 = require("@nestjs/typeorm");
19
+ const typeorm_2 = require("typeorm");
20
+ const report_entity_1 = require("../entities/report.entity");
21
+ const report_run_status_enum_1 = require("../enums/report-run-status.enum");
22
+ const type_resolver_1 = require("../../common/resolver/type-resolver");
23
+ const data_storage_providers_1 = require("../data-storage-types/data-storage-providers");
24
+ const data_destination_providers_1 = require("../data-destination-types/data-destination-providers");
25
+ let RunReportService = RunReportService_1 = class RunReportService {
26
+ reportRepository;
27
+ reportReaderResolver;
28
+ reportWriterResolver;
29
+ logger = new common_1.Logger(RunReportService_1.name);
30
+ constructor(reportRepository, reportReaderResolver, reportWriterResolver) {
31
+ this.reportRepository = reportRepository;
32
+ this.reportReaderResolver = reportReaderResolver;
33
+ this.reportWriterResolver = reportWriterResolver;
34
+ }
35
+ runAsync(command) {
36
+ this.run(command).catch(error => {
37
+ this.logger.error(`Error running report ${command.reportId} asynchronously:`, error);
38
+ });
39
+ }
40
+ async run(command) {
41
+ const report = await this.reportRepository.findOne({
42
+ where: { id: command.reportId },
43
+ relations: ['dataMart', 'dataDestination'],
44
+ });
45
+ if (!report) {
46
+ throw new Error(`Report with id ${command.reportId} not found`);
47
+ }
48
+ const runAt = new Date();
49
+ report.lastRunStatus = report_run_status_enum_1.ReportRunStatus.RUNNING;
50
+ report.lastRunAt = runAt;
51
+ report.runsCount += 1;
52
+ delete report.lastRunError;
53
+ await this.reportRepository.save(report);
54
+ try {
55
+ await this.executeReport(report);
56
+ report.lastRunStatus = report_run_status_enum_1.ReportRunStatus.SUCCESS;
57
+ }
58
+ catch (error) {
59
+ this.logger.error(`Error running report ${report.id}:`, error);
60
+ report.lastRunStatus = report_run_status_enum_1.ReportRunStatus.ERROR;
61
+ report.lastRunError = error.toString();
62
+ }
63
+ finally {
64
+ await this.reportRepository.save(report);
65
+ }
66
+ }
67
+ async executeReport(report) {
68
+ const { dataMart, dataDestination } = report;
69
+ const reportReader = await this.reportReaderResolver.resolve(dataMart.storage.type);
70
+ const reportWriter = await this.reportWriterResolver.resolve(dataDestination.type);
71
+ try {
72
+ const reportDataDescription = await reportReader.prepareReportData(report);
73
+ await reportWriter.prepareToWriteReport(report, reportDataDescription);
74
+ let nextReportDataBatch = undefined;
75
+ do {
76
+ const batch = await reportReader.readReportDataBatch(nextReportDataBatch);
77
+ await reportWriter.writeReportDataBatch(batch);
78
+ nextReportDataBatch = batch.nextDataBatchId;
79
+ } while (nextReportDataBatch);
80
+ }
81
+ finally {
82
+ await reportWriter.finalize();
83
+ await reportReader.finalize();
84
+ }
85
+ }
86
+ };
87
+ exports.RunReportService = RunReportService;
88
+ exports.RunReportService = RunReportService = RunReportService_1 = __decorate([
89
+ (0, common_1.Injectable)(),
90
+ __param(0, (0, typeorm_1.InjectRepository)(report_entity_1.Report)),
91
+ __param(1, (0, common_1.Inject)(data_storage_providers_1.DATA_STORAGE_REPORT_READER_RESOLVER)),
92
+ __param(2, (0, common_1.Inject)(data_destination_providers_1.DATA_DESTINATION_REPORT_WRITER_RESOLVER)),
93
+ __metadata("design:paramtypes", [typeorm_2.Repository,
94
+ type_resolver_1.TypeResolver,
95
+ type_resolver_1.TypeResolver])
96
+ ], RunReportService);
97
+ //# sourceMappingURL=run-report.service.js.map
@@ -0,0 +1,52 @@
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.UpdateDataDestinationService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const data_destination_entity_1 = require("../entities/data-destination.entity");
19
+ const typeorm_2 = require("typeorm");
20
+ const data_destination_mapper_1 = require("../mappers/data-destination.mapper");
21
+ const data_destination_service_1 = require("../services/data-destination.service");
22
+ const data_destination_credentials_validator_facade_1 = require("../data-destination-types/facades/data-destination-credentials-validator.facade");
23
+ let UpdateDataDestinationService = class UpdateDataDestinationService {
24
+ dataDestinationRepository;
25
+ dataDestinationService;
26
+ dataDestinationMapper;
27
+ credentialsValidator;
28
+ constructor(dataDestinationRepository, dataDestinationService, dataDestinationMapper, credentialsValidator) {
29
+ this.dataDestinationRepository = dataDestinationRepository;
30
+ this.dataDestinationService = dataDestinationService;
31
+ this.dataDestinationMapper = dataDestinationMapper;
32
+ this.credentialsValidator = credentialsValidator;
33
+ }
34
+ async run(command) {
35
+ const entity = await this.dataDestinationService.getByIdAndProjectId(command.projectId, command.id);
36
+ await this.credentialsValidator.checkCredentials(entity.type, command.credentials);
37
+ entity.title = command.title;
38
+ entity.credentials = command.credentials;
39
+ const updatedEntity = await this.dataDestinationRepository.save(entity);
40
+ return this.dataDestinationMapper.toDomainDto(updatedEntity);
41
+ }
42
+ };
43
+ exports.UpdateDataDestinationService = UpdateDataDestinationService;
44
+ exports.UpdateDataDestinationService = UpdateDataDestinationService = __decorate([
45
+ (0, common_1.Injectable)(),
46
+ __param(0, (0, typeorm_1.InjectRepository)(data_destination_entity_1.DataDestination)),
47
+ __metadata("design:paramtypes", [typeorm_2.Repository,
48
+ data_destination_service_1.DataDestinationService,
49
+ data_destination_mapper_1.DataDestinationMapper,
50
+ data_destination_credentials_validator_facade_1.DataDestinationCredentialsValidatorFacade])
51
+ ], UpdateDataDestinationService);
52
+ //# sourceMappingURL=update-data-destination.service.js.map
@@ -0,0 +1,77 @@
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.UpdateReportService = void 0;
16
+ const typeorm_1 = require("typeorm");
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_2 = require("@nestjs/typeorm");
19
+ const report_entity_1 = require("../entities/report.entity");
20
+ const data_destination_entity_1 = require("../entities/data-destination.entity");
21
+ const report_mapper_1 = require("../mappers/report.mapper");
22
+ const data_destination_access_validator_facade_1 = require("../data-destination-types/facades/data-destination-access-validator.facade");
23
+ let UpdateReportService = class UpdateReportService {
24
+ reportRepository;
25
+ dataDestinationRepository;
26
+ dataDestinationAccessValidationFacade;
27
+ mapper;
28
+ constructor(reportRepository, dataDestinationRepository, dataDestinationAccessValidationFacade, mapper) {
29
+ this.reportRepository = reportRepository;
30
+ this.dataDestinationRepository = dataDestinationRepository;
31
+ this.dataDestinationAccessValidationFacade = dataDestinationAccessValidationFacade;
32
+ this.mapper = mapper;
33
+ }
34
+ async run(command) {
35
+ const report = await this.reportRepository.findOne({
36
+ where: {
37
+ id: command.id,
38
+ dataMart: {
39
+ projectId: command.projectId,
40
+ },
41
+ },
42
+ relations: ['dataMart', 'dataDestination'],
43
+ });
44
+ if (!report) {
45
+ throw new common_1.NotFoundException(`Report with ID ${command.id} not found`);
46
+ }
47
+ let dataDestination = report.dataDestination;
48
+ if (command.dataDestinationId !== dataDestination.id) {
49
+ dataDestination = await this.dataDestinationRepository.findOne({
50
+ where: {
51
+ id: command.dataDestinationId,
52
+ projectId: command.projectId,
53
+ },
54
+ });
55
+ if (!dataDestination) {
56
+ throw new common_1.BadRequestException(`Data destination with ID ${command.dataDestinationId} not found`);
57
+ }
58
+ }
59
+ await this.dataDestinationAccessValidationFacade.checkAccess(dataDestination.type, command.destinationConfig, dataDestination);
60
+ report.title = command.title;
61
+ report.dataDestination = dataDestination;
62
+ report.destinationConfig = command.destinationConfig;
63
+ const updatedReport = await this.reportRepository.save(report);
64
+ return this.mapper.toDomainDto(updatedReport);
65
+ }
66
+ };
67
+ exports.UpdateReportService = UpdateReportService;
68
+ exports.UpdateReportService = UpdateReportService = __decorate([
69
+ (0, common_1.Injectable)(),
70
+ __param(0, (0, typeorm_2.InjectRepository)(report_entity_1.Report)),
71
+ __param(1, (0, typeorm_2.InjectRepository)(data_destination_entity_1.DataDestination)),
72
+ __metadata("design:paramtypes", [typeorm_1.Repository,
73
+ typeorm_1.Repository,
74
+ data_destination_access_validator_facade_1.DataDestinationAccessValidatorFacade,
75
+ report_mapper_1.ReportMapper])
76
+ ], UpdateReportService);
77
+ //# sourceMappingURL=update-report.service.js.map
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const typeorm_1 = require("typeorm");
4
+ const config_1 = require("@nestjs/config");
5
+ const data_source_options_config_1 = require("./config/data-source-options.config");
6
+ const load_env_1 = require("./load-env");
7
+ (0, load_env_1.loadEnv)();
8
+ const configService = new config_1.ConfigService();
9
+ const dataSourceOptions = (0, data_source_options_config_1.createDataSourceOptions)(configService);
10
+ exports.default = new typeorm_1.DataSource(dataSourceOptions);
11
+ //# sourceMappingURL=data-source.js.map
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadEnv = loadEnv;
4
+ const dotenv_1 = require("dotenv");
5
+ const common_1 = require("@nestjs/common");
6
+ const path_1 = require("path");
7
+ const fs_1 = require("fs");
8
+ const logger = new common_1.Logger('LoadEnv');
9
+ let isLoaded = false;
10
+ function loadEnv() {
11
+ if (isLoaded)
12
+ return;
13
+ const baseEnvName = '.env';
14
+ const devEnvName = '.env.dev';
15
+ const isCompiled = __dirname.includes('dist');
16
+ const baseDirPath = (0, path_1.join)(__dirname, ...(isCompiled ? ['..', '..'] : ['..']));
17
+ const baseEnvPath = (0, path_1.join)(baseDirPath, baseEnvName);
18
+ const devEnvPath = (0, path_1.join)(baseDirPath, devEnvName);
19
+ const baseEnvExist = (0, fs_1.existsSync)(baseEnvPath);
20
+ if (baseEnvExist) {
21
+ (0, dotenv_1.config)({ path: baseEnvPath });
22
+ logger.log(`Loaded ${baseEnvName} from ${baseEnvPath}`);
23
+ }
24
+ const devEnvExist = (0, fs_1.existsSync)(devEnvPath);
25
+ if (devEnvExist) {
26
+ (0, dotenv_1.config)({ path: devEnvPath, override: true });
27
+ logger.log(`Loaded ${devEnvName} from ${devEnvPath}`);
28
+ }
29
+ if (!baseEnvExist && !devEnvExist) {
30
+ logger.warn(`No ${baseEnvName} or ${devEnvName} file found`);
31
+ }
32
+ isLoaded = true;
33
+ }
34
+ //# sourceMappingURL=load-env.js.map
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const load_env_1 = require("./load-env");
3
4
  const core_1 = require("@nestjs/core");
4
5
  const app_module_1 = require("./app.module");
5
6
  const common_1 = require("@nestjs/common");
@@ -7,11 +8,16 @@ const swagger_config_1 = require("./config/swagger.config");
7
8
  const global_pipes_config_1 = require("./config/global-pipes.config");
8
9
  const express_static_config_1 = require("./config/express-static.config");
9
10
  const base_exception_filter_1 = require("./common/exceptions/base-exception.filter");
11
+ const config_1 = require("@nestjs/config");
12
+ const migrations_config_1 = require("./config/migrations.config");
10
13
  const logger = new common_1.Logger('Bootstrap');
11
14
  const PATH_PREFIX = 'api';
12
15
  const SWAGGER_PATH = 'swagger-ui';
13
16
  const DEFAULT_PORT = 3000;
14
17
  async function bootstrap() {
18
+ (0, load_env_1.loadEnv)();
19
+ const configService = new config_1.ConfigService();
20
+ await (0, migrations_config_1.runMigrationsIfNeeded)(configService);
15
21
  const app = await core_1.NestFactory.create(app_module_1.AppModule, {
16
22
  logger: ['error', 'warn', 'log'],
17
23
  });
@@ -21,7 +27,7 @@ async function bootstrap() {
21
27
  (0, swagger_config_1.setupSwagger)(app, SWAGGER_PATH);
22
28
  (0, express_static_config_1.setupStaticAssets)(app, PATH_PREFIX);
23
29
  app.enableShutdownHooks();
24
- await app.listen(process.env.PORT ? Number(process.env.PORT) : DEFAULT_PORT);
30
+ await app.listen(configService.get('PORT') ?? DEFAULT_PORT);
25
31
  let appUrl = await app.getUrl();
26
32
  appUrl = appUrl.replace('[::1]', 'localhost');
27
33
  logger.log(`Application is running on: ${appUrl}`);
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateDataMartAndDataStorageTables1750350724543 = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const helper_1 = require("./helper");
6
+ class CreateDataMartAndDataStorageTables1750350724543 {
7
+ name = 'CreateDataMartAndDataStorageTables1750350724543';
8
+ async up(queryRunner) {
9
+ await queryRunner.createTable(new typeorm_1.Table({
10
+ name: 'data_storage',
11
+ columns: [
12
+ { name: 'id', type: 'varchar', isPrimary: true },
13
+ { name: 'type', type: 'varchar', isNullable: false },
14
+ { name: 'projectId', type: 'varchar', isNullable: false },
15
+ { name: 'credentials', type: 'json', isNullable: true },
16
+ { name: 'config', type: 'json', isNullable: true },
17
+ { name: 'deletedAt', type: 'datetime', isNullable: true },
18
+ { name: 'createdAt', type: 'datetime', default: 'CURRENT_TIMESTAMP' },
19
+ { name: 'modifiedAt', type: 'datetime', default: 'CURRENT_TIMESTAMP' },
20
+ ],
21
+ }), true);
22
+ await queryRunner.createTable(new typeorm_1.Table({
23
+ name: 'data_mart',
24
+ columns: [
25
+ { name: 'id', type: 'varchar', isPrimary: true },
26
+ { name: 'title', type: 'varchar', isNullable: false },
27
+ { name: 'definitionType', type: 'varchar', isNullable: true },
28
+ { name: 'definition', type: 'json', isNullable: true },
29
+ { name: 'status', type: 'varchar', isNullable: false, default: "'DRAFT'" },
30
+ { name: 'description', type: 'text', isNullable: true },
31
+ { name: 'projectId', type: 'varchar', isNullable: false },
32
+ { name: 'createdById', type: 'varchar', isNullable: false },
33
+ { name: 'deletedAt', type: 'datetime', isNullable: true },
34
+ { name: 'createdAt', type: 'datetime', default: 'CURRENT_TIMESTAMP' },
35
+ { name: 'modifiedAt', type: 'datetime', default: 'CURRENT_TIMESTAMP' },
36
+ { name: 'storageId', type: 'varchar', isNullable: true },
37
+ ],
38
+ }), true);
39
+ await queryRunner.createForeignKey('data_mart', new typeorm_1.TableForeignKey({
40
+ columnNames: ['storageId'],
41
+ referencedTableName: 'data_storage',
42
+ referencedColumnNames: ['id'],
43
+ onDelete: 'NO ACTION',
44
+ onUpdate: 'NO ACTION',
45
+ }));
46
+ }
47
+ async down(queryRunner) {
48
+ await (0, helper_1.softDropTable)(queryRunner, 'data_mart');
49
+ await (0, helper_1.softDropTable)(queryRunner, 'data_storage');
50
+ }
51
+ }
52
+ exports.CreateDataMartAndDataStorageTables1750350724543 = CreateDataMartAndDataStorageTables1750350724543;
53
+ //# sourceMappingURL=1750350724543-create-data-mart-and-data-storage-tables.js.map
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.softDropTable = softDropTable;
4
+ async function softDropTable(queryRunner, tableName) {
5
+ let n = 0;
6
+ let backupName = `${tableName}_backup`;
7
+ while (await queryRunner.hasTable(backupName)) {
8
+ n += 1;
9
+ backupName = `${tableName}_backup_${n}`;
10
+ }
11
+ await queryRunner.renameTable(tableName, backupName);
12
+ }
13
+ //# sourceMappingURL=helper.js.map