runlify 0.0.612 → 0.0.615

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 (32) hide show
  1. package/bin/runlify +0 -0
  2. package/build/projectsGeneration/builders/SystemMetaBuilder.js +29 -34
  3. package/build/projectsGeneration/builders/fields/BaseFieldBuilder.js +2 -2
  4. package/build/projectsGeneration/builders/integrationClients/IntegrationClientArgsModelBuilder.js +44 -0
  5. package/build/projectsGeneration/builders/integrationClients/IntegrationClientBaseModelBuilder.js +29 -0
  6. package/build/projectsGeneration/builders/integrationClients/IntegrationClientBuilder.js +55 -0
  7. package/build/projectsGeneration/builders/integrationClients/IntegrationClientQueryMethodsBuilder.js +55 -0
  8. package/build/projectsGeneration/builders/integrationClients/IntegrationClientReturnModelBuilder.js +49 -0
  9. package/build/projectsGeneration/generateProject.js +155 -237
  10. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsConfiguration.js +2 -3
  11. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsEntity.js +2 -3
  12. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsIntegrationClient.js +36 -0
  13. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsRestApi.js +2 -3
  14. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient.js +9 -0
  15. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/types.js +12 -0
  16. package/build/projectsGeneration/generators/fileTemplates/back/services/serviceConstrictors.js +3 -3
  17. package/build/types/projectsGeneration/builders/SystemMetaBuilder.d.ts +6 -2
  18. package/build/types/projectsGeneration/builders/buildedTypes.d.ts +16 -0
  19. package/build/types/projectsGeneration/builders/integrationClients/IntegrationClientArgsModelBuilder.d.ts +7 -0
  20. package/build/types/projectsGeneration/builders/integrationClients/IntegrationClientBaseModelBuilder.d.ts +11 -0
  21. package/build/types/projectsGeneration/builders/integrationClients/IntegrationClientBuilder.d.ts +10 -0
  22. package/build/types/projectsGeneration/builders/integrationClients/IntegrationClientQueryMethodsBuilder.d.ts +13 -0
  23. package/build/types/projectsGeneration/builders/integrationClients/IntegrationClientReturnModelBuilder.d.ts +9 -0
  24. package/build/types/projectsGeneration/generateProject.d.ts +2 -0
  25. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsConfiguration.d.ts +2 -1
  26. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsEntity.d.ts +2 -1
  27. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsIntegrationClient.d.ts +4 -0
  28. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsRestApi.d.ts +2 -1
  29. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient.d.ts +4 -0
  30. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/types.d.ts +4 -0
  31. package/build/types/projectsGeneration/types.d.ts +2 -2
  32. package/package.json +7 -7
@@ -50,7 +50,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
50
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.generateFront = exports.generateFrontHelm = exports.generateFrontGitlabCi = exports.generateFrontSrc = exports.generateFrontSrcEntity = exports.generateFrontSrcGetEntityValidation = exports.generateFrontSrcEntityIcon = exports.generateFrontSrcEntityTranslationsReports = exports.generateFrontSrcEntityTranslationsSumRegistries = exports.generateFrontSrcEntityTranslationsInfoRegistries = exports.generateFrontSrcEntityTranslationsCatalogs = exports.generateFrontSrcEntityTranslationsDocs = exports.generateBack = exports.generateBackDocs = exports.generateAdminAppDocsConfiguration = exports.generateBackDevEnumsInit = exports.generateBackDevEnums = exports.generateBackEntitiesEnumInit = exports.generateBackEnumsInit = exports.generateBackEntityEnum = exports.generateBackEnums = exports.generateBackDocsEntities = exports.generateBackDocsRestApis = exports.generateBackDocsConfiguration = exports.generateBackEnvs = exports.generateBackHelm = exports.generateBackGitlabCi = exports.generateBackSrc = exports.generateBackSrcEntity = void 0;
53
+ exports.generateFront = exports.generateFrontHelm = exports.generateFrontGitlabCi = exports.generateFrontSrc = exports.generateFrontSrcEntity = exports.generateFrontSrcGetEntityValidation = exports.generateFrontSrcEntityIcon = exports.generateFrontSrcEntityTranslationsReports = exports.generateFrontSrcEntityTranslationsSumRegistries = exports.generateFrontSrcEntityTranslationsInfoRegistries = exports.generateFrontSrcEntityTranslationsCatalogs = exports.generateFrontSrcEntityTranslationsDocs = exports.generateBack = exports.generateBackDocs = exports.generateAdminAppDocsConfiguration = exports.generateBackDevEnumsInit = exports.generateBackDevEnums = exports.generateBackEntitiesEnumInit = exports.generateBackEnumsInit = exports.generateBackEntityEnum = exports.generateBackEnums = exports.generateBackDocsEntities = exports.generateBackDocsIntegrationClients = exports.generateBackDocsRestApis = exports.generateBackDocsConfiguration = exports.generateBackEnvs = exports.generateBackHelm = exports.generateBackGitlabCi = exports.generateBackIntegrationClients = exports.generateBackSrc = exports.generateBackSrcEntity = void 0;
54
54
  var path_1 = require("path");
55
55
  var resources_1 = require("./generators/fileTemplates/ui/resources");
