runlify 0.0.714 → 0.0.715

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 (352) hide show
  1. package/build/cli.js +20 -52
  2. package/build/commands/availableEnvironments.js +16 -51
  3. package/build/commands/generate.js +10 -46
  4. package/build/commands/init.js +73 -140
  5. package/build/commands/login.js +6 -42
  6. package/build/commands/logout.js +5 -41
  7. package/build/commands/pullEnvs.js +23 -70
  8. package/build/commands/readEnv.js +16 -45
  9. package/build/commands/regen.js +17 -48
  10. package/build/commands/runlify.js +6 -37
  11. package/build/commands/showToken.js +14 -45
  12. package/build/commands/start.js +57 -84
  13. package/build/commands/tryGetMeta.js +7 -43
  14. package/build/documentation/algoritmToDoc.js +4 -4
  15. package/build/documentation/algoritmToDoc.spec.js +5 -5
  16. package/build/documentation/curlExampleToText.js +15 -16
  17. package/build/documentation/curlExampleToText.spec.js +32 -16
  18. package/build/documentation/doc.js +1 -2
  19. package/build/documentation/docToFlatDoc.js +13 -17
  20. package/build/documentation/docToFlatDoc.spec.js +9 -9
  21. package/build/documentation/flatDoc.js +1 -2
  22. package/build/documentation/flatDocToText.js +4 -6
  23. package/build/documentation/flatDocToText.spec.js +20 -8
  24. package/build/documentation/templateDoc.js +1 -2
  25. package/build/documentation/templateDocToDoc.js +2 -2
  26. package/build/extensions/auth.js +64 -124
  27. package/build/extensions/cli-extension.js +3 -3
  28. package/build/extensions/cloudEnv.js +76 -120
  29. package/build/extensions/cloudMeta.js +35 -73
  30. package/build/extensions/globalConfig.js +37 -80
  31. package/build/extensions/localConfig.js +15 -46
  32. package/build/extensions/preventRunningIfUpdateAvailable.js +18 -52
  33. package/build/log.js +6 -6
  34. package/build/projectsGeneration/args.js +33 -53
  35. package/build/projectsGeneration/builders/AdditionalServiceBuilder.js +62 -96
  36. package/build/projectsGeneration/builders/BaseBuilder.js +30 -34
  37. package/build/projectsGeneration/builders/BaseSavableEntityBuilder.js +272 -312
  38. package/build/projectsGeneration/builders/CatalogBuilder.js +17 -46
  39. package/build/projectsGeneration/builders/ConfigVarBuilder.js +25 -36
  40. package/build/projectsGeneration/builders/DeploymentBuilder.js +18 -47
  41. package/build/projectsGeneration/builders/DocumentBuilder.js +26 -56
  42. package/build/projectsGeneration/builders/InfoRegistryBuilder.js +106 -140
  43. package/build/projectsGeneration/builders/PageBuilder.js +22 -51
  44. package/build/projectsGeneration/builders/PermissionBuilder.js +12 -41
  45. package/build/projectsGeneration/builders/ReportBuilder.js +23 -52
  46. package/build/projectsGeneration/builders/RestApiBuilder.js +20 -50
  47. package/build/projectsGeneration/builders/RestApiMethodBuilder.js +25 -54
  48. package/build/projectsGeneration/builders/RoleBuilder.js +12 -41
  49. package/build/projectsGeneration/builders/SumRegistryBuilder.js +100 -133
  50. package/build/projectsGeneration/builders/SystemMetaBuilder.js +281 -324
  51. package/build/projectsGeneration/builders/TelegramBotBuilder.js +18 -47
  52. package/build/projectsGeneration/builders/docs/DocumentationOfDocumentBuilder.js +8 -9
  53. package/build/projectsGeneration/builders/fields/BaseFieldBuilder.js +89 -105
  54. package/build/projectsGeneration/builders/fields/IdFieldBuilder.js +24 -54
  55. package/build/projectsGeneration/builders/fields/LinkFieldBuilder.js +33 -62
  56. package/build/projectsGeneration/builders/fields/ModelFieldBuilder.js +18 -47
  57. package/build/projectsGeneration/builders/fields/ScalarFieldBuilder.js +11 -42
  58. package/build/projectsGeneration/builders/fields/ViewLinkFieldBuilder.js +26 -55
  59. package/build/projectsGeneration/builders/integrationClients/IntegrationClientArgsModelBuilder.js +6 -23
  60. package/build/projectsGeneration/builders/integrationClients/IntegrationClientBaseModelBuilder.js +28 -57
  61. package/build/projectsGeneration/builders/integrationClients/IntegrationClientBuilder.js +25 -54
  62. package/build/projectsGeneration/builders/integrationClients/IntegrationClientQueryMethodsBuilder.js +18 -47
  63. package/build/projectsGeneration/builders/integrationClients/IntegrationClientReturnModelBuilder.js +12 -41
  64. package/build/projectsGeneration/builders/materialUiIcons.js +2 -2
  65. package/build/projectsGeneration/builders/mehods/ArgsModelBuilder.js +6 -23
  66. package/build/projectsGeneration/builders/mehods/BaseModelBuilder.js +30 -59
  67. package/build/projectsGeneration/builders/mehods/MethodBuilder.js +36 -66
  68. package/build/projectsGeneration/builders/mehods/ReturnModelBuilder.js +12 -41
  69. package/build/projectsGeneration/builders/menu/BaseMenuItemBuilder.js +24 -54
  70. package/build/projectsGeneration/builders/menu/ExternalEnvMenuItemBuilder.js +11 -40
  71. package/build/projectsGeneration/builders/menu/ExternalMenuItemBuilder.js +11 -40
  72. package/build/projectsGeneration/builders/menu/GroupMenuItemBuilder.js +31 -66
  73. package/build/projectsGeneration/builders/menu/InternalMenuItemBuilder.js +16 -45
  74. package/build/projectsGeneration/builders/tsFilterFields.js +11 -12
  75. package/build/projectsGeneration/builders/tsFilterFields.spec.js +29 -11
  76. package/build/projectsGeneration/builders/ui/FormsBuilder.js +9 -10
  77. package/build/projectsGeneration/builders/ui/ListFormBuilder.js +9 -10
  78. package/build/projectsGeneration/builders/ui/ListFormFilterBuilder.js +14 -16
  79. package/build/projectsGeneration/builders/ui/ListFormFilterFieldBuilder.js +8 -9
  80. package/build/projectsGeneration/builders/utils/accessFunctions.js +4 -4
  81. package/build/projectsGeneration/builders/validation/baseValudationToYupAssertions.js +4 -4
  82. package/build/projectsGeneration/builders/validation/bigintValudationToYupAssertions.js +5 -5
  83. package/build/projectsGeneration/builders/validation/bigintValudationToYupAssertions.spec.js +7 -7
  84. package/build/projectsGeneration/builders/validation/floatValudationToYupAssertions.js +4 -4
  85. package/build/projectsGeneration/builders/validation/floatValudationToYupAssertions.spec.js +6 -6
  86. package/build/projectsGeneration/builders/validation/intValudationToYupAssertions.js +9 -9
  87. package/build/projectsGeneration/builders/validation/intValudationToYupAssertions.spec.js +9 -9
  88. package/build/projectsGeneration/builders/validation/numberValudationToYupAssertions.js +10 -10
  89. package/build/projectsGeneration/builders/validation/stringValudationToYupAssertions.js +6 -6
  90. package/build/projectsGeneration/builders/validation/stringValudationToYupAssertions.spec.js +6 -6
  91. package/build/projectsGeneration/commonEntities/addAggregateTrackings.js +3 -3
  92. package/build/projectsGeneration/commonEntities/addAuditLogs.js +6 -6
  93. package/build/projectsGeneration/commonEntities/addAutogeneration.js +4 -4
  94. package/build/projectsGeneration/commonEntities/addCommonCommands.js +2 -2
  95. package/build/projectsGeneration/commonEntities/addCommonEntities.js +14 -14
  96. package/build/projectsGeneration/commonEntities/addConfigurationVariables.js +4 -4
  97. package/build/projectsGeneration/commonEntities/addLanguages.js +3 -3
  98. package/build/projectsGeneration/commonEntities/addManagers.js +6 -6
  99. package/build/projectsGeneration/commonEntities/addRefreshTokens.js +4 -4
  100. package/build/projectsGeneration/commonEntities/addRoles.js +8 -8
  101. package/build/projectsGeneration/commonEntities/addTenants.js +3 -3
  102. package/build/projectsGeneration/commonEntities/addUserSettings.js +7 -7
  103. package/build/projectsGeneration/commonEntities/addUsers.js +4 -4
  104. package/build/projectsGeneration/defaultCatalogs/addElasticSearch.js +12 -13
  105. package/build/projectsGeneration/defaultCatalogs/files.js +6 -6
  106. package/build/projectsGeneration/fileCleaners/back/graphServices/cleanGraphServices.js +24 -59
  107. package/build/projectsGeneration/fileCleaners/back/services/cleanServices.js +32 -67
  108. package/build/projectsGeneration/fileCleaners/cleanFiles.js +7 -38
  109. package/build/projectsGeneration/fileCleaners/ui/cleanUi.js +7 -39
  110. package/build/projectsGeneration/fileCleaners/ui/pages/cleanPages.js +24 -59
  111. package/build/projectsGeneration/fileCleaners/ui/widgets/cleanWidgets.js +10 -40
  112. package/build/projectsGeneration/fileCleaners/ui/widgets/cleanWidgetsByType.js +29 -62
  113. package/build/projectsGeneration/genGraphSchemesByLocalGenerator.js +26 -68
  114. package/build/projectsGeneration/generateAdditionalService.js +41 -98
  115. package/build/projectsGeneration/generateEntity.js +215 -346
  116. package/build/projectsGeneration/generateEnvironment.js +157 -265
  117. package/build/projectsGeneration/generateProject.js +422 -724
  118. package/build/projectsGeneration/generators/fieldTypeToTsType.js +4 -4
  119. package/build/projectsGeneration/generators/fileTemplates/back/Entities.js +16 -14
  120. package/build/projectsGeneration/generators/fileTemplates/back/devEnum.js +17 -13
  121. package/build/projectsGeneration/generators/fileTemplates/back/elastic/elastic.js +8 -44
  122. package/build/projectsGeneration/generators/fileTemplates/back/elastic/jobs.js +36 -26
  123. package/build/projectsGeneration/generators/fileTemplates/back/enum.js +17 -13
  124. package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/Chart.js +12 -8
  125. package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/back.js +128 -12
  126. package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/ingress.js +54 -8
  127. package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/values.js +149 -13
  128. package/build/projectsGeneration/generators/fileTemplates/back/environment/ciNotify.js +19 -8
  129. package/build/projectsGeneration/generators/fileTemplates/back/environment/defaultEnv.js +5 -9
  130. package/build/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplBack.js +38 -8
  131. package/build/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplUI.js +42 -8
  132. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocSpec.js +3 -6
  133. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsConfiguration.js +27 -19
  134. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsEntity.js +7 -5
  135. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsIntegrationClient.js +44 -29
  136. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsRestApi.js +45 -18
  137. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/findLinksToEntities.js +2 -4
  138. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/getAllSavableEntities.js +7 -11
  139. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/getProjectSpec.js +206 -216
  140. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/titleMd.js +5 -5
  141. package/build/projectsGeneration/generators/fileTemplates/back/environment/gitlabCi.js +272 -37
  142. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.js +78 -9
  143. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/queue/getQueue.js +42 -9
  144. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/index.js +36 -9
  145. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient.js +56 -5
  146. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClients.js +12 -9
  147. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/fieldsToTsTypeFields.js +4 -6
  148. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/integrationClientConstrictors.js +13 -9
  149. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/tsModelTmpl.js +6 -4
  150. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/types.js +15 -7
  151. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalResolvers.js +9 -2
  152. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/permissionToGraphql.js +16 -9
  153. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/resolvers.js +32 -12
  154. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/typeDefs.js +18 -11
  155. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalTypes.js +7 -2
  156. package/build/projectsGeneration/generators/fileTemplates/back/graph/entityAdditionalPermissionToGraphqlTmpl.js +20 -9
  157. package/build/projectsGeneration/generators/fileTemplates/back/graph/entityBasePermissionToGraphql.js +22 -10
  158. package/build/projectsGeneration/generators/fileTemplates/back/graph/entityPermissionToGraphqlTmpl.js +18 -9
  159. package/build/projectsGeneration/generators/fileTemplates/back/graph/help/baseResolvers.js +17 -2
  160. package/build/projectsGeneration/generators/fileTemplates/back/graph/help/baseTypeDefs.js +15 -5
  161. package/build/projectsGeneration/generators/fileTemplates/back/graph/help/permissionsToGraphql.js +11 -2
  162. package/build/projectsGeneration/generators/fileTemplates/back/graph/meta/resolvers.js +26 -2
  163. package/build/projectsGeneration/generators/fileTemplates/back/graph/meta/typeDefs.js +17 -2
  164. package/build/projectsGeneration/generators/fileTemplates/back/graph/permissionsToGraphql.js +52 -13
  165. package/build/projectsGeneration/generators/fileTemplates/back/graph/resolvers.js +52 -13
  166. package/build/projectsGeneration/generators/fileTemplates/back/graph/types.js +18 -11
  167. package/build/projectsGeneration/generators/fileTemplates/back/initCommon.js +30 -16
  168. package/build/projectsGeneration/generators/fileTemplates/back/initDev.js +27 -15
  169. package/build/projectsGeneration/generators/fileTemplates/back/initEntities.js +24 -10
  170. package/build/projectsGeneration/generators/fileTemplates/back/root/config/config.js +30 -16
  171. package/build/projectsGeneration/generators/fileTemplates/back/root/restRouter.js +21 -2
  172. package/build/projectsGeneration/generators/fileTemplates/back/services/AdditionalServices.js +7 -2
  173. package/build/projectsGeneration/generators/fileTemplates/back/services/BaseServices.js +18 -22
  174. package/build/projectsGeneration/generators/fileTemplates/back/services/HelpService/HelpService.js +30 -7
  175. package/build/projectsGeneration/generators/fileTemplates/back/services/additionalService/types.js +18 -13
  176. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/additionalClass.js +7 -5
  177. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/class.js +126 -49
  178. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/config.js +59 -40
  179. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnCreate.js +13 -5
  180. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnDelete.js +14 -6
  181. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnUpdate.js +14 -6
  182. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterCreate.js +15 -6
  183. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterDelete.js +15 -6
  184. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterUpdate.js +15 -6
  185. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeCreate.js +15 -6
  186. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeDelete.js +15 -6
  187. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeUpdate.js +14 -6
  188. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeUpsert.js +30 -7
  189. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/changeListFilter.js +14 -6
  190. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/tenantIdRequiredHooks.js +81 -8
  191. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/initBuiltInHooks.js +22 -10
  192. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/initUserHooks.js +31 -6
  193. package/build/projectsGeneration/generators/fileTemplates/back/services/serviceConstrictors.js +26 -14
  194. package/build/projectsGeneration/generators/fileTemplates/ui/Dashboard.js +14 -2
  195. package/build/projectsGeneration/generators/fileTemplates/ui/MetaPage.js +120 -3
  196. package/build/projectsGeneration/generators/fileTemplates/ui/ResourcesPage.js +45 -10
  197. package/build/projectsGeneration/generators/fileTemplates/ui/additionalRoutes.js +5 -2
  198. package/build/projectsGeneration/generators/fileTemplates/ui/entityMapping.js +14 -12
  199. package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/Chart.js +12 -8
  200. package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/front.js +118 -13
  201. package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/ingress.js +51 -8
  202. package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/values.js +79 -8
  203. package/build/projectsGeneration/generators/fileTemplates/ui/environment/ciNotify.js +19 -8
  204. package/build/projectsGeneration/generators/fileTemplates/ui/environment/docs/adminAppDocsConfiguration.js +27 -21
  205. package/build/projectsGeneration/generators/fileTemplates/ui/environment/gitlabCi.js +179 -26
  206. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/App.js +107 -10
  207. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/contexts/SpacesContext.js +67 -9
  208. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/dataProvider/getAdditionalMethods.js +55 -18
  209. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/dataProvider/index.js +93 -13
  210. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/i18nProvider/index.js +51 -19
  211. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/layout/AppBar.js +60 -9
  212. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/layout/Menu.js +52 -9
  213. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/routes.js +38 -9
  214. package/build/projectsGeneration/generators/fileTemplates/ui/functions/Functions.js +60 -7
  215. package/build/projectsGeneration/generators/fileTemplates/ui/getAdditionalMenu.js +11 -2
  216. package/build/projectsGeneration/generators/fileTemplates/ui/getDefaultMenu.js +136 -23
  217. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangCatalogsTmpl.js +3 -5
  218. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangDocsTmpl.js +3 -5
  219. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangInfoRegistriesTmpl.js +3 -5
  220. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangReportsTmpl.js +3 -3
  221. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangSumRegistriesTmpl.js +3 -5
  222. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiTranslationsForServicesOfSavablesTmpl.js +33 -21
  223. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiTranslationsLangTmpl.js +23 -15
  224. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityCreate/DefaultEntityCreate.js +101 -62
  225. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityCreate/index.js +15 -5
  226. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityEdit/DefaultEntityEdit.js +176 -77
  227. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityEdit/index.js +15 -5
  228. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/DefaultEntityFilter.js +68 -50
  229. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/DefaultEntityList.js +83 -47
  230. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/EntityFilter.js +12 -5
  231. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/index.js +15 -5
  232. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultActions.js +54 -19
  233. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultEntityShow.js +53 -30
  234. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultMainTab.js +45 -32
  235. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DependencyTab.js +57 -41
  236. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/MainTab.js +3 -2
  237. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/additionalTabs.js +7 -3
  238. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/index.js +15 -5
  239. package/build/projectsGeneration/generators/fileTemplates/ui/pages/Icon.js +8 -8
  240. package/build/projectsGeneration/generators/fileTemplates/ui/pages/getEntityValidation.js +45 -30
  241. package/build/projectsGeneration/generators/fileTemplates/ui/resources.js +46 -12
  242. package/build/projectsGeneration/generators/fileTemplates/ui/widgets/count/CountWidget.js +50 -9
  243. package/build/projectsGeneration/generators/fileTemplates/ui/widgets/list/ListWidget.js +109 -14
  244. package/build/projectsGeneration/generators/graph/fieldTypeToGraphScalar.js +8 -9
  245. package/build/projectsGeneration/generators/graph/fieldTypeToGraphScalarStringified.js +4 -6
  246. package/build/projectsGeneration/generators/graph/fields/genGraphField.js +8 -9
  247. package/build/projectsGeneration/generators/graph/fields/genGraphIdField.js +7 -8
  248. package/build/projectsGeneration/generators/graph/fields/genGraphIdFieldType.js +6 -6
  249. package/build/projectsGeneration/generators/graph/fields/genGraphLinkField.js +10 -11
  250. package/build/projectsGeneration/generators/graph/fields/genGraphModelField.js +10 -11
  251. package/build/projectsGeneration/generators/graph/fields/genGraphScalarField.js +10 -11
  252. package/build/projectsGeneration/generators/graph/filters/genGraphField.js +7 -7
  253. package/build/projectsGeneration/generators/graph/filters/genGraphIdFilter.js +12 -14
  254. package/build/projectsGeneration/generators/graph/filters/genGraphLinkFilter.js +12 -24
  255. package/build/projectsGeneration/generators/graph/filters/genGraphScalarFilter.js +25 -37
  256. package/build/projectsGeneration/generators/graph/genGraphAdditionalServiceSchema.js +35 -35
  257. package/build/projectsGeneration/generators/graph/genGraphAdditionalServiceSchema.spec.js +148 -65
  258. package/build/projectsGeneration/generators/graph/genGraphCrudSchema.js +38 -50
  259. package/build/projectsGeneration/generators/graph/genGraphCrudSchema.spec.js +393 -34
  260. package/build/projectsGeneration/generators/graph/genGraphFilterType.js +11 -22
  261. package/build/projectsGeneration/generators/graph/genGraphFilterType.spec.js +75 -13
  262. package/build/projectsGeneration/generators/graph/genGraphModelType.js +15 -27
  263. package/build/projectsGeneration/generators/graph/genGraphType.js +7 -18
  264. package/build/projectsGeneration/generators/graph/genGraphType.spec.js +27 -12
  265. package/build/projectsGeneration/generators/graph/printGraphType.js +5 -7
  266. package/build/projectsGeneration/generators/graph/printGraphType.spec.js +11 -6
  267. package/build/projectsGeneration/generators/graph/utils/mapUtils.js +11 -30
  268. package/build/projectsGeneration/generators/graph/utils/models/getModelInitOrder.js +14 -28
  269. package/build/projectsGeneration/generators/graph/utils/models/getModelInitOrder.spec.js +18 -18
  270. package/build/projectsGeneration/generators/graph/utils/models/getUniqModels.js +3 -3
  271. package/build/projectsGeneration/generators/graph/utils/models/getUniqModels.spec.js +17 -28
  272. package/build/projectsGeneration/generators/graph/utils/models/getUsedModels.js +14 -19
  273. package/build/projectsGeneration/generators/graph/utils/models/getUsedModels.spec.js +40 -51
  274. package/build/projectsGeneration/generators/graph/utils/serviceModels/augmentInputModelsByUsedAsInputGeneralModelsAndPostfixThemByInput.js +17 -26
  275. package/build/projectsGeneration/generators/graph/utils/serviceModels/augmentInputModelsByUsedAsInputGeneralModelsAndPostfixThemByInput.spec.js +68 -68
  276. package/build/projectsGeneration/generators/graph/utils/serviceModels/getGraphTypesFromInputOutputModels.js +21 -42
  277. package/build/projectsGeneration/generators/graph/utils/serviceModels/getGraphTypesFromInputOutputModels.spec.js +85 -62
  278. package/build/projectsGeneration/generators/graph/utils/serviceModels/getPreparedModelsForGraph.js +20 -31
  279. package/build/projectsGeneration/generators/graph/utils/serviceModels/getPreparedModelsForGraph.spec.js +48 -49
  280. package/build/projectsGeneration/generators/graph/utils/serviceModels/getServiceModels.js +7 -7
  281. package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedGraphModelsForService.js +6 -6
  282. package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedGraphModelsForService.spec.js +13 -13
  283. package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedModelsForService.js +18 -21
  284. package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedModelsForService.spec.js +153 -153
  285. package/build/projectsGeneration/generators/graph/utils/serviceModels/prefixServiceModelsWithServiceName.js +25 -26
  286. package/build/projectsGeneration/generators/graph/utils/serviceModels/prefixServiceModelsWithServiceName.spec.js +69 -69
  287. package/build/projectsGeneration/generators/graph/utils/serviceModels/removeDublicatesFromServiceModels.js +4 -4
  288. package/build/projectsGeneration/generators/graph/utils/serviceModels/removeUnusedInOutputGeneralModels.js +6 -17
  289. package/build/projectsGeneration/generators/graph/utils/serviceModels/removeVoidsInServiceModels.js +5 -5
  290. package/build/projectsGeneration/generators/prisma/fieldIdTypeToPrismaType.js +3 -3
  291. package/build/projectsGeneration/generators/prisma/fieldTypeToPrismaType.js +3 -3
  292. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaDefault.js +3 -3
  293. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaDefault.spec.js +20 -20
  294. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaField.js +7 -8
  295. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaFieldFromExternalEntity.js +6 -7
  296. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaFieldFromExternalEntity.spec.js +7 -19
  297. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaIdField.js +10 -11
  298. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaIdField.spec.js +13 -13
  299. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaLinkFields.js +15 -18
  300. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaLinkFields.spec.js +27 -28
  301. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaScalarField.js +12 -14
  302. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaScalarField.spec.js +29 -30
  303. package/build/projectsGeneration/generators/prisma/scheme/genPrismaEntity.js +23 -32
  304. package/build/projectsGeneration/generators/prisma/scheme/genPrismaEntity.spec.js +104 -47
  305. package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntities.js +5 -7
  306. package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.js +19 -10
  307. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNameToEditScalar.js +3 -3
  308. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditField.js +7 -7
  309. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditIdField.js +3 -3
  310. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditLinkField.js +5 -5
  311. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditLinkField.spec.js +10 -10
  312. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditScalarField.js +3 -3
  313. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNameToShowScalar.js +3 -3
  314. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowField.js +7 -7
  315. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowIdField.js +3 -3
  316. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowLinkField.js +2 -14
  317. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowLinkField.spec.js +17 -17
  318. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowScalarField.js +3 -3
  319. package/build/projectsGeneration/generators/ui/getLinkShowComponent.spec.js +18 -18
  320. package/build/projectsGeneration/generators/ui/getScalarShowComponent.spec.js +11 -11
  321. package/build/projectsGeneration/generators/ui/getShowComponent.js +19 -20
  322. package/build/projectsGeneration/links/getLinksFromExternalEntities.js +2 -4
  323. package/build/projectsGeneration/links/getLinksFromExternalEntities.spec.js +11 -22
  324. package/build/projectsGeneration/links/getLinksOfEntities.js +6 -8
  325. package/build/projectsGeneration/links/getLinksOfEntities.spec.js +20 -31
  326. package/build/projectsGeneration/links/getLinksToExternalEntities.js +2 -4
  327. package/build/projectsGeneration/links/getLinksToExternalEntities.spec.js +11 -22
  328. package/build/projectsGeneration/metaUtils.js +17 -23
  329. package/build/projectsGeneration/modelsGeneration.serialization.spec.js +8 -8
  330. package/build/projectsGeneration/modules/addEmailModuleEntities.js +11 -11
  331. package/build/projectsGeneration/types.js +6 -6
  332. package/build/projectsGeneration/utils.js +24 -61
  333. package/build/refs/yup.spec.js +7 -7
  334. package/build/types/projectsGeneration/builders/InfoRegistryBuilder.d.ts +0 -4
  335. package/build/types/projectsGeneration/builders/SumRegistryBuilder.d.ts +0 -3
  336. package/build/types/projectsGeneration/fileCleaners/cleanFiles.d.ts +1 -1
  337. package/build/types/projectsGeneration/generateProject.d.ts +0 -5
  338. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/back.d.ts +1 -1
  339. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/ingress.d.ts +1 -1
  340. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplBack.d.ts +1 -1
  341. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplUI.d.ts +1 -1
  342. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient.d.ts +1 -1
  343. package/build/types/projectsGeneration/generators/fileTemplates/back/services/entity/config.d.ts +1 -1
  344. package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/front.d.ts +1 -1
  345. package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/ingress.d.ts +1 -1
  346. package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/src/App.d.ts +1 -1
  347. package/build/utils/TermSignals.js +35 -43
  348. package/build/utils/cases.js +12 -18
  349. package/build/utils/getPkgManager.js +4 -4
  350. package/package.json +12 -24
  351. package/build/projectsGeneration/fileCleaners/back/cleanBack.js +0 -50
  352. package/build/types/projectsGeneration/fileCleaners/back/cleanBack.d.ts +0 -3
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,105 +8,69 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
9
  });
