@into-cps-association/libms 0.4.5 → 0.5.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 (127) hide show
  1. package/DEVELOPER.md +80 -0
  2. package/DOCKER.md +295 -0
  3. package/README.md +8 -0
  4. package/compose.lib.dev.yml +9 -0
  5. package/compose.lib.yml +8 -0
  6. package/dist/src/app.module.d.ts +2 -1
  7. package/dist/src/app.module.js +14 -16
  8. package/dist/src/app.module.js.map +1 -1
  9. package/dist/src/bootstrap.d.ts +3 -3
  10. package/dist/src/bootstrap.js +13 -13
  11. package/dist/src/bootstrap.js.map +1 -1
  12. package/dist/src/cloudcmd/cloudcmd.d.ts +1 -5
  13. package/dist/src/cloudcmd/cloudcmd.js +15 -9
  14. package/dist/src/cloudcmd/cloudcmd.js.map +1 -1
  15. package/dist/src/enums/config-mode.enum.d.ts +4 -0
  16. package/dist/src/enums/config-mode.enum.js +6 -0
  17. package/dist/src/enums/config-mode.enum.js.map +1 -0
  18. package/dist/src/files/files-service.factory.d.ts +5 -0
  19. package/dist/src/files/files-service.factory.js +22 -0
  20. package/dist/src/files/files-service.factory.js.map +1 -0
  21. package/dist/src/files/files.module.d.ts +2 -1
  22. package/dist/src/files/files.module.js +23 -9
  23. package/dist/src/files/files.module.js.map +1 -1
  24. package/dist/src/files/files.resolver.d.ts +8 -0
  25. package/dist/src/files/{resolvers/files.resolver.js → files.resolver.js} +14 -14
  26. package/dist/src/files/files.resolver.js.map +1 -0
  27. package/dist/src/files/git/git-files.module.d.ts +2 -0
  28. package/dist/src/files/git/git-files.module.js +19 -0
  29. package/dist/src/files/git/git-files.module.js.map +1 -0
  30. package/dist/src/files/git/git-files.service.d.ts +14 -0
  31. package/dist/src/files/git/git-files.service.js +67 -0
  32. package/dist/src/files/git/git-files.service.js.map +1 -0
  33. package/dist/src/files/interfaces/files.service.interface.d.ts +6 -3
  34. package/dist/src/files/interfaces/files.service.interface.js +1 -2
  35. package/dist/src/files/interfaces/files.service.interface.js.map +1 -1
  36. package/dist/src/files/local/local-files.module.d.ts +2 -0
  37. package/dist/src/files/local/local-files.module.js +18 -0
  38. package/dist/src/files/local/local-files.module.js.map +1 -0
  39. package/dist/src/files/local/local-files.service.d.ts +14 -0
  40. package/dist/src/files/{services → local}/local-files.service.js +17 -15
  41. package/dist/src/files/local/local-files.service.js.map +1 -0
  42. package/dist/src/main.js +4 -6
  43. package/dist/src/main.js.map +1 -1
  44. package/dist/src/types.d.ts +19 -19
  45. package/dist/src/types.js +56 -59
  46. package/dist/src/types.js.map +1 -1
  47. package/dist/test/cloudcmd/cloudcmd.spec.js +14 -16
  48. package/dist/test/cloudcmd/cloudcmd.spec.js.map +1 -1
  49. package/dist/test/e2e/app.e2e.spec.js +18 -18
  50. package/dist/test/e2e/app.e2e.spec.js.map +1 -1
  51. package/dist/test/integration/files.service.integration.spec.js +28 -19
  52. package/dist/test/integration/files.service.integration.spec.js.map +1 -1
  53. package/dist/test/testUtil.d.ts +66 -68
  54. package/dist/test/testUtil.js +21 -23
  55. package/dist/test/testUtil.js.map +1 -1
  56. package/dist/test/unit/files-service.factory.unit.spec.js +22 -16
  57. package/dist/test/unit/files-service.factory.unit.spec.js.map +1 -1
  58. package/dist/test/unit/files.resolver.unit.spec.js +26 -24
  59. package/dist/test/unit/files.resolver.unit.spec.js.map +1 -1
  60. package/dist/test/unit/git-files.service.unit.spec.d.ts +1 -0
  61. package/dist/test/unit/git-files.service.unit.spec.js +55 -0
  62. package/dist/test/unit/git-files.service.unit.spec.js.map +1 -0
  63. package/dist/test/unit/local-files.service.unit.spec.js +23 -24
  64. package/dist/test/unit/local-files.service.unit.spec.js.map +1 -1
  65. package/dist/tsconfig.tsbuildinfo +1 -1
  66. package/eslint.config.js +60 -0
  67. package/jest.config.ts +47 -0
  68. package/package.json +55 -48
  69. package/src/app.module.ts +1 -1
  70. package/src/bootstrap.ts +7 -3
  71. package/src/cloudcmd/cloudcmd.ts +11 -3
  72. package/src/enums/config-mode.enum.ts +4 -0
  73. package/src/files/files-service.factory.ts +19 -0
  74. package/src/files/files.module.ts +24 -4
  75. package/src/files/{resolvers/files.resolver.ts → files.resolver.ts} +9 -8
  76. package/src/files/git/git-files.module.ts +9 -0
  77. package/src/files/git/git-files.service.ts +58 -0
  78. package/src/files/interfaces/files.service.interface.ts +4 -1
  79. package/src/files/local/local-files.module.ts +8 -0
  80. package/src/files/{services → local}/local-files.service.ts +15 -10
  81. package/src/main.ts +1 -1
  82. package/test/cloudcmd/cloudcmd.spec.ts +4 -6
  83. package/test/e2e/app.e2e.spec.ts +4 -3
  84. package/test/integration/files.service.integration.spec.ts +19 -4
  85. package/test/testUtil.ts +3 -0
  86. package/test/unit/files-service.factory.unit.spec.ts +24 -10
  87. package/test/unit/files.resolver.unit.spec.ts +19 -12
  88. package/test/unit/git-files.service.unit.spec.ts +81 -0
  89. package/test/unit/local-files.service.unit.spec.ts +4 -2
  90. package/tsconfig.json +10 -7
  91. package/.env +0 -6
  92. package/.eslintignore +0 -6
  93. package/.eslintrc +0 -53
  94. package/coverage/clover.xml +0 -162
  95. package/coverage/cobertura-coverage.xml +0 -306
  96. package/coverage/coverage-final.json +0 -8
  97. package/coverage/lcov-report/base.css +0 -224
  98. package/coverage/lcov-report/block-navigation.js +0 -87
  99. package/coverage/lcov-report/favicon.png +0 -0
  100. package/coverage/lcov-report/index.html +0 -176
  101. package/coverage/lcov-report/prettify.css +0 -1
  102. package/coverage/lcov-report/prettify.js +0 -2
  103. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  104. package/coverage/lcov-report/sorter.js +0 -196
  105. package/coverage/lcov-report/src/bootstrap.ts.html +0 -196
  106. package/coverage/lcov-report/src/cloudcmd/cloudcmd.ts.html +0 -181
  107. package/coverage/lcov-report/src/cloudcmd/index.html +0 -116
  108. package/coverage/lcov-report/src/files/files.module.ts.html +0 -112
  109. package/coverage/lcov-report/src/files/index.html +0 -116
  110. package/coverage/lcov-report/src/files/resolvers/files.resolver.ts.html +0 -154
  111. package/coverage/lcov-report/src/files/resolvers/index.html +0 -116
  112. package/coverage/lcov-report/src/files/services/files-service.factory.ts.html +0 -151
  113. package/coverage/lcov-report/src/files/services/index.html +0 -131
  114. package/coverage/lcov-report/src/files/services/local-files.service.ts.html +0 -313
  115. package/coverage/lcov-report/src/index.html +0 -131
  116. package/coverage/lcov-report/src/types.ts.html +0 -361
  117. package/coverage/lcov.info +0 -237
  118. package/dist/src/files/resolvers/files.resolver.d.ts +0 -8
  119. package/dist/src/files/resolvers/files.resolver.js.map +0 -1
  120. package/dist/src/files/services/files-service.factory.d.ts +0 -12
  121. package/dist/src/files/services/files-service.factory.js +0 -40
  122. package/dist/src/files/services/files-service.factory.js.map +0 -1
  123. package/dist/src/files/services/local-files.service.d.ts +0 -11
  124. package/dist/src/files/services/local-files.service.js.map +0 -1
  125. package/jest.config.json +0 -30
  126. package/src/files/services/files-service.factory.ts +0 -22
  127. /package/{pm2.config.js → pm2.config.cjs} +0 -0