56
56
  var ResourcesPage_1 = require("./generators/fileTemplates/ui/ResourcesPage");
@@ -83,10 +83,10 @@ var uiLangInfoRegistriesTmpl_1 = require("./generators/fileTemplates/ui/i18n/lan
83
83
  var uiLangSumRegistriesTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangSumRegistriesTmpl");
84
84
  var args_1 = require("./args");
85
85
  var defaultEnv_1 = require("./generators/fileTemplates/back/environment/defaultEnv");
86
- var backDocsConfiguration_1 = require("./generators/fileTemplates/back/environment/docs/backDocsConfiguration");
86
+ var backDocsConfiguration_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsConfiguration"));
87
87
  var adminAppDocsConfiguration_1 = require("./generators/fileTemplates/ui/environment/docs/adminAppDocsConfiguration");
88
- var backDocsRestApi_1 = require("./generators/fileTemplates/back/environment/docs/backDocsRestApi");
89
- var backDocsEntity_1 = require("./generators/fileTemplates/back/environment/docs/backDocsEntity");
88
+ var backDocsRestApi_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsRestApi"));
89
+ var backDocsEntity_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsEntity"));
90
90
  var pluralize_1 = require("pluralize");
91
91
  var baseResolvers_1 = __importDefault(require("./generators/fileTemplates/back/graph/help/baseResolvers"));
92
92
  var HelpService_1 = __importDefault(require("./generators/fileTemplates/back/services/HelpService/HelpService"));
@@ -102,6 +102,10 @@ var Entities_1 = require("./generators/fileTemplates/back/Entities");
102
102
  var initEntities_1 = require("./generators/fileTemplates/back/initEntities");
103
103
  var getEntityValidation_1 = require("./generators/fileTemplates/ui/pages/getEntityValidation");
104
104
  var elastic_1 = require("./generators/fileTemplates/back/elastic/elastic");
105
+ var backDocsIntegrationClient_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsIntegrationClient"));
106
+ var IntegrationClient_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient"));
107
+ var change_case_1 = require("change-case");
108
+ var types_2 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/types"));
105
109
  // Бек (generateBack)
106
110
  // Исходники бека (generateBackSrc)
107
111
  // Исходники бека (generateBackSrcEntity)
@@ -149,11 +153,25 @@ var generateBackSrc = function (args) { return __awaiter(void 0, void 0, void 0,
149
153
  }))];
150
154
  case 2:
151
155
  _a.sent();
156
+ (0, exports.generateBackIntegrationClients)(args);
152
157
  return [2 /*return*/];
153
158
  }
154
159
  });
155
160
  }); };
156
161
  exports.generateBackSrc = generateBackSrc;
162
+ var generateBackIntegrationClients = function (args) { return __awaiter(void 0, void 0, void 0, function () {
163
+ var _i, _a, client, clientFolder;
164
+ return __generator(this, function (_b) {
165
+ for (_i = 0, _a = args.system.integrationClients; _i < _a.length; _i++) {
166
+ client = _a[_i];
167
+ clientFolder = (0, path_1.join)(args.options.detachedBackProject, 'src', 'integrationClients', "".concat(client.name));
168
+ (0, fs_jetpack_1.write)((0, path_1.join)(clientFolder, "".concat((0, change_case_1.pascalCase)(client.name), "Client.ts")), (0, IntegrationClient_1.default)(args, client));
169
+ (0, fs_jetpack_1.write)((0, path_1.join)(clientFolder, "types.ts"), (0, types_2.default)(args, client));
170
+ }
171
+ return [2 /*return*/];
172
+ });
173
+ }); };
174
+ exports.generateBackIntegrationClients = generateBackIntegrationClients;
157
175
  var generateBackGitlabCi = function (_args) { return __awaiter(void 0, void 0, void 0, function () {
158
176
  return __generator(this, function (_a) {
159
177
  return [2 /*return*/];
@@ -169,60 +187,51 @@ exports.generateBackHelm = generateBackHelm;
169
187
  var generateBackEnvs = function (args) { return __awaiter(void 0, void 0, void 0, function () {
170
188
  var filePath;
171
189
  return __generator(this, function (_a) {
172
- switch (_a.label) {
173
- case 0:
174
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'config', 'default.json');
175
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, defaultEnv_1.backDefaultEnv)(args))];
176
- case 1:
177
- _a.sent();
178
- return [2 /*return*/];
179
- }
190
+ filePath = (0, path_1.join)(args.options.detachedBackProject, 'config', 'default.json');
191
+ (0, fs_jetpack_1.write)(filePath, (0, defaultEnv_1.backDefaultEnv)(args));
192
+ return [2 /*return*/];
180
193
  });
181
194
  }); };
182
195
  exports.generateBackEnvs = generateBackEnvs;
183
196
  var generateBackDocsConfiguration = function (args) { return __awaiter(void 0, void 0, void 0, function () {
184
197
  var filePath;
185
198
  return __generator(this, function (_a) {
186
- switch (_a.label) {
187
- case 0:
188
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'configuration.md');
189
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, backDocsConfiguration_1.backDocsConfiguration)(args))];
190
- case 1:
191
- _a.sent();
192
- return [2 /*return*/];
193
- }
199
+ filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'configuration.md');
200
+ (0, fs_jetpack_1.write)(filePath, (0, backDocsConfiguration_1.default)(args));
201
+ return [2 /*return*/];
194
202
  });