21
10
  };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
- if (ar || !(i in from)) {
52
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
- ar[i] = from[i];
54
- }
55
- }
56
- return to.concat(ar || Array.prototype.slice.call(from));
57
- };
58
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
59
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
60
13
  };
61
14
  Object.defineProperty(exports, "__esModule", { value: true });
62
- 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.generateBackDocsSpec = exports.generateBackDocsConfiguration = exports.generateBackEnvs = exports.generateBackHelm = exports.generateBackGitlabCi = exports.generateBackIntegrationClients = exports.generateBackSrc = exports.generateBackSrcEntity = void 0;
63
- var path_1 = require("path");
64
- var resources_1 = require("./generators/fileTemplates/ui/resources");
65
- var ResourcesPage_1 = require("./generators/fileTemplates/ui/ResourcesPage");
66
- var permissionsToGraphql_1 = require("./generators/fileTemplates/back/graph/permissionsToGraphql");
67
- var routes_1 = __importDefault(require("./generators/fileTemplates/ui/environment/src/routes"));
68
- var entityMapping_1 = require("./generators/fileTemplates/ui/entityMapping");
69
- var Dashboard_1 = __importDefault(require("./generators/fileTemplates/ui/Dashboard"));
70
- var Functions_1 = require("./generators/fileTemplates/ui/functions/Functions");
71
- var getDefaultMenu_1 = require("./generators/fileTemplates/ui/getDefaultMenu");
72
- var generateEnvironment_1 = require("./generateEnvironment");
73
- var config_1 = require("./generators/fileTemplates/back/root/config/config");
74
- var genGraphSchemesByLocalGenerator_1 = require("./genGraphSchemesByLocalGenerator");
75
- var types_1 = require("./types");
76
- var generateEntity_1 = require("./generateEntity");
77
- var restRouter_1 = require("./generators/fileTemplates/back/root/restRouter");
78
- var utils_1 = require("./utils");
79
- var additionalRoutes_1 = require("./generators/fileTemplates/ui/additionalRoutes");
80
- var getAdditionalMenu_1 = require("./generators/fileTemplates/ui/getAdditionalMenu");
81
- var MetaPage_1 = require("./generators/fileTemplates/ui/MetaPage");
82
- var AdditionalServices_1 = require("./generators/fileTemplates/back/services/AdditionalServices");
83
- var uiLangDocsTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangDocsTmpl");
84
- var fs_jetpack_1 = require("fs-jetpack");
85
- var uiLangReportsTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangReportsTmpl");
86
- var Icon_1 = require("./generators/fileTemplates/ui/pages/Icon");
87
- var cases_1 = require("../utils/cases");
88
- var uiLangCatalogsTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangCatalogsTmpl");
89
- var uiLangInfoRegistriesTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangInfoRegistriesTmpl");
90
- var uiLangSumRegistriesTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangSumRegistriesTmpl");
91
- var args_1 = require("./args");
92
- var defaultEnv_1 = require("./generators/fileTemplates/back/environment/defaultEnv");
93
- var backDocsConfiguration_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsConfiguration"));
94
- var adminAppDocsConfiguration_1 = require("./generators/fileTemplates/ui/environment/docs/adminAppDocsConfiguration");
95
- var backDocsRestApi_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsRestApi"));
96
- var backDocsEntity_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsEntity"));
97
- var pluralize_1 = require("pluralize");
98
- var baseResolvers_1 = __importDefault(require("./generators/fileTemplates/back/graph/help/baseResolvers"));
99
- var HelpService_1 = __importDefault(require("./generators/fileTemplates/back/services/HelpService/HelpService"));
100
- var BaseServices_1 = __importDefault(require("./generators/fileTemplates/back/services/BaseServices"));
101
- var baseTypeDefs_1 = __importDefault(require("./generators/fileTemplates/back/graph/help/baseTypeDefs"));
102
- var permissionsToGraphql_2 = __importDefault(require("./generators/fileTemplates/back/graph/help/permissionsToGraphql"));
103
- var enum_1 = require("./generators/fileTemplates/back/enum");
104
- var devEnum_1 = require("./generators/fileTemplates/back/devEnum");
105
- var initCommon_1 = require("./generators/fileTemplates/back/initCommon");
106
- var initDev_1 = require("./generators/fileTemplates/back/initDev");
107
- var serviceConstrictors_1 = __importDefault(require("./generators/fileTemplates/back/services/serviceConstrictors"));
108
- var Entities_1 = require("./generators/fileTemplates/back/Entities");
109
- var initEntities_1 = require("./generators/fileTemplates/back/initEntities");
110
- var getEntityValidation_1 = require("./generators/fileTemplates/ui/pages/getEntityValidation");
111
- var elastic_1 = require("./generators/fileTemplates/back/elastic/elastic");
112
- var backDocsIntegrationClient_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsIntegrationClient"));
113
- var IntegrationClient_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient"));
114
- var change_case_1 = require("change-case");
115
- var types_2 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/types"));
116
- var backDocSpec_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocSpec"));
117
- var generateAdditionalService_1 = require("./generateAdditionalService");
118
- var IntegrationClients_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/IntegrationClients"));
119
- var integrationClientConstrictors_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/integrationClientConstrictors"));
120
- var cleanFiles_1 = __importDefault(require("./fileCleaners/cleanFiles"));
15
+ exports.generateFront = 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.generateBackDocsSpec = exports.generateBackDocsConfiguration = exports.generateBackEnvs = exports.generateBackIntegrationClients = exports.generateBackSrc = void 0;
16
+ const path_1 = require("path");
17
+ const resources_1 = require("./generators/fileTemplates/ui/resources");
18
+ const ResourcesPage_1 = require("./generators/fileTemplates/ui/ResourcesPage");
19
+ const permissionsToGraphql_1 = require("./generators/fileTemplates/back/graph/permissionsToGraphql");
20
+ const routes_1 = __importDefault(require("./generators/fileTemplates/ui/environment/src/routes"));
21
+ const entityMapping_1 = require("./generators/fileTemplates/ui/entityMapping");
22
+ const Dashboard_1 = __importDefault(require("./generators/fileTemplates/ui/Dashboard"));
23
+ const Functions_1 = require("./generators/fileTemplates/ui/functions/Functions");
24
+ const getDefaultMenu_1 = require("./generators/fileTemplates/ui/getDefaultMenu");
25
+ const generateEnvironment_1 = require("./generateEnvironment");
26
+ const config_1 = require("./generators/fileTemplates/back/root/config/config");
27
+ const genGraphSchemesByLocalGenerator_1 = require("./genGraphSchemesByLocalGenerator");
28
+ const types_1 = require("./types");
29
+ const generateEntity_1 = require("./generateEntity");
30
+ const restRouter_1 = require("./generators/fileTemplates/back/root/restRouter");
31
+ const utils_1 = require("./utils");
32
+ const additionalRoutes_1 = require("./generators/fileTemplates/ui/additionalRoutes");
33
+ const getAdditionalMenu_1 = require("./generators/fileTemplates/ui/getAdditionalMenu");
34
+ const MetaPage_1 = require("./generators/fileTemplates/ui/MetaPage");
35
+ const AdditionalServices_1 = require("./generators/fileTemplates/back/services/AdditionalServices");
36
+ const uiLangDocsTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangDocsTmpl");
37
+ const fs_jetpack_1 = require("fs-jetpack");
38
+ const uiLangReportsTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangReportsTmpl");
39
+ const Icon_1 = require("./generators/fileTemplates/ui/pages/Icon");
40
+ const cases_1 = require("../utils/cases");
41
+ const uiLangCatalogsTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangCatalogsTmpl");
42
+ const uiLangInfoRegistriesTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangInfoRegistriesTmpl");
43
+ const uiLangSumRegistriesTmpl_1 = require("./generators/fileTemplates/ui/i18n/lang/uiLangSumRegistriesTmpl");
44
+ const args_1 = require("./args");
45
+ const defaultEnv_1 = require("./generators/fileTemplates/back/environment/defaultEnv");
46
+ const backDocsConfiguration_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsConfiguration"));
47
+ const adminAppDocsConfiguration_1 = require("./generators/fileTemplates/ui/environment/docs/adminAppDocsConfiguration");
48
+ const backDocsRestApi_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsRestApi"));
49
+ const backDocsEntity_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsEntity"));
50
+ const pluralize_1 = require("pluralize");
51
+ const baseResolvers_1 = __importDefault(require("./generators/fileTemplates/back/graph/help/baseResolvers"));
52
+ const HelpService_1 = __importDefault(require("./generators/fileTemplates/back/services/HelpService/HelpService"));
53
+ const BaseServices_1 = __importDefault(require("./generators/fileTemplates/back/services/BaseServices"));
54
+ const baseTypeDefs_1 = __importDefault(require("./generators/fileTemplates/back/graph/help/baseTypeDefs"));
55
+ const permissionsToGraphql_2 = __importDefault(require("./generators/fileTemplates/back/graph/help/permissionsToGraphql"));
56
+ const enum_1 = require("./generators/fileTemplates/back/enum");
57
+ const devEnum_1 = require("./generators/fileTemplates/back/devEnum");
58
+ const initCommon_1 = require("./generators/fileTemplates/back/initCommon");
59
+ const initDev_1 = require("./generators/fileTemplates/back/initDev");
60
+ const serviceConstrictors_1 = __importDefault(require("./generators/fileTemplates/back/services/serviceConstrictors"));
61
+ const Entities_1 = require("./generators/fileTemplates/back/Entities");
62
+ const initEntities_1 = require("./generators/fileTemplates/back/initEntities");
63
+ const getEntityValidation_1 = require("./generators/fileTemplates/ui/pages/getEntityValidation");
64
+ const elastic_1 = require("./generators/fileTemplates/back/elastic/elastic");
65
+ const backDocsIntegrationClient_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocsIntegrationClient"));
66
+ const IntegrationClient_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient"));
67
+ const change_case_1 = require("change-case");
68
+ const types_2 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/types"));
69
+ const backDocSpec_1 = __importDefault(require("./generators/fileTemplates/back/environment/docs/backDocSpec"));
70
+ const generateAdditionalService_1 = require("./generateAdditionalService");
71
+ const IntegrationClients_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/IntegrationClients"));
72
+ const integrationClientConstrictors_1 = __importDefault(require("./generators/fileTemplates/back/environment/src/integrationClients/integrationClientConstrictors"));
73
+ const cleanFiles_1 = __importDefault(require("./fileCleaners/cleanFiles"));
121
74
  // Бек (generateBack)
