runlify 0.0.794 → 0.0.796

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 (57) hide show
  1. package/build/cli.js +8 -2
  2. package/build/projectsGeneration/builders/generationPaths.js +44 -1
  3. package/build/projectsGeneration/generateProject/back/src/generateBackSrc.js +11 -2
  4. package/build/projectsGeneration/generateProject/fileHandlers.js +6 -2
  5. package/build/projectsGeneration/generateProject/front/generateFrontSrc.js +10 -1
  6. package/build/projectsGeneration/generateProject/front/translations/generateFrontSrcTranslations.js +33 -1
  7. package/build/projectsGeneration/generateProject/generateBackClickHouseBootstrap.js +1 -4
  8. package/build/projectsGeneration/generateProject/utils.js +2 -2
  9. package/build/projectsGeneration/generators/fileTemplates/back/clickhouse/jobs.js +41 -4
  10. package/build/projectsGeneration/generators/fileTemplates/back/roles/customPermissions.js +12 -0
  11. package/build/projectsGeneration/generators/fileTemplates/back/roles/customUiPermissions.js +13 -0
  12. package/build/projectsGeneration/generators/fileTemplates/back/roles/initPermissions.js +31 -0
  13. package/build/projectsGeneration/generators/fileTemplates/back/roles/uiPermissions.js +24 -0
  14. package/build/projectsGeneration/generators/fileTemplates/ui/NotFoundPage.js +6 -0
  15. package/build/projectsGeneration/generators/fileTemplates/ui/PermissionPage.js +6 -0
  16. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/routes.js +5 -5
  17. package/build/projectsGeneration/generators/fileTemplates/ui/getDefaultMenu.js +5 -1
  18. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/skeleton/uiI18nIndexTmpl.js +35 -0
  19. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/skeleton/uiI18nTypesTmpl.js +33 -0
  20. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/skeleton/uiI18nValidationTmpl.js +38 -0
  21. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityCreate/DefaultEntityCreate.js +16 -5
  22. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityEdit/DefaultEntityEdit.js +27 -11
  23. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/DefaultEntityFilter.js +13 -4
  24. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/DefaultEntityList.js +14 -7
  25. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultMainTab.js +13 -4
  26. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DependencyTab.js +12 -3
  27. package/build/projectsGeneration/generators/fileTemplates/ui/resources.js +21 -8
  28. package/build/projectsGeneration/generators/fileTemplates/ui/utils/permissions.js +89 -0
  29. package/build/projectsGeneration/generators/ui/getShowComponent.js +2 -2
  30. package/build/types/projectsGeneration/builders/generationPaths.d.ts +42 -0
  31. package/build/types/projectsGeneration/generateProject/fileHandlers.d.ts +1 -0
  32. package/build/types/projectsGeneration/generateProject/types.d.ts +1 -1
  33. package/build/types/projectsGeneration/generateProject/utils.d.ts +1 -1
  34. package/build/types/projectsGeneration/generators/fileTemplates/back/roles/customPermissions.d.ts +2 -0
  35. package/build/types/projectsGeneration/generators/fileTemplates/back/roles/customUiPermissions.d.ts +2 -0
  36. package/build/types/projectsGeneration/generators/fileTemplates/back/roles/initPermissions.d.ts +2 -0
  37. package/build/types/projectsGeneration/generators/fileTemplates/back/roles/uiPermissions.d.ts +3 -0
  38. package/build/types/projectsGeneration/generators/fileTemplates/ui/NotFoundPage.d.ts +2 -0
  39. package/build/types/projectsGeneration/generators/fileTemplates/ui/PermissionPage.d.ts +2 -0
  40. package/build/types/projectsGeneration/generators/fileTemplates/ui/i18n/skeleton/uiI18nIndexTmpl.d.ts +2 -0
  41. package/build/types/projectsGeneration/generators/fileTemplates/ui/i18n/skeleton/uiI18nTypesTmpl.d.ts +3 -0
  42. package/build/types/projectsGeneration/generators/fileTemplates/ui/i18n/skeleton/uiI18nValidationTmpl.d.ts +2 -0
  43. package/build/types/projectsGeneration/generators/fileTemplates/ui/pages/EntityEdit/DefaultEntityEdit.d.ts +1 -0
  44. package/build/types/projectsGeneration/generators/fileTemplates/ui/utils/permissions.d.ts +2 -0
  45. package/docs/01-overview.md +172 -0
  46. package/docs/02-system-meta-builder.md +405 -0
  47. package/docs/03-entity-types.md +471 -0
  48. package/docs/04-fields.md +357 -0
  49. package/docs/05-custom-methods.md +249 -0
  50. package/docs/06-storage.md +129 -0
  51. package/docs/07-backend-file-graph.md +231 -0
  52. package/docs/08-frontend-file-graph.md +260 -0
  53. package/docs/09-options.md +213 -0
  54. package/docs/10-modules.md +164 -0
  55. package/docs/11-permissions.md +231 -0
  56. package/docs/INDEX.md +70 -0
  57. package/package.json +1 -1
package/build/cli.js CHANGED
@@ -18,7 +18,13 @@ function run(argv) {
18
18
  // create a CLI runtime
19
19
  const cli = (0, gluegun_1.build)()
20
20
  .brand('runlify')
21
- .src(__dirname)
21
+ .src(__dirname, {
22
+ // gluegun's default only excludes *.test.{js,ts}; this project's
23
+ // convention is *.spec.ts, so exclude that too, otherwise a spec
24
+ // file colocated in src/extensions/ gets auto-loaded as an extension.
25
+ commandFilePattern: ['*.{js,ts}', '!*.test.{js,ts}', '!*.spec.{js,ts}'],
26
+ extensionFilePattern: ['*.{js,ts}', '!*.test.{js,ts}', '!*.spec.{js,ts}'],
27
+ })
22
28
  .plugins('./node_modules', { matching: 'runlify-*', hidden: true })
23
29
  .help() // provides default for help, h, --help, -h
24
30
  .version() // provides default for version, v, --version, -v
@@ -34,4 +40,4 @@ function run(argv) {
34
40
  });
35
41
  }
36
42
  module.exports = { run };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLHFDQUE2QjtBQUU3Qjs7R0FFRztBQUNILFNBQWUsR0FBRyxDQUFDLElBQVM7O1FBQzFCLHVCQUF1QjtRQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQUssR0FBRTthQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxTQUFTLENBQUM7YUFDZCxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUNsRSxJQUFJLEVBQUUsQ0FBQywyQ0FBMkM7YUFDbEQsT0FBTyxFQUFFLENBQUMsaURBQWlEO2FBQzNELGVBQWUsQ0FBQyxHQUFHLENBQUM7YUFDcEIsTUFBTSxFQUFFLENBQUE7UUFDWCx5RkFBeUY7UUFDekYsMEVBQTBFO1FBQzFFLHdJQUF3STtRQUN4SSxhQUFhO1FBRWIsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRW5DLHFDQUFxQztRQUNyQyxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0NBQUE7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUEifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLHFDQUE2QjtBQUU3Qjs7R0FFRztBQUNILFNBQWUsR0FBRyxDQUFDLElBQVM7O1FBQzFCLHVCQUF1QjtRQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQUssR0FBRTthQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxTQUFTLEVBQUU7WUFDZCxpRUFBaUU7WUFDakUsaUVBQWlFO1lBQ2pFLHNFQUFzRTtZQUN0RSxrQkFBa0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztZQUN2RSxvQkFBb0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztTQUMxRSxDQUFDO2FBQ0QsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDbEUsSUFBSSxFQUFFLENBQUMsMkNBQTJDO2FBQ2xELE9BQU8sRUFBRSxDQUFDLGlEQUFpRDthQUMzRCxlQUFlLENBQUMsR0FBRyxDQUFDO2FBQ3BCLE1BQU0sRUFBRSxDQUFBO1FBQ1gseUZBQXlGO1FBQ3pGLDBFQUEwRTtRQUMxRSx3SUFBd0k7UUFDeEksYUFBYTtRQUViLE1BQU0sT0FBTyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVuQyxxQ0FBcUM7UUFDckMsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztDQUFBO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBIn0=