195
203
  }); };
196
204
  exports.generateBackDocsConfiguration = generateBackDocsConfiguration;
197
205
  var generateBackDocsRestApis = function (args) { return __awaiter(void 0, void 0, void 0, function () {
198
206
  var _i, _a, restApi, filePath;
199
207
  return __generator(this, function (_b) {
200
- switch (_b.label) {
201
- case 0:
202
- _i = 0, _a = args.system.restApis;
203
- _b.label = 1;
204
- case 1:
205
- if (!(_i < _a.length)) return [3 /*break*/, 4];
206
- restApi = _a[_i];
207
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'restApis', "".concat(restApi.name, ".md"));
208
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, backDocsRestApi_1.backDocsRestApi)(args, restApi))];
209
- case 2:
210
- _b.sent();
211
- _b.label = 3;
212
- case 3:
213
- _i++;
214
- return [3 /*break*/, 1];
215
- case 4: return [2 /*return*/];
208
+ for (_i = 0, _a = args.system.restApis; _i < _a.length; _i++) {
209
+ restApi = _a[_i];
210
+ filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'restApis', "".concat(restApi.name, ".md"));
211
+ (0, fs_jetpack_1.write)(filePath, (0, backDocsRestApi_1.default)(args, restApi));
216
212
  }
213
+ return [2 /*return*/];
217
214
  });
218
215
  }); };
219
216
  exports.generateBackDocsRestApis = generateBackDocsRestApis;
217
+ var generateBackDocsIntegrationClients = function (args) { return __awaiter(void 0, void 0, void 0, function () {
218
+ var _i, _a, client, filePath;
219
+ return __generator(this, function (_b) {
220
+ for (_i = 0, _a = args.system.integrationClients; _i < _a.length; _i++) {
221
+ client = _a[_i];
222
+ filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'integrationClients', "".concat(client.name, ".md"));
223
+ (0, fs_jetpack_1.write)(filePath, (0, backDocsIntegrationClient_1.default)(args, client));
224
+ }
225
+ return [2 /*return*/];
226
+ });
227
+ }); };
228
+ exports.generateBackDocsIntegrationClients = generateBackDocsIntegrationClients;
220
229
  var generateBackDocsEntities = function (args) { return __awaiter(void 0, void 0, void 0, function () {
221
230
  return __generator(this, function (_a) {
222
231
  switch (_a.label) {
223
232
  case 0: return [4 /*yield*/, Promise.all(args.entities.map(function (entity) {
224
233
  var filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', (0, pluralize_1.plural)(entity.type), "".concat(entity.name, ".md"));
225
- return (0, fs_jetpack_1.write)(filePath, (0, backDocsEntity_1.backDocsEntity)((0, args_1.prepareEntityWideGenerationArgs)(args, entity)));
234
+ return (0, fs_jetpack_1.write)(filePath, (0, backDocsEntity_1.default)((0, args_1.prepareEntityWideGenerationArgs)(args, entity)));
226
235
  }))];
227
236
  case 1:
228
237
  _a.sent();
@@ -329,14 +338,9 @@ exports.generateBackDevEnumsInit = generateBackDevEnumsInit;
329
338
  var generateAdminAppDocsConfiguration = function (args) { return __awaiter(void 0, void 0, void 0, function () {
330
339
  var filePath;
331
340
  return __generator(this, function (_a) {
332
- switch (_a.label) {
333
- case 0:
334
- filePath = (0, path_1.join)(args.options.detachedUiProject, 'docs', 'configuration.md');
335
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, adminAppDocsConfiguration_1.adminAppDocsConfiguration)(args))];
336
- case 1:
337
- _a.sent();
338
- return [2 /*return*/];
339
- }
341
+ filePath = (0, path_1.join)(args.options.detachedUiProject, 'docs', 'configuration.md');
342
+ (0, fs_jetpack_1.write)(filePath, (0, adminAppDocsConfiguration_1.adminAppDocsConfiguration)(args));
343
+ return [2 /*return*/];
340
344
  });
341
345
  }); };
342
346
  exports.generateAdminAppDocsConfiguration = generateAdminAppDocsConfiguration;
@@ -346,6 +350,7 @@ var generateBackDocs = function (args) { return __awaiter(void 0, void 0, void 0
346
350
  case 0: return [4 /*yield*/, Promise.all([
347
351
  (0, exports.generateBackDocsConfiguration)(args),
348
352
  (0, exports.generateBackDocsRestApis)(args),
353
+ (0, exports.generateBackDocsIntegrationClients)(args),
349
354
  (0, exports.generateBackDocsEntities)(args),
350
355
  (0, exports.generateBackEnums)(args),
351
356
  (0, exports.generateBackEnumsInit)(args),
@@ -386,145 +391,85 @@ exports.generateBack = generateBack;
386
391
  var generateFrontSrcEntityTranslationsDocs = function (args) { return __awaiter(void 0, void 0, void 0, function () {
387
392
  var _i, _a, lang, filePath;
388
393
  return __generator(this, function (_b) {
389
- switch (_b.label) {
390
- case 0:
391
- _i = 0, _a = args.system.languages;
392
- _b.label = 1;
393
- case 1:
394
- if (!(_i < _a.length)) return [3 /*break*/, 4];
395
- lang = _a[_i];
396
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Docs.ts"));
397
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, uiLangDocsTmpl_1.uiTranslationsLangDocsTmpl)(args, lang.id))];
398
- case 2:
399
- _b.sent();
400
- _b.label = 3;
401
- case 3:
402
- _i++;
403
- return [3 /*break*/, 1];
404
- case 4: return [2 /*return*/];
394
+ // log.info('generateFrontSrcEntityTranslationsDocs');
395
+ for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
396
+ lang = _a[_i];
397
+ filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Docs.ts"));
398
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangDocsTmpl_1.uiTranslationsLangDocsTmpl)(args, lang.id));
405
399
  }
400
+ return [2 /*return*/];
406
401
  });
407
402
  }); };
408
403
  exports.generateFrontSrcEntityTranslationsDocs = generateFrontSrcEntityTranslationsDocs;
409
404
  var generateFrontSrcEntityTranslationsCatalogs = function (args) { return __awaiter(void 0, void 0, void 0, function () {
410
405
  var _i, _a, lang, filePath;
411
406
  return __generator(this, function (_b) {
412
- switch (_b.label) {
413
- case 0:
414
- _i = 0, _a = args.system.languages;
415
- _b.label = 1;
416
- case 1:
417
- if (!(_i < _a.length)) return [3 /*break*/, 4];
418
- lang = _a[_i];
419
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Catalogs.ts"));
420
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, uiLangCatalogsTmpl_1.uiTranslationsLangCatalogsTmpl)(args, lang.id))];
421
- case 2:
422
- _b.sent();
423
- _b.label = 3;
424
- case 3:
425
- _i++;
426
- return [3 /*break*/, 1];
427
- case 4: return [2 /*return*/];
407
+ // log.info('generateFrontSrcEntityTranslationsCatalogs');
408
+ for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
409
+ lang = _a[_i];
410
+ filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Catalogs.ts"));
411
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangCatalogsTmpl_1.uiTranslationsLangCatalogsTmpl)(args, lang.id));
428
412
  }
413
+ return [2 /*return*/];
429
414
  });
430
415
  }); };