122
75
  // Исходники бека (generateBackSrc)
123
76
  // Исходники бека (generateBackSrcEntity)
@@ -128,649 +81,394 @@ var cleanFiles_1 = __importDefault(require("./fileCleaners/cleanFiles"));
128
81
  // Исходники фронта (generateFrontSrcEntity)
129
82
  // GitlabCi фронта (generateFrontGitlabCi)
130
83
  // Helm чарты фронта (generateFrontHelm)
131
- var generateBackSrcEntity = function (_entityWideGenerationArgs) { return __awaiter(void 0, void 0, void 0, function () {
132
- return __generator(this, function (_a) {
133
- return [2 /*return*/];
134
- });
135
- }); };
136
- exports.generateBackSrcEntity = generateBackSrcEntity;
137
- var generateHelpService = function (args, typesOnly) {
138
- if (typesOnly === void 0) { typesOnly = false; }
139
- return __awaiter(void 0, void 0, void 0, function () {
140
- return __generator(this, function (_a) {
141
- (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'adm', 'graph', 'services', 'help', 'baseTypeDefs.ts'), (0, baseTypeDefs_1.default)(args));
142
- if (!typesOnly) {
143
- (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'adm', 'graph', 'services', 'help', 'baseResolvers.ts'), (0, baseResolvers_1.default)());
144
- (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'adm', 'graph', 'services', 'help', 'permissionsToGraphql.ts'), (0, permissionsToGraphql_2.default)());
145
- (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'adm', 'services', 'HelpService', 'HelpService.ts'), (0, HelpService_1.default)(args));
146
- }
147
- return [2 /*return*/];
148
- });
149
- });
150
- };
151
- var generateBackSrc = function (args) { return __awaiter(void 0, void 0, void 0, function () {
152
- return __generator(this, function (_a) {
153
- switch (_a.label) {
154
- case 0:
155
- // log.info('generateBackSrc');
156
- return [4 /*yield*/, Promise.all([
157
- (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'config', 'config.ts'), (0, config_1.configItemsTmpl)(args)),
158
- generateHelpService(args, true),
159
- ])];
160
- case 1:
161
- // log.info('generateBackSrc');
162
- _a.sent();
163
- return [4 /*yield*/, Promise.all(args.entities.map(function (entity) {
164
- return (0, exports.generateBackSrcEntity)((0, args_1.prepareEntityWideGenerationArgs)(args, entity));
165
- }))];
166
- case 2:
167
- _a.sent();
168
- (0, exports.generateBackIntegrationClients)(args);
169
- return [2 /*return*/];
170
- }
171
- });
172
- }); };
84
+ const generateHelpService = (args, typesOnly = false) => __awaiter(void 0, void 0, void 0, function* () {
85
+ (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'adm', 'graph', 'services', 'help', 'baseTypeDefs.ts'), (0, baseTypeDefs_1.default)(args));
86
+ if (!typesOnly) {
87
+ (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'adm', 'graph', 'services', 'help', 'baseResolvers.ts'), (0, baseResolvers_1.default)());
88
+ (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'adm', 'graph', 'services', 'help', 'permissionsToGraphql.ts'), (0, permissionsToGraphql_2.default)());
89
+ (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'adm', 'services', 'HelpService', 'HelpService.ts'), (0, HelpService_1.default)(args));
90
+ }
91
+ });
92
+ const generateBackSrc = (args) => __awaiter(void 0, void 0, void 0, function* () {
93
+ // log.info('generateBackSrc');
94
+ yield Promise.all([
95
+ (0, fs_jetpack_1.write)((0, path_1.join)(args.options.detachedBackProject, 'src', 'config', 'config.ts'), (0, config_1.configItemsTmpl)(args)),
96
+ generateHelpService(args, true),
97
+ ]);
98
+ (0, exports.generateBackIntegrationClients)(args);
99
+ });
173
100
  exports.generateBackSrc = generateBackSrc;