@@ -71,6 +71,14 @@ exports.GenerationPathCategory = {
71
71
  SharedGraphqlSchemaJson: 'shared.generated.graphqlSchemaJson',
72
72
  BackConfig: 'back.config',
73
73
  BackRestRouter: 'back.rest.router',
74
+ // —— roles/permissions ——
75
+ BackRolesInitPermissions: 'back.roles.initPermissions',
76
+ BackRolesUiPermissions: 'back.roles.uiPermissions',
77
+ BackRolesCustomPermissions: 'back.roles.customPermissions',
78
+ BackRolesCustomUiPermissions: 'back.roles.customUiPermissions',
79
+ UiPermissionPage: 'ui.permissionPage',
80
+ UiNotFoundPage: 'ui.notFoundPage',
81
+ UiPermissionsUtils: 'ui.permissionsUtils',
74
82
  // —— additional services ——
75
83
  BackAdditionalServiceTypes: 'back.additionalService.types',
76
84
  BackAdditionalServiceGraphTypeDefs: 'back.additionalService.graph.typeDefs',
@@ -350,6 +358,41 @@ exports.DEFAULT_GENERATION_PATHS = {
350
358
  defaultTemplate: 'src/rest/restRouter.ts',
351
359
  params: [],
352
360
  },
361
+ [exports.GenerationPathCategory.BackRolesInitPermissions]: {
362
+ root: 'back',
363
+ defaultTemplate: 'src/init/roles/generated/initPermissions.ts',
364
+ params: [],
365
+ },
366
+ [exports.GenerationPathCategory.BackRolesUiPermissions]: {
367
+ root: 'back',
368
+ defaultTemplate: 'src/init/roles/generated/uiPermissions.ts',
369
+ params: [],
370
+ },
371
+ [exports.GenerationPathCategory.BackRolesCustomPermissions]: {
372
+ root: 'back',
373
+ defaultTemplate: 'src/init/roles/customPermissions.ts',
374
+ params: [],
375
+ },
376
+ [exports.GenerationPathCategory.BackRolesCustomUiPermissions]: {
377
+ root: 'back',
378
+ defaultTemplate: 'src/init/roles/customUiPermissions.ts',
379
+ params: [],
380
+ },
381
+ [exports.GenerationPathCategory.UiPermissionPage]: {
382
+ root: 'ui',
383
+ defaultTemplate: 'src/adm/PermissionPage.tsx',
384
+ params: [],
385
+ },
386
+ [exports.GenerationPathCategory.UiNotFoundPage]: {
387
+ root: 'ui',
388
+ defaultTemplate: 'src/adm/NotFoundPage.tsx',
389
+ params: [],
390
+ },
391
+ [exports.GenerationPathCategory.UiPermissionsUtils]: {
392
+ root: 'ui',
393
+ defaultTemplate: 'src/utils/permissions.ts',
394
+ params: [],
395
+ },
353
396
  [exports.GenerationPathCategory.BackAdditionalServiceTypes]: {
354
397
  root: 'back',
355
398
  defaultTemplate: 'src/adm/services/{ServiceName}/types.ts',
@@ -829,4 +872,4 @@ function resolveUiWidgetsDir(args) {
829
872
  return (0, path_1.join)(samplePath, '..', '..');
830
873
  }
831
874
  exports.resolveUiWidgetsDir = resolveUiWidgetsDir;
832
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvblBhdGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9idWlsZGVycy9nZW5lcmF0aW9uUGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQXlCO0FBS1osUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxJQUFJLEVBQUUsTUFBTTtJQUNaLEVBQUUsRUFBRSxJQUFJO0lBQ1IsTUFBTSxFQUFFLFFBQVE7Q0FDcUMsQ0FBQTtBQUV2RDs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDLG9CQUFvQixFQUFFLHdCQUF3QjtJQUM5QyxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsb0JBQW9CLEVBQUUsd0JBQXdCO0lBQzlDLG1CQUFtQixFQUFFLHVCQUF1QjtJQUM1QyxvQkFBb0IsRUFBRSx3QkFBd0I7SUFDOUMsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLG9CQUFvQixFQUFFLHdCQUF3QjtJQUM5Qyx3QkFBd0IsRUFBRSw0QkFBNEI7SUFDdEQsb0NBQW9DLEVBQUUsd0NBQXdDO0lBQzlFLG9DQUFvQyxFQUFFLHdDQUF3QztJQUM5RSxvQ0FBb0MsRUFBRSx3Q0FBd0M7SUFDOUUsNkJBQTZCLEVBQUUsaUNBQWlDO0lBQ2hFLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCx3QkFBd0IsRUFBRSw0QkFBNEI7SUFDdEQsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLDBCQUEwQixFQUFFLDhCQUE4QjtJQUMxRCxpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsdUJBQXVCLEVBQUUsMkJBQTJCO0lBQ3BELDhCQUE4QixFQUFFLGtDQUFrQztJQUNsRSxpQkFBaUIsRUFBRSxzQkFBc0I7SUFDekMsd0JBQXdCLEVBQUUsNkJBQTZCO0lBQ3ZELDJCQUEyQixFQUFFLGdDQUFnQztJQUM3RCx3QkFBd0IsRUFBRSw2QkFBNkI7SUFDdkQsZUFBZSxFQUFFLG9CQUFvQjtJQUNy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
875
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvblBhdGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9idWlsZGVycy9nZW5lcmF0aW9uUGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQXlCO0FBS1osUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxJQUFJLEVBQUUsTUFBTTtJQUNaLEVBQUUsRUFBRSxJQUFJO0lBQ1IsTUFBTSxFQUFFLFFBQVE7Q0FDcUMsQ0FBQTtBQUV2RDs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDLG9CQUFvQixFQUFFLHdCQUF3QjtJQUM5QyxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsb0JBQW9CLEVBQUUsd0JBQXdCO0lBQzlDLG1CQUFtQixFQUFFLHVCQUF1QjtJQUM1QyxvQkFBb0IsRUFBRSx3QkFBd0I7SUFDOUMsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLG9CQUFvQixFQUFFLHdCQUF3QjtJQUM5Qyx3QkFBd0IsRUFBRSw0QkFBNEI7SUFDdEQsb0NBQW9DLEVBQUUsd0NBQXdDO0lBQzlFLG9DQUFvQyxFQUFFLHdDQUF3QztJQUM5RSxvQ0FBb0MsRUFBRSx3Q0FBd0M7SUFDOUUsNkJBQTZCLEVBQUUsaUNBQWlDO0lBQ2hFLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCx3QkFBd0IsRUFBRSw0QkFBNEI7SUFDdEQsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLDBCQUEwQixFQUFFLDhCQUE4QjtJQUMxRCxpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsdUJBQXVCLEVBQUUsMkJBQTJCO0lBQ3BELDhCQUE4QixFQUFFLGtDQUFrQztJQUNsRSxpQkFBaUIsRUFBRSxzQkFBc0I7SUFDekMsd0JBQXdCLEVBQUUsNkJBQTZCO0lBQ3ZELDJCQUEyQixFQUFFLGdDQUFnQztJQUM3RCx3QkFBd0IsRUFBRSw2QkFBNkI7SUFDdkQsZUFBZSxFQUFFLG9CQUFvQjtJQUNyQyx3QkFBd0IsRUFBRSw2QkFBNkI7SUFDdkQsdUJBQXVCLEVBQUUsNEJBQTRCO0lBQ3JELG1CQUFtQixFQUFFLHdCQUF3QjtJQUM3QyxpQkFBaUIsRUFBRSxzQkFBc0I7SUFDekMsaUJBQWlCLEVBQUUsc0JBQXNCO0lBQ3pDLGVBQWUsRUFBRSxvQkFBb0I7SUFDckMsaUJBQWlCLEVBQUUsc0JBQXNCO0lBQ3pDLGdCQUFnQixFQUFFLHFCQUFxQjtJQUN2Qyx1QkFBdUIsRUFBRSw0QkFBNEI7SUFDckQscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELGVBQWUsRUFBRSxvQkFBb0I7SUFDckMsVUFBVSxFQUFFLGNBQWM7SUFDMUIsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLGFBQWEsRUFBRSxpQkFBaUI7SUFDaEMsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixjQUFjO0lBQ2QsMkJBQTJCLEVBQUUsZ0NBQWdDO0lBQzdELGlDQUFpQyxFQUFFLHNDQUFzQztJQUN6RSw0QkFBNEIsRUFBRSxpQ0FBaUM7SUFDL0Qsa0NBQWtDLEVBQUUsdUNBQXVDO0lBQzNFLG1DQUFtQyxFQUFFLHdDQUF3QztJQUM3RSx1Q0FBdUMsRUFBRSw0Q0FBNEM7SUFDckYsNkNBQTZDLEVBQUUsa0RBQWtEO0lBQ2pHLHlCQUF5QixFQUFFLDhCQUE4QjtJQUN6RCwwQkFBMEIsRUFBRSwrQkFBK0I7SUFDM0QsaUNBQWlDLEVBQUUsc0NBQXNDO0lBQ3pFLDZCQUE2QixFQUFFLGlDQUFpQztJQUNoRSxzQkFBc0IsRUFBRSwwQkFBMEI7SUFDbEQsc0JBQXNCLEVBQUUsMEJBQTBCO0lBQ2xELDhCQUE4QixFQUFFLGtDQUFrQztJQUNsRSxvQkFBb0IsRUFBRSx3QkFBd0I7SUFDOUMsNEJBQTRCLEVBQUUsZ0NBQWdDO0lBQzlELHVCQUF1QixFQUFFLG9DQUFvQztJQUM3RCxVQUFVLEVBQUUsYUFBYTtJQUN6QixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLDBCQUEwQjtJQUMxQix3QkFBd0IsRUFBRSw0QkFBNEI7SUFDdEQsc0JBQXNCLEVBQUUsMEJBQTBCO0lBQ2xELDBCQUEwQixFQUFFLDhCQUE4QjtJQUMxRCw0QkFBNEIsRUFBRSxnQ0FBZ0M7SUFDOUQsZ0JBQWdCLEVBQUUsbUJBQW1CO0lBQ3JDLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsa0JBQWtCLEVBQUUscUJBQXFCO0lBQ3pDLDRCQUE0QjtJQUM1QiwwQkFBMEIsRUFBRSw4QkFBOEI7SUFDMUQsa0NBQWtDLEVBQUUsdUNBQXVDO0lBQzNFLG1DQUFtQyxFQUFFLHdDQUF3QztJQUM3RSw4Q0FBOEMsRUFDNUMsbURBQW1EO0lBQ3JELHNCQUFzQixFQUFFLHlCQUF5QjtJQUNqRCw0QkFBNEI7SUFDNUIsMEJBQTBCLEVBQUUsOEJBQThCO0lBQzFELDBCQUEwQixFQUFFLDhCQUE4QjtJQUMxRCxpQ0FBaUMsRUFBRSxxQ0FBcUM7SUFDeEUsc0JBQXNCLEVBQUUseUJBQXlCO0lBQ2pELGFBQWE7SUFDYixVQUFVLEVBQUUsY0FBYztJQUMxQixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLG9CQUFvQixFQUFFLHdCQUF3QjtJQUM5QyxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsYUFBYSxFQUFFLGlCQUFpQjtJQUNoQyxzQkFBc0I7SUFDdEIsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixrQkFBa0IsRUFBRSxzQkFBc0I7SUFDMUMsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0Msc0JBQXNCLEVBQUUsMkJBQTJCO0lBQ25ELGVBQWUsRUFBRSxvQkFBb0I7SUFDckMscUJBQXFCO0lBQ3JCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLGlCQUFpQixFQUFFLG9CQUFvQjtJQUN2QyxpQkFBaUIsRUFBRSxvQkFBb0I7SUFDdkMsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxVQUFVLEVBQUUsYUFBYTtJQUN6QixlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLGdCQUFnQixFQUFFLG1CQUFtQjtJQUNyQyxtQkFBbUIsRUFBRSxzQkFBc0I7SUFDM0MsV0FBVyxFQUFFLGNBQWM7SUFDM0IscUJBQXFCLEVBQUUsd0JBQXdCO0lBQy9DLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLGtCQUFrQixFQUFFLHFCQUFxQjtJQUN6QyxXQUFXLEVBQUUsY0FBYztJQUMzQixXQUFXLEVBQUUsY0FBYztJQUMzQiwwQ0FBMEM7SUFDMUMsb0JBQW9CLEVBQUUsd0JBQXdCO0lBQzlDLCtCQUErQixFQUFFLG1DQUFtQztJQUNwRSxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsU0FBUyxFQUFFLFlBQVk7SUFDdkIsV0FBVyxFQUFFLGNBQWM7SUFDM0IscUNBQXFDLEVBQUUsMENBQTBDO0lBQ2pGLGdCQUFnQixFQUFFLG9CQUFvQjtJQUN0QyxzQkFBc0IsRUFBRSwyQkFBMkI7SUFDbkQsZ0NBQWdDLEVBQUUscUNBQXFDO0lBQ3ZFLHNCQUFzQixFQUFFLDJCQUEyQjtJQUNuRCw0QkFBNEIsRUFBRSxpQ0FBaUM7SUFDL0QsMEJBQTBCLEVBQUUsOEJBQThCO0lBQzFELGdCQUFnQixFQUFFLG9CQUFvQjtJQUN0QyxzQkFBc0IsRUFBRSwwQkFBMEI7SUFDbEQsd0JBQXdCLEVBQUUsNkJBQTZCO0lBQ3ZELGtDQUFrQyxFQUFFLHVDQUF1QztJQUMzRSx3QkFBd0IsRUFBRSw2QkFBNkI7SUFDdkQsOEJBQThCLEVBQUUsbUNBQW1DO0lBQ25FLCtCQUErQixFQUFFLG9DQUFvQztJQUNyRSxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLGFBQWEsRUFBRSxpQkFBaUI7SUFDaEMsWUFBWSxFQUFFLGVBQWU7SUFDN0IsWUFBWSxFQUFFLGVBQWU7SUFDN0IsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxLQUFLLEVBQUUsUUFBUTtJQUNmLFlBQVksRUFBRSxnQkFBZ0I7SUFDOUIsY0FBYyxFQUFFLGtCQUFrQjtJQUNsQyxlQUFlLEVBQUUsMkJBQTJCO0lBQzVDLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsa0NBQWtDLEVBQUUsc0NBQXNDO0lBQzFFLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixhQUFhLEVBQUUsaUJBQWlCO0lBQ2hDLFlBQVksRUFBRSxnQkFBZ0I7SUFDOUIsY0FBYyxFQUFFLGtCQUFrQjtJQUNsQyxVQUFVLEVBQUUsYUFBYTtJQUN6QixVQUFVLEVBQUUsYUFBYTtJQUN6QixZQUFZLEVBQUUsZUFBZTtJQUM3QixrQ0FBa0M7SUFDbEMscUJBQXFCLEVBQUUseUJBQXlCO0lBQ2hELHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCxZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMseUJBQXlCLEVBQUUsNkJBQTZCO0lBQ3hELGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLHNCQUFzQixFQUFFLDJCQUEyQjtJQUNuRCx5QkFBeUIsRUFBRSw4QkFBOEI7Q0FDakQsQ0FBQTtBQUtHLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsVUFBVSxFQUFFLFlBQVk7SUFDeEIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxZQUFZLEVBQUUsY0FBYztJQUM1QixXQUFXLEVBQUUsYUFBYTtJQUMxQixXQUFXLEVBQUUsYUFBYTtJQUMxQixlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGFBQWEsRUFBRSxlQUFlO0lBQzlCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGdCQUFnQixFQUFFLGtCQUFrQjtJQUNwQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsVUFBVTtDQUNaLENBQUE7QUFpQ1YsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFBO0FBRW5DLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxHQUFHLENBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQywyQkFBbUIsQ0FBQyxDQUFDLENBQUE7QUFFckYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLDJCQUFtQixDQUFDLFdBQVcsQ0FBVSxDQUFBO0FBRXBFLE1BQU0sWUFBWSxHQUFHO0lBQ25CLDJCQUFtQixDQUFDLFVBQVU7SUFDOUIsMkJBQW1CLENBQUMsY0FBYztDQUMxQixDQUFBO0FBRVYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxRQUFnQixFQUE0QixFQUFFLENBQUMsQ0FBQztJQUNoRSxJQUFJLEVBQUUsTUFBTTtJQUNaLGVBQWUsRUFBRSx3Q0FBd0MsUUFBUSxLQUFLO0lBQ3RFLE1BQU0sRUFBRSxpQkFBaUI7Q0FDMUIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxlQUF1QixFQUFFLFNBQXlDLFlBQVksRUFBNEIsRUFBRSxDQUFDLENBQUM7SUFDNUgsSUFBSSxFQUFFLElBQUk7SUFDVixlQUFlO0lBQ2YsTUFBTTtDQUNQLENBQUMsQ0FBQTtBQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQywyQkFBbUIsQ0FBQyxXQUFXLENBQVUsQ0FBQTtBQUVwRSxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQVksRUFBNEIsRUFBRSxDQUFDLENBQUM7SUFDbkUsSUFBSSxFQUFFLE1BQU07SUFDWixlQUFlLEVBQUUsd0NBQXdDLElBQUksS0FBSztJQUNsRSxNQUFNLEVBQUUsaUJBQWlCO0NBQzFCLENBQUMsQ0FBQTtBQUVXLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEMsQ0FBQyw4QkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDdkUsQ0FBQyw4QkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDckUsQ0FBQyw4QkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDdkUsQ0FBQyw4QkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDckUsQ0FBQyw4QkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDdkUsQ0FBQyw4QkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDckUsQ0FBQyw4QkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDdkUsQ0FBQyw4QkFBc0IsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztJQUMvRSxDQUFDLDhCQUFzQixDQUFDLG9DQUFvQyxDQUFDLEVBQUUsUUFBUSxDQUFDLDhCQUE4QixDQUFDO0lBQ3ZHLENBQUMsOEJBQXNCLENBQUMsb0NBQW9DLENBQUMsRUFBRSxRQUFRLENBQUMsOEJBQThCLENBQUM7SUFDdkcsQ0FBQyw4QkFBc0IsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQztJQUN2RyxDQUFDLDhCQUFzQixDQUFDLDZCQUE2QixDQUFDLEVBQUUsUUFBUSxDQUFDLHVCQUF1QixDQUFDO0lBQ3pGLENBQUMsOEJBQXNCLENBQUMscUJBQXFCLENBQUMsRUFBRTtRQUM5QyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxpREFBaUQ7UUFDbEUsTUFBTSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNELENBQUMsOEJBQXNCLENBQUMsd0JBQXdCLENBQUMsRUFBRTtRQUNqRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxvREFBb0Q7UUFDckUsTUFBTSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNELENBQUMsOEJBQXNCLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUN6QyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxpREFBaUQ7UUFDbEUsTUFBTSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNELENBQUMsOEJBQXNCLENBQUMsMEJBQTBCLENBQUMsRUFBRTtRQUNuRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSwyREFBMkQ7UUFDNUUsTUFBTSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNELENBQUMsOEJBQXNCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtRQUMxQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSwwQ0FBMEM7UUFDM0QsTUFBTSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNELENBQUMsOEJBQXNCLENBQUMsdUJBQXVCLENBQUMsRUFBRTtRQUNoRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxrQ0FBa0M7UUFDbkQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsOEJBQThCLENBQUMsRUFBRTtRQUN2RCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSx5Q0FBeUM7UUFDMUQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQ2hELDZEQUE2RCxDQUM5RDtJQUNELENBQUMsOEJBQXNCLENBQUMsd0JBQXdCLENBQUMsRUFBRSxNQUFNLENBQ3ZELG9FQUFvRSxDQUNyRTtJQUNELENBQUMsOEJBQXNCLENBQUMsMkJBQTJCLENBQUMsRUFBRSxNQUFNLENBQzFELGlGQUFpRixDQUNsRjtJQUNELENBQUMsOEJBQXNCLENBQUMsd0JBQXdCLENBQUMsRUFBRSxNQUFNLENBQ3ZELG9FQUFvRSxDQUNyRTtJQUNELENBQUMsOEJBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUM5QywyREFBMkQsQ0FDNUQ7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHdCQUF3QixDQUFDLEVBQUUsTUFBTSxDQUN2RCxvRUFBb0UsQ0FDckU7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHVCQUF1QixDQUFDLEVBQUUsTUFBTSxDQUN0RCw0RkFBNEYsRUFDNUY7UUFDRSwyQkFBbUIsQ0FBQyxVQUFVO1FBQzlCLDJCQUFtQixDQUFDLGNBQWM7UUFDbEMsMkJBQW1CLENBQUMsV0FBVztRQUMvQiwyQkFBbUIsQ0FBQyxlQUFlO0tBQ3BDLENBQ0Y7SUFDRCxDQUFDLDhCQUFzQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxDQUNsRCxxRkFBcUYsQ0FDdEY7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxDQUNoRCw2REFBNkQsQ0FDOUQ7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxDQUNoRCxpRkFBaUYsQ0FDbEY7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FDOUMsMkRBQTJELENBQzVEO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FDaEQsaUZBQWlGLENBQ2xGO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FDL0MsNEVBQTRFLENBQzdFO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLE1BQU0sQ0FDdEQsbUZBQW1GLENBQ3BGO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FDcEQscUZBQXFGLENBQ3RGO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLENBQzlDLDJEQUEyRCxDQUM1RDtJQUNELENBQUMsOEJBQXNCLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUN6QyxxREFBcUQsQ0FDdEQ7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxDQUMvQyw4REFBOEQsQ0FDL0Q7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ3RDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLHFEQUFxRDtRQUN0RSxNQUFNLEVBQUUsQ0FBQywyQkFBbUIsQ0FBQyxZQUFZLENBQUM7S0FDM0M7SUFDRCxDQUFDLDhCQUFzQixDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQ3JDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLG1EQUFtRDtRQUNwRSxNQUFNLEVBQUUsQ0FBQywyQkFBbUIsQ0FBQyxZQUFZLENBQUM7S0FDM0M7SUFDRCxDQUFDLDhCQUFzQixDQUFDLDJCQUEyQixDQUFDLEVBQUUsZUFBZSxDQUFDLGNBQWMsQ0FBQztJQUNyRixDQUFDLDhCQUFzQixDQUFDLGlDQUFpQyxDQUFDLEVBQUUsZUFBZSxDQUFDLG9CQUFvQixDQUFDO0lBQ2pHLENBQUMsOEJBQXNCLENBQUMsNEJBQTRCLENBQUMsRUFBRSxlQUFlLENBQUMsZUFBZSxDQUFDO0lBQ3ZGLENBQUMsOEJBQXNCLENBQUMsa0NBQWtDLENBQUMsRUFBRSxlQUFlLENBQUMscUJBQXFCLENBQUM7SUFDbkcsQ0FBQyw4QkFBc0IsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQztJQUNyRyxDQUFDLDhCQUFzQixDQUFDLHVDQUF1QyxDQUFDLEVBQUUsZUFBZSxDQUFDLDBCQUEwQixDQUFDO0lBQzdHLENBQUMsOEJBQXNCLENBQUMsNkNBQTZDLENBQUMsRUFDcEUsZUFBZSxDQUFDLGdDQUFnQyxDQUFDO0lBQ25ELENBQUMsOEJBQXNCLENBQUMseUJBQXlCLENBQUMsRUFBRTtRQUNsRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSw2Q0FBNkM7UUFDOUQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsMEJBQTBCLENBQUMsRUFBRTtRQUNuRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSw4Q0FBOEM7UUFDL0QsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsaUNBQWlDLENBQUMsRUFBRTtRQUMxRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxxREFBcUQ7UUFDdEUsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsNkJBQTZCLENBQUMsRUFBRTtRQUN0RCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsc0JBQXNCLENBQUMsRUFBRTtRQUMvQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSw2Q0FBNkM7UUFDOUQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsc0JBQXNCLENBQUMsRUFBRTtRQUMvQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSwwQkFBMEI7UUFDM0MsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsOEJBQThCLENBQUMsRUFBRTtRQUN2RCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxtQ0FBbUM7UUFDcEQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsb0JBQW9CLENBQUMsRUFBRTtRQUM3QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSwwQkFBMEI7UUFDM0MsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsNEJBQTRCLENBQUMsRUFBRTtRQUNyRCxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSxtQ0FBbUM7UUFDcEQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsdUJBQXVCLENBQUMsRUFBRTtRQUNoRCxJQUFJLEVBQUUsUUFBUTtRQUNkLGVBQWUsRUFBRSx5QkFBeUI7UUFDMUMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDbkMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsc0JBQXNCO1FBQ3ZDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ3ZDLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLHdCQUF3QjtRQUN6QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1FBQ2pELElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLDZDQUE2QztRQUM5RCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1FBQy9DLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLDJDQUEyQztRQUM1RCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFO1FBQ25ELElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLHFDQUFxQztRQUN0RCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFO1FBQ3JELElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLHVDQUF1QztRQUN4RCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3pDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLDRCQUE0QjtRQUM3QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUN2QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSwwQkFBMEI7UUFDM0MsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUMzQyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSwwQkFBMEI7UUFDM0MsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsMEJBQTBCLENBQUMsRUFBRTtRQUNuRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSx5Q0FBeUM7UUFDMUQsTUFBTSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNELENBQUMsOEJBQXNCLENBQUMsa0NBQWtDLENBQUMsRUFBRTtRQUMzRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxrREFBa0Q7UUFDbkUsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsV0FBVyxDQUFDO0tBQzFDO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFFO1FBQzVELElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLG1EQUFtRDtRQUNwRSxNQUFNLEVBQUUsQ0FBQywyQkFBbUIsQ0FBQyxXQUFXLENBQUM7S0FDMUM7SUFDRCxDQUFDLDhCQUFzQixDQUFDLDhDQUE4QyxDQUFDLEVBQUU7UUFDdkUsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsOERBQThEO1FBQy9FLE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLFdBQVcsQ0FBQztLQUMxQztJQUNELENBQUMsOEJBQXNCLENBQUMsc0JBQXNCLENBQUMsRUFBRTtRQUMvQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSx3Q0FBd0M7UUFDekQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsMEJBQTBCLENBQUMsRUFBRTtRQUNuRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSw2REFBNkQ7UUFDOUUsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsVUFBVSxFQUFFLDJCQUFtQixDQUFDLFlBQVksQ0FBQztLQUMzRTtJQUNELENBQUMsOEJBQXNCLENBQUMsMEJBQTBCLENBQUMsRUFBRTtRQUNuRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSw4Q0FBOEM7UUFDL0QsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsVUFBVSxDQUFDO0tBQ3pDO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFO1FBQzFELElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLG1EQUFtRDtRQUNwRSxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1FBQy9DLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLHdDQUF3QztRQUN6RCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUNuQyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSxtQ0FBbUM7UUFDcEQsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsTUFBTSxDQUFDO0tBQ3JDO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUN2QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsTUFBTSxDQUFDO0tBQ3JDO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1FBQzdDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLDZDQUE2QztRQUM5RCxNQUFNLEVBQUUsQ0FBQywyQkFBbUIsQ0FBQyxNQUFNLENBQUM7S0FDckM7SUFDRCxDQUFDLDhCQUFzQixDQUFDLG1CQUFtQixDQUFDLEVBQUU7UUFDNUMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsNENBQTRDO1FBQzdELE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLE1BQU0sQ0FBQztLQUNyQztJQUNELENBQUMsOEJBQXNCLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdEMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsc0NBQXNDO1FBQ3ZELE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLE1BQU0sQ0FBQztLQUNyQztJQUNELENBQUMsOEJBQXNCLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDckMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsK0JBQStCO1FBQ2hELE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLGNBQWMsQ0FBQztLQUM3QztJQUNELENBQUMsOEJBQXNCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUMzQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxxQkFBcUI7UUFDdEMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDeEMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsa0NBQWtDO1FBQ25ELE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLGNBQWMsQ0FBQztLQUM3QztJQUNELENBQUMsOEJBQXNCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUMzQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsWUFBWSxDQUFDO0tBQzNDO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1FBQy9DLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLGlDQUFpQztRQUNsRCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN4QyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxvQ0FBb0M7UUFDckQsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsWUFBWSxDQUFDO0tBQzNDO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNwQyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSx1QkFBdUI7UUFDeEMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtRQUMxQyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSw2QkFBNkI7UUFDOUMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtRQUMxQyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSw2QkFBNkI7UUFDOUMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDeEMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsMkJBQTJCO1FBQzVDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ25DLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLHNCQUFzQjtRQUN2QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN4QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSwwQkFBMEI7UUFDM0MsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUN6QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSwyQkFBMkI7UUFDNUMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsbUJBQW1CLENBQUMsRUFBRTtRQUM1QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSw4QkFBOEI7UUFDL0MsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDcEMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsNkJBQTZCO1FBQzlDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHFCQUFxQixDQUFDLEVBQUU7UUFDOUMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsZ0NBQWdDO1FBQ2pELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2pDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQzNDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLDhCQUE4QjtRQUMvQyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNwQyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSxpQ0FBaUM7UUFDbEQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDcEMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsdUJBQXVCO1FBQ3hDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLG9CQUFvQixDQUFDLEVBQUU7UUFDN0MsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsMEJBQTBCO1FBQzNDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLCtCQUErQixDQUFDLEVBQUU7UUFDeEQsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUscUNBQXFDO1FBQ3RELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLG1CQUFtQixDQUFDLEVBQUU7UUFDNUMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsK0JBQStCO1FBQ2hELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2xDLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLGNBQWM7UUFDL0IsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDcEMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsZ0JBQWdCO1FBQ2pDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHFDQUFxQyxDQUFDLEVBQUU7UUFDOUQsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsNENBQTRDO1FBQzdELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDekMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsc0JBQXNCO1FBQ3ZDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHNCQUFzQixDQUFDLEVBQUU7UUFDL0MsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsNkJBQTZCO1FBQzlDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGdDQUFnQyxDQUFDLEVBQUU7UUFDekQsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsdUNBQXVDO1FBQ3hELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHNCQUFzQixDQUFDLEVBQUU7UUFDL0MsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsZ0NBQWdDO1FBQ2pELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLDRCQUE0QixDQUFDLEVBQUU7UUFDckQsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsdUNBQXVDO1FBQ3hELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLDBCQUEwQixDQUFDLEVBQUU7UUFDbkQsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsZ0NBQWdDO1FBQ2pELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDekMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUseUJBQXlCO1FBQzFDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHNCQUFzQixDQUFDLEVBQUU7UUFDL0MsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsZ0NBQWdDO1FBQ2pELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHdCQUF3QixDQUFDLEVBQUU7UUFDakQsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsMkNBQTJDO1FBQzVELE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLFFBQVEsQ0FBQztLQUN2QztJQUNELENBQUMsOEJBQXNCLENBQUMsa0NBQWtDLENBQUMsRUFBRTtRQUMzRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxxREFBcUQ7UUFDdEUsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsUUFBUSxDQUFDO0tBQ3ZDO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1FBQ2pELElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLDhDQUE4QztRQUMvRCxNQUFNLEVBQUUsQ0FBQywyQkFBbUIsQ0FBQyxRQUFRLENBQUM7S0FDdkM7SUFDRCxDQUFDLDhCQUFzQixDQUFDLDhCQUE4QixDQUFDLEVBQUU7UUFDdkQsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUscURBQXFEO1FBQ3RFLE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLFFBQVEsQ0FBQztLQUN2QztJQUNELENBQUMsOEJBQXNCLENBQUMsK0JBQStCLENBQUMsRUFBRTtRQUN4RCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSw0REFBNEQ7UUFDN0UsTUFBTSxFQUFFLENBQUMsMkJBQW1CLENBQUMsUUFBUSxDQUFDO0tBQ3ZDO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUN2QyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxrQkFBa0I7UUFDbkMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDeEMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsbUJBQW1CO1FBQ3BDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDekMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsOEJBQThCO1FBQy9DLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ3RDLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLDJCQUEyQjtRQUM1QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUNyQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxnQkFBZ0I7UUFDakMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDckMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUsY0FBYztRQUMvQixNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUN2QyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxZQUFZO1FBQzdCLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlCLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLGFBQWE7UUFDOUIsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDckMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUscUJBQXFCO1FBQ3RDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ3ZDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLHVCQUF1QjtRQUN4QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN4QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSxnQ0FBZ0M7UUFDakQsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDdkMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsMkJBQTJCO1FBQzVDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGtDQUFrQyxDQUFDLEVBQUU7UUFDM0QsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsMENBQTBDO1FBQzNELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ3ZDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLDJCQUEyQjtRQUM1QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUNyQyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSxrQkFBa0I7UUFDbkMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdEMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsbUJBQW1CO1FBQ3BDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQ3JDLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLDRCQUE0QjtRQUM3QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUN2QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSw4QkFBOEI7UUFDL0MsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDbkMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsZ0JBQWdCO1FBQ2pDLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ25DLElBQUksRUFBRSxJQUFJO1FBQ1YsZUFBZSxFQUFFLGNBQWM7UUFDL0IsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDckMsSUFBSSxFQUFFLElBQUk7UUFDVixlQUFlLEVBQUUsWUFBWTtRQUM3QixNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1FBQzlDLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLHFCQUFxQjtRQUN0QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1FBQzlDLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLHVCQUF1QjtRQUN4QyxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsQ0FBQyw4QkFBc0IsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUNyQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxjQUFjO1FBQy9CLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxDQUFDLDhCQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ3hDLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLGdDQUFnQztRQUNqRCxNQUFNLEVBQUUsQ0FBQywyQkFBbUIsQ0FBQyxXQUFXLENBQUM7S0FDMUM7SUFDRCxDQUFDLDhCQUFzQixDQUFDLHlCQUF5QixDQUFDLEVBQUU7UUFDbEQsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUseUNBQXlDO1FBQzFELE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLFVBQVUsQ0FBQztLQUN6QztJQUNELENBQUMsOEJBQXNCLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDdkMsSUFBSSxFQUFFLE1BQU07UUFDWixlQUFlLEVBQUUseUNBQXlDO1FBQzFELE1BQU0sRUFBRSxDQUFDLDJCQUFtQixDQUFDLGdCQUFnQixFQUFFLDJCQUFtQixDQUFDLFVBQVUsQ0FBQztLQUMvRTtJQUNELENBQUMsOEJBQXNCLENBQUMsbUJBQW1CLENBQUMsRUFBRTtRQUM1QyxJQUFJLEVBQUUsSUFBSTtRQUNWLGVBQWUsRUFBRSx1QkFBdUI7UUFDeEMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMsc0JBQXNCLENBQUMsRUFBRTtRQUMvQyxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSw2QkFBNkI7UUFDOUMsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELENBQUMsOEJBQXNCLENBQUMseUJBQXlCLENBQUMsRUFBRTtRQUNsRCxJQUFJLEVBQUUsTUFBTTtRQUNaLGVBQWUsRUFBRSxnQ0FBZ0M7UUFDakQsTUFBTSxFQUFFLEVBQUU7S0FDWDtDQUN5QyxDQUFBO0FBRXJDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxRQUFnQixFQUF5QixFQUFFO0lBQ3JGLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFBO0lBQzVDLE1BQU0sRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDakQsSUFBSSxLQUE2QixDQUFBO0lBRWpDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUMzQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDckIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxJQUFJLElBQUksQ0FBQyxDQUFBO1NBQ25FO1FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUEyQixDQUFDLENBQUE7S0FDdkM7SUFFRCxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQTtBQUNuQixDQUFDLENBQUE7QUFkWSxRQUFBLDJCQUEyQiwrQkFjdkM7QUFFTSxNQUFNLDhCQUE4QixHQUFHLENBQUMsUUFBZ0IsRUFBUSxFQUFFO0lBQ3ZFLElBQUEsbUNBQTJCLEVBQUMsUUFBUSxDQUFDLENBQUE7QUFDdkMsQ0FBQyxDQUFBO0FBRlksUUFBQSw4QkFBOEIsa0NBRTFDO0FBRUQsTUFBTSw4QkFBOEIsR0FBRyxDQUNyQyxRQUFnQixFQUNoQixZQUE0QyxFQUM1QyxJQUF3QixFQUNoQixFQUFFO0lBQ1YsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFBO0lBQ3JCLEtBQUssTUFBTSxLQUFLLElBQUksWUFBWSxFQUFFO1FBQ2hDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBRSxDQUFDLENBQUE7S0FDdkQ7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELFNBQWdCLHFCQUFxQixDQUFDLElBQStCOztJQUNuRSxNQUFNLEVBQ0osUUFBUSxFQUNSLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxJQUFJLEdBQ0wsR0FBRyxJQUFJLENBQUE7SUFFUixNQUFNLFVBQVUsR0FBRyxnQ0FBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNyRCxNQUFNLFFBQVEsR0FBRyxNQUFBLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFNBQVMsMENBQUcsUUFBUSxDQUFDLG1DQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUE7SUFFakYsSUFBQSxzQ0FBOEIsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUV4QyxNQUFNLFlBQVksR0FBRyxJQUFBLG1DQUEyQixFQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFELE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFzQjtRQUNsRCxHQUFHLFVBQVUsQ0FBQyxNQUFNO1FBQ3BCLEdBQUcsWUFBWTtLQUNoQixDQUFDLENBQUE7SUFFRixLQUFLLE1BQU0sS0FBSyxJQUFJLGNBQWMsRUFBRTtRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDekIsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FDYixzQ0FBc0MsS0FBSyxvQkFBb0IsUUFBUSxHQUFHLENBQzNFLENBQUE7U0FDRjtLQUNGO0lBRUQsTUFBTSxZQUFZLEdBQUcsOEJBQThCLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNqRixNQUFNLE9BQU8sR0FDWCxVQUFVLENBQUMsSUFBSSxLQUFLLE1BQU07UUFDeEIsQ0FBQyxDQUFDLG1CQUFtQjtRQUNyQixDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxJQUFJO1lBQ3hCLENBQUMsQ0FBQyxpQkFBaUI7WUFDbkIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLElBQUksbUJBQW1CLENBQUMsQ0FBQTtJQUV0RCxPQUFPLElBQUEsV0FBSSxFQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQTtBQUNwQyxDQUFDO0FBdkNELHNEQXVDQztBQUVELG9GQUFvRjtBQUNwRixTQUFnQixtQkFBbUIsQ0FBQyxJQUluQztJQUNDLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDO1FBQ3ZDLFFBQVEsRUFBRSw4QkFBc0IsQ0FBQyxhQUFhO1FBQzlDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7UUFDN0MsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtRQUN6QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7UUFDN0IsSUFBSSxFQUFFLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBQztLQUMxQixDQUFDLENBQUE7SUFDRixPQUFPLElBQUEsV0FBSSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDckMsQ0FBQztBQWJELGtEQWFDIn0=
@@ -11,7 +11,6 @@ const generateBackAdditionalServices_1 = __importDefault(require("./additionalSe
11
11
  const generateBackServices_1 = __importDefault(require("./services/generateBackServices"));
12
12
  const permissionsToGraphql_1 = require("../../../generators/fileTemplates/back/graph/permissionsToGraphql");
13
13
  const restRouter_1 = require("../../../generators/fileTemplates/back/root/restRouter");
14
- const fileHandlers_1 = require("../../fileHandlers");
15
14
  const generationPaths_1 = require("../../../builders/generationPaths");
16
15
  const resolveBackPath = (args, category) => (0, generationPaths_1.resolveGenerationPath)({
17
16
  category,
@@ -20,6 +19,11 @@ const resolveBackPath = (args, category) => (0, generationPaths_1.resolveGenerat
20
19
  pathsConfig: args.system.generationPaths,
21
20
  vars: {},
22
21
  });
22
+ const initPermissions_1 = require("../../../generators/fileTemplates/back/roles/initPermissions");
23
+ const uiPermissions_1 = require("../../../generators/fileTemplates/back/roles/uiPermissions");
24
+ const customPermissions_1 = require("../../../generators/fileTemplates/back/roles/customPermissions");
25
+ const customUiPermissions_1 = require("../../../generators/fileTemplates/back/roles/customUiPermissions");
26
+ const fileHandlers_1 = require("../../fileHandlers");
23
27
  const generateBackSrc = (fileCreator, args) => {
24
28
  if (!args.options.typesOnly) {
25
29
  fileCreator.create(resolveBackPath(args, generationPaths_1.GenerationPathCategory.BackConfig), (0, config_1.configItemsTmpl)(args), (0, fileHandlers_1.addWarnings)({ options: args.options }));
@@ -33,6 +37,11 @@ const generateBackSrc = (fileCreator, args) => {
33
37
  fileCreator.create(resolveBackPath(args, generationPaths_1.GenerationPathCategory.BackGraphPermissionsToGraphql), (0, permissionsToGraphql_1.backPermissionToGraphqlTmpl)(args), (0, fileHandlers_1.addWarnings)({ options: args.options }));
34
38
  // Root
35
39
  fileCreator.createIfNotExists(resolveBackPath(args, generationPaths_1.GenerationPathCategory.BackRestRouter), (0, restRouter_1.restRouterTmpl)());
40
+ // Roles/permissions
41
+ fileCreator.create(resolveBackPath(args, generationPaths_1.GenerationPathCategory.BackRolesInitPermissions), (0, initPermissions_1.backInitPermissionsTmpl)(), (0, fileHandlers_1.addWarnings)({ options: args.options }));
42
+ fileCreator.create(resolveBackPath(args, generationPaths_1.GenerationPathCategory.BackRolesUiPermissions), (0, uiPermissions_1.backUiPermissionsTmpl)(args), (0, fileHandlers_1.addWarnings)({ options: args.options }));
43
+ fileCreator.createIfNotExists(resolveBackPath(args, generationPaths_1.GenerationPathCategory.BackRolesCustomPermissions), (0, customPermissions_1.backCustomPermissionsTmpl)(), [fileHandlers_1.addGeneratedOnceNotice]);
44
+ fileCreator.createIfNotExists(resolveBackPath(args, generationPaths_1.GenerationPathCategory.BackRolesCustomUiPermissions), (0, customUiPermissions_1.backCustomUiPermissionsTmpl)(), [fileHandlers_1.addGeneratedOnceNotice]);
36
45
  };
37
46
  exports.default = generateBackSrc;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVCYWNrU3JjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QvYmFjay9zcmMvZ2VuZXJhdGVCYWNrU3JjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esc0ZBQXlGO0FBRXpGLGtHQUF5RTtBQUN6RSx3RkFBK0Q7QUFDL0Qsc0dBQTZFO0FBQzdFLHlIQUFnRztBQUNoRywyRkFBa0U7QUFDbEUsNEdBQStHO0FBQy9HLHVGQUF1RjtBQUN2RixxREFBOEM7QUFDOUMsdUVBRzBDO0FBRTFDLE1BQU0sZUFBZSxHQUFHLENBQ3RCLElBQStCLEVBQy9CLFFBQWdDLEVBQ2hDLEVBQUUsQ0FDRixJQUFBLHVDQUFxQixFQUFDO0lBQ3BCLFFBQVE7SUFDUixtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtJQUNyRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQjtJQUNqRCxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlO0lBQ3hDLElBQUksRUFBRSxFQUFFO0NBQ1QsQ0FBQyxDQUFBO0FBRUosTUFBTSxlQUFlLEdBQUcsQ0FBQyxXQUF3QixFQUFFLElBQStCLEVBQUUsRUFBRTtJQUNwRixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7UUFDM0IsV0FBVyxDQUFDLE1BQU0sQ0FDaEIsZUFBZSxDQUFDLElBQUksRUFBRSx3Q0FBc0IsQ0FBQyxVQUFVLENBQUMsRUFDeEQsSUFBQSx3QkFBZSxFQUFDLElBQUksQ0FBQyxFQUNyQixJQUFBLDBCQUFXLEVBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQ3JDLENBQUM7UUFFRixJQUFBLG1DQUF5QixFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM5QztJQUVELElBQUEsOEJBQW9CLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLElBQUEsd0NBQThCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELElBQUEsd0NBQThCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWxELElBQUEsaUNBQXVCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTNDLFFBQVE7SUFDUixXQUFXLENBQUMsTUFBTSxDQUNoQixlQUFlLENBQUMsSUFBSSxFQUFFLHdDQUFzQixDQUFDLDZCQUE2QixDQUFDLEVBQzNFLElBQUEsa0RBQTJCLEVBQUMsSUFBSSxDQUFDLEVBQ2pDLElBQUEsMEJBQVcsRUFBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FDckMsQ0FBQztJQUVGLE9BQU87SUFDUCxXQUFXLENBQUMsaUJBQWlCLENBQzNCLGVBQWUsQ0FBQyxJQUFJLEVBQUUsd0NBQXNCLENBQUMsY0FBYyxDQUFDLEVBQzVELElBQUEsMkJBQWMsR0FBRSxDQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFBO0FBRUQsa0JBQWUsZUFBZSxDQUFDIn0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVCYWNrU3JjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QvYmFjay9zcmMvZ2VuZXJhdGVCYWNrU3JjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esc0ZBQTJGO0FBRTNGLGtHQUF5RTtBQUN6RSx3RkFBK0Q7QUFDL0Qsc0dBQTZFO0FBQzdFLHlIQUFnRztBQUNoRywyRkFBa0U7QUFDbEUsNEdBQStHO0FBQy9HLHVGQUF1RjtBQUN2Rix1RUFHMEM7QUFFMUMsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsSUFBK0IsRUFDL0IsUUFBZ0MsRUFDaEMsRUFBRSxDQUNGLElBQUEsdUNBQXFCLEVBQUM7SUFDcEIsUUFBUTtJQUNSLG1CQUFtQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CO0lBQ3JELGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCO0lBQ2pELFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWU7SUFDeEMsSUFBSSxFQUFFLEVBQUU7Q0FDVCxDQUFDLENBQUE7QUFDSixrR0FBc0c7QUFDdEcsOEZBQWtHO0FBQ2xHLHNHQUEwRztBQUMxRywwR0FBOEc7QUFDOUcscURBQXdFO0FBRXhFLE1BQU0sZUFBZSxHQUFHLENBQ3RCLFdBQXdCLEVBQ3hCLElBQStCLEVBQy9CLEVBQUU7SUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7UUFDM0IsV0FBVyxDQUFDLE1BQU0sQ0FDaEIsZUFBZSxDQUFDLElBQUksRUFBRSx3Q0FBc0IsQ0FBQyxVQUFVLENBQUMsRUFDeEQsSUFBQSx3QkFBZSxFQUFDLElBQUksQ0FBQyxFQUNyQixJQUFBLDBCQUFXLEVBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ3ZDLENBQUE7UUFFRCxJQUFBLG1DQUF5QixFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtLQUM3QztJQUVELElBQUEsOEJBQW9CLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLElBQUEsd0NBQThCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2pELElBQUEsd0NBQThCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRWpELElBQUEsaUNBQXVCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRTFDLFFBQVE7SUFDUixXQUFXLENBQUMsTUFBTSxDQUNoQixlQUFlLENBQUMsSUFBSSxFQUFFLHdDQUFzQixDQUFDLDZCQUE2QixDQUFDLEVBQzNFLElBQUEsa0RBQTJCLEVBQUMsSUFBSSxDQUFDLEVBQ2pDLElBQUEsMEJBQVcsRUFBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDdkMsQ0FBQTtJQUVELE9BQU87SUFDUCxXQUFXLENBQUMsaUJBQWlCLENBQzNCLGVBQWUsQ0FBQyxJQUFJLEVBQUUsd0NBQXNCLENBQUMsY0FBYyxDQUFDLEVBQzVELElBQUEsMkJBQWMsR0FBRSxDQUNqQixDQUFBO0lBRUQsb0JBQW9CO0lBQ3BCLFdBQVcsQ0FBQyxNQUFNLENBQ2hCLGVBQWUsQ0FBQyxJQUFJLEVBQUUsd0NBQXNCLENBQUMsd0JBQXdCLENBQUMsRUFDdEUsSUFBQSx5Q0FBdUIsR0FBRSxFQUN6QixJQUFBLDBCQUFXLEVBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ3ZDLENBQUE7SUFDRCxXQUFXLENBQUMsTUFBTSxDQUNoQixlQUFlLENBQUMsSUFBSSxFQUFFLHdDQUFzQixDQUFDLHNCQUFzQixDQUFDLEVBQ3BFLElBQUEscUNBQXFCLEVBQUMsSUFBSSxDQUFDLEVBQzNCLElBQUEsMEJBQVcsRUFBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDdkMsQ0FBQTtJQUNELFdBQVcsQ0FBQyxpQkFBaUIsQ0FDM0IsZUFBZSxDQUFDLElBQUksRUFBRSx3Q0FBc0IsQ0FBQywwQkFBMEIsQ0FBQyxFQUN4RSxJQUFBLDZDQUF5QixHQUFFLEVBQzNCLENBQUMscUNBQXNCLENBQUMsQ0FDekIsQ0FBQTtJQUNELFdBQVcsQ0FBQyxpQkFBaUIsQ0FDM0IsZUFBZSxDQUFDLElBQUksRUFBRSx3Q0FBc0IsQ0FBQyw0QkFBNEIsQ0FBQyxFQUMxRSxJQUFBLGlEQUEyQixHQUFFLEVBQzdCLENBQUMscUNBQXNCLENBQUMsQ0FDekIsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELGtCQUFlLGVBQWUsQ0FBQSJ9
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addWarnings = exports.addDoNotEditThisIsGeneratedFileForYaml = exports.addDoNotEditThisIsGeneratedFileForCode = exports.disableEslintForCode = void 0;
3
+ exports.addWarnings = exports.addGeneratedOnceNotice = exports.addDoNotEditThisIsGeneratedFileForYaml = exports.addDoNotEditThisIsGeneratedFileForCode = exports.disableEslintForCode = void 0;
4
4
  function disableEslintForCode(content) {
5
5
  return '/* eslint-disable */\n' + content;
6
6
  }
@@ -13,6 +13,10 @@ function addDoNotEditThisIsGeneratedFileForYaml(content) {
13
13
  return '\n#\n# DO NOT EDIT! THIS IS GENERATED FILE\n#\n\n' + content;
14
14
  }
15
15
  exports.addDoNotEditThisIsGeneratedFileForYaml = addDoNotEditThisIsGeneratedFileForYaml;
16
+ function addGeneratedOnceNotice(content) {
17
+ return '//\n// Generated once, not overwritten on next generation. Edit freely.\n//\n\n' + content;
18
+ }
19
+ exports.addGeneratedOnceNotice = addGeneratedOnceNotice;
16
20
  function addWarnings({ options, fileType = 'code', disableEslint = true, addDoNotEdit = true }) {
17
21
  if (options.skipWarningThisIsGenerated) {
18
22
  return [];
@@ -30,4 +34,4 @@ function addWarnings({ options, fileType = 'code', disableEslint = true, addDoNo
30
34
  return result;
31
35
  }
32
36
  exports.addWarnings = addWarnings;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZUhhbmRsZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QvZmlsZUhhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLFNBQWdCLG9CQUFvQixDQUFDLE9BQWU7SUFDbEQsT0FBTyx3QkFBd0IsR0FBRyxPQUFPLENBQUE7QUFDM0MsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0Isc0NBQXNDLENBQUMsT0FBZTtJQUNwRSxPQUFPLHNEQUFzRCxHQUFHLE9BQU8sQ0FBQztBQUMxRSxDQUFDO0FBRkQsd0ZBRUM7QUFFRCxTQUFnQixzQ0FBc0MsQ0FBQyxPQUFlO0lBQ3BFLE9BQU8sbURBQW1ELEdBQUcsT0FBTyxDQUFDO0FBQ3ZFLENBQUM7QUFGRCx3RkFFQztBQVNELFNBQWdCLFdBQVcsQ0FBQyxFQUFDLE9BQU8sRUFBRSxRQUFRLEdBQUcsTUFBTSxFQUFFLGFBQWEsR0FBRyxJQUFJLEVBQUUsWUFBWSxHQUFHLElBQUksRUFBbUI7SUFDbkgsSUFBSSxPQUFPLENBQUMsMEJBQTBCLEVBQUU7UUFDdEMsT0FBTyxFQUFFLENBQUE7S0FDVjtJQUVELE1BQU0sTUFBTSxHQUFrQixFQUFFLENBQUE7SUFFaEMsSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLFlBQVksRUFBRTtRQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7S0FDcEQ7SUFFRCxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksWUFBWSxFQUFFO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtLQUNwRDtJQUVELElBQUksUUFBUSxJQUFJLE1BQU0sSUFBSSxhQUFhLEVBQUU7UUFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0tBQ2xDO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDO0FBcEJELGtDQW9CQyJ9
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZUhhbmRsZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QvZmlsZUhhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLFNBQWdCLG9CQUFvQixDQUFDLE9BQWU7SUFDbEQsT0FBTyx3QkFBd0IsR0FBRyxPQUFPLENBQUE7QUFDM0MsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0Isc0NBQXNDLENBQUMsT0FBZTtJQUNwRSxPQUFPLHNEQUFzRCxHQUFHLE9BQU8sQ0FBQztBQUMxRSxDQUFDO0FBRkQsd0ZBRUM7QUFFRCxTQUFnQixzQ0FBc0MsQ0FBQyxPQUFlO0lBQ3BFLE9BQU8sbURBQW1ELEdBQUcsT0FBTyxDQUFDO0FBQ3ZFLENBQUM7QUFGRCx3RkFFQztBQUVELFNBQWdCLHNCQUFzQixDQUFDLE9BQWU7SUFDcEQsT0FBTyxpRkFBaUYsR0FBRyxPQUFPLENBQUM7QUFDckcsQ0FBQztBQUZELHdEQUVDO0FBU0QsU0FBZ0IsV0FBVyxDQUFDLEVBQUMsT0FBTyxFQUFFLFFBQVEsR0FBRyxNQUFNLEVBQUUsYUFBYSxHQUFHLElBQUksRUFBRSxZQUFZLEdBQUcsSUFBSSxFQUFtQjtJQUNuSCxJQUFJLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtRQUN0QyxPQUFPLEVBQUUsQ0FBQTtLQUNWO0lBRUQsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQTtJQUVoQyxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksWUFBWSxFQUFFO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtLQUNwRDtJQUVELElBQUksUUFBUSxJQUFJLE1BQU0sSUFBSSxZQUFZLEVBQUU7UUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0tBQ3BEO0lBRUQsSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLGFBQWEsRUFBRTtRQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUE7S0FDbEM7SUFFRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFwQkQsa0NBb0JDIn0=
@@ -7,6 +7,9 @@ const args_1 = require("../../args");
7
7
  const generateFrontSrcTranslations_1 = __importDefault(require("./translations/generateFrontSrcTranslations"));
8
8
  const generateFrontSrcEntity_1 = __importDefault(require("./entity/generateFrontSrcEntity"));
9
9
  const Dashboard_1 = __importDefault(require("../../generators/fileTemplates/ui/Dashboard"));
10
+ const PermissionPage_1 = __importDefault(require("../../generators/fileTemplates/ui/PermissionPage"));
11
+ const NotFoundPage_1 = __importDefault(require("../../generators/fileTemplates/ui/NotFoundPage"));
12
+ const permissions_1 = __importDefault(require("../../generators/fileTemplates/ui/utils/permissions"));
10
13
  const Functions_1 = require("../../generators/fileTemplates/ui/functions/Functions");
11
14
  const additionalRoutes_1 = require("../../generators/fileTemplates/ui/additionalRoutes");
12
15
  const routes_1 = __importDefault(require("../../generators/fileTemplates/ui/environment/src/routes"));
@@ -69,7 +72,13 @@ const generateFrontSrc = (fileCreator, args) => {
69
72
  if (args.options.genUiDashboard) {
70
73
  fileCreator.createIfNotExists(resolveUiPath(args, generationPaths_1.GenerationPathCategory.UiDashboard), (0, Dashboard_1.default)());
71
74
  }
75
+ // Permission fallback page
76
+ fileCreator.createIfNotExists(resolveUiPath(args, generationPaths_1.GenerationPathCategory.UiPermissionPage), (0, PermissionPage_1.default)(), [fileHandlers_1.addGeneratedOnceNotice]);
77
+ // Not found fallback page (action doesn't exist for the entity, e.g. no edit/create)
78
+ fileCreator.createIfNotExists(resolveUiPath(args, generationPaths_1.GenerationPathCategory.UiNotFoundPage), (0, NotFoundPage_1.default)(), [fileHandlers_1.addGeneratedOnceNotice]);
79
+ // Permissions utils
80
+ fileCreator.create(resolveUiPath(args, generationPaths_1.GenerationPathCategory.UiPermissionsUtils), (0, permissions_1.default)(), (0, fileHandlers_1.addWarnings)({ options: args.options }));
72
81
  }
73
82
  };
74
83
  exports.default = generateFrontSrc;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVGcm9udFNyYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2Zyb250L2dlbmVyYXRlRnJvbnRTcmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxxQ0FHbUI7QUFDbkIsK0dBQXNGO0FBQ3RGLDZGQUFvRTtBQUNwRSw0RkFBeUU7QUFDekUscUZBQXVGO0FBQ3ZGLHlGQUEyRjtBQUMzRixzR0FBbUY7QUFDbkYsMkZBQTZGO0FBQzdGLHFGQUF1RjtBQUN2RixtRkFBcUY7QUFDckYseUVBQTJFO0FBQzNFLG1GQUFxRjtBQUNyRiwyRUFBNkU7QUFDN0Usa0RBQTJDO0FBQzNDLHlGQUF1RjtBQUN2RiwyR0FBMEc7QUFDMUcsb0VBR3VDO0FBRXZDLE1BQU0sYUFBYSxHQUFHLENBQ3BCLElBQStCLEVBQy9CLFFBQWdDLEVBQ2hDLEVBQUUsQ0FDRixJQUFBLHVDQUFxQixFQUFDO0lBQ3BCLFFBQVE7SUFDUixtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtJQUNyRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQjtJQUNqRCxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlO0lBQ3hDLElBQUksRUFBRSxFQUFFO0NBQ1QsQ0FBQyxDQUFBO0FBRUosTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFdBQXdCLEVBQUUsSUFBK0IsRUFBRSxFQUFFO0lBQ3JGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDL0IsSUFBQSxnQ0FBc0IsRUFBQyxXQUFXLEVBQUUsSUFBQSxzQ0FBK0IsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsc0NBQTRCLEVBQUMsV0FBVyxFQUFFLElBQUks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
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVGcm9udFNyYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2Zyb250L2dlbmVyYXRlRnJvbnRTcmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxxQ0FHbUI7QUFDbkIsK0dBQXNGO0FBQ3RGLDZGQUFvRTtBQUNwRSw0RkFBeUU7QUFDekUsc0dBQW1GO0FBQ25GLGtHQUErRTtBQUMvRSxzR0FBbUY7QUFDbkYscUZBQXVGO0FBQ3ZGLHlGQUEyRjtBQUMzRixzR0FBbUY7QUFDbkYsMkZBQTZGO0FBQzdGLHFGQUF1RjtBQUN2RixtRkFBcUY7QUFDckYseUVBQTJFO0FBQzNFLG1GQUFxRjtBQUNyRiwyRUFBNkU7QUFDN0Usa0RBQW1FO0FBQ25FLHlGQUF1RjtBQUN2RiwyR0FBMEc7QUFDMUcsb0VBR3VDO0FBRXZDLE1BQU0sYUFBYSxHQUFHLENBQ3BCLElBQStCLEVBQy9CLFFBQWdDLEVBQ2hDLEVBQUUsQ0FDRixJQUFBLHVDQUFxQixFQUFDO0lBQ3BCLFFBQVE7SUFDUixtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtJQUNyRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQjtJQUNqRCxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlO0lBQ3hDLElBQUksRUFBRSxFQUFFO0NBQ1QsQ0FBQyxDQUFBO0FBRUosTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFdBQXdCLEVBQUUsSUFBK0IsRUFBRSxFQUFFO0lBQ3JGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDL0IsSUFBQSxnQ0FBc0IsRUFBQyxXQUFXLEVBQUUsSUFBQSxzQ0FBK0IsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDLENBQUMsQ0FB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
@@ -5,6 +5,10 @@ const uiLangReportsTmpl_1 = require("../../../generators/fileTemplates/ui/i18n/l
5
5
  const uiLangCatalogsTmpl_1 = require("../../../generators/fileTemplates/ui/i18n/lang/uiLangCatalogsTmpl");
6
6
  const uiLangInfoRegistriesTmpl_1 = require("../../../generators/fileTemplates/ui/i18n/lang/uiLangInfoRegistriesTmpl");
7
7
  const uiLangSumRegistriesTmpl_1 = require("../../../generators/fileTemplates/ui/i18n/lang/uiLangSumRegistriesTmpl");
8
+ const uiI18nTypesTmpl_1 = require("../../../generators/fileTemplates/ui/i18n/skeleton/uiI18nTypesTmpl");
9
+ const uiI18nValidationTmpl_1 = require("../../../generators/fileTemplates/ui/i18n/skeleton/uiI18nValidationTmpl");
10
+ const uiI18nIndexTmpl_1 = require("../../../generators/fileTemplates/ui/i18n/skeleton/uiI18nIndexTmpl");
11
+ const path_1 = require("path");
8
12
  const fileHandlers_1 = require("../../fileHandlers");
9
13
  const generationPaths_1 = require("../../../builders/generationPaths");
10
14
  const resolveUiI18nPath = (args, category, langId) => (0, generationPaths_1.resolveGenerationPath)({
@@ -39,12 +43,40 @@ const generateFrontSrcEntityTranslationsReports = (fileCreator, args) => {
39
43
  fileCreator.create(resolveUiI18nPath(args, generationPaths_1.GenerationPathCategory.UiI18nReports, lang.id), (0, uiLangReportsTmpl_1.uiTranslationsLangReportsTmpl)(args, lang.id), (0, fileHandlers_1.addWarnings)({ options: args.options }));
40
44
  }
41
45
  };
46
+ const generateFrontSrcEntityTranslationsTypes = (fileCreator, args) => {
47
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, 'src/i18n/types.ts');
48
+ fileCreator.createIfNotExists(filePath, (0, uiI18nTypesTmpl_1.uiI18nTypesTmpl)(), [
49
+ fileHandlers_1.addGeneratedOnceNotice,
50
+ fileHandlers_1.disableEslintForCode,
51
+ ]);
52
+ };
53
+ const generateFrontSrcEntityTranslationsValidation = (fileCreator, args) => {
54
+ for (const lang of args.system.languages) {
55
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, `src/i18n/${lang.id}/${lang.id}Validation.ts`);
56
+ fileCreator.createIfNotExists(filePath, (0, uiI18nValidationTmpl_1.uiI18nValidationTmpl)(lang.id), [
57
+ fileHandlers_1.addGeneratedOnceNotice,
58
+ fileHandlers_1.disableEslintForCode,
59
+ ]);
60
+ }
61
+ };
62
+ const generateFrontSrcEntityTranslationsIndex = (fileCreator, args) => {
63
+ for (const lang of args.system.languages) {
64
+ const filePath = (0, path_1.join)(args.options.detachedUiProject, `src/i18n/${lang.id}/index.ts`);
65
+ fileCreator.createIfNotExists(filePath, (0, uiI18nIndexTmpl_1.uiI18nIndexTmpl)(lang.id), [
66
+ fileHandlers_1.addGeneratedOnceNotice,
67
+ fileHandlers_1.disableEslintForCode,
68
+ ]);
69
+ }
70
+ };
42
71
  const generateFrontSrcTranslations = (fileCreator, args) => {
43
72
  generateFrontSrcEntityTranslationsDocs(fileCreator, args);
44
73
  generateFrontSrcEntityTranslationsCatalogs(fileCreator, args);
45
74
  generateFrontSrcEntityTranslationsSumRegistries(fileCreator, args);
46
75
  generateFrontSrcEntityTranslationsInfoRegistries(fileCreator, args);
47
76
  generateFrontSrcEntityTranslationsReports(fileCreator, args);
77
+ generateFrontSrcEntityTranslationsTypes(fileCreator, args);
78
+ generateFrontSrcEntityTranslationsValidation(fileCreator, args);
79
+ generateFrontSrcEntityTranslationsIndex(fileCreator, args);
48
80
  };
49
81
  exports.default = generateFrontSrcTranslations;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVGcm9udFNyY1RyYW5zbGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2Zyb250L3RyYW5zbGF0aW9ucy9nZW5lcmF0ZUZyb250U3JjVHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esa0dBQXdHO0FBQ3hHLHdHQUE4RztBQUM5RywwR0FBZ0g7QUFDaEgsc0hBQTRIO0FBQzVILG9IQUEwSDtBQUUxSCxxREFBOEM7QUFDOUMsdUVBRzBDO0FBRTFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsSUFBK0IsRUFDL0IsUUFBZ0MsRUFDaEMsTUFBYyxFQUNkLEVBQUUsQ0FDRixJQUFBLHVDQUFxQixFQUFDO0lBQ3BCLFFBQVE7SUFDUixtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtJQUNyRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQjtJQUNqRCxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlO0lBQ3hDLElBQUksRUFBRSxFQUFDLE1BQU0sRUFBQztDQUNmLENBQUMsQ0FBQTtBQUVKLE1BQU0sc0NBQXNDLEdBQUcsQ0FDN0MsV0FBd0IsRUFDeEIsSUFBK0IsRUFDL0IsRUFBRTtJQUNGLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDeEMsV0FBVyxDQUFDLE1BQU0sQ0FDaEIsaUJBQWlCLENBQUMsSUFBSSxFQUFFLHdDQUFzQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQ25FLElBQUEsMkNBQTBCLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDekMsSUFBQSwwQkFBVyxFQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxD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
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVGcm9udFNyY1RyYW5zbGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2Zyb250L3RyYW5zbGF0aW9ucy9nZW5lcmF0ZUZyb250U3JjVHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esa0dBQTBHO0FBQzFHLHdHQUFnSDtBQUNoSCwwR0FBa0g7QUFDbEgsc0hBQThIO0FBQzlILG9IQUE0SDtBQUM1SCx3R0FBb0c7QUFDcEcsa0hBQThHO0FBQzlHLHdHQUFvRztBQUVwRywrQkFBMkI7QUFDM0IscURBSTJCO0FBQzNCLHVFQUcwQztBQUUxQyxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLElBQStCLEVBQy9CLFFBQWdDLEVBQ2hDLE1BQWMsRUFDZCxFQUFFLENBQ0YsSUFBQSx1Q0FBcUIsRUFBQztJQUNwQixRQUFRO0lBQ1IsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7SUFDckQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUI7SUFDakQsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZTtJQUN4QyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUU7Q0FDakIsQ0FBQyxDQUFBO0FBRUosTUFBTSxzQ0FBc0MsR0FBRyxDQUM3QyxXQUF3QixFQUN4QixJQUErQixFQUMvQixFQUFFO0lBQ0YsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUN4QyxXQUFXLENBQUMsTUFBTSxDQUNoQixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsd0NBQXNCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDbkUsSUFBQSwyQ0FBMEIsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUN6QyxJQUFB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
@@ -7,9 +7,6 @@ const storage_1 = require("../builders/storage");
7
7
  const generationPaths_1 = require("../builders/generationPaths");
8
8
  const generateBackClickHouseBootstrap = (fileCreator, args) => {
9
9
  const entities = args.entities.filter((e) => (0, storage_1.entityUsesClickHouseBootstrap)(e.storage));
10
- if (entities.length === 0) {
11
- return;
12
- }
13
10
  fileCreator.create((0, generationPaths_1.resolveGenerationPath)({
14
11
  category: generationPaths_1.GenerationPathCategory.BackInitClickHouseGenJobs,
15
12
  detachedBackProject: args.options.detachedBackProject,
@@ -19,4 +16,4 @@ const generateBackClickHouseBootstrap = (fileCreator, args) => {
19
16
  }), (0, jobs_1.genClickHouseJobsTmpl)(entities, args.options), (0, fileHandlers_1.addWarnings)({ options: args.options }));
20
17
  };
21
18
  exports.generateBackClickHouseBootstrap = generateBackClickHouseBootstrap;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVCYWNrQ2xpY2tIb3VzZUJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2dlbmVyYXRlQmFja0NsaWNrSG91c2VCb290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkVBQXVGO0FBQ3ZGLGlEQUEyQztBQUMzQyxpREFBa0U7QUFDbEUsaUVBR29DO0FBRTdCLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxXQUF3QixFQUFFLElBQStCLEVBQUUsRUFBRTtJQUMzRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx1Q0FBNkIsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUV0RixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3pCLE9BQU07S0FDUDtJQUVELFdBQVcsQ0FBQyxNQUFNLENBQ2hCLElBQUEsdUNBQXFCLEVBQUM7UUFDcEIsUUFBUSxFQUFFLHdDQUFzQixDQUFDLHlCQUF5QjtRQUMxRCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtRQUNyRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQjtRQUNqRCxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlO1FBQ3hDLElBQUksRUFBRSxFQUFFO0tBQ1QsQ0FBQyxFQUNGLElBQUEsNEJBQXFCLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDN0MsSUFBQSwwQkFBVyxFQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUNyQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBbEJZLFFBQUEsK0JBQStCLG1DQWtCM0MifQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVCYWNrQ2xpY2tIb3VzZUJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2dlbmVyYXRlQmFja0NsaWNrSG91c2VCb290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkVBQXVGO0FBQ3ZGLGlEQUEyQztBQUMzQyxpREFBa0U7QUFDbEUsaUVBR29DO0FBRTdCLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxXQUF3QixFQUFFLElBQStCLEVBQUUsRUFBRTtJQUMzRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx1Q0FBNkIsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUV0RixXQUFXLENBQUMsTUFBTSxDQUNoQixJQUFBLHVDQUFxQixFQUFDO1FBQ3BCLFFBQVEsRUFBRSx3Q0FBc0IsQ0FBQyx5QkFBeUI7UUFDMUQsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7UUFDckQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUI7UUFDakQsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZTtRQUN4QyxJQUFJLEVBQUUsRUFBRTtLQUNULENBQUMsRUFDRixJQUFBLDRCQUFxQixFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQzdDLElBQUEsMEJBQVcsRUFBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FDckMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQWRZLFFBQUEsK0JBQStCLG1DQWMzQyJ9
@@ -6,7 +6,7 @@ const createFilesToWriteUtils = () => {
6
6
  let files = [];
7
7
  return {
8
8
  create: (path, content, handlers = []) => files.push({ path, content, ifNotExists: false, handlers }),
9
- createIfNotExists: (path, content) => files.push({ path, content, ifNotExists: true, handlers: [] }),
9
+ createIfNotExists: (path, content, handlers = []) => files.push({ path, content, ifNotExists: true, handlers }),
10
10
  getFiles: () => files,
11
11
  reset: () => files = [],
12
12
  };
@@ -22,4 +22,4 @@ const writeFiles = (files) => {
22
22
  }
23
23
  };
24
24
  exports.writeFiles = writeFiles;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRlUHJvamVjdC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBd0M7QUFHakMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUU7SUFDMUMsSUFBSSxLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUUvQixPQUFPO1FBQ0wsTUFBTSxFQUFFLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxXQUEwQixFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUM7UUFDbEksaUJBQWlCLEVBQUUsQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUNsSCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztRQUNyQixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUU7S0FDeEIsQ0FBQztBQUNKLENBQUMsQ0FBQTtBQVRZLFFBQUEsdUJBQXVCLDJCQVNuQztBQUVNLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFO0lBQ2xELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFBLG1CQUFNLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLFNBQVM7U0FDVjtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUUzRixJQUFBLGtCQUFLLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUMzQjtBQUNILENBQUMsQ0FBQTtBQVZZLFFBQUEsVUFBVSxjQVV0QiJ9
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRlUHJvamVjdC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBd0M7QUFHakMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUU7SUFDMUMsSUFBSSxLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUUvQixPQUFPO1FBQ0wsTUFBTSxFQUFFLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxXQUEwQixFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUM7UUFDbEksaUJBQWlCLEVBQUUsQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLFdBQTBCLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUMsQ0FBQztRQUM1SSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztRQUNyQixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUU7S0FDeEIsQ0FBQztBQUNKLENBQUMsQ0FBQTtBQVRZLFFBQUEsdUJBQXVCLDJCQVNuQztBQUVNLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFO0lBQ2xELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFBLG1CQUFNLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLFNBQVM7U0FDVjtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUUzRixJQUFBLGtCQUFLLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUMzQjtBQUNILENBQUMsQ0FBQTtBQVZZLFFBQUEsVUFBVSxjQVV0QiJ9
@@ -27,12 +27,35 @@ exports.genClickHouseJobsTmpl = exports.genClickHouseJobsDataTmpl = void 0;
27
27
  const R = __importStar(require("ramda"));
28
28
  const cases_1 = require("../../../../../utils/cases");
29
29
  const types_1 = require("../../../../types");
30
- const getGroupedByType = (e) => e.fields.reduce((acc, field) => {
30
+ const metaUtils_1 = require("../../../../metaUtils");
31
+ // Unlike Elasticsearch (schema-flexible, no NOT NULL enforcement at the mapping level),
32
+ // ClickHouse errors ("attempt to write null into not nullable column") if a Postgres-optional
33
+ // field is declared without Nullable(...) and a CDC-only table (no app writer to backfill a
34
+ // default) ever replicates an actual NULL — which, for any non-trivial entity, some field
35
+ // eventually will. Every bucket therefore needs a nullable variant, not just keyword/link ids
36
+ // (found empirically cutting bsProfiles over to ClickHouse — many of its own optional fields
37
+ // besides passengerId hit this once real data flowed through).
38
+ const getClickHouseFieldType = (field) => {
31
39
  const isIdField = ['id', 'link'].includes(field.category);
32
- let type = isIdField ? 'keyword' : field.type;
40
+ // id/link fields can have a non-string underlying key (IntLinkField/BigIntLinkField, e.g. a
41
+ // link to a catalog keyed by Int) — field.type already reflects the *real* key type
42
+ // correctly in that case. Forcing 'keyword' unconditionally (as elastic/jobs.ts does, safely,
43
+ // since ES coerces numbers into keyword fields) made the ClickHouse Kafka Connect sink fail
44
+ // with "cannot convert Kafka value of type INT32 ... to ClickHouse type STRING" — found
45
+ // empirically cutting bsProfiles over (countryId, an Int-keyed link). Only string-keyed
46
+ // id/link fields should actually become 'keyword'.
47
+ const isStringIdField = isIdField && field.type === 'string';
48
+ let type = isStringIdField ? 'keyword' : field.type;
33
49
  if (type === 'datetime') {
34
50
  type = 'date';
35
51
  }
52
+ if (type === 'bigint' || (0, metaUtils_1.isMoneyField)(field)) {
53
+ type = 'long';
54
+ }
55
+ return field.required ? type : `nullable-${type}`;
56
+ };
57
+ const getGroupedByType = (e) => e.fields.reduce((acc, field) => {
58
+ const type = getClickHouseFieldType(field);
36
59
  if (!R.is(Array, acc[type])) {
37
60
  acc[type] = [];
38
61
  }
@@ -43,15 +66,29 @@ const getConstructor = (g) => {
43
66
  switch (g) {
44
67
  case 'keyword':
45
68
  return 'keywordFields';
69
+ case 'nullable-keyword':
70
+ return 'nullableKeywordFields';
46
71
  case 'datetime':
47
72
  case 'date':
48
73
  return 'dateFields';
74
+ case 'nullable-date':
75
+ return 'nullableDateFields';
49
76
  case 'bool':
50
77
  return 'booleanFields';
78
+ case 'nullable-bool':
79
+ return 'nullableBooleanFields';
51
80
  case 'int':
52
81
  return 'integerFields';
82
+ case 'nullable-int':
83
+ return 'nullableIntegerFields';
84
+ case 'long':
85
+ return 'longFields';
86
+ case 'nullable-long':
87
+ return 'nullableLongFields';
53
88
  case 'string':
54
89
  return 'textFields';
90
+ case 'nullable-string':
91
+ return 'nullableTextFields';
55
92
  default:
56
93
  throw new Error(`Unknown group identifier ${g}`);
57
94
  }
@@ -82,7 +119,7 @@ ${utilsImportLine}import {ClickHouseJobs} from './type';
82
119
  export const genJobs: ClickHouseJobs = {
83
120
  ${entities.map((e) => `[Entity.${(0, cases_1.pascalSingular)(e.name)}]: {
84
121
  ${Object.entries(getGroupedByType(e)).map(([type, fields]) => `...${getConstructor(type)}([
85
- ${fields.map(f => `'${f}',`).join('\n ')}
122
+ ${(fields !== null && fields !== void 0 ? fields : []).map(f => `'${f}',`).join('\n ')}
86
123
  ]),`).join('\n ')}
87
124
  },`).join('\n ')}
88
125
  };
@@ -91,4 +128,4 @@ export const genJobs: ClickHouseJobs = {
91
128
  exports.genClickHouseJobsDataTmpl = genClickHouseJobsDataTmpl;
92
129
  const genClickHouseJobsTmpl = (entities, options = types_1.defaultBootstrapEntityOptions) => entities.length ? (0, exports.genClickHouseJobsDataTmpl)(entities, options) : genJobsBlankTmpl(options);
93
130
  exports.genClickHouseJobsTmpl = genClickHouseJobsTmpl;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL2JhY2svY2xpY2tob3VzZS9qb2JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EseUNBQTBCO0FBQzFCLHNEQUEwRDtBQUMxRCw2Q0FBZ0U7QUFJaEUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQWdCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQ3BGLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDekQsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUE7SUFFN0MsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO1FBQ3ZCLElBQUksR0FBRyxNQUFNLENBQUE7S0FDZDtJQUVELElBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtRQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO0tBQ2Y7SUFFQSxHQUFHLENBQUMsSUFBSSxDQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV4QyxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUVOLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUU7SUFDbkMsUUFBUSxDQUFDLEVBQUU7UUFDVCxLQUFLLFNBQVM7WUFDWixPQUFPLGVB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
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL2JhY2svY2xpY2tob3VzZS9qb2JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EseUNBQTBCO0FBQzFCLHNEQUEwRDtBQUMxRCw2Q0FBZ0U7QUFDaEUscURBQW1EO0FBS25ELHdGQUF3RjtBQUN4Riw4RkFBOEY7QUFDOUYsNEZBQTRGO0FBQzVGLDBGQUEwRjtBQUMxRiw4RkFBOEY7QUFDOUYsNkZBQTZGO0FBQzdGLCtEQUErRDtBQUMvRCxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBWSxFQUFVLEVBQUU7SUFDdEQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN6RCw0RkFBNEY7SUFDNUYsb0ZBQW9GO0lBQ3BGLDhGQUE4RjtJQUM5Riw0RkFBNEY7SUFDNUYsd0ZBQXdGO0lBQ3hGLHdGQUF3RjtJQUN4RixtREFBbUQ7SUFDbkQsTUFBTSxlQUFlLEdBQUcsU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFBO0lBQzVELElBQUksSUFBSSxHQUF3QixlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQTtJQUV4RSxJQUFJLElBQUksS0FBSyxVQUFVLEVBQUU7UUFDdkIsSUFBSSxHQUFHLE1BQU0sQ0FBQTtLQUNkO0lBRUQsSUFBSSxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUEsd0JBQVksRUFBQyxLQUFLLENBQUMsRUFBRTtRQUM1QyxJQUFJLEdBQUcsTUFBTSxDQUFBO0tBQ2Q7SUFFRCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElB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
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.backCustomPermissionsTmpl = void 0;
4
+ const backCustomPermissionsTmpl = () => `// Permissions that aren't derived from a service method or an entity — add
5
+ // them here by hand. This file is generated once and never overwritten.
6
+ const customPermissions: string[] = [];
7
+
8
+ export default customPermissions;
9
+ `;
10
+ exports.backCustomPermissionsTmpl = backCustomPermissionsTmpl;
11
+ exports.default = exports.backCustomPermissionsTmpl;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL3JvbGVzL2N1c3RvbVBlcm1pc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxFQUFFLENBQUM7Ozs7O0NBSzlDLENBQUE7QUFMWSxRQUFBLHlCQUF5Qiw2QkFLckM7QUFFRCxrQkFBZSxpQ0FBeUIsQ0FBQSJ9
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.backCustomUiPermissionsTmpl = void 0;
4
+ const backCustomUiPermissionsTmpl = () => `// UI-only permissions (checked on the frontend only, never enforced by the
5
+ // backend) that aren't covered by the generated "ui.<entity>.list" set — add
6
+ // them here by hand. This file is generated once and never overwritten.
7
+ const customUiPermissions: string[] = [];
8
+
9
+ export default customUiPermissions;
10
+ `;
11
+ exports.backCustomUiPermissionsTmpl = backCustomUiPermissionsTmpl;
12
+ exports.default = exports.backCustomUiPermissionsTmpl;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVWlQZXJtaXNzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL2JhY2svcm9sZXMvY3VzdG9tVWlQZXJtaXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBTyxNQUFNLDJCQUEyQixHQUFHLEdBQUcsRUFBRSxDQUFDOzs7Ozs7Q0FNaEQsQ0FBQTtBQU5ZLFFBQUEsMkJBQTJCLCtCQU12QztBQUVELGtCQUFlLG1DQUEyQixDQUFBIn0=