431
416
  exports.generateFrontSrcEntityTranslationsCatalogs = generateFrontSrcEntityTranslationsCatalogs;
432
417
  var generateFrontSrcEntityTranslationsInfoRegistries = function (args) { return __awaiter(void 0, void 0, void 0, function () {
433
418
  var _i, _a, lang, filePath;
434
419
  return __generator(this, function (_b) {
435
- switch (_b.label) {
436
- case 0:
437
- _i = 0, _a = args.system.languages;
438
- _b.label = 1;
439
- case 1:
440
- if (!(_i < _a.length)) return [3 /*break*/, 4];
441
- lang = _a[_i];
442
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "InfoRegistries.ts"));
443
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, uiLangInfoRegistriesTmpl_1.uiTranslationsLangInfoRegistriesTmpl)(args, lang.id))];
444
- case 2:
445
- _b.sent();
446
- _b.label = 3;
447
- case 3:
448
- _i++;
449
- return [3 /*break*/, 1];
450
- case 4: return [2 /*return*/];
420
+ // log.info('generateFrontSrcEntityTranslationsInfoRegistries');
421
+ for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
422
+ lang = _a[_i];
423
+ filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "InfoRegistries.ts"));
424
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangInfoRegistriesTmpl_1.uiTranslationsLangInfoRegistriesTmpl)(args, lang.id));
451
425
  }
426
+ return [2 /*return*/];
452
427
  });
453
428
  }); };
454
429
  exports.generateFrontSrcEntityTranslationsInfoRegistries = generateFrontSrcEntityTranslationsInfoRegistries;
455
430
  var generateFrontSrcEntityTranslationsSumRegistries = function (args) { return __awaiter(void 0, void 0, void 0, function () {
456
431
  var _i, _a, lang, filePath;
457
432
  return __generator(this, function (_b) {
458
- switch (_b.label) {
459
- case 0:
460
- _i = 0, _a = args.system.languages;
461
- _b.label = 1;
462
- case 1:
463
- if (!(_i < _a.length)) return [3 /*break*/, 4];
464
- lang = _a[_i];
465
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "SumRegistries.ts"));
466
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, uiLangSumRegistriesTmpl_1.uiTranslationsLangSumRegistriesTmpl)(args, lang.id))];
467
- case 2:
468
- _b.sent();
469
- _b.label = 3;
470
- case 3:
471
- _i++;
472
- return [3 /*break*/, 1];
473
- case 4: return [2 /*return*/];
433
+ // log.info('generateFrontSrcEntityTranslationsSumRegistries');
434
+ for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
435
+ lang = _a[_i];
436
+ filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "SumRegistries.ts"));
437
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangSumRegistriesTmpl_1.uiTranslationsLangSumRegistriesTmpl)(args, lang.id));
474
438
  }