174
- var generateBackIntegrationClients = function (args) { return __awaiter(void 0, void 0, void 0, function () {
175
- var _i, _a, client, clientFolder;
176
- return __generator(this, function (_b) {
177
- for (_i = 0, _a = args.system.integrationClients; _i < _a.length; _i++) {
178
- client = _a[_i];
179
- clientFolder = (0, path_1.join)(args.options.detachedBackProject, 'src', 'integrationClients', "".concat(client.name));
180
- (0, utils_1.writeFileIfNotExists)((0, path_1.join)(clientFolder, "".concat((0, change_case_1.pascalCase)(client.name), "Client.ts")), (0, IntegrationClient_1.default)(args, client));
181
- (0, fs_jetpack_1.write)((0, path_1.join)(clientFolder, "types.ts"), (0, types_2.default)(args, client));
182
- }
183
- return [2 /*return*/];
184
- });
185
- }); };
101
+ const generateBackIntegrationClients = (args) => __awaiter(void 0, void 0, void 0, function* () {
102
+ for (const client of args.system.integrationClients) {
103
+ const clientFolder = (0, path_1.join)(args.options.detachedBackProject, 'src', 'integrationClients', `${client.name}`);
104
+ (0, utils_1.writeFileIfNotExists)((0, path_1.join)(clientFolder, `${(0, change_case_1.pascalCase)(client.name)}Client.ts`), (0, IntegrationClient_1.default)(args, client));
105
+ (0, fs_jetpack_1.write)((0, path_1.join)(clientFolder, `types.ts`), (0, types_2.default)(args, client));
106
+ }
107
+ });
186
108
  exports.generateBackIntegrationClients = generateBackIntegrationClients;
187
- var generateBackGitlabCi = function (_args) { return __awaiter(void 0, void 0, void 0, function () {
188
- return __generator(this, function (_a) {
189
- return [2 /*return*/];
190
- });
191
- }); };
192
- exports.generateBackGitlabCi = generateBackGitlabCi;
193
- var generateBackHelm = function (_args) { return __awaiter(void 0, void 0, void 0, function () {
194
- return __generator(this, function (_a) {
195
- return [2 /*return*/];
196
- });
197
- }); };
198
- exports.generateBackHelm = generateBackHelm;
199
- var generateBackEnvs = function (args) { return __awaiter(void 0, void 0, void 0, function () {
200
- var filePath;
201
- return __generator(this, function (_a) {
202
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'config', 'default.json');
203
- (0, fs_jetpack_1.write)(filePath, (0, defaultEnv_1.backDefaultEnv)(args));
204
- return [2 /*return*/];
205
- });
206
- }); };
109
+ const generateBackEnvs = (args) => __awaiter(void 0, void 0, void 0, function* () {
110
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'config', 'default.json');
111
+ (0, fs_jetpack_1.write)(filePath, (0, defaultEnv_1.backDefaultEnv)(args));
112
+ });
207
113
  exports.generateBackEnvs = generateBackEnvs;
208
- var generateBackDocsConfiguration = function (args) { return __awaiter(void 0, void 0, void 0, function () {
209
- var filePath;
210
- return __generator(this, function (_a) {
211
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'configuration.md');
212
- (0, fs_jetpack_1.write)(filePath, (0, backDocsConfiguration_1.default)(args));
213
- return [2 /*return*/];
214
- });
215
- }); };
114
+ const generateBackDocsConfiguration = (args) => __awaiter(void 0, void 0, void 0, function* () {
115
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'configuration.md');
116
+ (0, fs_jetpack_1.write)(filePath, (0, backDocsConfiguration_1.default)(args));
117
+ });
216
118
  exports.generateBackDocsConfiguration = generateBackDocsConfiguration;
217
- var generateBackDocsSpec = function (args) { return __awaiter(void 0, void 0, void 0, function () {
218
- var filePath;
219
- return __generator(this, function (_a) {
220
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'spec.md');
221
- (0, fs_jetpack_1.write)(filePath, (0, backDocSpec_1.default)(args));
222
- return [2 /*return*/];
223
- });
224
- }); };
119
+ const generateBackDocsSpec = (args) => __awaiter(void 0, void 0, void 0, function* () {
120
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'spec.md');
121
+ (0, fs_jetpack_1.write)(filePath, (0, backDocSpec_1.default)(args));
122
+ });
225
123
  exports.generateBackDocsSpec = generateBackDocsSpec;
226
- var generateBackDocsRestApis = function (args) { return __awaiter(void 0, void 0, void 0, function () {
227
- var _i, _a, restApi, filePath;
228
- return __generator(this, function (_b) {
229
- for (_i = 0, _a = args.system.restApis; _i < _a.length; _i++) {
230
- restApi = _a[_i];
231
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'restApis', "".concat(restApi.name, ".md"));
232
- (0, fs_jetpack_1.write)(filePath, (0, backDocsRestApi_1.default)(args, restApi));
233
- }
234
- return [2 /*return*/];
235
- });
236
- }); };
124
+ const generateBackDocsRestApis = (args) => __awaiter(void 0, void 0, void 0, function* () {
125
+ for (const restApi of args.system.restApis) {
126
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'restApis', `${restApi.name}.md`);
127
+ (0, fs_jetpack_1.write)(filePath, (0, backDocsRestApi_1.default)(args, restApi));
128
+ }
129
+ });
237
130
  exports.generateBackDocsRestApis = generateBackDocsRestApis;
238
- var generateBackDocsIntegrationClients = function (args) { return __awaiter(void 0, void 0, void 0, function () {
239
- var _i, _a, client, filePath;
240
- return __generator(this, function (_b) {
241
- for (_i = 0, _a = args.system.integrationClients; _i < _a.length; _i++) {
242
- client = _a[_i];
243
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'integrationClients', "".concat(client.name, ".md"));
244
- (0, fs_jetpack_1.write)(filePath, (0, backDocsIntegrationClient_1.default)(args, client));
245
- }
246
- return [2 /*return*/];
247
- });
248
- }); };
131
+ const generateBackDocsIntegrationClients = (args) => __awaiter(void 0, void 0, void 0, function* () {
132
+ for (const client of args.system.integrationClients) {
133
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', 'integrationClients', `${client.name}.md`);
134
+ (0, fs_jetpack_1.write)(filePath, (0, backDocsIntegrationClient_1.default)(args, client));
135
+ }
136
+ });
249
137
  exports.generateBackDocsIntegrationClients = generateBackDocsIntegrationClients;
250
- var generateBackDocsEntities = function (args) { return __awaiter(void 0, void 0, void 0, function () {
251
- return __generator(this, function (_a) {
252
- switch (_a.label) {
253
- case 0: return [4 /*yield*/, Promise.all(args.entities.map(function (entity) {
254
- var filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', (0, pluralize_1.plural)(entity.type), "".concat(entity.name, ".md"));
255
- return (0, fs_jetpack_1.write)(filePath, (0, backDocsEntity_1.default)((0, args_1.prepareEntityWideGenerationArgs)(args, entity)));
256
- }))];
257
- case 1:
258
- _a.sent();
259
- return [2 /*return*/];
260
- }
261
- });
262
- }); };
138
+ const generateBackDocsEntities = (args) => __awaiter(void 0, void 0, void 0, function* () {
139
+ yield Promise.all(args.entities.map((entity) => {
140
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'docs', (0, pluralize_1.plural)(entity.type), `${entity.name}.md`);
141
+ return (0, fs_jetpack_1.write)(filePath, (0, backDocsEntity_1.default)((0, args_1.prepareEntityWideGenerationArgs)(args, entity)));
142
+ }));
143
+ });
263
144
  exports.generateBackDocsEntities = generateBackDocsEntities;
264
- var generateBackEnums = function (args) { return __awaiter(void 0, void 0, void 0, function () {
265
- return __generator(this, function (_a) {
266
- switch (_a.label) {
267
- case 0: return [4 /*yield*/, Promise.all(args.entities
268
- .filter(function (e) { return e.predefinedElements.length > 0; })
269
- .map(function (entity) {
270
- var filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'types', "".concat((0, cases_1.pascal)((0, pluralize_1.singular)(entity.name)), ".ts"));
271
- return (0, fs_jetpack_1.write)(filePath, (0, enum_1.enumTmpl)({
272
- entity: entity,
273
- options: args.options,
274
- }));
275
- }))];
276
- case 1:
277
- _a.sent();
278
- return [2 /*return*/];
279
- }
280
- });
281
- }); };
145
+ const generateBackEnums = (args) => __awaiter(void 0, void 0, void 0, function* () {
146
+ yield Promise.all(args.entities
147
+ .filter((e) => e.predefinedElements.length > 0)
148
+ .map((entity) => {
149
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'types', `${(0, cases_1.pascal)((0, pluralize_1.singular)(entity.name))}.ts`);
150
+ return (0, fs_jetpack_1.write)(filePath, (0, enum_1.enumTmpl)({
151
+ entity,
152
+ options: args.options,
153
+ }));
154
+ }));
155
+ });
282
156
  exports.generateBackEnums = generateBackEnums;