@@ -1,21 +1,35 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- const common_1 = require("@nestjs/common");
10
- const files_resolver_1 = require("./resolvers/files.resolver");
11
- const files_service_factory_1 = require("./services/files-service.factory");
12
- const local_files_service_1 = require("./services/local-files.service");
7
+ import { Module } from '@nestjs/common';
8
+ import FilesResolver from './files.resolver.js';
9
+ import { GitFilesModule } from './git/git-files.module.js';
10
+ import { LocalFilesModule } from './local/local-files.module.js';
11
+ import LocalFilesService from './local/local-files.service.js';
12
+ import GitFilesService from './git/git-files.service.js';
13
+ import { FILE_SERVICE } from './interfaces/files.service.interface.js';
14
+ import FilesServiceFactory from './files-service.factory.js';
15
+ import { ConfigService } from '@nestjs/config';
13
16
  let FilesModule = class FilesModule {
14
17
  };
15
18
  FilesModule = __decorate([
16
- (0, common_1.Module)({
17
- providers: [files_resolver_1.default, local_files_service_1.default, files_service_factory_1.default],
19
+ Module({
20
+ imports: [LocalFilesModule, GitFilesModule],
21
+ providers: [
22
+ FilesResolver,
23
+ {
24
+ provide: FILE_SERVICE,
25
+ useFactory: (configService, localFilesService, gitFilesService) => {
26
+ const fileServices = [localFilesService, gitFilesService];
27
+ return FilesServiceFactory.create(configService, fileServices);
28
+ },
29
+ inject: [ConfigService, LocalFilesService, GitFilesService],
30
+ },
31
+ ],
18
32
  })
19
33
  ], FilesModule);
20
- exports.default = FilesModule;
34
+ export default FilesModule;
21
35
  //# sourceMappingURL=files.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.module.js","sourceRoot":"","sources":["../../../src/files/files.module.ts"],"names":[],"mappings":";;;;;;;;AAAA,2CAAwC;AACxC,+DAAuD;AACvD,4EAAmE;AACnE,wEAA+D;AAKhD,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IAH/B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,wBAAa,EAAE,6BAAiB,EAAE,+BAAmB,CAAC;KACnE,CAAC;GACmB,WAAW,CAAG;kBAAd,WAAW"}
1
+ {"version":3,"file":"files.module.js","sourceRoot":"","sources":["../../../src/files/files.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,eAAe,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAoBhC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IAlB/B,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC;QAC3C,SAAS,EAAE;YACT,aAAa;YACb;gBACE,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,CACV,aAA4B,EAC5B,iBAAoC,EACpC,eAAgC,EAChC,EAAE;oBACF,MAAM,YAAY,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;oBAC1D,OAAO,mBAAmB,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,eAAe,CAAC;aAC5D;SACF;KACF,CAAC;GACmB,WAAW,CAAG;eAAd,WAAW"}
@@ -0,0 +1,8 @@
1
+ import { IFilesService } from './interfaces/files.service.interface.js';
2
+ import { Project } from '../types.js';
3
+ export default class FilesResolver {
4
+ private readonly filesService;
5
+ constructor(filesService: IFilesService);
6
+ listDirectory(path: string): Promise<Project>;
7
+ readFile(path: string): Promise<Project>;
8
+ }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -11,14 +10,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
11
  return function (target, key) { decorator(target, key, paramIndex); }
13
12
  };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const graphql_1 = require("@nestjs/graphql");
16
- const files_service_factory_1 = require("../services/files-service.factory");
17
- const types_1 = require("../../types");
13
+ import { Resolver, Query, Args } from '@nestjs/graphql';
14
+ import { FILE_SERVICE, } from './interfaces/files.service.interface.js';
15
+ import { Project } from '../types.js';
16
+ import { Inject } from '@nestjs/common';
18
17
  let FilesResolver = class FilesResolver {
19
18
  filesService;
20
- constructor(filesServiceFactory) {
21
- this.filesService = filesServiceFactory.create();
19
+ constructor(filesService) {
20
+ this.filesService = filesService;
22
21
  }
23
22
  async listDirectory(path) {
24
23
  return this.filesService.listDirectory(path);
@@ -28,22 +27,23 @@ let FilesResolver = class FilesResolver {
28
27
  }
29
28
  };
30
29
  __decorate([
31
- (0, graphql_1.Query)(() => types_1.Project),
32
- __param(0, (0, graphql_1.Args)('path')),
30
+ Query(() => Project),
31
+ __param(0, Args('path')),
33
32
  __metadata("design:type", Function),
34
33
  __metadata("design:paramtypes", [String]),
35
34
  __metadata("design:returntype", Promise)
36
35
  ], FilesResolver.prototype, "listDirectory", null);
37
36
  __decorate([
38
- (0, graphql_1.Query)(() => types_1.Project),
39
- __param(0, (0, graphql_1.Args)('path')),
37
+ Query(() => Project),
38
+ __param(0, Args('path')),
40
39
  __metadata("design:type", Function),
41
40
  __metadata("design:paramtypes", [String]),
42
41
  __metadata("design:returntype", Promise)
43
42
  ], FilesResolver.prototype, "readFile", null);
44
43
  FilesResolver = __decorate([
45
- (0, graphql_1.Resolver)(),
46
- __metadata("design:paramtypes", [files_service_factory_1.default])
44
+ Resolver(),
45
+ __param(0, Inject(FILE_SERVICE)),
46
+ __metadata("design:paramtypes", [Object])
47
47
  ], FilesResolver);
48
- exports.default = FilesResolver;
48
+ export default FilesResolver;
49
49
  //# sourceMappingURL=files.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.resolver.js","sourceRoot":"","sources":["../../../src/files/files.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,YAAY,GAEb,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGzB,IAAM,aAAa,GAAnB,MAAM,aAAa;IAES;IADzC,YACyC,YAA2B;QAA3B,iBAAY,GAAZ,YAAY,CAAe;IACjE,CAAC;IAGE,AAAN,KAAK,CAAC,aAAa,CAAe,IAAY;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,CAAe,IAAY;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AARO;IADL,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IACA,WAAA,IAAI,CAAC,MAAM,CAAC,CAAA;;;;kDAEhC;AAGK;IADL,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IACL,WAAA,IAAI,CAAC,MAAM,CAAC,CAAA;;;;6CAE3B;AAbkB,aAAa;IADjC,QAAQ,EAAE;IAGN,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;;GAFJ,aAAa,CAcjC;eAdoB,aAAa"}
@@ -0,0 +1,2 @@
1
+ export declare class GitFilesModule {
2
+ }
@@ -0,0 +1,19 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from '@nestjs/common';
8
+ import GitFilesService from './git-files.service.js';
9
+ import LocalFilesService from '../local/local-files.service.js';
10
+ let GitFilesModule = class GitFilesModule {
11
+ };
12
+ GitFilesModule = __decorate([
13
+ Module({
14
+ providers: [GitFilesService, LocalFilesService],
15
+ exports: [GitFilesService],
16
+ })
17
+ ], GitFilesModule);
18
+ export { GitFilesModule };
19
+ //# sourceMappingURL=git-files.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-files.module.js","sourceRoot":"","sources":["../../../../src/files/git/git-files.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAMzD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAJ1B,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,eAAe,EAAE,iBAAiB,CAAC;QAC/C,OAAO,EAAE,CAAC,eAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG"}
@@ -0,0 +1,14 @@
1
+ import { Project } from 'src/types.js';
2
+ import { IFilesService } from '../interfaces/files.service.interface.js';
3
+ import { CONFIG_MODE } from '../../enums/config-mode.enum.js';
4
+ import { ConfigService } from '@nestjs/config';
5
+ export default class GitFilesService implements IFilesService {
6
+ private configService;
7
+ private readonly dataPath;
8
+ private localFilesService;
9
+ constructor(configService: ConfigService);
10
+ private cloneRepositories;
11
+ getMode(): CONFIG_MODE;
12
+ listDirectory(path: string): Promise<Project>;
13
+ readFile(path: string): Promise<Project>;
14
+ }
@@ -0,0 +1,67 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Inject, Injectable } from '@nestjs/common';
11
+ import { CONFIG_MODE } from '../../enums/config-mode.enum.js';
12
+ import { ConfigService } from '@nestjs/config';
13
+ import * as git from 'isomorphic-git';
14
+ import * as fs from 'fs';
15
+ import * as http from 'isomorphic-git/http/node/index.cjs';
16
+ import LocalFilesService from '../local/local-files.service.js';
17
+ let GitFilesService = class GitFilesService {
18
+ configService;
19
+ dataPath;
20
+ localFilesService;
21
+ constructor(configService) {
22
+ this.configService = configService;
23
+ this.dataPath = this.configService.get('LOCAL_PATH');
24
+ this.cloneRepositories();
25
+ }
26
+ cloneRepositories() {
27
+ let userRepoUrl = '';
28
+ let userRepoUrls = [];
29
+ let userCounter = 1;
30
+ while ((userRepoUrl = this.configService.get(`GIT_USER${userCounter}_REPO_URL`)) !== undefined) {
31
+ userRepoUrls.push(userRepoUrl);
32
+ ++userCounter;
33
+ }
34
+ userRepoUrls.forEach((userRepoUrl, i) => {
35
+ git
36
+ .clone({
37
+ fs,
38
+ http,
39
+ dir: this.dataPath + `/user${i + 1}`,
40
+ url: userRepoUrl,
41
+ ref: 'main',
42
+ singleBranch: true,
43
+ })
44
+ .then(() => console.log('done cloning ' + userRepoUrl));
45
+ });
46
+ }
47
+ getMode() {
48
+ return CONFIG_MODE.GIT;
49
+ }
50
+ listDirectory(path) {
51
+ console.log('listDirectory', path);
52
+ return this.localFilesService.listDirectory(path);
53
+ }
54
+ readFile(path) {
55
+ return this.localFilesService.readFile(path);
56
+ }
57
+ };
58
+ __decorate([
59
+ Inject(LocalFilesService),
60
+ __metadata("design:type", LocalFilesService)
61
+ ], GitFilesService.prototype, "localFilesService", void 0);
62
+ GitFilesService = __decorate([
63
+ Injectable(),
64
+ __metadata("design:paramtypes", [ConfigService])
65
+ ], GitFilesService);
66
+ export default GitFilesService;
67
+ //# sourceMappingURL=git-files.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-files.service.js","sourceRoot":"","sources":["../../../../src/files/git/git-files.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,oCAAoC,CAAC;AAC3D,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAGjD,IAAM,eAAe,GAArB,MAAM,eAAe;IAId;IAHH,QAAQ,CAAS;IACC,iBAAiB,CAAoB;IAExE,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACvB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAC1C,WAAW,WAAW,WAAW,CAClC,CAAC,KAAK,SAAS,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,EAAE,WAAW,CAAC;QAChB,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;YACtC,GAAG;iBACA,KAAK,CAAC;gBACL,EAAE;gBACF,IAAI;gBACJ,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACpC,GAAG,EAAE,WAAW;gBAChB,GAAG,EAAE,MAAM;gBACX,YAAY,EAAE,IAAI;aACnB,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AA5CoC;IAAlC,MAAM,CAAC,iBAAiB,CAAC;8BAA4B,iBAAiB;0DAAC;AAFrD,eAAe;IADnC,UAAU,EAAE;qCAKwB,aAAa;GAJ7B,eAAe,CA8CnC;eA9CoB,eAAe"}
@@ -1,5 +1,8 @@
1
- import { Project } from 'src/types';
1
+ import { CONFIG_MODE } from '../../enums/config-mode.enum.js';
2
+ import { Project } from 'src/types.js';
3
+ export declare const FILE_SERVICE = "FILE_SERVICE";
2
4
  export interface IFilesService {
3
- listDirectory(path: string): Promise<Project>;
4
- readFile(path: string): Promise<Project>;
5
+ listDirectory(path: string): Promise<Project>;
6
+ readFile(path: string): Promise<Project>;
7
+ getMode(): CONFIG_MODE;
5
8
  }
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export const FILE_SERVICE = 'FILE_SERVICE';
3
2
  //# sourceMappingURL=files.service.interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.service.interface.js","sourceRoot":"","sources":["../../../../src/files/interfaces/files.service.interface.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"files.service.interface.js","sourceRoot":"","sources":["../../../../src/files/interfaces/files.service.interface.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare class LocalFilesModule {
2
+ }
@@ -0,0 +1,18 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from '@nestjs/common';
8
+ import LocalFilesService from './local-files.service.js';
9
+ let LocalFilesModule = class LocalFilesModule {
10
+ };
11
+ LocalFilesModule = __decorate([
12
+ Module({
13
+ providers: [LocalFilesService],
14
+ exports: [LocalFilesService],
15
+ })
16
+ ], LocalFilesModule);
17
+ export { LocalFilesModule };
18
+ //# sourceMappingURL=local-files.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-files.module.js","sourceRoot":"","sources":["../../../../src/files/local/local-files.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AAMlD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAJ5B,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,OAAO,EAAE,CAAC,iBAAiB,CAAC;KAC7B,CAAC;GACW,gBAAgB,CAAG"}
@@ -0,0 +1,14 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { Project } from 'src/types.js';
3
+ import { IFilesService } from '../interfaces/files.service.interface.js';
4
+ import { CONFIG_MODE } from '../../enums/config-mode.enum.js';
5
+ export default class LocalFilesService implements IFilesService {
6
+ private configService;
7
+ private readonly dataPath;
8
+ constructor(configService: ConfigService);
9
+ getMode(): CONFIG_MODE;
10
+ listDirectory(path: string): Promise<Project>;
11
+ readFile(path: string): Promise<Project>;
12
+ private static getFileStats;
13
+ private static formatResponse;
14
+ }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -9,19 +8,23 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
9
  };
11
10
  var LocalFilesService_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- const common_1 = require("@nestjs/common");
14
- const fs = require("fs");
15
- const path_1 = require("path");
16
- const config_1 = require("@nestjs/config");
11
+ import { Injectable, InternalServerErrorException } from '@nestjs/common';
12
+ import * as fs from 'fs';
13
+ import { join } from 'path';
14
+ import { ConfigService } from '@nestjs/config';
15
+ import { CONFIG_MODE } from '../../enums/config-mode.enum.js';
17
16
  let LocalFilesService = LocalFilesService_1 = class LocalFilesService {
18
17
  configService;
18
+ dataPath;
19
19
  constructor(configService) {
20
20
  this.configService = configService;
21
+ this.dataPath = this.configService.get('LOCAL_PATH');
22
+ }
23
+ getMode() {
24
+ return CONFIG_MODE.LOCAL;
21
25
  }
22
26
  async listDirectory(path) {
23
- const dataPath = this.configService.get('LOCAL_PATH');
24
- const fullPath = (0, path_1.join)(dataPath, path);
27
+ const fullPath = join(this.dataPath, path);
25
28
  const files = await fs.promises.readdir(fullPath);
26
29
  const edges = await Promise.all(files.map((file) => LocalFilesService_1.getFileStats(fullPath, file)));
27
30
  const tree = {
@@ -35,19 +38,18 @@ let LocalFilesService = LocalFilesService_1 = class LocalFilesService {
35
38
  return { repository: { tree } };
36
39
  }
37
40
  async readFile(path) {
38
- const dataPath = this.configService.get('LOCAL_PATH');
39
- const fullPath = (0, path_1.join)(dataPath, path);
41
+ const fullPath = join(this.dataPath, path);
40
42
  try {
41
43
  const content = await (await fs.promises.readFile(fullPath, 'utf8')).trim();
42
44
  const name = path.split('/').pop();
43
45
  return LocalFilesService_1.formatResponse(name, content);
44
46
  }
45
47
  catch (error) {
46
- throw new common_1.InternalServerErrorException('Error reading file');
48
+ throw new InternalServerErrorException('Error reading file', error);
47
49
  }
48
50
  }
49
51
  static async getFileStats(fullPath, file) {
50
- const stats = await fs.promises.lstat((0, path_1.join)(fullPath, file));
52
+ const stats = await fs.promises.lstat(join(fullPath, file));
51
53
  if (stats.isDirectory()) {
52
54
  return { node: { name: file, type: 'tree' } };
53
55
  }
@@ -70,8 +72,8 @@ let LocalFilesService = LocalFilesService_1 = class LocalFilesService {
70
72
  }
71
73
  };
72
74
  LocalFilesService = LocalFilesService_1 = __decorate([
73
- (0, common_1.Injectable)(),
74
- __metadata("design:paramtypes", [config_1.ConfigService])
75
+ Injectable(),
76
+ __metadata("design:paramtypes", [ConfigService])
75
77
  ], LocalFilesService);
76
- exports.default = LocalFilesService;
78
+ export default LocalFilesService;
77
79
  //# sourceMappingURL=local-files.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-files.service.js","sourceRoot":"","sources":["../../../../src/files/local/local-files.service.ts"],"names":[],"mappings":"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"}
package/dist/src/main.js CHANGED
@@ -1,9 +1,7 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const commander_1 = require("commander");
5
- const bootstrap_1 = require("./bootstrap");
6
- const program = new commander_1.Command();
2
+ import { Command } from 'commander';
3
+ import bootstrap from './bootstrap.js';
4
+ const program = new Command();
7
5
  program
8
6
  .description('The lib microservice is a file server. It supports file transfer over GraphQL and HTTP protocols.')
9
7
  .option('-c, --config <file>', 'provide the config file (default .env)')
@@ -12,7 +10,7 @@ program
12
10
  .showHelpAfterError();
13
11
  program.parse(process.argv);
14
12
  const options = program.opts();
15
- (0, bootstrap_1.default)({
13
+ bootstrap({
16
14
  config: options.config,
17
15
  httpServer: options.http,
18
16
  runHelp: () => program.help(),
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,2CAAoC;AAOpC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,WAAW,CACV,mGAAmG,CACpG;KACA,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;KACvE,MAAM,CACL,mBAAmB,EACnB,kDAAkD,CACnD;KACA,UAAU,CAAC,YAAY,EAAE,wBAAwB,CAAC;KAClD,kBAAkB,EAAE,CAAC;AAExB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,MAAM,OAAO,GAAmB,OAAO,CAAC,IAAI,EAAE,CAAC;AAE/C,IAAA,mBAAS,EAAC;IACR,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,UAAU,EAAE,OAAO,CAAC,IAAI;IACxB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;CAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAOvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,WAAW,CACV,mGAAmG,CACpG;KACA,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;KACvE,MAAM,CACL,mBAAmB,EACnB,kDAAkD,CACnD;KACA,UAAU,CAAC,YAAY,EAAE,wBAAwB,CAAC;KAClD,kBAAkB,EAAE,CAAC;AAExB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,MAAM,OAAO,GAAmB,OAAO,CAAC,IAAI,EAAE,CAAC;AAE/C,SAAS,CAAC;IACR,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,UAAU,EAAE,OAAO,CAAC,IAAI;IACxB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;CAC9B,CAAC,CAAC"}
@@ -1,43 +1,43 @@
1
1
  export declare class Blob {
2
- name: string;
3
- type: string;
2
+ name: string;
3
+ type: string;
4
4
  }
5
5
  export declare class BlobEdge {
6
- node: Blob;
6
+ node: Blob;
7
7
  }
8
8
  export declare class BlobConnection {
9
- edges: BlobEdge[];
9
+ edges: BlobEdge[];
10
10
  }
11
11
  export declare class TreeEntry {
12
- name: string;
13
- type: string;
12
+ name: string;
13
+ type: string;
14
14
  }
15
15
  export declare class TreeEdge {
16
- node: TreeEntry;
16
+ node: TreeEntry;
17
17
  }
18
18
  export declare class TreeConnection {
19
- edges: TreeEdge[];
19
+ edges: TreeEdge[];
20
20
  }
21
21
  export declare class Tree {
22
- blobs: BlobConnection;
23
- trees: TreeConnection;
22
+ blobs: BlobConnection;
23
+ trees: TreeConnection;
24
24
  }
25
25
  export declare class RepositoryBlob {
26
- name: string;
27
- rawBlob: string;
28
- rawTextBlob: string;
26
+ name: string;
27
+ rawBlob: string;
28
+ rawTextBlob: string;
29
29
  }
30
30
  export declare class RepositoryBlobConnection {
31
- nodes: RepositoryBlob[];
31
+ nodes: RepositoryBlob[];
32
32
  }
33
33
  export declare class Repository {
34
- tree?: Tree;
35
- blobs?: RepositoryBlobConnection;
34
+ tree?: Tree;
35
+ blobs?: RepositoryBlobConnection;
36
36
  }
37
37
  export declare class Project {
38
- repository: Repository;
38
+ repository: Repository;
39
39
  }
40
40
  export declare class Query {
41
- listDirectory: Project;
42
- readFile: Project;
41
+ listDirectory: Project;
42
+ readFile: Project;
43
43
  }