439
+ return [2 /*return*/];
475
440
  });
476
441
  }); };
477
442
  exports.generateFrontSrcEntityTranslationsSumRegistries = generateFrontSrcEntityTranslationsSumRegistries;
478
443
  var generateFrontSrcEntityTranslationsReports = function (args) { return __awaiter(void 0, void 0, void 0, function () {
479
444
  var _i, _a, lang, filePath;
480
445
  return __generator(this, function (_b) {
481
- switch (_b.label) {
482
- case 0:
483
- _i = 0, _a = args.system.languages;
484
- _b.label = 1;
485
- case 1:
486
- if (!(_i < _a.length)) return [3 /*break*/, 4];
487
- lang = _a[_i];
488
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Reports.ts"));
489
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, uiLangReportsTmpl_1.uiTranslationsLangReportsTmpl)(args, lang.id))];
490
- case 2:
491
- _b.sent();
492
- _b.label = 3;
493
- case 3:
494
- _i++;
495
- return [3 /*break*/, 1];
496
- case 4: return [2 /*return*/];
446
+ // log.info('generateFrontSrcEntityTranslationsReports');
447
+ for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
448
+ lang = _a[_i];
449
+ filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Reports.ts"));
450
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangReportsTmpl_1.uiTranslationsLangReportsTmpl)(args, lang.id));
497
451
  }
452
+ return [2 /*return*/];
498
453
  });
499
454
  }); };
500
455
  exports.generateFrontSrcEntityTranslationsReports = generateFrontSrcEntityTranslationsReports;
501
456
  var generateFrontSrcEntityIcon = function (entityWideGenerationArgs) { return __awaiter(void 0, void 0, void 0, function () {
502
457
  var name, filePath;
503
458
  return __generator(this, function (_a) {
504
- switch (_a.label) {
505
- case 0:
506
- name = entityWideGenerationArgs.entity.name;
507
- filePath = (0, path_1.join)(entityWideGenerationArgs.options.detachedUiProject, "src/adm/pages/".concat(name, "/").concat((0, cases_1.pascalSingular)(name), "Icon.tsx"));
508
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, Icon_1.uiEntityIconTmpl)(entityWideGenerationArgs))];
509
- case 1:
510
- _a.sent();
511
- return [2 /*return*/];
512
- }
459
+ name = entityWideGenerationArgs.entity.name;
460
+ filePath = (0, path_1.join)(entityWideGenerationArgs.options.detachedUiProject, "src/adm/pages/".concat(name, "/").concat((0, cases_1.pascalSingular)(name), "Icon.tsx"));
461
+ (0, fs_jetpack_1.write)(filePath, (0, Icon_1.uiEntityIconTmpl)(entityWideGenerationArgs));
462
+ return [2 /*return*/];
513
463
  });
514
464
  }); };
515
465
  exports.generateFrontSrcEntityIcon = generateFrontSrcEntityIcon;
516
466
  var generateFrontSrcGetEntityValidation = function (entityWideGenerationArgs) { return __awaiter(void 0, void 0, void 0, function () {
517
467
  var name, filePath;
518
468
  return __generator(this, function (_a) {
519
- switch (_a.label) {
520
- case 0:
521
- name = entityWideGenerationArgs.entity.name;
522
- filePath = (0, path_1.join)(entityWideGenerationArgs.options.detachedUiProject, "src/adm/pages/".concat(name, "/get").concat((0, cases_1.pascalSingular)(name), "Validation.tsx"));
523
- return [4 /*yield*/, (0, fs_jetpack_1.write)(filePath, (0, getEntityValidation_1.uiGetEntityValidationTmpl)(entityWideGenerationArgs))];
524
- case 1:
525
- _a.sent();
526
- return [2 /*return*/];
527
- }
469
+ name = entityWideGenerationArgs.entity.name;
470
+ filePath = (0, path_1.join)(entityWideGenerationArgs.options.detachedUiProject, "src/adm/pages/".concat(name, "/get").concat((0, cases_1.pascalSingular)(name), "Validation.tsx"));
471
+ (0, fs_jetpack_1.write)(filePath, (0, getEntityValidation_1.uiGetEntityValidationTmpl)(entityWideGenerationArgs));
472
+ return [2 /*return*/];
528
473
  });
529
474
  }); };
530
475
  exports.generateFrontSrcGetEntityValidation = generateFrontSrcGetEntityValidation;