283
- var generateBackEntityEnum = function (args) { return __awaiter(void 0, void 0, void 0, function () {
284
- var filePath;
285
- return __generator(this, function (_a) {
286
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'types', 'Entity.ts');
287
- return [2 /*return*/, (0, fs_jetpack_1.write)(filePath, (0, Entities_1.Entities)({
288
- entities: args.entities,
289
- options: args.options,
290
- }))];
291
- });
292
- }); };
157
+ const generateBackEntityEnum = (args) => __awaiter(void 0, void 0, void 0, function* () {
158
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'types', 'Entity.ts');
159
+ return (0, fs_jetpack_1.write)(filePath, (0, Entities_1.Entities)({
160
+ entities: args.entities,
161
+ options: args.options,
162
+ }));
163
+ });
293
164
  exports.generateBackEntityEnum = generateBackEntityEnum;
294
- var generateBackEnumsInit = function (args) { return __awaiter(void 0, void 0, void 0, function () {
295
- return __generator(this, function (_a) {
296
- switch (_a.label) {
297
- case 0: return [4 /*yield*/, Promise.all(args.entities
298
- .filter(function (e) { return e.predefinedElements.length > 0; })
299
- .map(function (entity) {
300
- var filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'init', 'common', "init".concat((0, cases_1.pascal)(entity.name), ".ts"));
301
- return (0, fs_jetpack_1.write)(filePath, (0, initCommon_1.initCommonEnumTmpl)({
302
- entity: entity,
303
- options: args.options,
304
- }));
305
- }))];
306
- case 1:
307
- _a.sent();
308
- return [2 /*return*/];
309
- }
310
- });
311
- }); };
165
+ const generateBackEnumsInit = (args) => __awaiter(void 0, void 0, void 0, function* () {
166
+ yield Promise.all(args.entities
167
+ .filter((e) => e.predefinedElements.length > 0)
168
+ .map((entity) => {
169
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'init', 'common', `init${(0, cases_1.pascal)(entity.name)}.ts`);
170
+ return (0, fs_jetpack_1.write)(filePath, (0, initCommon_1.initCommonEnumTmpl)({
171
+ entity,
172
+ options: args.options,
173
+ }));
174
+ }));
175
+ });
312
176
  exports.generateBackEnumsInit = generateBackEnumsInit;
313
- var generateBackEntitiesEnumInit = function (args) { return __awaiter(void 0, void 0, void 0, function () {
314
- var filePath;
315
- return __generator(this, function (_a) {
316
- filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'init', 'common', 'initEntities.ts');
317
- return [2 /*return*/, (0, fs_jetpack_1.write)(filePath, (0, initEntities_1.initEntities)(args))];
318
- });
319
- }); };
177
+ const generateBackEntitiesEnumInit = (args) => __awaiter(void 0, void 0, void 0, function* () {
178
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'init', 'common', 'initEntities.ts');
179
+ return (0, fs_jetpack_1.write)(filePath, (0, initEntities_1.initEntities)(args));
180
+ });
320
181
  exports.generateBackEntitiesEnumInit = generateBackEntitiesEnumInit;
321
- var generateBackDevEnums = function (args) { return __awaiter(void 0, void 0, void 0, function () {
322
- return __generator(this, function (_a) {
323
- switch (_a.label) {
324
- case 0: return [4 /*yield*/, Promise.all(args.entities
325
- .filter(function (e) { return e.devPerefinedElements.length > 0; })
326
- .map(function (entity) {
327
- var filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'types', "Dev".concat((0, cases_1.pascal)((0, pluralize_1.singular)(entity.name)), ".ts"));
328
- return (0, fs_jetpack_1.write)(filePath, (0, devEnum_1.devEnumTmpl)({
329
- entity: entity,
330
- options: args.options,
331
- }));
332
- }))];
333
- case 1:
334
- _a.sent();
335
- return [2 /*return*/];
336
- }
337
- });
338
- }); };
182
+ const generateBackDevEnums = (args) => __awaiter(void 0, void 0, void 0, function* () {
183
+ yield Promise.all(args.entities
184
+ .filter((e) => e.devPerefinedElements.length > 0)
185
+ .map((entity) => {
186
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'types', `Dev${(0, cases_1.pascal)((0, pluralize_1.singular)(entity.name))}.ts`);
187
+ return (0, fs_jetpack_1.write)(filePath, (0, devEnum_1.devEnumTmpl)({
188
+ entity,
189
+ options: args.options,
190
+ }));
191
+ }));
192
+ });
339
193
  exports.generateBackDevEnums = generateBackDevEnums;
340
- var generateBackDevEnumsInit = function (args) { return __awaiter(void 0, void 0, void 0, function () {
341
- return __generator(this, function (_a) {
342
- switch (_a.label) {
343
- case 0: return [4 /*yield*/, Promise.all(args.entities
344
- .filter(function (e) { return e.devPerefinedElements.length > 0; })
345
- .map(function (entity) {
346
- var filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'init', 'dev', "init".concat((0, cases_1.pascal)(entity.name), ".ts"));
347
- return (0, fs_jetpack_1.write)(filePath, (0, initDev_1.initDevEnumTmpl)({
348
- entity: entity,
349
- options: args.options,
350
- }));
351
- }))];
352
- case 1:
353
- _a.sent();
354
- return [2 /*return*/];
355
- }
356
- });
357
- }); };
194
+ const generateBackDevEnumsInit = (args) => __awaiter(void 0, void 0, void 0, function* () {
195
+ yield Promise.all(args.entities
196
+ .filter((e) => e.devPerefinedElements.length > 0)
197
+ .map((entity) => {
198
+ const filePath = (0, path_1.join)(args.options.detachedBackProject, 'src', 'init', 'dev', `init${(0, cases_1.pascal)(entity.name)}.ts`);
199
+ return (0, fs_jetpack_1.write)(filePath, (0, initDev_1.initDevEnumTmpl)({
200
+ entity,
201
+ options: args.options,
202
+ }));
203
+ }));
204
+ });
358
205
  exports.generateBackDevEnumsInit = generateBackDevEnumsInit;
359
- var generateAdminAppDocsConfiguration = function (args) { return __awaiter(void 0, void 0, void 0, function () {
360
- var filePath;
361
- return __generator(this, function (_a) {
362
- filePath = (0, path_1.join)(args.options.detachedUiProject, 'docs', 'configuration.md');
363
- (0, fs_jetpack_1.write)(filePath, (0, adminAppDocsConfiguration_1.adminAppDocsConfiguration)(args));
364
- return [2 /*return*/];
365
- });
366
- }); };
206
+ const generateAdminAppDocsConfiguration = (args) => __awaiter(void 0, void 0, void 0, function* () {
207
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, 'docs', 'configuration.md');
208
+ (0, fs_jetpack_1.write)(filePath, (0, adminAppDocsConfiguration_1.adminAppDocsConfiguration)(args));
209
+ });
367
210
  exports.generateAdminAppDocsConfiguration = generateAdminAppDocsConfiguration;
368
- var generateBackDocs = function (args) { return __awaiter(void 0, void 0, void 0, function () {
369
- return __generator(this, function (_a) {
370
- switch (_a.label) {
371
- case 0: return [4 /*yield*/, Promise.all([
372
- (0, exports.generateBackDocsSpec)(args),
373
- (0, exports.generateBackDocsConfiguration)(args),
374
- (0, exports.generateBackDocsRestApis)(args),
375
- (0, exports.generateBackDocsIntegrationClients)(args),
376
- (0, exports.generateBackDocsEntities)(args),
377
- (0, exports.generateBackEnums)(args),
378
- (0, exports.generateBackEnumsInit)(args),
379
- (0, exports.generateBackEntityEnum)(args),
380
- (0, exports.generateBackEntitiesEnumInit)(args),
381
- (0, exports.generateBackDevEnums)(args),
382
- (0, exports.generateBackDevEnumsInit)(args),
383
- (0, exports.generateAdminAppDocsConfiguration)(args),
384
- ])];
385
- case 1:
386
- _a.sent();
387
- return [2 /*return*/];
388
- }
389
- });
390
- }); };
211
+ const generateBackDocs = (args) => __awaiter(void 0, void 0, void 0, function* () {
212
+ yield Promise.all([
213
+ (0, exports.generateBackDocsSpec)(args),
214
+ (0, exports.generateBackDocsConfiguration)(args),
215
+ (0, exports.generateBackDocsRestApis)(args),
216
+ (0, exports.generateBackDocsIntegrationClients)(args),
217
+ (0, exports.generateBackDocsEntities)(args),
218
+ (0, exports.generateBackEnums)(args),
219
+ (0, exports.generateBackEnumsInit)(args),
220
+ (0, exports.generateBackEntityEnum)(args),
221
+ (0, exports.generateBackEntitiesEnumInit)(args),
222
+ (0, exports.generateBackDevEnums)(args),
223
+ (0, exports.generateBackDevEnumsInit)(args),
224
+ (0, exports.generateAdminAppDocsConfiguration)(args),
225
+ ]);
226
+ });
391
227
  exports.generateBackDocs = generateBackDocs;
392
- var generateBack = function (args) { return __awaiter(void 0, void 0, void 0, function () {
393
- return __generator(this, function (_a) {
394
- switch (_a.label) {
395
- case 0:
396
- // log.info('generateBack');
397
- return [4 /*yield*/, Promise.all([
398
- (0, exports.generateBackSrc)(args),
399
- (0, exports.generateBackGitlabCi)(args),
400
- (0, exports.generateBackHelm)(args),
401
- (0, exports.generateBackEnvs)(args),
402
- (0, exports.generateBackDocs)(args),
403
- (0, elastic_1.generateBackElasticBootstrap)(args),
404
- ])];
405
- case 1:
406
- // log.info('generateBack');
407
- _a.sent();
408
- return [2 /*return*/];
409
- }
410
- });
411
- }); };
228
+ const generateBack = (args) => __awaiter(void 0, void 0, void 0, function* () {
229
+ // log.info('generateBack');
230
+ yield Promise.all([
231
+ (0, exports.generateBackSrc)(args),
232
+ (0, exports.generateBackEnvs)(args),
233
+ (0, exports.generateBackDocs)(args),
234
+ (0, elastic_1.generateBackElasticBootstrap)(args),
235
+ ]);
236
+ });
412
237
  exports.generateBack = generateBack;
413
- var generateFrontSrcEntityTranslationsDocs = function (args) { return __awaiter(void 0, void 0, void 0, function () {
414
- var _i, _a, lang, filePath;
415
- return __generator(this, function (_b) {
416
- // log.info('generateFrontSrcEntityTranslationsDocs');
417
- for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
418
- lang = _a[_i];
419
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Docs.ts"));
420
- (0, fs_jetpack_1.write)(filePath, (0, uiLangDocsTmpl_1.uiTranslationsLangDocsTmpl)(args, lang.id));
421
- }
422
- return [2 /*return*/];
423
- });
424
- }); };
238
+ const generateFrontSrcEntityTranslationsDocs = (args) => __awaiter(void 0, void 0, void 0, function* () {
239
+ // log.info('generateFrontSrcEntityTranslationsDocs');
240
+ for (const lang of args.system.languages) {
241
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, `src/i18n/${lang.id}/${lang.id}Docs.ts`);
242
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangDocsTmpl_1.uiTranslationsLangDocsTmpl)(args, lang.id));
243
+ }
244
+ });
425
245
  exports.generateFrontSrcEntityTranslationsDocs = generateFrontSrcEntityTranslationsDocs;
426
- var generateFrontSrcEntityTranslationsCatalogs = function (args) { return __awaiter(void 0, void 0, void 0, function () {
427
- var _i, _a, lang, filePath;
428
- return __generator(this, function (_b) {
429
- // log.info('generateFrontSrcEntityTranslationsCatalogs');
430
- for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
431
- lang = _a[_i];
432
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Catalogs.ts"));
433
- (0, fs_jetpack_1.write)(filePath, (0, uiLangCatalogsTmpl_1.uiTranslationsLangCatalogsTmpl)(args, lang.id));
434
- }
435
- return [2 /*return*/];
436
- });
437
- }); };
246
+ const generateFrontSrcEntityTranslationsCatalogs = (args) => __awaiter(void 0, void 0, void 0, function* () {
247
+ // log.info('generateFrontSrcEntityTranslationsCatalogs');
248
+ for (const lang of args.system.languages) {
249
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, `src/i18n/${lang.id}/${lang.id}Catalogs.ts`);
250
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangCatalogsTmpl_1.uiTranslationsLangCatalogsTmpl)(args, lang.id));
251
+ }
252
+ });
438
253
  exports.generateFrontSrcEntityTranslationsCatalogs = generateFrontSrcEntityTranslationsCatalogs;