@@ -633,16 +578,14 @@ var generateProject = function (system, initialOpts) {
633
578
  // Pre grapgql types compose generation
634
579
  _a.sent();
635
580
  graphMetaServiceDir = (0, path_1.join)(prjBackSrcPrefixedDir, 'graph', 'services', 'meta');
636
- return [4 /*yield*/, (0, fs_jetpack_1.write)("".concat(graphMetaServiceDir, "/baseTypeDefs.ts"), (0, typeDefs_1.graphMetaTypesTmpl)())];
637
- case 4:
638
- _a.sent();
581
+ (0, fs_jetpack_1.write)("".concat(graphMetaServiceDir, "/baseTypeDefs.ts"), (0, typeDefs_1.graphMetaTypesTmpl)());
639
582
  return [4 /*yield*/, (0, genGraphSchemesByLocalGenerator_1.genGraphSchemesByLocalGenerator)(opts)];
640
- case 5:
583
+ case 4:
641
584
  _a.sent();
642
585
  return [4 /*yield*/, generateHelpService(args, false)
643
586
  // Full generation
644
587
  ];
645
- case 6:
588
+ case 5:
646
589
  _a.sent();
647
590
  // Full generation
648
591
  return [4 /*yield*/, Promise.all(entities.map(function (entity) {
@@ -650,43 +593,30 @@ var generateProject = function (system, initialOpts) {
650
593
  }))
651
594
  // Prisma schema
652
595
  ];
653
- case 7:
596
+ case 6:
654
597
  // Full generation
655
598
  _a.sent();
656
599
  servicesDir = (0, path_1.join)(prjBackSrcPrefixedDir, 'services');
657
600
  graphDir = (0, path_1.join)(prjBackSrcPrefixedDir, 'graph');
658
- return [4 /*yield*/, (0, fs_jetpack_1.write)("".concat(graphMetaServiceDir, "/baseResolvers.ts"), (0, resolvers_1.graphMetaResolversTmpl)())
659
- // // Context
660
- // // src/dc/services/context.ts
661
- // if (opts.genContext && !opts.typesOnly) {
662
- // await write(join(servicesDir, 'context.ts'), graphContextTmpl(args));
663
- // }
664
- // Types
665
- ];
666
- case 8:
667
- _a.sent();
668
- if (!opts.genContext) return [3 /*break*/, 10];
669
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'BaseServices.ts'), (0, BaseServices_1.default)(args))];
670
- case 9:
671
- _a.sent();
672
- _a.label = 10;
673
- case 10:
674
- if (!opts.genContext) return [3 /*break*/, 12];
675
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'serviceConstrictors.ts'), (0, serviceConstrictors_1.default)(args))];
676
- case 11:
677
- _a.sent();
678
- _a.label = 12;
679
- case 12:
601
+ (0, fs_jetpack_1.write)("".concat(graphMetaServiceDir, "/baseResolvers.ts"), (0, resolvers_1.graphMetaResolversTmpl)());
602
+ // // Context
603
+ // // src/dc/services/context.ts
604
+ // if (opts.genContext && !opts.typesOnly) {
605
+ // write(join(servicesDir, 'context.ts'), graphContextTmpl(args));
606
+ // }
607
+ // Types
608
+ if (opts.genContext) {
609
+ (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'BaseServices.ts'), (0, BaseServices_1.default)(args));
610
+ }
611
+ // Types
612
+ if (opts.genContext) {
613
+ (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'serviceConstrictors.ts'), (0, serviceConstrictors_1.default)(args));
614
+ }
680
615
  generatedAdditionalServices = (0, AdditionalServices_1.additionalServicesTmpl)();
681
616
  return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(servicesDir, 'AdditionalServices.ts'), generatedAdditionalServices)];
682
- case 13:
683
- _a.sent();
684
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(graphDir, 'permissionsToGraphql.ts'), (0, permissionsToGraphql_1.backPermissionToGraphqlTmpl)(args, opts))
685
- // Root
686
- // src/restRouter.ts
687
- ];
688
- case 14:
617
+ case 7:
689
618
  _a.sent();
619
+ (0, fs_jetpack_1.write)((0, path_1.join)(graphDir, 'permissionsToGraphql.ts'), (0, permissionsToGraphql_1.backPermissionToGraphqlTmpl)(args, opts));
690
620
  restRouter = (0, restRouter_1.restRouterTmpl)();
691
621
  return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjDetachedBackSrcDir, 'rest', 'restRouter.ts'), restRouter)
692
622
  // // src/meta/metadata.json
@@ -707,88 +637,76 @@ var generateProject = function (system, initialOpts) {
707
637
  // infoRegistries: system.infoRegistries,
708
638
  // sumRegistries: system.sumRegistries,
709
639
  // }
710
- // await write(
640
+ // write(
711
641
  // join(genFolder, 'metadata.json'),
712
642
  // stringify(metaWithoutOptions, undefined, 1)
713
643
  // )
714
644
  // UI
715
645
  ];
716
- case 15:
646
+ case 8:
717
647
  _a.sent();
718
648
  prjUiSrcPrefixedDir = '';
719
649
  prjDetachedUiSrcDir = (0, path_1.join)(opts.detachedUiProject, 'src');
720
650
  // if (opts.detachedBackProject) {
721
651
  prjUiSrcPrefixedDir = (0, path_1.join)(prjDetachedUiSrcDir, 'adm');
722
- if (!!opts.typesOnly) return [3 /*break*/, 32];
723
- if (!opts.genUiResources) return [3 /*break*/, 17];
724
- generatedResources = (0, resources_1.uiResourcesTmpl)(args);
725
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'resources.tsx'), generatedResources)];
726
- case 16:
727
- _a.sent();
728
- _a.label = 17;
729
- case 17:
730
- if (!opts.genUiResourcesPage) return [3 /*break*/, 19];
731
- generatedResources = (0, ResourcesPage_1.uiResourcesPageTmpl)(args);
732
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'ResourcesPage.tsx'), generatedResources)];
733
- case 18:
734
- _a.sent();
735
- _a.label = 19;
736
- case 19:
652
+ if (!!opts.typesOnly) return [3 /*break*/, 13];
653
+ // Resources
654
+ // src/dc/resources.tsx genUiResources uiResourcesTmpl
655
+ if (opts.genUiResources) {
656
+ generatedResources = (0, resources_1.uiResourcesTmpl)(args);
657
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'resources.tsx'), generatedResources);
658
+ }
659
+ // Resources page
660
+ // src/dc/ResourcesPage.tsx genUiResourcesPage uiResourcesPageTmpl
661
+ if (opts.genUiResourcesPage) {
662
+ generatedResources = (0, ResourcesPage_1.uiResourcesPageTmpl)(args);
663
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'ResourcesPage.tsx'), generatedResources);
664
+ }
737
665
  generatedUiMetaPage = (0, MetaPage_1.uiMetaPageTmpl)();
738
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'MetaPage.tsx'), generatedUiMetaPage)
739
- // Resources page
740
- // src/dc/entityMapping.ts genUiEntityMapping uiEntityMappingTmpl
741
- ];
742
- case 20:
743
- _a.sent();
744
- if (!opts.genUiEntityMapping) return [3 /*break*/, 22];
745
- generatedResources = (0, entityMapping_1.uiEntityMappingTmpl)(args, opts);
746
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'entityMapping.ts'), generatedResources)];
747
- case 21:
748
- _a.sent();
749
- _a.label = 22;
750
- case 22:
751
- if (!opts.genUiMenu) return [3 /*break*/, 25];
666
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'MetaPage.tsx'), generatedUiMetaPage);
667
+ // Resources page
668
+ // src/dc/entityMapping.ts genUiEntityMapping uiEntityMappingTmpl
669
+ if (opts.genUiEntityMapping) {
670
+ generatedResources = (0, entityMapping_1.uiEntityMappingTmpl)(args, opts);
671
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'entityMapping.ts'), generatedResources);
672
+ }
673
+ if (!opts.genUiMenu) return [3 /*break*/, 10];
752
674
  generatedSubMenu = (0, getDefaultMenu_1.uiGetDefaultMenuTmpl)(args);
753
675
  generatedAdditionalMenu = (0, getAdditionalMenu_1.uiGetAdditionalMenuTmpl)();
754
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'getDefaultMenu.ts'), generatedSubMenu)];
755
- case 23:
756
- _a.sent();
676
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'getDefaultMenu.ts'), generatedSubMenu);
757
677
  return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'getAdditionalMenu.ts'), generatedAdditionalMenu)];
758
- case 24:
759
- _a.sent();
760
- _a.label = 25;
761
- case 25:
762
- if (!opts.genUiRoutes) return [3 /*break*/, 27];
763
- generatedResources = (0, routes_1.default)(args);
764
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'routes.tsx'), generatedResources)];
765
- case 26:
678
+ case 9:
766
679
  _a.sent();
767
- _a.label = 27;
768
- case 27:
680
+ _a.label = 10;
681
+ case 10:
682
+ // Resources page
683
+ // src/dc/routes.tsx genUiRoutes uiRoutesTmpl
684
+ if (opts.genUiRoutes) {
685
+ generatedResources = (0, routes_1.default)(args);
686
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'routes.tsx'), generatedResources);
687
+ }
769
688
  generatedUiAdditionalRoutesTmpl = (0, additionalRoutes_1.uiAdditionalRoutesTmpl)();
770
689
  return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'additionalRoutes.tsx'), generatedUiAdditionalRoutesTmpl)
771
690
  // Functions page
772
691
  // src/dc/functions/Functions.tsx
773
692
  ];
774
- case 28:
775
- _a.sent();
776
- if (!opts.genUiFunctions) return [3 /*break*/, 30];
777
- generatedResources = (0, Functions_1.uiFunctionsTmpl)(opts);
778
- uiFunctionsDir = (0, path_1.join)(prjUiSrcPrefixedDir, 'functions');
779
- return [4 /*yield*/, (0, fs_jetpack_1.write)((0, path_1.join)(uiFunctionsDir, 'Functions.tsx'), generatedResources)];
780
- case 29:
693
+ case 11:
781
694
  _a.sent();
782
- _a.label = 30;
783
- case 30:
784
- if (!opts.genUiDashboard) return [3 /*break*/, 32];
695
+ // Functions page
696
+ // src/dc/functions/Functions.tsx
697
+ if (opts.genUiFunctions) {
698
+ generatedResources = (0, Functions_1.uiFunctionsTmpl)(opts);
699
+ uiFunctionsDir = (0, path_1.join)(prjUiSrcPrefixedDir, 'functions');
700
+ (0, fs_jetpack_1.write)((0, path_1.join)(uiFunctionsDir, 'Functions.tsx'), generatedResources);
701
+ }
702
+ if (!opts.genUiDashboard) return [3 /*break*/, 13];
785
703
  generatedResources = (0, Dashboard_1.default)();
786
704
  return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'Dashboard.tsx'), generatedResources)];
787
- case 31:
705
+ case 12:
788
706
  _a.sent();