439
- var generateFrontSrcEntityTranslationsInfoRegistries = function (args) { return __awaiter(void 0, void 0, void 0, function () {
440
- var _i, _a, lang, filePath;
441
- return __generator(this, function (_b) {
442
- // log.info('generateFrontSrcEntityTranslationsInfoRegistries');
443
- for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
444
- lang = _a[_i];
445
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "InfoRegistries.ts"));
446
- (0, fs_jetpack_1.write)(filePath, (0, uiLangInfoRegistriesTmpl_1.uiTranslationsLangInfoRegistriesTmpl)(args, lang.id));
447
- }
448
- return [2 /*return*/];
449
- });
450
- }); };
254
+ const generateFrontSrcEntityTranslationsInfoRegistries = (args) => __awaiter(void 0, void 0, void 0, function* () {
255
+ // log.info('generateFrontSrcEntityTranslationsInfoRegistries');
256
+ for (const lang of args.system.languages) {
257
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, `src/i18n/${lang.id}/${lang.id}InfoRegistries.ts`);
258
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangInfoRegistriesTmpl_1.uiTranslationsLangInfoRegistriesTmpl)(args, lang.id));
259
+ }
260
+ });
451
261
  exports.generateFrontSrcEntityTranslationsInfoRegistries = generateFrontSrcEntityTranslationsInfoRegistries;
452
- var generateFrontSrcEntityTranslationsSumRegistries = function (args) { return __awaiter(void 0, void 0, void 0, function () {
453
- var _i, _a, lang, filePath;
454
- return __generator(this, function (_b) {
455
- // log.info('generateFrontSrcEntityTranslationsSumRegistries');
456
- for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
457
- lang = _a[_i];
458
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "SumRegistries.ts"));
459
- (0, fs_jetpack_1.write)(filePath, (0, uiLangSumRegistriesTmpl_1.uiTranslationsLangSumRegistriesTmpl)(args, lang.id));
460
- }
461
- return [2 /*return*/];
462
- });
463
- }); };
262
+ const generateFrontSrcEntityTranslationsSumRegistries = (args) => __awaiter(void 0, void 0, void 0, function* () {
263
+ // log.info('generateFrontSrcEntityTranslationsSumRegistries');
264
+ for (const lang of args.system.languages) {
265
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, `src/i18n/${lang.id}/${lang.id}SumRegistries.ts`);
266
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangSumRegistriesTmpl_1.uiTranslationsLangSumRegistriesTmpl)(args, lang.id));
267
+ }
268
+ });
464
269
  exports.generateFrontSrcEntityTranslationsSumRegistries = generateFrontSrcEntityTranslationsSumRegistries;
465
- var generateFrontSrcEntityTranslationsReports = function (args) { return __awaiter(void 0, void 0, void 0, function () {
466
- var _i, _a, lang, filePath;
467
- return __generator(this, function (_b) {
468
- // log.info('generateFrontSrcEntityTranslationsReports');
469
- for (_i = 0, _a = args.system.languages; _i < _a.length; _i++) {
470
- lang = _a[_i];
471
- filePath = (0, path_1.join)(args.options.detachedUiProject, "src/i18n/".concat(lang.id, "/").concat(lang.id, "Reports.ts"));
472
- (0, fs_jetpack_1.write)(filePath, (0, uiLangReportsTmpl_1.uiTranslationsLangReportsTmpl)(args, lang.id));
473
- }
474
- return [2 /*return*/];
475
- });
476
- }); };
270
+ const generateFrontSrcEntityTranslationsReports = (args) => __awaiter(void 0, void 0, void 0, function* () {
271
+ // log.info('generateFrontSrcEntityTranslationsReports');
272
+ for (const lang of args.system.languages) {
273
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, `src/i18n/${lang.id}/${lang.id}Reports.ts`);
274
+ (0, fs_jetpack_1.write)(filePath, (0, uiLangReportsTmpl_1.uiTranslationsLangReportsTmpl)(args, lang.id));
275
+ }
276
+ });
477
277
  exports.generateFrontSrcEntityTranslationsReports = generateFrontSrcEntityTranslationsReports;
478
- var generateFrontSrcEntityIcon = function (entityWideGenerationArgs) { return __awaiter(void 0, void 0, void 0, function () {
479
- var name, filePath;
480
- return __generator(this, function (_a) {
481
- name = entityWideGenerationArgs.entity.name;
482
- filePath = (0, path_1.join)(entityWideGenerationArgs.options.detachedUiProject, "src/adm/pages/".concat(name, "/").concat((0, cases_1.pascalSingular)(name), "Icon.tsx"));
483
- (0, fs_jetpack_1.write)(filePath, (0, Icon_1.uiEntityIconTmpl)(entityWideGenerationArgs));
484
- return [2 /*return*/];
485
- });
486
- }); };
278
+ const generateFrontSrcEntityIcon = (entityWideGenerationArgs) => __awaiter(void 0, void 0, void 0, function* () {
279
+ const { entity: { name }, } = entityWideGenerationArgs;
280
+ const filePath = (0, path_1.join)(entityWideGenerationArgs.options.detachedUiProject, `src/adm/pages/${name}/${(0, cases_1.pascalSingular)(name)}Icon.tsx`);
281
+ (0, fs_jetpack_1.write)(filePath, (0, Icon_1.uiEntityIconTmpl)(entityWideGenerationArgs));
282
+ });
487
283
  exports.generateFrontSrcEntityIcon = generateFrontSrcEntityIcon;
488
- var generateFrontSrcGetEntityValidation = function (entityWideGenerationArgs) { return __awaiter(void 0, void 0, void 0, function () {
489
- var name, filePath;
490
- return __generator(this, function (_a) {
491
- name = entityWideGenerationArgs.entity.name;
492
- filePath = (0, path_1.join)(entityWideGenerationArgs.options.detachedUiProject, "src/adm/pages/".concat(name, "/get").concat((0, cases_1.pascalSingular)(name), "Validation.tsx"));
493
- (0, fs_jetpack_1.write)(filePath, (0, getEntityValidation_1.uiGetEntityValidationTmpl)(entityWideGenerationArgs));
494
- return [2 /*return*/];
495
- });
496
- }); };
284
+ const generateFrontSrcGetEntityValidation = (entityWideGenerationArgs) => __awaiter(void 0, void 0, void 0, function* () {
285
+ const { entity: { name }, } = entityWideGenerationArgs;
286
+ // src/adm/pages/milesReceivedForFlightsByManagerDocuments/getMilesReceivedForFlightsByManagerDocumentValidation.tsx
287
+ const filePath = (0, path_1.join)(entityWideGenerationArgs.options.detachedUiProject, `src/adm/pages/${name}/get${(0, cases_1.pascalSingular)(name)}Validation.tsx`);
288
+ (0, fs_jetpack_1.write)(filePath, (0, getEntityValidation_1.uiGetEntityValidationTmpl)(entityWideGenerationArgs));
289
+ });
497
290
  exports.generateFrontSrcGetEntityValidation = generateFrontSrcGetEntityValidation;
498
- var generateFrontSrcEntity = function (entityWideGenerationArgs) { return __awaiter(void 0, void 0, void 0, function () {
499
- return __generator(this, function (_a) {
500
- switch (_a.label) {
501
- case 0:
502
- // log.info('generateFrontSrcEntity');
503
- // log.info(typeof entityWideGenerationArgs);
504
- return [4 /*yield*/, (0, exports.generateFrontSrcEntityIcon)(entityWideGenerationArgs)];
505
- case 1:
506
- // log.info('generateFrontSrcEntity');
507
- // log.info(typeof entityWideGenerationArgs);
508
- _a.sent();
509
- return [4 /*yield*/, (0, exports.generateFrontSrcGetEntityValidation)(entityWideGenerationArgs)];
510
- case 2:
511
- _a.sent();
512
- return [2 /*return*/];
513
- }
514
- });
515
- }); };
291
+ const generateFrontSrcEntity = (entityWideGenerationArgs) => __awaiter(void 0, void 0, void 0, function* () {
292
+ // log.info('generateFrontSrcEntity');
293
+ // log.info(typeof entityWideGenerationArgs);
294
+ yield (0, exports.generateFrontSrcEntityIcon)(entityWideGenerationArgs);
295
+ yield (0, exports.generateFrontSrcGetEntityValidation)(entityWideGenerationArgs);
296
+ });
516
297
  exports.generateFrontSrcEntity = generateFrontSrcEntity;
517
- var generateFrontSrc = function (args) { return __awaiter(void 0, void 0, void 0, function () {
518
- return __generator(this, function (_a) {
519
- switch (_a.label) {
520
- case 0: return [4 /*yield*/, Promise.all(args.entities.map(function (entity) {
521
- return (0, exports.generateFrontSrcEntity)((0, args_1.prepareEntityWideGenerationArgs)(args, entity));
522
- }))];
523
- case 1:
524
- _a.sent();
525
- return [4 /*yield*/, Promise.all([
526
- (0, exports.generateFrontSrcEntityTranslationsDocs)(args),
527
- (0, exports.generateFrontSrcEntityTranslationsCatalogs)(args),
528
- (0, exports.generateFrontSrcEntityTranslationsSumRegistries)(args),
529
- (0, exports.generateFrontSrcEntityTranslationsInfoRegistries)(args),
530
- (0, exports.generateFrontSrcEntityTranslationsReports)(args),
531
- ])];
532
- case 2:
533
- _a.sent();
534
- return [2 /*return*/];
535
- }
536
- });
537
- }); };
298
+ const generateFrontSrc = (args) => __awaiter(void 0, void 0, void 0, function* () {
299
+ yield Promise.all(args.entities.map((entity) => (0, exports.generateFrontSrcEntity)((0, args_1.prepareEntityWideGenerationArgs)(args, entity))));
300
+ yield Promise.all([
301
+ (0, exports.generateFrontSrcEntityTranslationsDocs)(args),
302
+ (0, exports.generateFrontSrcEntityTranslationsCatalogs)(args),
303
+ (0, exports.generateFrontSrcEntityTranslationsSumRegistries)(args),
304
+ (0, exports.generateFrontSrcEntityTranslationsInfoRegistries)(args),
305
+ (0, exports.generateFrontSrcEntityTranslationsReports)(args),
306
+ ]);
307
+ });
538
308
  exports.generateFrontSrc = generateFrontSrc;
539
- var generateFrontGitlabCi = function (_args) { return __awaiter(void 0, void 0, void 0, function () {
540
- return __generator(this, function (_a) {
541
- return [2 /*return*/];
542
- });
543
- }); };
544
- exports.generateFrontGitlabCi = generateFrontGitlabCi;
545
- var generateFrontHelm = function (_args) { return __awaiter(void 0, void 0, void 0, function () {
546
- return __generator(this, function (_a) {
547
- return [2 /*return*/];
548
- });
549
- }); };
550
- exports.generateFrontHelm = generateFrontHelm;
551
- var generateFront = function (args) { return __awaiter(void 0, void 0, void 0, function () {
552
- return __generator(this, function (_a) {
553
- switch (_a.label) {
554
- case 0:
555
- // log.info('generateFront');
556
- return [4 /*yield*/, Promise.all([
557
- (0, exports.generateFrontSrc)(args),
558
- (0, exports.generateFrontGitlabCi)(args),
559
- (0, exports.generateFrontHelm)(args),
560
- ])];
561
- case 1:
562
- // log.info('generateFront');
563
- _a.sent();
564
- return [2 /*return*/];
565
- }
566
- });
567
- }); };
309
+ const generateFront = (args) => __awaiter(void 0, void 0, void 0, function* () {
310
+ // log.info('generateFront');
311
+ yield Promise.all([
312
+ (0, exports.generateFrontSrc)(args),
313
+ ]);
314
+ });
568
315
  exports.generateFront = generateFront;