789
- _a.label = 32;
790
- case 32: return [4 /*yield*/, (0, generateEnvironment_1.generateEnvironment)(args)];
791
- case 33:
707
+ _a.label = 13;
708
+ case 13: return [4 /*yield*/, (0, generateEnvironment_1.generateEnvironment)(args)];
709
+ case 14:
792
710
  _a.sent();
793
711
  return [2 /*return*/];
794
712
  }
@@ -796,4 +714,4 @@ var generateProject = function (system, initialOpts) {
796
714
  });
797
715
  };
798
716
  exports.default = generateProject;
799
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2QkFBMkI7QUFDM0IscUVBQXlFO0FBQ3pFLDZFQUFpRjtBQUNqRixtR0FBd0c7QUFDeEcsZ0dBQStFO0FBQy9FLDZFQUFpRjtBQUNqRixzRkFBcUU7QUFDckUsK0VBQW1GO0FBQ25GLCtFQUFtRjtBQUNuRiw2REFBMkQ7QUFDM0QsNkVBQW9GO0FBQ3BGLHFGQUFtRjtBQUNuRixpQ0FBK0U7QUFDL0UsbURBQWlEO0FBQ2pELDhFQUFnRjtBQUNoRixpQ0FBOEM7QUFDOUMsbUZBQXVGO0FBQ3ZGLHFGQUF5RjtBQUN6RixtRUFBdUU7QUFDdkUsZ0ZBQXdGO0FBQ3hGLGtGQUE2RjtBQUM3RixrR0FBb0c7QUFFcEcseUZBQW1HO0FBQ25HLHlDQUFrQztBQUNsQywrRkFBeUc7QUFDekcsaUVBQTJFO0FBQzNFLHdDQUF1RDtBQUN2RCxpR0FBMkc7QUFDM0csNkdBQXVIO0FBQ3ZILDJHQUFxSDtBQUNySCwrQkFLZTtBQUNmLHFGQUF1RjtBQUN2RixnSEFBOEc7QUFDOUcsc0hBQW9IO0FBQ3BILG9HQUFrRztBQUNsRyxrR0FBZ0c7QUFDaEcsdUNBQTRDO0FBQzVDLDJHQUF3RjtBQUN4RixpSEFBOEY7QUFDOUYsdUdBQXlGO0FBQ3pGLHlHQUFzRjtBQUN0Rix5SEFBc0c7QUFDdEcsNkRBQStEO0FBQy9ELG1FQUFxRTtBQUNyRSx5RUFBK0U7QUFDL0UsbUVBQXlFO0FBQ3pFLHFIQUF1RztBQUN2RyxxRUFBbUU7QUFDbkUsNkVBQTJFO0FBQzNFLCtGQUFtRztBQUNuRywyRUFBNkY7QUFFN0YscUJBQXFCO0FBQ3JCLG9DQUFvQztBQUNwQyw0Q0FBNEM7QUFDNUMs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
717
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2QkFBMkI7QUFDM0IscUVBQXlFO0FBQ3pFLDZFQUFpRjtBQUNqRixtR0FBd0c7QUFDeEcsZ0dBQStFO0FBQy9FLDZFQUFpRjtBQUNqRixzRkFBcUU7QUFDckUsK0VBQW1GO0FBQ25GLCtFQUFtRjtBQUNuRiw2REFBMkQ7QUFDM0QsNkVBQW9GO0FBQ3BGLHFGQUFtRjtBQUNuRixpQ0FBK0U7QUFDL0UsbURBQWlEO0FBQ2pELDhFQUFnRjtBQUNoRixpQ0FBOEM7QUFDOUMsbUZBQXVGO0FBQ3ZGLHFGQUF5RjtBQUN6RixtRUFBdUU7QUFDdkUsZ0ZBQXdGO0FBQ3hGLGtGQUE2RjtBQUM3RixrR0FBb0c7QUFFcEcseUZBQW1HO0FBQ25HLHlDQUFrQztBQUNsQywrRkFBeUc7QUFDekcsaUVBQTJFO0FBQzNFLHdDQUF1RDtBQUN2RCxpR0FBMkc7QUFDM0csNkdBQXVIO0FBQ3ZILDJHQUFxSDtBQUNySCwrQkFLZTtBQUNmLHFGQUF1RjtBQUN2RixpSUFBMEc7QUFDMUcsc0hBQW9IO0FBQ3BILHFIQUE4RjtBQUM5RixtSEFBNEY7QUFDNUYsdUNBQTRDO0FBQzVDLDJHQUF3RjtBQUN4RixpSEFBOEY7QUFDOUYsdUdBQXlGO0FBQ3pGLHlHQUFzRjtBQUN0Rix5SEFBc0c7QUFDdEcsNkRBQStEO0FBQy9ELG1FQUFxRTtBQUNyRSx5RUFBK0U7QUFDL0UsbUVBQXlFO0FBQ3pFLHFIQUF1RztBQUN2RyxxRUFBbUU7QUFDbkUsNkVBQTJFO0FBQzNFLCtGQUFtRztBQUNuRywyRUFBNkY7QUFDN0YseUlBQWtIO0FBQ2xILDJJQUE0SDtBQUM1SCwyQ0FBd0M7QUFDeEMs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