569
- var generateProject = function (system, initialOpts) {
570
- if (initialOpts === void 0) { initialOpts = types_1.defaultBootstrapEntityOptions; }
571
- return __awaiter(void 0, void 0, void 0, function () {
572
- var dir, detachedBackProject, detachedUiProject, opts, args, entities, prjBackSrcPrefixedDir, prjDetachedBackSrcDir, servicesDir, graphDir, generatedAdditionalServices, restRouter, prjUiSrcPrefixedDir, prjDetachedUiSrcDir, _a, resources, resourcesChunk0, resourcesChunk1, generatedResources, generatedUiMetaPage, generatedResources, generatedSubMenu, generatedAdditionalMenu, generatedResources, generatedUiAdditionalRoutesTmpl, generatedResources, uiFunctionsDir, generatedResources;
573
- return __generator(this, function (_b) {
574
- switch (_b.label) {
575
- case 0:
576
- dir = (0, fs_jetpack_1.cwd)('..').cwd();
577
- detachedBackProject = (0, path_1.join)(dir, "".concat(initialOpts.projectPrefix, "-back"));
578
- detachedUiProject = (0, path_1.join)(dir, "".concat(initialOpts.projectPrefix, "-ui"));
579
- ;
580
- opts = __assign(__assign(__assign({}, types_1.defaultBootstrapEntityOptions), initialOpts), { detachedBackProject: detachedBackProject, detachedUiProject: detachedUiProject });
581
- args = (0, args_1.prepareProjectWideGenerationArgs)(system, opts);
582
- return [4 /*yield*/, (0, exports.generateBack)(args)];
583
- case 1:
584
- _b.sent();
585
- return [4 /*yield*/, (0, exports.generateFront)(args)];
586
- case 2:
587
- _b.sent();
588
- entities = args.entities;
589
- prjBackSrcPrefixedDir = '';
590
- prjDetachedBackSrcDir = (0, path_1.join)(opts.detachedBackProject, 'src');
591
- // if (opts.detachedBackProject) {
592
- prjBackSrcPrefixedDir = (0, path_1.join)(prjDetachedBackSrcDir, 'adm');
593
- // } else {
594
- // prjBackSrcPrefixedDir = join(__dirname, '..', '..', prefix);
595
- // }
596
- // Pre grapgql types compose generation
597
- return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([
598
- (0, cleanFiles_1.default)(args)
599
- ], entities.map(function (entity) {
600
- return (0, generateEntity_1.generateEntity)((0, args_1.prepareEntityWideGenerationArgs)(__assign(__assign({}, args), { options: __assign(__assign({}, opts), { typesOnly: true }) }), entity));
601
- }), true), system.additionalServices.map(function (service) {
602
- return (0, generateAdditionalService_1.generateAdditionalService)((0, args_1.prepareAdditionalServiceWideGenerationArgs)(__assign(__assign({}, args), { options: __assign(__assign({}, opts), { typesOnly: true }) }), service));
603
- }), true))
604
- // const graphMetaServiceDir = join(
605
- // prjBackSrcPrefixedDir,
606
- // 'graph',
607
- // 'services',
608
- // 'meta'
609
- // )
610
- // write(`${graphMetaServiceDir}/baseTypeDefs.ts`, graphMetaTypesTmpl())
611
- ];
612
- case 3:
613
- // } else {
614
- // prjBackSrcPrefixedDir = join(__dirname, '..', '..', prefix);
615
- // }
616
- // Pre grapgql types compose generation
617
- _b.sent();
618
- // const graphMetaServiceDir = join(
619
- // prjBackSrcPrefixedDir,
620
- // 'graph',
621
- // 'services',
622
- // 'meta'
623
- // )
624
- // write(`${graphMetaServiceDir}/baseTypeDefs.ts`, graphMetaTypesTmpl())
625
- return [4 /*yield*/, (0, genGraphSchemesByLocalGenerator_1.genGraphSchemesByLocalGenerator)(opts)];
626
- case 4:
627
- // const graphMetaServiceDir = join(
628
- // prjBackSrcPrefixedDir,
629
- // 'graph',
630
- // 'services',
631
- // 'meta'
632
- // )
633
- // write(`${graphMetaServiceDir}/baseTypeDefs.ts`, graphMetaTypesTmpl())
634
- _b.sent();
635
- return [4 /*yield*/, generateHelpService(args, false)
636
- // Full generation
637
- ];
638
- case 5:
639
- _b.sent();
640
- // Full generation
641
- return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([], entities.map(function (entity) {
642
- return (0, generateEntity_1.generateEntity)((0, args_1.prepareEntityWideGenerationArgs)(__assign(__assign({}, args), { options: __assign({}, opts) }), entity));
643
- }), true), system.additionalServices.map(function (service) {
644
- return (0, generateAdditionalService_1.generateAdditionalService)((0, args_1.prepareAdditionalServiceWideGenerationArgs)(__assign(__assign({}, args), { options: __assign({}, opts) }), service));
645
- }), true))
646
- // Prisma schema
647
- ];
648
- case 6:
649
- // Full generation
650
- _b.sent();
651
- servicesDir = (0, path_1.join)(prjBackSrcPrefixedDir, 'services');
652
- graphDir = (0, path_1.join)(prjBackSrcPrefixedDir, 'graph');
653
- // write(
654
- // `${graphMetaServiceDir}/baseResolvers.ts`,
655
- // // graphMetaResolversTmpl()
656
- // )
657
- // // Context
658
- // // src/dc/services/context.ts
659
- // if (opts.genContext && !opts.typesOnly) {
660
- // write(join(servicesDir, 'context.ts'), graphContextTmpl(args));
661
- // }
662
- // Types
663
- if (opts.genContext) {
664
- (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'BaseServices.ts'), (0, BaseServices_1.default)(args));
665
- }
666
- // Types
667
- if (opts.genContext) {
668
- (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'serviceConstrictors.ts'), (0, serviceConstrictors_1.default)(args));
669
- }
670
- (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'IntegrationClients.ts'), (0, IntegrationClients_1.default)(args));
671
- (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'integrationClientConstrictors.ts'), (0, integrationClientConstrictors_1.default)(args));
672
- generatedAdditionalServices = (0, AdditionalServices_1.additionalServicesTmpl)();
673
- return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(servicesDir, 'AdditionalServices.ts'), generatedAdditionalServices)];
674
- case 7:
675
- _b.sent();
676
- (0, fs_jetpack_1.write)((0, path_1.join)(graphDir, 'permissionsToGraphql.ts'), (0, permissionsToGraphql_1.backPermissionToGraphqlTmpl)(args, opts));
677
- restRouter = (0, restRouter_1.restRouterTmpl)();
678
- return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjDetachedBackSrcDir, 'rest', 'restRouter.ts'), restRouter)
679
- // // src/meta/metadata.json
680
- // const genFolder = join(prjDetachedBackSrcDir, 'gen')
681
- // name: string;
682
- // prefix: string;
683
- // needFor: string;
684
- // configVars: string[];
685
- // deployEnvironments: string[];
686
- // catalogs: EntityWithOptions[];
687
- // documents: EntityWithOptions[];
688
- // infoRegistries: EntityWithOptions[];
689
- // sumRegistries: EntityWithOptions[];
690
- // const metaWithoutOptions = {
691
- // ...system,
692
- // catalogs: system.catalogs,
693
- // documents: system.documents,
694
- // infoRegistries: system.infoRegistries,
695
- // sumRegistries: system.sumRegistries,
696
- // }
697
- // write(
698
- // join(genFolder, 'metadata.json'),
699
- // stringify(metaWithoutOptions, undefined, 1)
700
- // )
701
- // UI
702
- ];
703
- case 8:
704
- _b.sent();
705
- prjUiSrcPrefixedDir = '';
706
- prjDetachedUiSrcDir = (0, path_1.join)(opts.detachedUiProject, 'src');
707
- // if (opts.detachedBackProject) {
708
- prjUiSrcPrefixedDir = (0, path_1.join)(prjDetachedUiSrcDir, 'adm');
709
- if (!!opts.typesOnly) return [3 /*break*/, 13];
710
- // Resources
711
- // src/dc/resources.tsx genUiResources uiResourcesTmpl
712
- if (opts.genUiResources) {
713
- _a = (0, resources_1.uiResourcesTmpl)(args), resources = _a.resources, resourcesChunk0 = _a.resourcesChunk0, resourcesChunk1 = _a.resourcesChunk1;
714
- (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'resources.tsx'), resources);
715
- (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'resourcesChunk0.tsx'), resourcesChunk0);
716
- (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'resourcesChunk1.tsx'), resourcesChunk1);
717
- }
718
- // Resources page
719
- // src/dc/ResourcesPage.tsx genUiResourcesPage uiResourcesPageTmpl
720
- if (opts.genUiResourcesPage) {
721
- generatedResources = (0, ResourcesPage_1.uiResourcesPageTmpl)(args);
722
- (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'ResourcesPage.tsx'), generatedResources);
723
- }
724
- generatedUiMetaPage = (0, MetaPage_1.uiMetaPageTmpl)();
725
- (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'MetaPage.tsx'), generatedUiMetaPage);
726
- // Resources page
727
- // src/dc/entityMapping.ts genUiEntityMapping uiEntityMappingTmpl
728
- if (opts.genUiEntityMapping) {
729
- generatedResources = (0, entityMapping_1.uiEntityMappingTmpl)(args, opts);
730
- (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'entityMapping.ts'), generatedResources);
731
- }
732
- if (!opts.genUiMenu) return [3 /*break*/, 10];
733
- generatedSubMenu = (0, getDefaultMenu_1.uiGetDefaultMenuTmpl)(args);
734
- generatedAdditionalMenu = (0, getAdditionalMenu_1.uiGetAdditionalMenuTmpl)();
735
- (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'getDefaultMenu.ts'), generatedSubMenu);
736
- return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'getAdditionalMenu.ts'), generatedAdditionalMenu)];
737
- case 9:
738
- _b.sent();
739
- _b.label = 10;
740
- case 10:
741
- // Resources page
742
- // src/dc/routes.tsx genUiRoutes uiRoutesTmpl
743
- if (opts.genUiRoutes) {
744
- generatedResources = (0, routes_1.default)(args);
745
- (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'routes.tsx'), generatedResources);
746
- }
747
- generatedUiAdditionalRoutesTmpl = (0, additionalRoutes_1.uiAdditionalRoutesTmpl)();
748
- return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'additionalRoutes.tsx'), generatedUiAdditionalRoutesTmpl)
749
- // Functions page
750
- // src/dc/functions/Functions.tsx
751
- ];
752
- case 11:
753
- _b.sent();
754
- // Functions page
755
- // src/dc/functions/Functions.tsx
756
- if (opts.genUiFunctions) {
757
- generatedResources = (0, Functions_1.uiFunctionsTmpl)(opts);
758
- uiFunctionsDir = (0, path_1.join)(prjUiSrcPrefixedDir, 'functions');
759
- (0, fs_jetpack_1.write)((0, path_1.join)(uiFunctionsDir, 'Functions.tsx'), generatedResources);
760
- }
761
- if (!opts.genUiDashboard) return [3 /*break*/, 13];
762
- generatedResources = (0, Dashboard_1.default)();
763
- return [4 /*yield*/, (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'Dashboard.tsx'), generatedResources)];
764
- case 12:
765
- _b.sent();
766
- _b.label = 13;
767
- case 13: return [4 /*yield*/, (0, generateEnvironment_1.generateEnvironment)(args)];
768
- case 14:
769
- _b.sent();
770
- return [2 /*return*/];
771
- }
772
- });
773
- });
774
- };
316
+ const generateProject = (system, initialOpts = types_1.defaultBootstrapEntityOptions) => __awaiter(void 0, void 0, void 0, function* () {
317
+ const dir = (0, fs_jetpack_1.cwd)('..').cwd();
318
+ const detachedBackProject = (0, path_1.join)(dir, `${initialOpts.projectPrefix}-back`);
319
+ const detachedUiProject = (0, path_1.join)(dir, `${initialOpts.projectPrefix}-ui`);
320
+ ;
321
+ const opts = Object.assign(Object.assign(Object.assign({}, types_1.defaultBootstrapEntityOptions), initialOpts), { detachedBackProject,
322
+ detachedUiProject });
323
+ const args = (0, args_1.prepareProjectWideGenerationArgs)(system, opts);
324
+ yield (0, exports.generateBack)(args);
325
+ yield (0, exports.generateFront)(args);
326
+ const { entities } = args;
327
+ let prjBackSrcPrefixedDir = '';
328
+ const prjDetachedBackSrcDir = (0, path_1.join)(opts.detachedBackProject, 'src');
329
+ // if (opts.detachedBackProject) {
330
+ prjBackSrcPrefixedDir = (0, path_1.join)(prjDetachedBackSrcDir, 'adm');
331
+ // } else {
332
+ // prjBackSrcPrefixedDir = join(__dirname, '..', '..', prefix);
333
+ // }
334
+ // Pre grapgql types compose generation
335
+ yield Promise.all([
336
+ (0, cleanFiles_1.default)(args),
337
+ ...entities.map((entity) => (0, generateEntity_1.generateEntity)((0, args_1.prepareEntityWideGenerationArgs)(Object.assign(Object.assign({}, args), { options: Object.assign(Object.assign({}, opts), { typesOnly: true }) }), entity))),
338
+ ...system.additionalServices.map((service) => (0, generateAdditionalService_1.generateAdditionalService)((0, args_1.prepareAdditionalServiceWideGenerationArgs)(Object.assign(Object.assign({}, args), { options: Object.assign(Object.assign({}, opts), { typesOnly: true }) }), service))),
339
+ ]);
340
+ // const graphMetaServiceDir = join(
341
+ // prjBackSrcPrefixedDir,
342
+ // 'graph',
343
+ // 'services',
344
+ // 'meta'
345
+ // )
346
+ // write(`${graphMetaServiceDir}/baseTypeDefs.ts`, graphMetaTypesTmpl())
347
+ yield (0, genGraphSchemesByLocalGenerator_1.genGraphSchemesByLocalGenerator)(opts);
348
+ yield generateHelpService(args, false);
349
+ // Full generation
350
+ yield Promise.all([
351
+ ...entities.map((entity) => (0, generateEntity_1.generateEntity)((0, args_1.prepareEntityWideGenerationArgs)(Object.assign(Object.assign({}, args), { options: Object.assign({}, opts) }), entity))),
352
+ ...system.additionalServices.map((service) => (0, generateAdditionalService_1.generateAdditionalService)((0, args_1.prepareAdditionalServiceWideGenerationArgs)(Object.assign(Object.assign({}, args), { options: Object.assign({}, opts) }), service))),
353
+ ]);
354
+ // Prisma schema
355
+ const servicesDir = (0, path_1.join)(prjBackSrcPrefixedDir, 'services');
356
+ // if (opts.genPrismaSchema) {
357
+ // const prismaSchema = genPrismaSchemaForEntities(args, allLinks);
358
+ // write(join(prjBackSrcPrefixedDir, 'schema.prisma'), prismaSchema);
359
+ // }
360
+ // Graph
361
+ const graphDir = (0, path_1.join)(prjBackSrcPrefixedDir, 'graph');
362
+ // write(
363
+ // `${graphMetaServiceDir}/baseResolvers.ts`,
364
+ // // graphMetaResolversTmpl()
365
+ // )
366
+ // // Context
367
+ // // src/dc/services/context.ts
368
+ // if (opts.genContext && !opts.typesOnly) {
369
+ // write(join(servicesDir, 'context.ts'), graphContextTmpl(args));
370
+ // }
371
+ // Types
372
+ if (opts.genContext) {
373
+ (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'BaseServices.ts'), (0, BaseServices_1.default)(args));
374
+ }
375
+ // Types
376
+ if (opts.genContext) {
377
+ (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'serviceConstrictors.ts'), (0, serviceConstrictors_1.default)(args));
378
+ }
379
+ (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'IntegrationClients.ts'), (0, IntegrationClients_1.default)(args));
380
+ (0, fs_jetpack_1.write)((0, path_1.join)(servicesDir, 'integrationClientConstrictors.ts'), (0, integrationClientConstrictors_1.default)(args));
381
+ const generatedAdditionalServices = (0, AdditionalServices_1.additionalServicesTmpl)();
382
+ yield (0, utils_1.writeFileIfNotExists)((0, path_1.join)(servicesDir, 'AdditionalServices.ts'), generatedAdditionalServices);
383
+ (0, fs_jetpack_1.write)((0, path_1.join)(graphDir, 'permissionsToGraphql.ts'), (0, permissionsToGraphql_1.backPermissionToGraphqlTmpl)(args, opts));
384
+ // Root
385
+ // src/restRouter.ts
386
+ const restRouter = (0, restRouter_1.restRouterTmpl)();
387
+ yield (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjDetachedBackSrcDir, 'rest', 'restRouter.ts'), restRouter);
388
+ // // src/meta/metadata.json
389
+ // const genFolder = join(prjDetachedBackSrcDir, 'gen')
390
+ // name: string;
391
+ // prefix: string;
392
+ // needFor: string;
393
+ // configVars: string[];
394
+ // deployEnvironments: string[];
395
+ // catalogs: EntityWithOptions[];
396
+ // documents: EntityWithOptions[];
397
+ // infoRegistries: EntityWithOptions[];
398
+ // sumRegistries: EntityWithOptions[];
399
+ // const metaWithoutOptions = {
400
+ // ...system,
401
+ // catalogs: system.catalogs,
402
+ // documents: system.documents,
403
+ // infoRegistries: system.infoRegistries,
404
+ // sumRegistries: system.sumRegistries,
405
+ // }
406
+ // write(
407
+ // join(genFolder, 'metadata.json'),
408
+ // stringify(metaWithoutOptions, undefined, 1)
409
+ // )
410
+ // UI
411
+ let prjUiSrcPrefixedDir = '';
412
+ const prjDetachedUiSrcDir = (0, path_1.join)(opts.detachedUiProject, 'src');
413
+ // if (opts.detachedBackProject) {
414
+ prjUiSrcPrefixedDir = (0, path_1.join)(prjDetachedUiSrcDir, 'adm');
415
+ // } else {
416
+ // prjUiSrcPrefixedDir = join('/home/name/prj/crawler-ui/src', prefix);
417
+ // }
418
+ if (!opts.typesOnly) {
419
+ // Resources
420
+ // src/dc/resources.tsx genUiResources uiResourcesTmpl
421
+ if (opts.genUiResources) {
422
+ const { resources, resourcesChunk0, resourcesChunk1 } = (0, resources_1.uiResourcesTmpl)(args);
423
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'resources.tsx'), resources);
424
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'resourcesChunk0.tsx'), resourcesChunk0);
425
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'resourcesChunk1.tsx'), resourcesChunk1);
426
+ }
427
+ // Resources page
428
+ // src/dc/ResourcesPage.tsx genUiResourcesPage uiResourcesPageTmpl
429
+ if (opts.genUiResourcesPage) {
430
+ const generatedResources = (0, ResourcesPage_1.uiResourcesPageTmpl)(args);
431
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'ResourcesPage.tsx'), generatedResources);
432
+ }
433
+ const generatedUiMetaPage = (0, MetaPage_1.uiMetaPageTmpl)();
434
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'MetaPage.tsx'), generatedUiMetaPage);
435
+ // Resources page
436
+ // src/dc/entityMapping.ts genUiEntityMapping uiEntityMappingTmpl
437
+ if (opts.genUiEntityMapping) {
438
+ const generatedResources = (0, entityMapping_1.uiEntityMappingTmpl)(args, opts);
439
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'entityMapping.ts'), generatedResources);
440
+ }
441
+ // Resources page
442
+ // src/dc/ProjectMenu.tsx genUiMenu uiMenuTmpl
443
+ if (opts.genUiMenu) {
444
+ const generatedSubMenu = (0, getDefaultMenu_1.uiGetDefaultMenuTmpl)(args);
445
+ const generatedAdditionalMenu = (0, getAdditionalMenu_1.uiGetAdditionalMenuTmpl)();
446
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'getDefaultMenu.ts'), generatedSubMenu);
447
+ yield (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'getAdditionalMenu.ts'), generatedAdditionalMenu);
448
+ }
449
+ // Resources page
450
+ // src/dc/routes.tsx genUiRoutes uiRoutesTmpl
451
+ if (opts.genUiRoutes) {
452
+ const generatedResources = (0, routes_1.default)(args);
453
+ (0, fs_jetpack_1.write)((0, path_1.join)(prjUiSrcPrefixedDir, 'routes.tsx'), generatedResources);
454
+ }
455
+ const generatedUiAdditionalRoutesTmpl = (0, additionalRoutes_1.uiAdditionalRoutesTmpl)();
456
+ yield (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'additionalRoutes.tsx'), generatedUiAdditionalRoutesTmpl);
457
+ // Functions page
458
+ // src/dc/functions/Functions.tsx
459
+ if (opts.genUiFunctions) {
460
+ const generatedResources = (0, Functions_1.uiFunctionsTmpl)(opts);
461
+ const uiFunctionsDir = (0, path_1.join)(prjUiSrcPrefixedDir, 'functions');
462
+ (0, fs_jetpack_1.write)((0, path_1.join)(uiFunctionsDir, 'Functions.tsx'), generatedResources);
463
+ }
464
+ // Dashboard page
465
+ // src/dc/dashboard.tsx
466
+ if (opts.genUiDashboard) {
467
+ const generatedResources = (0, Dashboard_1.default)();
468
+ yield (0, utils_1.writeFileIfNotExists)((0, path_1.join)(prjUiSrcPrefixedDir, 'Dashboard.tsx'), generatedResources);
469
+ }
470
+ }
471
+ yield (0, generateEnvironment_1.generateEnvironment)(args);
472
+ });
775
473
  exports.default = generateProject;
776
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2QkFBMkI7QUFDM0IscUVBQXlFO0FBQ3pFLDZFQUFpRjtBQUNqRixtR0FBd0c7QUFDeEcsZ0dBQStFO0FBQy9FLDZFQUFpRjtBQUNqRixzRkFBcUU7QUFDckUsK0VBQW1GO0FBQ25GLCtFQUFtRjtBQUNuRiw2REFBMkQ7QUFDM0QsNkVBQW9GO0FBQ3BGLHFGQUFtRjtBQUNuRixpQ0FBb0Y7QUFDcEYsbURBQWlEO0FBQ2pELDhFQUFnRjtBQUNoRixpQ0FBOEM7QUFDOUMsbUZBQXVGO0FBQ3ZGLHFGQUF5RjtBQUN6RixtRUFBdUU7QUFDdkUsa0dBQW9HO0FBRXBHLHlGQUFtRztBQUNuRyx5Q0FBdUM7QUFDdkMsK0ZBQXlHO0FBQ3pHLGlFQUEyRTtBQUMzRSx3Q0FBdUQ7QUFDdkQsaUdBQTJHO0FBQzNHLDZHQUF1SDtBQUN2SCwyR0FBcUg7QUFDckgsK0JBTWU7QUFDZixxRkFBdUY7QUFDdkYsaUlBQTBHO0FBQzFHLHNIQUFvSDtBQUNwSCxxSEFBOEY7QUFDOUYsbUhBQTRGO0FBQzVGLHVDQUE0QztBQUM1QywyR0FBd0Y7QUFDeEYsaUhBQThGO0FBQzlGLHVHQUF5RjtBQUN6Rix5R0FBc0Y7QUFDdEYseUhBQXNHO0FBQ3RHLDZEQUErRDtBQUMvRCxtRUFBcUU7QUFDckUseUVBQStFO0FBQy9FLG1FQUF5RTtBQUN6RSxxSEFBdUc7QUFDdkcscUVBQW1FO0FBQ25FLDZFQUEyRTtBQUMzRSwrRkFBbUc7QUFDbkcsMkVBQTZGO0FBQzdGLHlJQUFrSDtBQUNsSCwySUFBNEg7QUFDNUgsMkNBQXdDO0FBQ3hDLG1IQUFxSDtBQUNySCw2R0FB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
474
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQTJCO0FBQzNCLHVFQUF5RTtBQUN6RSwrRUFBaUY7QUFDakYscUdBQXdHO0FBQ3hHLGtHQUErRTtBQUMvRSwrRUFBaUY7QUFDakYsd0ZBQXFFO0FBQ3JFLGlGQUFtRjtBQUNuRixpRkFBbUY7QUFDbkYsK0RBQTJEO0FBQzNELCtFQUFvRjtBQUNwRix1RkFBbUY7QUFDbkYsbUNBQW9GO0FBQ3BGLHFEQUFpRDtBQUNqRCxnRkFBZ0Y7QUFDaEYsbUNBQThDO0FBQzlDLHFGQUF1RjtBQUN2Rix1RkFBeUY7QUFDekYscUVBQXVFO0FBQ3ZFLG9HQUFvRztBQUVwRywyRkFBbUc7QUFDbkcsMkNBQXVDO0FBQ3ZDLGlHQUF5RztBQUN6RyxtRUFBMkU7QUFDM0UsMENBQXVEO0FBQ3ZELG1HQUEyRztBQUMzRywrR0FBdUg7QUFDdkgsNkdBQXFIO0FBQ3JILGlDQU1lO0FBQ2YsdUZBQXVGO0FBQ3ZGLG1JQUEwRztBQUMxRyx3SEFBb0g7QUFDcEgsdUhBQThGO0FBQzlGLHFIQUE0RjtBQUM1Rix5Q0FBNEM7QUFDNUMsNkdBQXdGO0FBQ3hGLG1IQUE4RjtBQUM5Rix5R0FBeUY7QUFDekYsMkdBQXNGO0FBQ3RGLDJIQUFzRztBQUN0RywrREFBK0Q7QUFDL0QscUVBQXFFO0FBQ3JFLDJFQUErRTtBQUMvRSxxRUFBeUU7QUFDekUsdUhBQXVHO0FBQ3ZHLHVFQUFtRTtBQUNuRSwrRUFBMkU7QUFDM0UsaUdBQW1HO0FBQ25HLDZFQUE2RjtBQUM3RiwySUFBa0g7QUFDbEgsNklBQTRIO0FBQzVILDZDQUF3QztBQUN4QyxxSEFBcUg7QUFDckgsK0dBQXNGO0FBQ3RGLDJFQUF1RTtBQUN2RSwrSUFBNkg7QUFDN0gscUtBQW1KO0FBQ25K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