@taon-dev/cms 21.0.7 → 21.0.8

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 (49) hide show
  1. package/browser/fesm2022/cms-browser.mjs +1 -1
  2. package/browser/fesm2022/cms-browser.mjs.map +1 -1
  3. package/browser/package.json +1 -1
  4. package/browser/types/cms-browser.d.ts +1 -1
  5. package/browser-prod/fesm2022/cms-browser-prod.mjs +1 -1
  6. package/browser-prod/fesm2022/cms-browser-prod.mjs.map +1 -1
  7. package/browser-prod/package.json +1 -1
  8. package/browser-prod/types/cms-browser-prod.d.ts +1 -1
  9. package/lib/build-info._auto-generated_.d.ts +1 -1
  10. package/lib/build-info._auto-generated_.js +1 -1
  11. package/lib/package.json +1 -1
  12. package/lib/taon-cms-backoffice/index.js +2 -2
  13. package/lib/taon-posts/taon-cms-post/index.js +2 -2
  14. package/lib/taon-posts/taon-cms-post-edit-dialog/index.js +2 -2
  15. package/lib/taon-posts/taon-cms-posts-backoffice/index.js +2 -2
  16. package/lib/taon-posts/taon-cms-revision-chooser/index.js +2 -2
  17. package/lib/taon-posts/taon-related-post-chooser/index.js +2 -2
  18. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  19. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  20. package/lib-esm/lib/taon-cms-backoffice/index.js +1 -1
  21. package/lib-esm/lib/taon-posts/taon-cms-post/index.js +1 -1
  22. package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.js +1 -1
  23. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.js +1 -1
  24. package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.js +1 -1
  25. package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.js +1 -1
  26. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  27. package/lib-prod/build-info._auto-generated_.js +1 -1
  28. package/lib-prod/package.json +1 -1
  29. package/lib-prod/taon-cms-backoffice/index.d.ts +1 -1
  30. package/lib-prod/taon-cms-backoffice/index.js +1 -1
  31. package/lib-prod/taon-posts/taon-cms-post/index.d.ts +1 -1
  32. package/lib-prod/taon-posts/taon-cms-post/index.js +1 -1
  33. package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -1
  34. package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.js +1 -1
  35. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -1
  36. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.js +1 -1
  37. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -1
  38. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.js +1 -1
  39. package/lib-prod/taon-posts/taon-related-post-chooser/index.d.ts +1 -1
  40. package/lib-prod/taon-posts/taon-related-post-chooser/index.js +1 -1
  41. package/package.json +1 -1
  42. package/websql/fesm2022/cms-websql.mjs +1 -1
  43. package/websql/fesm2022/cms-websql.mjs.map +1 -1
  44. package/websql/package.json +1 -1
  45. package/websql/types/cms-websql.d.ts +1 -1
  46. package/websql-prod/fesm2022/cms-websql-prod.mjs +1 -1
  47. package/websql-prod/fesm2022/cms-websql-prod.mjs.map +1 -1
  48. package/websql-prod/package.json +1 -1
  49. package/websql-prod/types/cms-websql-prod.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cms-websql.mjs","sources":["../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/migrations/1791132517216_initial.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.angular-node-app.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.docs-webapp.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.electron-app.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.mobile-app.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.npm-lib-and-cli-tool.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.vscode-plugin.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/app.data.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.validation.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content-storage.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/i18n/lib.translation.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.config.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-editable.directive.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.routes.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/index.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/cms-websql.ts"],"sourcesContent":["import { TaonAuthContextRepository } from '@taon-dev/session/websql';\nimport { Taon, TaonBaseMigration, TaonMigration } from 'taon/websql';\nimport { QueryRunner } from 'taon-typeorm/websql';\nimport {\n MyAppAuthorization,\n MyAppGroup,\n MyAppPermission,\n MyAppRole,\n} from '../index';\n\n//#region Migration class for context \"CmsContext\"\n@TaonMigration({\n className: 'CmsContext_1791132517216_initial',\n})\nexport class CmsContext_1791132517216_initial extends TaonBaseMigration {\n private taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository<MyAppAuthorization>,\n );\n\n //#region up\n async up(queryRunner: QueryRunner): Promise<any> {\n await queryRunner.startTransaction();\n try {\n await this.taonAuthContextRepository.persistTree({\n enums: {\n groups: MyAppGroup,\n roles: MyAppRole,\n permissions: MyAppPermission,\n },\n tree: {\n groupAndRoles: {\n [MyAppGroup.Administrator]: '*',\n [MyAppGroup.Customers]: [MyAppRole.BlogReader],\n },\n rolesAndPermissions: {\n [MyAppRole.Customer]: [\n MyAppPermission.AccessCourseP2,\n MyAppPermission.AccessCourseP2,\n ],\n [MyAppRole.CustomerPremium]: '*',\n },\n },\n });\n\n await queryRunner.commitTransaction();\n } catch (error) {\n console.error('Error in migration:', error);\n await queryRunner.rollbackTransaction();\n } finally {\n await queryRunner.release();\n }\n }\n //#endregion\n\n //#region down\n async down(queryRunner: QueryRunner): Promise<any> {\n await queryRunner.startTransaction();\n try {\n await this.taonAuthContextRepository.clearRolesGroupPermissions();\n\n await queryRunner.commitTransaction();\n } catch (error) {\n console.error('Error in migration:', error);\n await queryRunner.rollbackTransaction();\n } finally {\n await queryRunner.release();\n }\n }\n //#endregion\n}\n//#endregion\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CmsContext_1791132517216_initial } from './1791132517216_initial';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_CmsContext = {\n /* 04-10-2026 18:48:37 */ CmsContext_1791132517216_initial,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT = 'angular-node-app';\n// release.envName\nexport const ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_ANGULAR_NODE_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_ANGULAR_NODE_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_ANGULAR_NODE_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_ANGULAR_NODE_APP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_ANGULAR_NODE_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_ANGULAR_NODE_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_ANGULAR_NODE_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_ANGULAR_NODE_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_ANGULAR_NODE_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_DOCS_WEBAPP_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_DOCS_WEBAPP_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT = 'docs-webapp';\n// release.envName\nexport const ENV_DOCS_WEBAPP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_DOCS_WEBAPP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_DOCS_WEBAPP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_DOCS_WEBAPP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_DOCS_WEBAPP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_DOCS_WEBAPP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_DOCS_WEBAPP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_DOCS_WEBAPP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_DOCS_WEBAPP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_DOCS_WEBAPP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_DOCS_WEBAPP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_DOCS_WEBAPP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_DOCS_WEBAPP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_DOCS_WEBAPP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_DOCS_WEBAPP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_DOCS_WEBAPP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_ELECTRON_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// build.ssr\nexport const ENV_ELECTRON_APP_BUILD_SSR = false;\n// loading.preAngularBootstrap.background\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_ELECTRON_APP_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_ELECTRON_APP_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT = 'electron-app';\n// release.envName\nexport const ENV_ELECTRON_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_ELECTRON_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_ELECTRON_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_ELECTRON_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_ELECTRON_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_ELECTRON_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_ELECTRON_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_ELECTRON_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_ELECTRON_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_ELECTRON_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.websql\nexport const ENV_ELECTRON_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_ELECTRON_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_ELECTRON_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_ELECTRON_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_ELECTRON_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_ELECTRON_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_ELECTRON_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_ELECTRON_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_ELECTRON_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_MOBILE_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_MOBILE_APP_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_MOBILE_APP_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_MOBILE_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT = 'mobile-app';\n// release.envName\nexport const ENV_MOBILE_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_MOBILE_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_MOBILE_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_MOBILE_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_MOBILE_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_MOBILE_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_MOBILE_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_MOBILE_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_MOBILE_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_MOBILE_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_MOBILE_APP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_MOBILE_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_MOBILE_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_MOBILE_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_MOBILE_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_MOBILE_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_MOBILE_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_MOBILE_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_MOBILE_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_MOBILE_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_MOBILE_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_MOBILE_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_MOBILE_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_MOBILE_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_MOBILE_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT = 'npm-lib-and-cli-tool';\n// release.envName\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END = undefined;\n// container.start\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_VSCODE_PLUGIN_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT = 'vscode-plugin';\n// release.envName\nexport const ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_VSCODE_PLUGIN_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_VSCODE_PLUGIN_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_VSCODE_PLUGIN_CONTAINER_END = undefined;\n// container.start\nexport const ENV_VSCODE_PLUGIN_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_VSCODE_PLUGIN_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_VSCODE_PLUGIN_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_VSCODE_PLUGIN_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_VSCODE_PLUGIN_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_VSCODE_PLUGIN_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_VSCODE_PLUGIN_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_VSCODE_PLUGIN_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_VSCODE_PLUGIN_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_VSCODE_PLUGIN_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_VSCODE_PLUGIN_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_VSCODE_PLUGIN_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","import { TaonAuthorizationSchema } from '@taon-dev/session/websql';\n\nexport enum MyAppGroup {\n Administrator = 'administrator',\n Customers = 'customers',\n}\n\nexport enum MyAppRole {\n MangePosts = 'manage-posts',\n Customer = 'Customer',\n CustomerPremium = 'CustomerPremium',\n BlogReader = 'BlogReader',\n}\n\nexport enum MyAppPermission {\n AccessToAllEmails = 'AccessToAllEmails',\n AccessCourseP1 = 'AccessCourseP1',\n AccessCourseP2 = 'AccessCourseP2',\n AccessCoursePremium = 'AccessCoursePremium',\n}\n\nexport interface MyAppAuthorization extends TaonAuthorizationSchema {\n group: MyAppGroup;\n role: MyAppRole;\n permission: MyAppPermission;\n}\n","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.cms';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/cms';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.7';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { Translation } from \"@taon-dev/i18n/websql\";\nimport { Taon } from \"taon/websql\";\n\nconst t = Translation.for('src/lib/my-organization-proj.ts', {\"src/lib/my-organization-proj.ts\":{\"en-US\":async () => (await import('./i18n/my-organization-proj.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/my-organization-proj.ts.pl-PL.i18n.data')).default}} as any);\n\nexport function myOrgProj() {\n t.gettext('My Translated Company Name!')\n}\n","//#region tnp-helpers cli template\nimport { UtilsJson } from 'tnp-core/websql';\nimport { Helpers, BaseCommandLineFeature } from 'tnp-helpers/websql';\n/* */ \n//#endregion\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n helloWorldFromGlobalArg() {\n console.log('hello world from global argument!');\n this._exit(0);\n }\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson.getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;\n","//#region imports\nimport {\n Column,\n CustomColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsCategoryDefaultsValues } from './taon-cms-category.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsCategoryEntity',\n createTable: true,\n})\nexport class TaonCmsCategoryEntity extends TaonBaseAbstractEntity<TaonCmsCategoryEntity> {\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n parentCategoryId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n name: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n description: string | null;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n sortOrder: number;\n}\n","export enum TaonCmsContentType {\n Normal = 'normal',\n Video = 'video',\n Audio = 'audio',\n Attachment = 'attachment',\n}\n\nexport enum TaonCmsContentState {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport interface TaonCmsContentFields {\n type: TaonCmsContentType;\n title: string;\n slug: string;\n body: string | null;\n videoKey: string | null;\n audioKey: string | null;\n attachmentKey: string | null;\n excerpt: string | null;\n categoryId: number | null;\n authorUserId: number | null;\n status: 'draft' | 'published' | 'archived';\n publishedAt: Date | null;\n}\n\nexport interface TaonCmsCreateContent\n extends\n Pick<TaonCmsContentFields, 'title' | 'slug'>,\n Partial<Omit<TaonCmsContentFields, 'title' | 'slug'>> {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n}\n\nexport interface TaonCmsUpdateContent extends Partial<TaonCmsContentFields> {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n expectedVersion: number;\n}\n\nexport interface TaonCmsRestoreContent {\n revisionNumber: number;\n expectedVersion: number;\n}\n\nexport interface TaonCmsContentSnapshot extends TaonCmsContentFields {\n tagIds: number[];\n relatedPostIds?: number[];\n permissionIds: number[];\n}\n","import { Taon } from 'taon/websql';\n\nimport type { TaonCmsContentFields } from './taon-cms-content.models';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n\nexport function contentError(message: string, status = 400): never {\n Taon.error({ message, status });\n throw new Error(message);\n}\n\nexport function requireContentId(value: number, name = 'contentId'): void {\n if (!Number.isSafeInteger(value) || value <= 0) {\n contentError(`${name} must be a positive integer.`);\n }\n}\n\nexport function requireContentVersion(\n value: number,\n name = 'expectedVersion',\n): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n contentError(`${name} must be a non-negative integer.`);\n }\n}\n\nexport function validateContentInput(\n input: Partial<TaonCmsContentFields> & {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n },\n creating = false,\n): void {\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n contentError('Content must be an object.');\n }\n if (\n input.type !== undefined &&\n !Object.values(TaonCmsContentType).includes(input.type)\n ) {\n contentError('type must be normal, video, audio, or attachment.');\n }\n for (const field of ['title', 'slug'] as const) {\n if (creating || input[field] !== undefined) {\n if (typeof input[field] !== 'string' || !input[field].trim()) {\n contentError(`${field} must be a non-empty string.`);\n }\n }\n }\n for (const field of [\n 'body', 'excerpt', 'videoKey', 'audioKey', 'attachmentKey',\n ] as const) {\n if (\n input[field] !== undefined &&\n input[field] !== null &&\n typeof input[field] !== 'string'\n ) {\n contentError(`${field} must be a string or null.`);\n }\n }\n for (const field of ['categoryId', 'authorUserId'] as const) {\n if (input[field] !== undefined && input[field] !== null) {\n requireContentId(input[field], field);\n }\n }\n if (\n input.status !== undefined &&\n !['draft', 'published', 'archived'].includes(input.status)\n ) {\n contentError('status must be draft, published, or archived.');\n }\n if (input.publishedAt !== undefined && input.publishedAt !== null) {\n if (\n !(\n input.publishedAt instanceof Date ||\n typeof input.publishedAt === 'string'\n ) ||\n Number.isNaN(new Date(input.publishedAt).getTime())\n ) {\n contentError('publishedAt must be a valid date or null.');\n }\n }\n for (const field of ['tagIds', 'relatedPostIds', 'permissionIds'] as const) {\n const ids = input[field];\n if (ids !== undefined) {\n if (!Array.isArray(ids)) {\n contentError(`${field} must be an array.`);\n }\n for (const id of ids) {\n requireContentId(\n id,\n field === 'tagIds'\n ? 'tagId'\n : field === 'relatedPostIds'\n ? 'relatedPostId'\n : 'permissionId',\n );\n }\n }\n }\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsCategoryRepository',\n})\nexport class TaonCmsCategoryRepository extends TaonBaseRepository<TaonCmsCategoryEntity> {\n entityClassResolveFn: () => typeof TaonCmsCategoryEntity = () =>\n TaonCmsCategoryEntity;\n\n async requireCategory(id: number, manager: EntityManager): Promise<void> {\n //#region @websqlFunc\n const category = await manager\n .getRepository<TaonCmsCategoryEntity>(this.target)\n .findOneBy({ id });\n if (!category) {\n contentError(`Category ${id} does not exist.`, 404);\n }\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryRepository } from './taon-cms-category.repository';\n//#endregion\n\n@TaonController<TaonCmsCategoryController>({\n className: 'TaonCmsCategoryController',\n allowedMethods: [],\n})\nexport class TaonCmsCategoryController extends TaonBaseCrudController<TaonCmsCategoryEntity> {\n entityClassResolveFn: () => typeof TaonCmsCategoryEntity = () =>\n TaonCmsCategoryEntity;\n\n taonCmsCategoryRepository = this.injectCustomRepo(TaonCmsCategoryRepository);\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsCategoryProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsCategoryProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsCategoryMiddleware',\n})\nexport class TaonCmsCategoryMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryProvider } from './taon-cms-category.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsCategorySubscriber>({\n className: 'TaonCmsCategorySubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsCategorySubscriber extends TaonBaseSubscriberForEntity {\n taonCmsCategoryProvider = this.injectProvider(TaonCmsCategoryProvider);\n listenTo(): typeof TaonCmsCategoryEntity {\n return TaonCmsCategoryEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryController } from './taon-cms-category.controller';\nimport { TaonCmsCategoryRepository } from './taon-cms-category.repository';\nimport { TaonCmsCategoryProvider } from './taon-cms-category.provider';\nimport { TaonCmsCategoryMiddleware } from './taon-cms-category.middleware';\nimport { TaonCmsCategorySubscriber } from './taon-cms-category.subscriber';\n//#endregion\n\nexport const TaonCmsCategoryAbstractContext = createContext(() => ({\n contextName: 'TaonCmsCategoryAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsCategoryEntity },\n controllers: { TaonCmsCategoryController },\n repositories: { TaonCmsCategoryRepository },\n providers: { TaonCmsCategoryProvider },\n middlewares: { TaonCmsCategoryMiddleware },\n subscribers: { TaonCmsCategorySubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsCommentDefaultsValues } from './taon-cms-comment.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsCommentEntity',\n createTable: true,\n})\nexport class TaonCmsCommentEntity extends TaonBaseEntity<TaonCmsCommentEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n parentCommentId: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n userId: number | null;\n\n //#region @websql\n @Column({ type: 'text' })\n //#endregion\n body: string;\n\n //#region @websql\n @Column({ type: 'varchar', default: 'published' })\n //#endregion\n status: string;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsCommentRepository',\n})\nexport class TaonCmsCommentRepository extends TaonBaseRepository<TaonCmsCommentEntity> {\n entityClassResolveFn: () => typeof TaonCmsCommentEntity = () => TaonCmsCommentEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentRepository } from './taon-cms-comment.repository';\n//#endregion\n\n@TaonController<TaonCmsCommentController>({\n className: 'TaonCmsCommentController',\n allowedMethods: []\n})\nexport class TaonCmsCommentController extends TaonBaseCrudController<TaonCmsCommentEntity> {\n entityClassResolveFn: () => typeof TaonCmsCommentEntity = () => TaonCmsCommentEntity;\n\n taonCmsCommentRepository = this.injectCustomRepo(TaonCmsCommentRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon.Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsCommentRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsCommentController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsCommentProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsCommentProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsCommentMiddleware',\n})\nexport class TaonCmsCommentMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentProvider } from './taon-cms-comment.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsCommentSubscriber>({\n className: 'TaonCmsCommentSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsCommentSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsCommentProvider = this.injectProvider(TaonCmsCommentProvider);\n listenTo(): typeof TaonCmsCommentEntity {\n return TaonCmsCommentEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentController } from './taon-cms-comment.controller';\nimport { TaonCmsCommentRepository } from './taon-cms-comment.repository';\nimport { TaonCmsCommentProvider } from './taon-cms-comment.provider';\nimport { TaonCmsCommentMiddleware } from './taon-cms-comment.middleware';\nimport { TaonCmsCommentSubscriber } from './taon-cms-comment.subscriber';\n//#endregion\n\nexport const TaonCmsCommentAbstractContext = createContext(() => ({\n contextName: 'TaonCmsCommentAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsCommentEntity },\n controllers: { TaonCmsCommentController },\n repositories: { TaonCmsCommentRepository },\n providers: { TaonCmsCommentProvider },\n middlewares: { TaonCmsCommentMiddleware },\n subscribers: { TaonCmsCommentSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport type { TaonCmsContentSnapshot } from '../taon-cms-content/taon-cms-content.models';\n\nimport { TaonCmsContentRevisionDefaultsValues } from './taon-cms-content-revision.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentRevisionEntity',\n createTable: true,\n})\nexport class TaonCmsContentRevisionEntity extends TaonBaseEntity<TaonCmsContentRevisionEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n revisionNumber: number;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n title: string;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n body: string | null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n snapshot: TaonCmsContentSnapshot | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n createdByUserId: number | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\n\nimport type { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsContentSnapshot } from '../taon-cms-content/taon-cms-content.models';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentRevisionRepository',\n})\nexport class TaonCmsContentRevisionRepository extends TaonBaseRepository<TaonCmsContentRevisionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentRevisionEntity = () =>\n TaonCmsContentRevisionEntity;\n\n async listForContent(\n contentId: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n return manager\n .getRepository<TaonCmsContentRevisionEntity>(this.target)\n .find({\n where: { contentId },\n order: { revisionNumber: 'DESC' },\n });\n //#endregion\n }\n\n async requireRevision(\n contentId: number,\n revisionNumber: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity> {\n //#region @websqlFunc\n const revision = await manager\n .getRepository<TaonCmsContentRevisionEntity>(this.target)\n .findOneBy({ contentId, revisionNumber });\n if (!revision) {\n contentError(\n `Revision ${revisionNumber} of content ${contentId} does not exist.`,\n 404,\n );\n }\n return revision;\n //#endregion\n }\n\n async recordContent(\n content: TaonCmsContentEntity,\n snapshot: TaonCmsContentSnapshot,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentRevisionEntity>(\n this.target,\n );\n return repository.save(\n repository.create({\n contentId: content.id,\n revisionNumber: content.version,\n version: 1,\n title: content.title,\n body: content.body,\n snapshot,\n createdByUserId: content.authorUserId,\n createdAt: new Date(),\n }),\n );\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionRepository } from './taon-cms-content-revision.repository';\n//#endregion\n\n@TaonController<TaonCmsContentRevisionController>({\n className: 'TaonCmsContentRevisionController',\n allowedMethods: [],\n})\nexport class TaonCmsContentRevisionController extends TaonBaseCrudController<TaonCmsContentRevisionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentRevisionEntity = () =>\n TaonCmsContentRevisionEntity;\n\n taonCmsContentRevisionRepository = this.injectCustomRepo(\n TaonCmsContentRevisionRepository,\n );\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentRevisionProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentRevisionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentRevisionMiddleware',\n})\nexport class TaonCmsContentRevisionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionProvider } from './taon-cms-content-revision.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentRevisionSubscriber>({\n className: 'TaonCmsContentRevisionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentRevisionSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentRevisionProvider = this.injectProvider(TaonCmsContentRevisionProvider);\n listenTo(): typeof TaonCmsContentRevisionEntity {\n return TaonCmsContentRevisionEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionController } from './taon-cms-content-revision.controller';\nimport { TaonCmsContentRevisionRepository } from './taon-cms-content-revision.repository';\nimport { TaonCmsContentRevisionProvider } from './taon-cms-content-revision.provider';\nimport { TaonCmsContentRevisionMiddleware } from './taon-cms-content-revision.middleware';\nimport { TaonCmsContentRevisionSubscriber } from './taon-cms-content-revision.subscriber';\n//#endregion\n\nexport const TaonCmsContentRevisionAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentRevisionAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentRevisionEntity },\n controllers: { TaonCmsContentRevisionController },\n repositories: { TaonCmsContentRevisionRepository },\n providers: { TaonCmsContentRevisionProvider },\n middlewares: { TaonCmsContentRevisionMiddleware },\n subscribers: { TaonCmsContentRevisionSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentTagDefaultsValues } from './taon-cms-content-tag.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentTagEntity',\n createTable: true,\n})\nexport class TaonCmsContentTagEntity extends TaonBaseAbstractEntity<TaonCmsContentTagEntity> {\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n tagId: number;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentTagRepository',\n})\nexport class TaonCmsContentTagRepository extends TaonBaseRepository<TaonCmsContentTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentTagEntity = () =>\n TaonCmsContentTagEntity;\n\n async findTagIds(\n contentId: number,\n manager: EntityManager,\n ): Promise<number[]> {\n //#region @websqlFunc\n const links = await manager\n .getRepository<TaonCmsContentTagEntity>(this.target)\n .find({ where: { contentId }, order: { tagId: 'ASC' } });\n return links.map(link => link.tagId);\n //#endregion\n }\n\n async replaceTags(\n contentId: number,\n tagIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentTagEntity>(\n this.target,\n );\n await repository.delete({ contentId });\n const links = [...new Set(tagIds)].map(tagId =>\n repository.create({ contentId, tagId }),\n );\n if (links.length) {\n await repository.save(links);\n }\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagRepository } from './taon-cms-content-tag.repository';\n//#endregion\n\n@TaonController<TaonCmsContentTagController>({\n className: 'TaonCmsContentTagController',\n allowedMethods: [],\n})\nexport class TaonCmsContentTagController extends TaonBaseCrudController<TaonCmsContentTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentTagEntity = () =>\n TaonCmsContentTagEntity;\n\n taonCmsContentTagRepository = this.injectCustomRepo(\n TaonCmsContentTagRepository,\n );\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentTagProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentTagProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentTagMiddleware',\n})\nexport class TaonCmsContentTagMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagProvider } from './taon-cms-content-tag.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentTagSubscriber>({\n className: 'TaonCmsContentTagSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentTagSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentTagProvider = this.injectProvider(TaonCmsContentTagProvider);\n listenTo(): typeof TaonCmsContentTagEntity {\n return TaonCmsContentTagEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagController } from './taon-cms-content-tag.controller';\nimport { TaonCmsContentTagRepository } from './taon-cms-content-tag.repository';\nimport { TaonCmsContentTagProvider } from './taon-cms-content-tag.provider';\nimport { TaonCmsContentTagMiddleware } from './taon-cms-content-tag.middleware';\nimport { TaonCmsContentTagSubscriber } from './taon-cms-content-tag.subscriber';\n//#endregion\n\nexport const TaonCmsContentTagAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentTagAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentTagEntity },\n controllers: { TaonCmsContentTagController },\n repositories: { TaonCmsContentTagRepository },\n providers: { TaonCmsContentTagProvider },\n middlewares: { TaonCmsContentTagMiddleware },\n subscribers: { TaonCmsContentTagSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsTagDefaultsValues } from './taon-cms-tag.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsTagEntity',\n createTable: true,\n})\nexport class TaonCmsTagEntity extends TaonBaseAbstractEntity<TaonCmsTagEntity> {\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n name: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n description: string | null;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsTagRepository',\n})\nexport class TaonCmsTagRepository extends TaonBaseRepository<TaonCmsTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsTagEntity = () => TaonCmsTagEntity;\n\n async requireTags(ids: number[], manager: EntityManager): Promise<void> {\n //#region @websqlFunc\n for (const id of new Set(ids)) {\n const tag = await manager\n .getRepository<TaonCmsTagEntity>(this.target)\n .findOneBy({ id });\n if (!tag) {\n contentError(`Tag ${id} does not exist.`, 404);\n }\n }\n //#endregion\n }\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagRepository } from './taon-cms-tag.repository';\n//#endregion\n\n@TaonController<TaonCmsTagController>({\n className: 'TaonCmsTagController',\n allowedMethods: []\n})\nexport class TaonCmsTagController extends TaonBaseCrudController<TaonCmsTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsTagEntity = () => TaonCmsTagEntity;\n\n taonCmsTagRepository = this.injectCustomRepo(TaonCmsTagRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon.Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsTagRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsTagController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsTagProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsTagProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsTagMiddleware',\n})\nexport class TaonCmsTagMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagProvider } from './taon-cms-tag.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsTagSubscriber>({\n className: 'TaonCmsTagSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsTagSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsTagProvider = this.injectProvider(TaonCmsTagProvider);\n listenTo(): typeof TaonCmsTagEntity {\n return TaonCmsTagEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagController } from './taon-cms-tag.controller';\nimport { TaonCmsTagRepository } from './taon-cms-tag.repository';\nimport { TaonCmsTagProvider } from './taon-cms-tag.provider';\nimport { TaonCmsTagMiddleware } from './taon-cms-tag.middleware';\nimport { TaonCmsTagSubscriber } from './taon-cms-tag.subscriber';\n//#endregion\n\nexport const TaonCmsTagAbstractContext = createContext(() => ({\n contextName: 'TaonCmsTagAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsTagEntity },\n controllers: { TaonCmsTagController },\n repositories: { TaonCmsTagRepository },\n providers: { TaonCmsTagProvider },\n middlewares: { TaonCmsTagMiddleware },\n subscribers: { TaonCmsTagSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n JoinTable,\n ManyToMany,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { TaonPermissionEntity } from '@taon-dev/session/websql';\n\nimport { TaonCmsContentDefaultsValues } from './taon-cms-content.constants';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentEntity',\n createTable: true,\n})\nexport class TaonCmsContentEntity extends TaonBaseEntity<TaonCmsContentEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'varchar', default: TaonCmsContentType.Normal })\n //#endregion\n type: TaonCmsContentType = TaonCmsContentType.Normal;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n title: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @ManyToMany(() => TaonCmsContentEntity)\n @JoinTable({\n name: 'taon_cms_related_posts',\n joinColumn: { name: 'contentId', referencedColumnName: 'id' },\n inverseJoinColumn: { name: 'relatedPostId', referencedColumnName: 'id' },\n })\n //#endregion\n relatedPosts: TaonCmsContentEntity[];\n\n //#region @websql\n @ManyToMany(() => TaonPermissionEntity)\n @JoinTable({\n name: 'taon_cms_content_permissions',\n joinColumn: { name: 'contentId', referencedColumnName: 'id' },\n inverseJoinColumn: { name: 'permissionId', referencedColumnName: 'id' },\n })\n //#endregion\n permissions: TaonPermissionEntity[];\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n excerpt: string | null;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n body: string | null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n videoKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n audioKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n attachmentKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n categoryId: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n authorUserId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar', default: 'draft' })\n //#endregion\n status: string;\n // draft | published | archived\n\n //#region @websql\n @Column({ type: 'datetime', nullable: true })\n //#endregion\n publishedAt: Date | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { In, Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\nimport { TaonPermissionEntity } from '@taon-dev/session/websql';\n\nimport { TaonCmsCategoryRepository } from '../taon-cms-category/taon-cms-category.repository';\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionRepository } from '../taon-cms-content-revision/taon-cms-content-revision.repository';\nimport { TaonCmsContentTagRepository } from '../taon-cms-content-tag/taon-cms-content-tag.repository';\nimport { TaonCmsTagRepository } from '../taon-cms-tag/taon-cms-tag.repository';\n\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentType } from './taon-cms-content.models';\nimport type {\n TaonCmsContentFields,\n TaonCmsContentSnapshot,\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n} from './taon-cms-content.models';\nimport {\n contentError,\n requireContentId,\n requireContentVersion,\n validateContentInput,\n} from './taon-cms-content.validation';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentRepository',\n})\nexport class TaonCmsContentRepository extends TaonBaseRepository<TaonCmsContentEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentEntity = () =>\n TaonCmsContentEntity;\n\n private readonly taonCmsContentRevisionRepository = this.injectCustomRepo(\n TaonCmsContentRevisionRepository,\n );\n\n private readonly taonCmsContentTagRepository = this.injectCustomRepo(\n TaonCmsContentTagRepository,\n );\n\n private readonly taonCmsCategoryRepository = this.injectCustomRepo(\n TaonCmsCategoryRepository,\n );\n\n private readonly tags = this.injectCustomRepo(TaonCmsTagRepository);\n\n async createContent(\n input: TaonCmsCreateContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n validateContentInput(input, true);\n return this.connection.transaction(async manager => {\n const fields = this.contentFields(input);\n const tagIds = [...new Set(input.tagIds ?? [])];\n const relatedPostIds = [...new Set(input.relatedPostIds ?? [])];\n const permissionIds = [...new Set(input.permissionIds ?? [])];\n await this.validateReferences(fields, tagIds, permissionIds, manager);\n await this.requireAvailableSlug(fields.slug, manager);\n const repository = manager.getRepository<TaonCmsContentEntity>(\n this.target,\n );\n const now = new Date();\n const content = await repository.save(\n repository.create({\n ...fields,\n version: 1,\n createdAt: now,\n updatedAt: now,\n }),\n );\n await this.taonCmsContentTagRepository.replaceTags(content.id, tagIds, manager);\n await this.replaceRelatedPosts(content.id, relatedPostIds, [], manager);\n await this.replacePermissions(content.id, permissionIds, [], manager);\n await this.taonCmsContentRevisionRepository.recordContent(\n content,\n { ...fields, tagIds, relatedPostIds, permissionIds },\n manager,\n );\n return this.requireContent(content.id, manager);\n });\n //#endregion\n }\n\n async updateContent(\n id: number,\n input: TaonCmsUpdateContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n validateContentInput(input);\n requireContentVersion(input.expectedVersion);\n return this.connection.transaction(async manager => {\n const current = await this.requireContent(id, manager);\n const snapshot = await this.snapshotOf(current, manager);\n const fields = this.contentFields(input, snapshot);\n const tagIds =\n input.tagIds === undefined\n ? snapshot.tagIds\n : [...new Set(input.tagIds)];\n const relatedPostIds =\n input.relatedPostIds === undefined\n ? snapshot.relatedPostIds\n : [...new Set(input.relatedPostIds)];\n const permissionIds =\n input.permissionIds === undefined\n ? snapshot.permissionIds\n : [...new Set(input.permissionIds)];\n return this.commitUpdate(\n current,\n input.expectedVersion,\n { ...fields, tagIds, relatedPostIds, permissionIds },\n manager,\n );\n });\n //#endregion\n }\n\n async archiveContent(\n id: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.updateContent(id, { status: 'archived', expectedVersion });\n //#endregion\n }\n\n async restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n if (!input || typeof input !== 'object') {\n contentError('Restore input must be an object.');\n }\n requireContentVersion(input.revisionNumber, 'revisionNumber');\n requireContentVersion(input.expectedVersion);\n return this.connection.transaction(async manager => {\n const current = await this.requireContent(id, manager);\n const revision = await this.taonCmsContentRevisionRepository.requireRevision(\n id,\n input.revisionNumber,\n manager,\n );\n if (!revision.snapshot) {\n contentError(\n 'This legacy revision has no complete snapshot and cannot be restored.',\n 409,\n );\n }\n const storedSnapshot = revision.snapshot;\n const snapshotFields: (keyof TaonCmsContentSnapshot)[] = [\n 'type',\n 'title',\n 'slug',\n 'body',\n 'excerpt',\n 'categoryId',\n 'authorUserId',\n 'status',\n 'publishedAt',\n 'tagIds',\n ];\n if (snapshotFields.some(field => storedSnapshot[field] === undefined)) {\n contentError(\n 'This revision has an incomplete snapshot and cannot be restored.',\n 409,\n );\n }\n validateContentInput(revision.snapshot, true);\n const snapshot = {\n // Older complete snapshots predate primary media; preserve those keys.\n ...this.contentFields(revision.snapshot, await this.snapshotOf(current, manager)),\n tagIds: revision.snapshot.tagIds,\n relatedPostIds: revision.snapshot.relatedPostIds ?? [],\n permissionIds: revision.snapshot.permissionIds ?? [],\n };\n return this.commitUpdate(\n current,\n input.expectedVersion,\n snapshot,\n manager,\n );\n });\n //#endregion\n }\n\n async listRevisions(id: number): Promise<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n await this.requireContent(id, manager);\n return this.taonCmsContentRevisionRepository.listForContent(id, manager);\n });\n //#endregion\n }\n\n async listRelatedPosts(id: number): Promise<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager =>\n (await this.requireContent(id, manager)).relatedPosts,\n );\n //#endregion\n }\n\n async listPermissions(id: number): Promise<TaonPermissionEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager =>\n (await this.requireContent(id, manager)).permissions,\n );\n //#endregion\n }\n\n async addRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.changeRelatedPost(id, relatedPostId, expectedVersion, true);\n //#endregion\n }\n\n async deleteRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.changeRelatedPost(id, relatedPostId, expectedVersion, false);\n //#endregion\n }\n\n private async changeRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n adding: boolean,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n requireContentId(relatedPostId, 'relatedPostId');\n requireContentVersion(expectedVersion);\n if (id === relatedPostId) {\n contentError('A post cannot relate to itself.');\n }\n return this.connection.transaction(async manager => {\n const current = await this.requireContent(id, manager);\n await this.requireContent(relatedPostId, manager);\n const snapshot = await this.snapshotOf(current, manager);\n const ids = snapshot.relatedPostIds ?? [];\n snapshot.relatedPostIds = adding\n ? [...new Set([...ids, relatedPostId])]\n : ids.filter(postId => postId !== relatedPostId);\n return this.commitUpdate(current, expectedVersion, snapshot, manager);\n });\n //#endregion\n }\n\n private async requireContent(\n id: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n const content = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOne({\n where: { id },\n relations: { relatedPosts: true, permissions: true },\n });\n if (!content) {\n contentError(`Content ${id} does not exist.`, 404);\n }\n return content;\n //#endregion\n }\n\n private contentFields(\n input: Partial<TaonCmsContentFields>,\n current?: TaonCmsContentFields,\n ): TaonCmsContentFields {\n const type = input.type ?? current?.type ?? TaonCmsContentType.Normal;\n const title = input.title ?? current?.title;\n const slug = input.slug ?? current?.slug;\n if (title === undefined || slug === undefined) {\n contentError('title and slug are required.');\n }\n const publishedAt =\n input.publishedAt === undefined\n ? (current?.publishedAt ?? null)\n : input.publishedAt;\n return {\n type,\n title,\n slug,\n body: input.body === undefined ? (current?.body ?? null) : input.body,\n videoKey:\n input.videoKey === undefined ? (current?.videoKey ?? null) : input.videoKey,\n audioKey:\n input.audioKey === undefined ? (current?.audioKey ?? null) : input.audioKey,\n attachmentKey:\n input.attachmentKey === undefined\n ? (current?.attachmentKey ?? null)\n : input.attachmentKey,\n excerpt:\n input.excerpt === undefined\n ? (current?.excerpt ?? null)\n : input.excerpt,\n categoryId:\n input.categoryId === undefined\n ? (current?.categoryId ?? null)\n : input.categoryId,\n authorUserId:\n input.authorUserId === undefined\n ? (current?.authorUserId ?? null)\n : input.authorUserId,\n status: input.status ?? current?.status ?? 'draft',\n publishedAt: publishedAt === null ? null : new Date(publishedAt),\n };\n }\n\n private async snapshotOf(\n content: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<TaonCmsContentSnapshot> {\n //#region @websqlFunc\n return {\n ...this.contentFields({\n ...content,\n status: this.contentStatus(content.status),\n }),\n tagIds: await this.taonCmsContentTagRepository.findTagIds(content.id, manager),\n relatedPostIds: content.relatedPosts.map(post => post.id),\n permissionIds: content.permissions.map(permission => permission.id),\n };\n //#endregion\n }\n\n private contentStatus(status: string): TaonCmsContentFields['status'] {\n if (status !== 'draft' && status !== 'published' && status !== 'archived') {\n contentError(`Unsupported stored content status: ${status}.`, 409);\n }\n return status;\n }\n\n private async validateReferences(\n fields: TaonCmsContentFields,\n tagIds: number[],\n permissionIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (fields.categoryId !== null) {\n await this.taonCmsCategoryRepository.requireCategory(fields.categoryId, manager);\n }\n await this.tags.requireTags(tagIds, manager);\n await this.requirePermissions(permissionIds, manager);\n //#endregion\n }\n\n private async requirePermissions(\n permissionIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (!permissionIds.length) {\n return;\n }\n const permissions = await manager\n .getRepository<TaonPermissionEntity>(TaonPermissionEntity)\n .findBy({ id: In(permissionIds) });\n const foundIds = new Set(permissions.map(permission => permission.id));\n const missingId = permissionIds.find(id => !foundIds.has(id));\n if (missingId !== undefined) {\n contentError(`Permission ${missingId} does not exist.`, 404);\n }\n //#endregion\n }\n\n private async requireAvailableSlug(\n slug: string,\n manager: EntityManager,\n contentId?: number,\n ): Promise<void> {\n //#region @websqlFunc\n const existing = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOneBy({ slug });\n if (existing && existing.id !== contentId) {\n contentError(`Slug \"${slug}\" is already in use.`, 409);\n }\n //#endregion\n }\n\n private async replaceRelatedPosts(\n id: number,\n relatedPostIds: number[],\n previousIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (relatedPostIds.includes(id)) {\n contentError('A post cannot relate to itself.');\n }\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n if (relatedPostIds.length) {\n const posts = await repository.findBy({ id: In(relatedPostIds) });\n const foundIds = new Set(posts.map(post => post.id));\n const missingId = relatedPostIds.find(postId => !foundIds.has(postId));\n if (missingId !== undefined) {\n contentError(`Content ${missingId} does not exist.`, 404);\n }\n }\n const added = relatedPostIds.filter(postId => !previousIds.includes(postId));\n const removed = previousIds.filter(postId => !relatedPostIds.includes(postId));\n if (added.length || removed.length) {\n await repository.createQueryBuilder()\n .relation('relatedPosts')\n .of(id)\n .addAndRemove(added, removed);\n }\n //#endregion\n }\n\n private async replacePermissions(\n id: number,\n permissionIds: number[],\n previousIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const added = permissionIds.filter(permissionId => !previousIds.includes(permissionId));\n const removed = previousIds.filter(permissionId => !permissionIds.includes(permissionId));\n if (added.length || removed.length) {\n await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .createQueryBuilder()\n .relation('permissions')\n .of(id)\n .addAndRemove(added, removed);\n }\n //#endregion\n }\n\n private async commitUpdate(\n current: TaonCmsContentEntity,\n expectedVersion: number,\n snapshot: TaonCmsContentSnapshot,\n manager: EntityManager,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n if (current.version !== expectedVersion) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n await this.validateReferences(\n snapshot,\n snapshot.tagIds,\n snapshot.permissionIds,\n manager,\n );\n await this.requireAvailableSlug(snapshot.slug, manager, current.id);\n // Preserve the first pre-API version before replacing it.\n const history = await this.taonCmsContentRevisionRepository.listForContent(current.id, manager);\n if (\n !history.some(revision => revision.revisionNumber === current.version)\n ) {\n await this.taonCmsContentRevisionRepository.recordContent(\n current,\n await this.snapshotOf(current, manager),\n manager,\n );\n }\n const fields = this.contentFields(snapshot);\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n const result = await repository.update(\n { id: current.id, version: expectedVersion },\n { ...fields, version: expectedVersion + 1, updatedAt: new Date() },\n );\n if (result.affected !== 1) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n await this.taonCmsContentTagRepository.replaceTags(current.id, snapshot.tagIds, manager);\n await this.replaceRelatedPosts(\n current.id,\n [...new Set(snapshot.relatedPostIds ?? [])],\n current.relatedPosts.map(post => post.id),\n manager,\n );\n await this.replacePermissions(\n current.id,\n [...new Set(snapshot.permissionIds ?? [])],\n current.permissions.map(permission => permission.id),\n manager,\n );\n const updated = await this.requireContent(current.id, manager);\n await this.taonCmsContentRevisionRepository.recordContent(\n updated,\n {\n ...fields,\n tagIds: snapshot.tagIds,\n relatedPostIds: updated.relatedPosts.map(post => post.id),\n permissionIds: updated.permissions.map(permission => permission.id),\n },\n manager,\n );\n return updated;\n //#endregion\n }\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n POST,\n PUT,\n DELETE,\n Body,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport type {\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n} from './taon-cms-content.models';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql';\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\n//#endregion\n\n@TaonController<TaonCmsContentController>({\n className: 'TaonCmsContentController',\n allowedMethods: [\n 'getAll',\n 'getBy',\n 'createContent',\n 'updateContent',\n 'deleteContent',\n 'restoreContent',\n 'listRevisions',\n 'listRelatedPosts',\n 'listPermissions',\n 'addRelatedPost',\n 'deleteRelatedPost',\n 'paginationQuery'\n ],\n})\nexport class TaonCmsContentController extends TaonBaseCrudController<TaonCmsContentEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentEntity = () =>\n TaonCmsContentEntity;\n\n taonCmsContentRepository = this.injectCustomRepo(TaonCmsContentRepository);\n\n @POST()\n createContent(\n @Body() input: TaonCmsCreateContent,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.createContent(input);\n //#endregion\n }\n\n @PUT()\n updateContent(\n @Query('id') id: number,\n @Body() input: TaonCmsUpdateContent,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.updateContent(id, input);\n //#endregion\n }\n\n @DELETE()\n deleteContent(\n @Query('id') id: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.archiveContent(id, expectedVersion);\n //#endregion\n }\n\n @POST()\n restoreContent(\n @Query('id') id: number,\n @Body() input: TaonCmsRestoreContent,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.restoreContent(id, input);\n //#endregion\n }\n\n @GET()\n listRelatedPosts(\n @Query('id') id: number,\n ): Taon.Response<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listRelatedPosts(id);\n //#endregion\n }\n\n @GET()\n listPermissions(\n @Query('id') id: number,\n ): Taon.Response<TaonPermissionEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listPermissions(id);\n //#endregion\n }\n\n @POST()\n addRelatedPost(\n @Query('id') id: number,\n @Query('relatedPostId') relatedPostId: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.addRelatedPost(\n id, relatedPostId, expectedVersion,\n );\n //#endregion\n }\n\n @DELETE()\n deleteRelatedPost(\n @Query('id') id: number,\n @Query('relatedPostId') relatedPostId: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.deleteRelatedPost(\n id, relatedPostId, expectedVersion,\n );\n //#endregion\n }\n\n @GET()\n listRevisions(\n @Query('id') id: number,\n ): Taon.Response<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listRevisions(id);\n //#endregion\n }\n}\n","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentMiddleware',\n})\nexport class TaonCmsContentMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentProvider extends TaonBaseProvider {}\n","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentSubscriber>({\n className: 'TaonCmsContentSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);\n listenTo(): typeof TaonCmsContentEntity {\n return TaonCmsContentEntity;\n }\n}","//#region imports\nimport {\n ExpressRequest,\n ExpressResponse,\n TaonBaseStorageController,\n TaonController,\n TaonStorageObject,\n TaonUploadedFile,\n} from 'taon/websql';\n\nimport { contentError } from './taon-cms-content.validation';\n//#endregion\n\n@TaonController<TaonCmsContentStorageController>({\n className: 'TaonCmsContentStorageController',\n allowedMethods: ['exists', 'download', 'getMetadata', 'uploadFormDataToServer'],\n})\nexport class TaonCmsContentStorageController extends TaonBaseStorageController {\n protected async handleUploadFiles(\n files: TaonUploadedFile[],\n queryParams?: {},\n req?: ExpressRequest,\n res?: ExpressResponse,\n ): Promise<TaonStorageObject[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n afterFileUploadHook(): void {}\n\n buildStorageDownloadUrl(): string {\n throw new Error('Use the download endpoint for CMS media.');\n }\n\n async createStorageDownloadToken(): Promise<string> {\n throw new Error('CMS media download tokens are not enabled.');\n }\n}\n","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsCategoryAbstractContext } from '../taon-cms-category/taon-cms-category.abstract.context';\nimport { TaonCmsContentRevisionAbstractContext } from '../taon-cms-content-revision/taon-cms-content-revision.abstract.context';\nimport { TaonCmsContentTagAbstractContext } from '../taon-cms-content-tag/taon-cms-content-tag.abstract.context';\nimport { TaonCmsTagAbstractContext } from '../taon-cms-tag/taon-cms-tag.abstract.context';\n\nimport { TaonCmsContentController } from './taon-cms-content.controller';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentMiddleware } from './taon-cms-content.middleware';\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\nimport { TaonCmsContentSubscriber } from './taon-cms-content.subscriber';\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\n\n//#endregion\n\nexport const TaonCmsContentAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentAbstractContext',\n abstract: true,\n contexts: {\n TaonBaseContext,\n TaonCmsCategoryAbstractContext,\n TaonCmsTagAbstractContext,\n TaonCmsContentTagAbstractContext,\n TaonCmsContentRevisionAbstractContext,\n },\n entities: { TaonCmsContentEntity },\n controllers: { TaonCmsContentController, TaonCmsContentStorageController },\n repositories: { TaonCmsContentRepository },\n providers: { TaonCmsContentProvider },\n middlewares: { TaonCmsContentMiddleware },\n subscribers: { TaonCmsContentSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentAssetDefaultsValues } from './taon-cms-content-asset.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentAssetEntity',\n createTable: true,\n})\nexport class TaonCmsContentAssetEntity extends TaonBaseEntity<TaonCmsContentAssetEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n contentId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n type: string;\n // image | video | audio | file\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n storageProvider: string;\n // r2 | filesystem | s3\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n bucket: string | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n key: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n originalFilename: string | null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n mimeType: string | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n size: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n durationSeconds: number | null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n metadata: Record<string, any> | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentAssetRepository',\n})\nexport class TaonCmsContentAssetRepository extends TaonBaseRepository<TaonCmsContentAssetEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentAssetEntity = () => TaonCmsContentAssetEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetRepository } from './taon-cms-content-asset.repository';\n//#endregion\n\n@TaonController<TaonCmsContentAssetController>({\n className: 'TaonCmsContentAssetController',\n allowedMethods: []\n})\nexport class TaonCmsContentAssetController extends TaonBaseCrudController<TaonCmsContentAssetEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentAssetEntity = () => TaonCmsContentAssetEntity;\n\n taonCmsContentAssetRepository = this.injectCustomRepo(TaonCmsContentAssetRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon.Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsContentAssetRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsContentAssetController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentAssetProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentAssetProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentAssetMiddleware',\n})\nexport class TaonCmsContentAssetMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetProvider } from './taon-cms-content-asset.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentAssetSubscriber>({\n className: 'TaonCmsContentAssetSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentAssetSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentAssetProvider = this.injectProvider(TaonCmsContentAssetProvider);\n listenTo(): typeof TaonCmsContentAssetEntity {\n return TaonCmsContentAssetEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetController } from './taon-cms-content-asset.controller';\nimport { TaonCmsContentAssetRepository } from './taon-cms-content-asset.repository';\nimport { TaonCmsContentAssetProvider } from './taon-cms-content-asset.provider';\nimport { TaonCmsContentAssetMiddleware } from './taon-cms-content-asset.middleware';\nimport { TaonCmsContentAssetSubscriber } from './taon-cms-content-asset.subscriber';\n//#endregion\n\nexport const TaonCmsContentAssetAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentAssetAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentAssetEntity },\n controllers: { TaonCmsContentAssetController },\n repositories: { TaonCmsContentAssetRepository },\n providers: { TaonCmsContentAssetProvider },\n middlewares: { TaonCmsContentAssetMiddleware },\n subscribers: { TaonCmsContentAssetSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentPermissionDefaultsValues } from './taon-cms-content-permission.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentPermissionEntity',\n createTable: true,\n})\nexport class TaonCmsContentPermissionEntity extends TaonBaseEntity<TaonCmsContentPermissionEntity> {\n @PrimaryGeneratedColumn()\n id: number;\n\n @Column({ type: 'integer', default: 0 })\n version: number;\n\n @Column({ type: 'integer' })\n contentId: number;\n\n @Column({ type: 'varchar' })\n type: string;\n // public | authenticated | permission | role |\n // purchase | subscription\n\n @Column({ type: 'integer', nullable: true })\n permissionId: number | null;\n\n @Column({ type: 'integer', nullable: true })\n roleId: number | null;\n\n @Column({ type: 'integer', nullable: true })\n productId: number | null;\n\n @Column({ type: 'varchar', nullable: true })\n stripePriceId: string | null;\n\n @Column({ type: 'simple-json', nullable: true })\n config: Record<string, any> | null;\n\n @Column({ type: 'datetime' })\n createdAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentPermissionRepository',\n})\nexport class TaonCmsContentPermissionRepository extends TaonBaseRepository<TaonCmsContentPermissionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentPermissionEntity = () => TaonCmsContentPermissionEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionRepository } from './taon-cms-content-permission.repository';\n//#endregion\n\n@TaonController<TaonCmsContentPermissionController>({\n className: 'TaonCmsContentPermissionController',\n allowedMethods: []\n})\nexport class TaonCmsContentPermissionController extends TaonBaseCrudController<TaonCmsContentPermissionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentPermissionEntity = () => TaonCmsContentPermissionEntity;\n\n taonCmsContentPermissionRepository = this.injectCustomRepo(TaonCmsContentPermissionRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon.Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsContentPermissionRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsContentPermissionController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentPermissionProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentPermissionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentPermissionMiddleware',\n})\nexport class TaonCmsContentPermissionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionProvider } from './taon-cms-content-permission.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentPermissionSubscriber>({\n className: 'TaonCmsContentPermissionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentPermissionSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentPermissionProvider = this.injectProvider(TaonCmsContentPermissionProvider);\n listenTo(): typeof TaonCmsContentPermissionEntity {\n return TaonCmsContentPermissionEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionController } from './taon-cms-content-permission.controller';\nimport { TaonCmsContentPermissionRepository } from './taon-cms-content-permission.repository';\nimport { TaonCmsContentPermissionProvider } from './taon-cms-content-permission.provider';\nimport { TaonCmsContentPermissionMiddleware } from './taon-cms-content-permission.middleware';\nimport { TaonCmsContentPermissionSubscriber } from './taon-cms-content-permission.subscriber';\n//#endregion\n\nexport const TaonCmsContentPermissionAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentPermissionAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentPermissionEntity },\n controllers: { TaonCmsContentPermissionController },\n repositories: { TaonCmsContentPermissionRepository },\n providers: { TaonCmsContentPermissionProvider },\n middlewares: { TaonCmsContentPermissionMiddleware },\n subscribers: { TaonCmsContentPermissionSubscriber },\n}));\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { TaonSessionAbstractContext } from '@taon-dev/session/websql';\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsCategoryAbstractContext } from './taon-cms-category/taon-cms-category.abstract.context';\nimport { TaonCmsCommentAbstractContext } from './taon-cms-comment/taon-cms-comment.abstract.context';\nimport { TaonCmsContentAbstractContext } from './taon-cms-content/taon-cms-content.abstract.context';\nimport { TaonCmsContentAssetAbstractContext } from './taon-cms-content-asset/taon-cms-content-asset.abstract.context';\nimport { TaonCmsContentPermissionAbstractContext } from './taon-cms-content-permission/taon-cms-content-permission.abstract.context';\nimport { TaonCmsContentRevisionAbstractContext } from './taon-cms-content-revision/taon-cms-content-revision.abstract.context';\nimport { TaonCmsContentTagAbstractContext } from './taon-cms-content-tag/taon-cms-content-tag.abstract.context';\nimport { TaonCmsTagAbstractContext } from './taon-cms-tag/taon-cms-tag.abstract.context';\n\nexport const TaonCmsAbstractContext = createContext(() => ({\n contextName: 'TaonCmsAbstractContext',\n abstract: true,\n contexts: {\n TaonCmsCategoryAbstractContext,\n TaonCmsCommentAbstractContext,\n TaonCmsContentAbstractContext,\n TaonCmsContentAssetAbstractContext,\n TaonCmsContentPermissionAbstractContext,\n TaonCmsContentRevisionAbstractContext,\n TaonCmsContentTagAbstractContext,\n TaonCmsTagAbstractContext,\n TaonSessionAbstractContext,\n },\n}));\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CoreModels } from 'tnp-core/websql';\n\n// join interface type here\nimport { EnUsTraslationOverrideSrcLibMyOrganizationProjTs } from './my-organization-proj.ts.en-US.i18n.data';\nimport { PlPlTraslationOverrideSrcLibMyOrganizationProjTs } from './my-organization-proj.ts.pl-PL.i18n.data';;\nexport type LibOverride = CoreModels.DeepPartial<EnUsTraslationOverrideSrcLibMyOrganizationProjTs \n| PlPlTraslationOverrideSrcLibMyOrganizationProjTs>;\n\n // THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MtxGrid, MtxGridColumn } from '@ng-matero/extensions/grid';\n\ninterface TaonCmsAssetRow {\n id: number;\n name: string;\n}\n\n@Component({\n selector: 'taon-cms-assets-backoffice',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MtxGrid],\n template: `\n <h1>CMS assets</h1>\n <mtx-grid [data]=\"assets\" [columns]=\"columns\"></mtx-grid>\n `,\n})\nexport class TaonCmsAssetsBackofficeComponent {\n readonly assets: TaonCmsAssetRow[] = [\n { id: 1, name: 'Sample image.jpg' },\n { id: 2, name: 'Sample document.pdf' },\n ];\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true },\n { header: 'Asset Name', field: 'name', sortable: true },\n ];\n}\n","import { Routes } from '@angular/router';\n\nexport const TaonCmsAssetsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-assets-backoffice.component').then(\n m => m.TaonCmsAssetsBackofficeComponent,\n ),\n },\n];\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-cms-backoffice',\n templateUrl: './taon-cms-backoffice.component.html',\n styleUrls: ['./taon-cms-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonCmsBackofficeComponent {\n componentLoaded = false;\n\n onRouteActivate(component: any): void {\n this.componentLoaded = !!component;\n }\n\n onRouteDeactivate(component: any): void {\n this.componentLoaded = false;\n }\n}\n","@if (!componentLoaded) {\n <code>\n In CMS you can manage content and settings for your website.\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql';\n//#endregion\n\nexport const TaonCmsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-backoffice.component').then(\n m => m.TaonCmsBackofficeComponent,\n ),\n\n children: [\n adminLazyRoute({\n path: 'posts',\n menuItem: 'Posts',\n expandable: true,\n icon: 'edit',\n loader: () =>\n import('../index').then(m => m.TaonCmsPostsBackofficeRoutes),\n }),\n adminLazyRoute({\n path: 'assets',\n menuItem: 'Assets',\n expandable: false,\n icon: 'perm_media',\n loader: () =>\n import('../taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes').then(\n m => m.TaonCmsAssetsBackofficeRoutes,\n ),\n }),\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsBackofficeRoutes;\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryController } from './taon-cms-category.controller';\n\n@Injectable()\nexport class TaonCmsCategoryApiService extends TaonBaseAngularService {\n private taonCmsCategoryController = this.injectController(\n TaonCmsCategoryController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsCategoryEntity[]> {\n return this.taonCmsCategoryController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}\n","import type { TaonCmsCategoryEntity } from './taon-cms-category.entity';\n\nexport const TaonCmsCategoryDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsCategoryEntity>;","export enum TaonCmsCategoryState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsCategoryState } from './taon-cms-category.models';\n\nexport namespace TaonCmsCategoryUtils {\n export function isActive(state: string): state is TaonCmsCategoryState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentController } from './taon-cms-comment.controller';\n\n@Injectable()\nexport class TaonCmsCommentApiService extends TaonBaseAngularService {\n private taonCmsCommentController = this.injectController(TaonCmsCommentController);\n\n public get allMyEntities$(): Observable<TaonCmsCommentEntity[]> {\n return this.taonCmsCommentController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsCommentController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsCommentEntity } from './taon-cms-comment.entity';\n\nexport const TaonCmsCommentDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsCommentEntity>;","export enum TaonCmsCommentState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsCommentState } from './taon-cms-comment.models';\n\nexport namespace TaonCmsCommentUtils {\n export function isActive(state: string): state is TaonCmsCommentState {\n return state === 'active';\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService, TaonStorageObject } from 'taon/websql';\n\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\nimport { TaonCmsContentController } from './taon-cms-content.controller';\nimport type { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql';\nimport type {\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n} from './taon-cms-content.models';\n//#endregion\n\n@Injectable()\nexport class TaonCmsContentApiService extends TaonBaseAngularService {\n public readonly taonCmsContentController = this.injectController(\n TaonCmsContentController,\n );\n\n public readonly taonCmsContentStorageController = this.injectController(\n TaonCmsContentStorageController,\n );\n\n public async uploadMedia(file: File): Promise<TaonStorageObject> {\n const formData = new FormData();\n formData.append('file', file);\n const response = await this.taonCmsContentStorageController\n .uploadFormDataToServer(formData)\n .request();\n const objects = response.body.json;\n if (objects.length !== 1 || !objects[0].key) {\n throw new Error('The upload did not return a media key.');\n }\n return objects[0];\n }\n\n public createContent(\n input: TaonCmsCreateContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.createContent(input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public updateContent(\n id: number,\n input: TaonCmsUpdateContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.updateContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public deleteContent(\n id: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.deleteContent(id, expectedVersion)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.restoreContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public listRevisions(id: number): Observable<TaonCmsContentRevisionEntity[]> {\n return this.taonCmsContentController.listRevisions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public listRelatedPosts(id: number): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.listRelatedPosts(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public listPermissions(id: number): Observable<TaonPermissionEntity[]> {\n return this.taonCmsContentController.listPermissions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public addRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.addRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n ).request!().observable.pipe(map(res => res.body.json));\n }\n\n public deleteRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.deleteRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n ).request!().observable.pipe(map(res => res.body.json));\n }\n\n public get allMyEntities$(): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TaonBaseAngularService } from 'taon/websql';\n\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\n\n@Injectable()\nexport class TaonCmsContentConfigService extends TaonBaseAngularService {\n taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);\n}\n","import type { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n\nexport const TaonCmsContentDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n type: TaonCmsContentType.Normal,\n videoKey: null,\n audioKey: null,\n attachmentKey: null,\n} as Partial<TaonCmsContentEntity>;","import { TaonCmsContentState } from './taon-cms-content.models';\n\nexport namespace TaonCmsContentUtils {\n export function isActive(state: string): state is TaonCmsContentState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetController } from './taon-cms-content-asset.controller';\n\n@Injectable()\nexport class TaonCmsContentAssetApiService extends TaonBaseAngularService {\n private taonCmsContentAssetController = this.injectController(TaonCmsContentAssetController);\n\n public get allMyEntities$(): Observable<TaonCmsContentAssetEntity[]> {\n return this.taonCmsContentAssetController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsContentAssetController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\n\nexport const TaonCmsContentAssetDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentAssetEntity>;","export enum TaonCmsContentAssetState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentAssetState } from './taon-cms-content-asset.models';\n\nexport namespace TaonCmsContentAssetUtils {\n export function isActive(state: string): state is TaonCmsContentAssetState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionController } from './taon-cms-content-permission.controller';\n\n@Injectable()\nexport class TaonCmsContentPermissionApiService extends TaonBaseAngularService {\n private taonCmsContentPermissionController = this.injectController(TaonCmsContentPermissionController);\n\n public get allMyEntities$(): Observable<TaonCmsContentPermissionEntity[]> {\n return this.taonCmsContentPermissionController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsContentPermissionController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\n\nexport const TaonCmsContentPermissionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentPermissionEntity>;","export enum TaonCmsContentPermissionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentPermissionState } from './taon-cms-content-permission.models';\n\nexport namespace TaonCmsContentPermissionUtils {\n export function isActive(state: string): state is TaonCmsContentPermissionState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport { TaonCmsContentController } from '../taon-cms-content/taon-cms-content.controller';\nimport type { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsRestoreContent } from '../taon-cms-content/taon-cms-content.models';\n\nimport type { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionController } from './taon-cms-content-revision.controller';\n\n@Injectable()\nexport class TaonCmsContentRevisionApiService extends TaonBaseAngularService {\n private readonly contentController = this.injectController(\n TaonCmsContentController,\n );\n\n private taonCmsContentRevisionController = this.injectController(\n TaonCmsContentRevisionController,\n );\n\n public listRevisions(id: number): Observable<TaonCmsContentRevisionEntity[]> {\n return this.contentController.listRevisions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Observable<TaonCmsContentEntity> {\n return this.contentController.restoreContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public get allMyEntities$(): Observable<TaonCmsContentRevisionEntity[]> {\n return this.taonCmsContentRevisionController.getAll()\n .request!().observable.pipe(map(res => res.body?.json));\n }\n}\n","import type { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\n\nexport const TaonCmsContentRevisionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentRevisionEntity>;","export enum TaonCmsContentRevisionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentRevisionState } from './taon-cms-content-revision.models';\n\nexport namespace TaonCmsContentRevisionUtils {\n export function isActive(state: string): state is TaonCmsContentRevisionState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagController } from './taon-cms-content-tag.controller';\n\n@Injectable()\nexport class TaonCmsContentTagApiService extends TaonBaseAngularService {\n private taonCmsContentTagController = this.injectController(\n TaonCmsContentTagController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsContentTagEntity[]> {\n return this.taonCmsContentTagController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}\n","import type { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\n\nexport const TaonCmsContentTagDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentTagEntity>;","export enum TaonCmsContentTagState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentTagState } from './taon-cms-content-tag.models';\n\nexport namespace TaonCmsContentTagUtils {\n export function isActive(state: string): state is TaonCmsContentTagState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagController } from './taon-cms-tag.controller';\n\n@Injectable()\nexport class TaonCmsTagApiService extends TaonBaseAngularService {\n private taonCmsTagController = this.injectController(TaonCmsTagController);\n\n public get allMyEntities$(): Observable<TaonCmsTagEntity[]> {\n return this.taonCmsTagController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsTagController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsTagEntity } from './taon-cms-tag.entity';\n\nexport const TaonCmsTagDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsTagEntity>;","export enum TaonCmsTagState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsTagState } from './taon-cms-tag.models';\n\nexport namespace TaonCmsTagUtils {\n export function isActive(state: string): state is TaonCmsTagState {\n return state === 'active';\n }\n}","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n SecurityContext,\n inject,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n selector: '[taonCmsEditable]',\n})\nexport class TaonCmsEditableDirective {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef)\n .nativeElement;\n private readonly sanitizer = inject(DomSanitizer);\n private value = '';\n private composing = false;\n\n @Input() taonCmsEditableFormat: 'text' | 'html' = 'text';\n @Input() taonCmsEditableSingleLine = false;\n @Output() readonly taonCmsEditableChange = new EventEmitter<string>();\n\n @Input()\n set taonCmsEditable(value: string) {\n if (value === this.value) {\n return;\n }\n this.value = value;\n this.render();\n }\n\n @HostListener('compositionstart')\n compositionStart(): void {\n this.composing = true;\n }\n\n @HostListener('compositionend')\n compositionEnd(): void {\n this.composing = false;\n this.onInput();\n }\n\n @HostListener('input')\n onInput(): void {\n if (this.composing) {\n return;\n }\n const text = this.element.innerText;\n this.value =\n this.taonCmsEditableFormat === 'html'\n ? this.sanitize(this.element.innerHTML)\n : this.taonCmsEditableSingleLine\n ? text.replace(/\\s*\\n\\s*/g, ' ')\n : text;\n // Remember emitted values so Angular does not rewrite the DOM/caret on input.\n this.taonCmsEditableChange.emit(this.value);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.onInput();\n this.render();\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if (this.taonCmsEditableSingleLine && event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const selection = this.element.ownerDocument.getSelection();\n if (!selection?.rangeCount || !event.clipboardData) {\n return;\n }\n const range = selection.getRangeAt(0);\n if (!this.element.contains(range.commonAncestorContainer)) {\n return;\n }\n const pasted = event.clipboardData.getData('text/plain');\n const text = this.taonCmsEditableSingleLine\n ? pasted.replace(/\\s*\\n\\s*/g, ' ')\n : pasted;\n range.deleteContents();\n const node = this.element.ownerDocument.createTextNode(text);\n range.insertNode(node);\n range.setStartAfter(node);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n this.onInput();\n }\n\n private sanitize(value: string): string {\n return this.sanitizer.sanitize(SecurityContext.HTML, value) ?? '';\n }\n\n private render(): void {\n if (this.taonCmsEditableFormat === 'html') {\n this.element.innerHTML = this.sanitize(this.value);\n } else {\n this.element.textContent = this.value;\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { finalize } from 'rxjs';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsContentRevisionApiService } from '../../taon-cms-content-revision/taon-cms-content-revision-api.service';\nimport type { TaonCmsContentRevisionEntity } from '../../taon-cms-content-revision/taon-cms-content-revision.entity';\n\n@Component({\n selector: 'taon-cms-revision-chooser',\n templateUrl: './taon-cms-revision-chooser.component.html',\n styleUrls: ['./taon-cms-revision-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe, MatButtonModule, MatDialogModule, MatRadioModule],\n providers: [TaonCmsContentRevisionApiService],\n})\nexport class TaonCmsRevisionChooserComponent {\n readonly post = inject<TaonCmsContentEntity>(MAT_DIALOG_DATA);\n readonly revisions = signal<TaonCmsContentRevisionEntity[]>([]);\n readonly selected = signal<number | null>(null);\n readonly loading = signal(false);\n readonly applying = signal(false);\n readonly error = signal('');\n\n private readonly api = inject(TaonCmsContentRevisionApiService);\n private readonly ref = inject(\n MatDialogRef<TaonCmsRevisionChooserComponent, TaonCmsContentEntity>,\n );\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.load();\n }\n\n load(): void {\n if (this.loading() || this.applying()) {\n return;\n }\n this.selected.set(null);\n this.loading.set(true);\n this.error.set('');\n this.api.listRevisions(this.post.id).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n ).subscribe({\n next: revisions => this.revisions.set(\n [...revisions].sort((a, b) => b.revisionNumber - a.revisionNumber),\n ),\n error: (error: unknown) => {\n console.error('[taon-cms-revision-chooser] Unable to load revisions', error);\n this.error.set('Revisions could not be loaded. Please try again.');\n },\n });\n }\n\n apply(): void {\n const revisionNumber = this.selected();\n if (this.loading() || this.applying()) {\n return;\n }\n if (revisionNumber === null) {\n this.error.set('Select a revision to restore.');\n return;\n }\n this.applying.set(true);\n this.error.set('');\n this.api.restoreContent(this.post.id, {\n revisionNumber,\n expectedVersion: this.post.version,\n }).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.applying.set(false)),\n ).subscribe({\n next: post => this.ref.close(post),\n error: (error: unknown) => {\n console.error('[taon-cms-revision-chooser] Unable to restore revision', error);\n this.error.set(\n 'The revision could not be restored. If the post changed, close and ' +\n 'reopen it to load its latest version.',\n );\n },\n });\n }\n\n cancel(): void {\n if (!this.applying()) {\n this.ref.close();\n }\n }\n}\n","<h2 mat-dialog-title>Restore a revision</h2>\n<mat-dialog-content>\n <p>Restoring replaces the post, including its status, with the selected revision.</p>\n @if (loading()) {\n <p role=\"status\">Loading revisions...</p>\n } @else {\n <mat-radio-group aria-label=\"Post revisions\" [value]=\"selected()\" (change)=\"selected.set($event.value)\" [disabled]=\"applying()\">\n @for (revision of revisions(); track revision.id) {\n <mat-radio-button [value]=\"revision.revisionNumber\" [disabled]=\"!revision.snapshot\">\n <strong>Revision {{ revision.revisionNumber }}</strong>\n <span>{{ revision.createdAt | date: 'medium' }}</span>\n @if (revision.createdByUserId !== null && revision.createdByUserId !== undefined) {\n <span>User {{ revision.createdByUserId }}</span>\n }\n @if (!revision.snapshot) {\n <span>Legacy revision - cannot be restored</span>\n }\n </mat-radio-button>\n } @empty {\n <p>No revisions are available.</p>\n }\n </mat-radio-group>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" [disabled]=\"loading() || applying()\" (click)=\"load()\">Reload revisions</button>\n }\n @if (applying()) {\n <p role=\"status\">Restoring...</p>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" [disabled]=\"applying()\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || applying() || selected() === null\" (click)=\"apply()\">Apply</button>\n</mat-dialog-actions>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { finalize } from 'rxjs';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n\nexport interface TaonRelatedPostChooserData {\n postId?: number;\n excludedIds: number[];\n}\n\n@Component({\n selector: 'taon-related-post-chooser',\n templateUrl: './taon-related-post-chooser.component.html',\n styleUrls: ['./taon-related-post-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, MatDialogModule, MatRadioModule],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonRelatedPostChooserComponent {\n readonly data = inject<TaonRelatedPostChooserData>(MAT_DIALOG_DATA);\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n readonly selected = signal<number | null>(null);\n readonly query = signal('');\n readonly loading = signal(false);\n readonly error = signal('');\n readonly filteredPosts = computed(() => {\n const query = this.query().trim().toLowerCase();\n return this.posts().filter(post =>\n post.id !== this.data.postId &&\n !this.data.excludedIds.includes(post.id) &&\n `${post.id} ${post.title} ${post.slug}`.toLowerCase().includes(query),\n );\n });\n\n private readonly api = inject(TaonCmsContentApiService);\n private readonly ref = inject(\n MatDialogRef<TaonRelatedPostChooserComponent, TaonCmsContentEntity>,\n );\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.load();\n }\n\n load(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.selected.set(null);\n this.error.set('');\n this.api.allMyEntities$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: posts => this.posts.set(posts),\n error: (error: unknown) => {\n console.error('[taon-related-post-chooser] Unable to load posts', error);\n this.error.set('Posts could not be loaded. Please try again.');\n },\n });\n }\n\n search(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.query.set(event.target.value);\n this.selected.set(null);\n }\n }\n\n choose(): void {\n if (this.loading() || this.error()) {\n return;\n }\n const post = this.filteredPosts().find(post => post.id === this.selected());\n if (!post) {\n this.error.set('Select a related post.');\n return;\n }\n this.ref.close(post);\n }\n\n cancel(): void {\n this.ref.close();\n }\n}\n","<h2 mat-dialog-title>Add related post</h2>\n<mat-dialog-content>\n <label class=\"search-field\">\n <span>Search posts</span>\n <input type=\"search\" aria-label=\"Search posts by ID, title or slug\" [value]=\"query()\" [disabled]=\"loading()\" (input)=\"search($event)\" />\n </label>\n @if (loading()) {\n <p role=\"status\">Loading posts...</p>\n } @else if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" (click)=\"load()\">Try again</button>\n } @else {\n <mat-radio-group aria-label=\"Related post\" [value]=\"selected()\" (change)=\"selected.set($event.value)\">\n @for (post of filteredPosts(); track post.id) {\n <mat-radio-button [value]=\"post.id\">\n #{{ post.id }} - {{ post.title }} <span class=\"slug\">{{ post.slug }}</span>\n </mat-radio-button>\n } @empty {\n <p>No matching posts available.</p>\n }\n </mat-radio-group>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || !!error() || selected() === null\" (click)=\"choose()\">Add related post</button>\n</mat-dialog-actions>\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TaonPermissionApiService } from '@taon-dev/session/websql';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql';\nimport { TaonConfirmDialogComponent } from '@taon-dev/ui/websql';\nimport { Observable, Subscription, finalize } from 'rxjs';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsUpdateContent } from '../../taon-cms-content/taon-cms-content.models';\nimport { TaonCmsContentType } from '../../taon-cms-content/taon-cms-content.models';\nimport { TaonCmsRevisionChooserComponent } from '../taon-cms-revision-chooser/taon-cms-revision-chooser.component';\nimport { TaonRelatedPostChooserComponent } from '../taon-related-post-chooser/taon-related-post-chooser.component';\nimport type { TaonRelatedPostChooserData } from '../taon-related-post-chooser/taon-related-post-chooser.component';\n\nimport { TaonCmsEditableDirective } from './taon-cms-editable.directive';\nimport type { TaonCmsPostDraft, TaonCmsPostMode } from './taon-cms-post.models';\n//#endregion\n\n@Component({\n selector: 'taon-cms-post',\n templateUrl: './taon-cms-post.component.html',\n styleUrls: ['./taon-cms-post.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatRadioModule,\n MatSelectModule,\n TaonCmsEditableDirective,\n ],\n providers: [TaonCmsContentApiService, TaonPermissionApiService],\n})\nexport class TaonCmsPostComponent {\n //#region fields and getters\n readonly post = input<TaonCmsContentEntity | null>(null);\n\n readonly mode = model<TaonCmsPostMode>('view');\n\n readonly changed = output<TaonCmsContentEntity>();\n\n readonly deleted = output<TaonCmsContentEntity>();\n\n readonly cancelled = output<void>();\n\n readonly currentPost = signal<TaonCmsContentEntity | null>(null);\n\n readonly draft = signal<TaonCmsPostDraft>({\n type: TaonCmsContentType.Normal,\n title: '',\n slug: '',\n excerpt: '',\n body: '',\n videoKey: null,\n audioKey: null,\n attachmentKey: null,\n });\n\n readonly postTypes = [\n { value: TaonCmsContentType.Normal, label: 'Normal post' },\n { value: TaonCmsContentType.Video, label: 'Video post' },\n { value: TaonCmsContentType.Audio, label: 'Audio post' },\n { value: TaonCmsContentType.Attachment, label: 'Attachment post' },\n ];\n\n private readonly mediaAttachments = [\n {\n type: TaonCmsContentType.Video,\n key: 'videoKey',\n heading: 'Video Attachment',\n uploadLabel: 'Upload video',\n accept: 'video/*',\n },\n {\n type: TaonCmsContentType.Audio,\n key: 'audioKey',\n heading: 'Audio Attachment',\n uploadLabel: 'Upload audio',\n accept: 'audio/*',\n },\n {\n type: TaonCmsContentType.Attachment,\n key: 'attachmentKey',\n heading: 'File Attachment',\n uploadLabel: 'Upload file',\n accept: '',\n },\n ] as const;\n\n readonly mediaAttachment = computed(() =>\n this.mediaAttachments.find(media => media.type === this.draft().type),\n );\n\n readonly busy = signal(false);\n\n readonly uploading = signal(false);\n\n readonly dialogOpen = signal(false);\n\n readonly error = signal('');\n\n readonly relatedPosts = signal<TaonCmsContentEntity[]>([]);\n\n readonly relatedPostsLoading = signal(false);\n\n readonly relatedPostsError = signal('');\n\n readonly permissions = signal<TaonPermissionEntity[]>([]);\n\n readonly permissionsLoading = signal(false);\n\n readonly permissionsError = signal('');\n\n readonly permissionOptions = signal<TaonPermissionEntity[]>([]);\n\n readonly permissionOptionsLoading = signal(false);\n\n readonly permissionOptionsError = signal('');\n\n readonly selectedPermissionId = signal<number | null>(null);\n\n readonly availablePermissions = computed(() => {\n const assignedIds = new Set(\n this.permissions().map(permission => permission.id),\n );\n return this.permissionOptions().filter(\n permission => !assignedIds.has(permission.id),\n );\n });\n\n readonly editing = computed(\n () => this.mode() === 'edit' || this.mode() === 'add',\n );\n\n readonly canSave = computed(\n () =>\n !!this.draft().title.trim() &&\n !!this.draft().slug.trim() &&\n !this.relatedPostsLoading() &&\n !this.relatedPostsError() &&\n !this.permissionsLoading() &&\n !this.permissionsError(),\n );\n\n readonly canPublish = computed(() => {\n const post = this.currentPost();\n return !!post && post.status !== 'published';\n });\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly permissionApi = inject(TaonPermissionApiService);\n\n private readonly dialog = inject(MatDialog);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private relatedPostsLoad?: Subscription;\n\n private permissionsLoad?: Subscription;\n //#endregion\n\n //#region constructor\n constructor() {\n effect(() => {\n const post = this.post();\n untracked(() => this.setPost(post));\n });\n effect(() => {\n if (this.editing()) {\n untracked(() => this.loadPermissionOptions());\n }\n });\n }\n //#endregion\n\n //#region methods / load related posts\n loadRelatedPosts(): void {\n if (this.busy() || this.relatedPostsLoading()) {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.relatedPostsLoading.set(true);\n this.relatedPostsError.set('');\n this.relatedPostsLoad = this.api\n .listRelatedPosts(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.relatedPostsLoading.set(false)),\n )\n .subscribe({\n next: posts => this.relatedPosts.set(posts),\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to load related posts', error);\n this.relatedPostsError.set(\n 'Related posts could not be loaded. Please try again.',\n );\n },\n });\n }\n //#endregion\n\n //#region methods / add related post\n addRelatedPost(): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading() ||\n this.relatedPostsError()\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonRelatedPostChooserComponent,\n TaonRelatedPostChooserData,\n TaonCmsContentEntity\n >(TaonRelatedPostChooserComponent, {\n data: {\n postId: this.currentPost()?.id,\n excludedIds: this.relatedPosts().map(post => post.id),\n },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(post => {\n this.dialogOpen.set(false);\n if (\n post &&\n post.id !== this.currentPost()?.id &&\n !this.relatedPosts().some(related => related.id === post.id)\n ) {\n this.relatedPosts.update(posts => [...posts, post]);\n }\n });\n }\n //#endregion\n\n //#region methods / remove related post\n removeRelatedPost(id: number): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading() ||\n this.relatedPostsError()\n ) {\n return;\n }\n this.relatedPosts.update(posts => posts.filter(post => post.id !== id));\n }\n //#endregion\n\n //#region methods / load permissions\n loadPermissions(): void {\n if (this.busy() || this.permissionsLoading()) {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.permissionsLoading.set(true);\n this.permissionsError.set('');\n this.permissionsLoad = this.api\n .listPermissions(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.permissionsLoading.set(false)),\n )\n .subscribe({\n next: permissions => this.permissions.set(permissions),\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to load permissions', error);\n this.permissionsError.set(\n 'Permissions could not be loaded. Please try again.',\n );\n },\n });\n }\n //#endregion\n\n //#region methods / add permission\n addPermission(): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n const permissionId = this.selectedPermissionId();\n const permission = this.availablePermissions().find(\n item => item.id === permissionId,\n );\n if (permission) {\n this.permissions.update(permissions => [...permissions, permission]);\n this.selectedPermissionId.set(null);\n }\n }\n //#endregion\n\n //#region methods / remove permission\n removePermission(id: number): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n this.permissions.update(items =>\n items.filter(permission => permission.id !== id),\n );\n }\n //#endregion\n\n //#region methods / load permission options\n loadPermissionOptions(): void {\n if (\n this.permissionOptionsLoading() ||\n this.permissionOptions().length > 0\n ) {\n return;\n }\n this.permissionOptionsLoading.set(true);\n this.permissionOptionsError.set('');\n this.permissionApi.allMyEntities$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.permissionOptionsLoading.set(false)),\n )\n .subscribe({\n next: permissions => this.permissionOptions.set(permissions),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load permission options',\n error,\n );\n this.permissionOptionsError.set(\n 'Available permissions could not be loaded. Please try again.',\n );\n },\n });\n }\n //#endregion\n\n //#region methods / update draft\n updateDraft<K extends keyof TaonCmsPostDraft>(\n field: K,\n value: TaonCmsPostDraft[K],\n ): void {\n this.draft.update(draft => ({ ...draft, [field]: value }));\n }\n //#endregion\n\n //#region methods / file selected\n async fileSelected(event: Event): Promise<void> {\n if (!(event.target instanceof HTMLInputElement)) {\n this.error.set('Unable to read the selected media file.');\n return;\n }\n const input = event.target;\n const file = input.files?.[0];\n if (!file) {\n return;\n }\n const media = this.mediaAttachment();\n if (!media || !this.editing() || this.busy() || this.dialogOpen()) {\n input.value = '';\n return;\n }\n const draft = this.draft();\n this.busy.set(true);\n this.uploading.set(true);\n this.error.set('');\n try {\n const object = await this.api.uploadMedia(file);\n if (!this.destroyRef.destroyed && this.draft() === draft) {\n this.updateDraft(media.key, object.key);\n }\n } catch (error: unknown) {\n console.error('[taon-cms-post] Unable to upload media', error);\n this.error.set('The media could not be uploaded. Please try again.');\n } finally {\n this.busy.set(false);\n this.uploading.set(false);\n input.value = '';\n }\n }\n //#endregion\n\n //#region methods / remove media\n removeMedia(): void {\n const media = this.mediaAttachment();\n if (!media || !this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n this.updateDraft(media.key, null);\n }\n //#endregion\n\n //#region methods / update slug\n updateSlug(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.updateDraft('slug', event.target.value);\n }\n }\n //#endregion\n\n //#region methods / edit\n edit(): void {\n if (this.mode() !== 'view' || this.busy() || this.dialogOpen()) {\n return;\n }\n if (!this.requirePost()) {\n return;\n }\n this.error.set('');\n this.mode.set('edit');\n }\n //#endregion\n\n //#region methods / cancel\n cancel(): void {\n if (this.busy() || this.dialogOpen()) {\n return;\n }\n this.setPost(this.currentPost());\n this.error.set('');\n if (this.editing()) {\n this.mode.set('view');\n }\n this.cancelled.emit();\n }\n //#endregion\n\n //#region methods / save\n save(): void {\n if (this.busy() || this.dialogOpen() || !this.editing()) {\n return;\n }\n if (!this.canSave()) {\n this.error.set('A title and slug are required.');\n return;\n }\n if (this.mode() === 'add') {\n this.persist(\n this.api.createContent({\n ...this.draft(),\n relatedPostIds: this.relatedPosts().map(post => post.id),\n permissionIds: this.permissions().map(permission => permission.id),\n }),\n );\n } else {\n const post = this.requirePost();\n if (post) {\n this.persist(this.api.updateContent(post.id, this.updateInput(post)));\n }\n }\n }\n //#endregion\n\n //#region methods / publish\n publish(): void {\n if (\n this.busy() ||\n this.dialogOpen() ||\n !this.canPublish() ||\n this.mode() === 'view-clean' ||\n this.mode() === 'add'\n ) {\n return;\n }\n if (this.editing() && !this.canSave()) {\n this.error.set('A title and slug are required.');\n return;\n }\n const post = this.requirePost();\n if (post) {\n this.persist(\n this.api.updateContent(post.id, {\n ...(this.editing()\n ? this.updateInput(post)\n : { expectedVersion: post.version }),\n status: 'published',\n publishedAt: new Date(),\n }),\n );\n }\n }\n //#endregion\n\n //#region methods / revert\n revert(): void {\n const post = this.requirePost();\n if (\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean'\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonCmsRevisionChooserComponent,\n TaonCmsContentEntity,\n TaonCmsContentEntity\n >(TaonCmsRevisionChooserComponent, {\n data: post,\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(restored => {\n this.dialogOpen.set(false);\n if (restored) {\n this.acceptPost(restored);\n }\n });\n }\n //#endregion\n\n //#region methods / delete\n delete(): void {\n const post = this.requirePost();\n if (\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean'\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: 'Delete post?',\n message:\n 'This archives the post. It can be restored from its revisions.',\n confirmText: 'Delete',\n },\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n this.dialogOpen.set(false);\n if (confirmed) {\n this.persist(this.api.deleteContent(post.id, post.version), true);\n }\n });\n }\n //#endregion\n\n //#region methods / update input\n private updateInput(post: TaonCmsContentEntity): TaonCmsUpdateContent {\n return {\n ...this.draft(),\n relatedPostIds: this.relatedPosts().map(related => related.id),\n permissionIds: this.permissions().map(permission => permission.id),\n expectedVersion: post.version,\n };\n }\n //#endregion\n\n //#region methods / require post\n private requirePost(): TaonCmsContentEntity | null {\n const post = this.currentPost();\n if (!post) {\n this.error.set('No post is loaded.');\n }\n return post;\n }\n //#endregion\n\n //#region methods / set post\n private setPost(post: TaonCmsContentEntity | null): void {\n this.relatedPostsLoad?.unsubscribe();\n this.permissionsLoad?.unsubscribe();\n this.relatedPostsLoading.set(false);\n this.relatedPostsError.set('');\n this.permissionsLoading.set(false);\n this.permissionsError.set('');\n this.currentPost.set(post);\n this.relatedPosts.set(post?.relatedPosts ?? []);\n this.permissions.set(post?.permissions ?? []);\n this.selectedPermissionId.set(null);\n this.draft.set({\n type: post?.type ?? TaonCmsContentType.Normal,\n title: post?.title ?? '',\n slug: post?.slug ?? '',\n excerpt: post?.excerpt ?? '',\n body: post?.body ?? '',\n videoKey: post?.videoKey ?? null,\n audioKey: post?.audioKey ?? null,\n attachmentKey: post?.attachmentKey ?? null,\n });\n if (\n post &&\n post.relatedPosts === undefined &&\n this.mode() !== 'view-clean'\n ) {\n this.loadRelatedPosts();\n }\n if (\n post &&\n post.permissions === undefined &&\n this.mode() !== 'view-clean'\n ) {\n this.loadPermissions();\n }\n }\n //#endregion\n\n //#region methods / accept post\n private acceptPost(post: TaonCmsContentEntity): void {\n this.setPost(post);\n this.error.set('');\n this.mode.set('view');\n this.changed.emit(post);\n }\n //#endregion\n\n //#region methods / persist\n private persist(\n request: Observable<TaonCmsContentEntity>,\n deleting = false,\n ): void {\n if (this.busy() || this.dialogOpen() || this.mode() === 'view-clean') {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n request\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: post => {\n this.acceptPost(post);\n if (deleting) {\n this.deleted.emit(post);\n }\n },\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to save post', error);\n this.error.set(\n 'The post could not be saved. Check the slug and your connection. ' +\n 'If another user changed it, close and reopen the post before retrying.',\n );\n },\n });\n }\n //#endregion\n}\n","@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"Post type\"\n [value]=\"draft().type\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"updateDraft('type', $event.value)\">\n @for (type of postTypes; track type.value) {\n <mat-radio-button [value]=\"type.value\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditableSingleLine]=\"true\"\n [taonCmsEditable]=\"draft().title\"\n (taonCmsEditableChange)=\"updateDraft('title', $event)\"></div>\n <div\n class=\"post-excerpt editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</button>\n } @else {\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql';\n//#endregion\n\nexport const TaonCmsPostRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-post.component').then(m => m.TaonCmsPostComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsPostRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsPostRoutes;","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivatedRoute, RouterLink } from '@angular/router';\nimport { map } from 'rxjs';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostComponent } from '../taon-cms-post/taon-cms-post.component';\n\n@Component({\n selector: 'taon-cms-post-details-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, MatButtonModule, RouterLink, TaonCmsPostComponent],\n template: `\n @if (post$ | async; as post) {\n <a mat-button routerLink=\"../\">Back to Posts</a>\n <taon-cms-post [post]=\"post\"></taon-cms-post>\n }\n `,\n})\nexport class TaonCmsPostDetailsPageComponent {\n readonly post$ = inject(ActivatedRoute).data.pipe(\n map(data => data['post'] as TaonCmsContentEntity),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n viewChild,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostComponent } from '../taon-cms-post/taon-cms-post.component';\n\nexport interface TaonCmsPostEditDialogData {\n post?: TaonCmsContentEntity;\n mode: 'edit' | 'add';\n}\n\n@Component({\n selector: 'taon-cms-post-edit-dialog',\n templateUrl: './taon-cms-post-edit-dialog.component.html',\n styleUrls: ['./taon-cms-post-edit-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, MatDialogModule, MatIconModule, TaonCmsPostComponent],\n})\nexport class TaonCmsPostEditDialogComponent {\n readonly data = inject<TaonCmsPostEditDialogData>(MAT_DIALOG_DATA);\n readonly editor = viewChild(TaonCmsPostComponent);\n readonly changed = new EventEmitter<TaonCmsContentEntity>();\n private readonly ref = inject(MatDialogRef<TaonCmsPostEditDialogComponent>);\n\n close(): void {\n if (!this.editor()?.busy() && !this.editor()?.dialogOpen()) {\n this.ref.close();\n }\n }\n\n deleted(post: TaonCmsContentEntity): void {\n this.ref.close(post);\n }\n}\n","<header class=\"dialog-header\">\n <h2>{{ data.mode === 'add' ? 'Add post' : 'Manage post' }}</h2>\n <button mat-icon-button type=\"button\" aria-label=\"Close post editor\" [disabled]=\"editor()?.busy() || editor()?.dialogOpen()\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</header>\n<taon-cms-post\n [post]=\"data.post ?? null\"\n [mode]=\"data.mode\"\n (changed)=\"changed.emit($event)\"\n (deleted)=\"deleted($event)\"\n (cancelled)=\"close()\" />\n","//#region imports\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n ViewChild,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport {\n TaonConfirmDialogComponent,\n TaonDatatableComponent,\n} from '@taon-dev/ui/websql';\nimport { Subject, finalize, takeUntil } from 'rxjs';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostEditDialogComponent } from '../taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component';\nimport type { TaonCmsPostEditDialogData } from '../taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component';\n//#endregion\n\n@Component({\n selector: 'app-taon-cms-posts-backoffice',\n templateUrl: './taon-cms-posts-backoffice.component.html',\n styleUrls: ['./taon-cms-posts-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, TaonDatatableComponent],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonCmsPostsBackofficeComponent {\n @ViewChild(TaonDatatableComponent)\n readonly datatable!: TaonDatatableComponent;\n\n readonly taonCmsContentApiService = inject(TaonCmsContentApiService);\n\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly deleting = signal<number | null>(null);\n\n readonly error = signal('');\n\n private readonly dialog = inject(MatDialog);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly cancelLoad$ = new Subject<void>();\n\n public get crud() {\n return this.taonCmsContentApiService.taonCmsContentController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true },\n { header: 'Title', field: 'title', sortable: true },\n { header: 'Status', field: 'status', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'edit',\n tooltip: 'Edit post',\n click: (post: TaonCmsContentEntity) => this.edit(post),\n },\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Post details',\n click: (post: TaonCmsContentEntity) => this.openDetails(post),\n },\n {\n type: 'icon',\n icon: 'delete',\n tooltip: 'Delete (archive) post',\n disabled: (post: TaonCmsContentEntity) =>\n post.status === 'archived' || this.deleting() !== null,\n click: (post: TaonCmsContentEntity) => this.delete(post),\n },\n ],\n },\n ];\n\n reload(): void {\n this.datatable.reload();\n }\n\n ngAfterViewInit(): void {\n this.reload();\n }\n\n add(): void {\n this.openEditor({ mode: 'add' });\n }\n\n edit(post: TaonCmsContentEntity): void {\n this.openEditor({ mode: 'edit', post });\n }\n\n openDetails(post: TaonCmsContentEntity): void {\n const postsRoute = this.route.parent;\n if (!postsRoute) {\n this.error.set('The Post details route is unavailable.');\n return;\n }\n void this.router.navigate([post.id], { relativeTo: postsRoute });\n }\n\n delete(post: TaonCmsContentEntity): void {\n if (this.deleting() !== null || post.status === 'archived') {\n return;\n }\n this.deleting.set(post.id);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: 'Delete post?',\n message:\n 'This archives the post. It can be restored from its revisions.',\n confirmText: 'Delete',\n },\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n if (!confirmed) {\n this.deleting.set(null);\n return;\n }\n this.error.set('');\n this.taonCmsContentApiService\n .deleteContent(post.id, post.version)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.deleting.set(null)),\n )\n .subscribe({\n next: () => this.reload(),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to delete post',\n error,\n );\n this.error.set(\n 'The post could not be deleted. Refresh the table before retrying.',\n );\n },\n });\n });\n }\n\n private openEditor(data: TaonCmsPostEditDialogData): void {\n const ref = this.dialog.open(TaonCmsPostEditDialogComponent, {\n data,\n width: '100vw',\n height: '100dvh',\n maxWidth: '100vw',\n maxHeight: '100dvh',\n disableClose: true,\n autoFocus: 'first-tabbable',\n });\n ref.componentInstance.changed\n .pipe(takeUntil(ref.afterClosed()), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n}\n","<h1>CMS posts</h1>\n@if (loading()) {\n <p role=\"status\">Loading posts...</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'status']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\">\n</taon-datatable>\n","//#region imports\nimport { inject } from '@angular/core';\nimport { Routes } from '@angular/router';\nimport { ResolveFn } from '@angular/router';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n//#endregion\n\nconst resolvePost: ResolveFn<TaonCmsContentEntity> = async route => {\n const id = Number(route.paramMap.get('id'));\n if (!Number.isSafeInteger(id) || id <= 0) {\n throw new Error('Invalid Post ID');\n }\n const apiService = inject(TaonCmsContentApiService);\n const post = (await apiService.taonCmsContentController.getBy(id).request())\n .body.json;\n if (!post) {\n throw new Error('Post not found');\n }\n return post;\n};\n\nexport const TaonCmsPostsBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-cms-posts-backoffice.component').then(\n m => m.TaonCmsPostsBackofficeComponent,\n ),\n },\n {\n path: ':id',\n data: { hideInNavigation: true },\n providers: [TaonCmsContentApiService],\n resolve: { post: resolvePost },\n loadComponent: () =>\n import('../taon-cms-post-details-page/taon-cms-post-details-page.component').then(\n m => m.TaonCmsPostDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonCmsPostsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsPostsBackofficeRoutes;\n","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './app.data'; \nexport * from './build-info._auto-generated_'; \nexport * from './my-organization-proj'; \nexport * from './start-cli'; \nexport * from './taon-cms.abstract.context'; \nexport * from './i18n/lib.translation'; \nexport * from './taon-cms-assets-backoffice/taon-cms-assets-backoffice.component'; // @browser\nexport * from './taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes'; // @browser\nexport * from './taon-cms-backoffice/taon-cms-backoffice.component'; // @browser\nexport * from './taon-cms-backoffice/taon-cms-backoffice.models'; \nexport * from './taon-cms-backoffice/taon-cms-backoffice.routes'; // @browser\nexport * from './taon-cms-category/taon-cms-category-api.service'; // @browser\nexport * from './taon-cms-category/taon-cms-category.abstract.context'; \nexport * from './taon-cms-category/taon-cms-category.constants'; \nexport * from './taon-cms-category/taon-cms-category.controller'; \nexport * from './taon-cms-category/taon-cms-category.entity'; \nexport * from './taon-cms-category/taon-cms-category.middleware'; \nexport * from './taon-cms-category/taon-cms-category.models'; \nexport * from './taon-cms-category/taon-cms-category.provider'; \nexport * from './taon-cms-category/taon-cms-category.repository'; \nexport * from './taon-cms-category/taon-cms-category.subscriber'; \nexport * from './taon-cms-category/taon-cms-category.utils'; \nexport * from './taon-cms-comment/taon-cms-comment-api.service'; // @browser\nexport * from './taon-cms-comment/taon-cms-comment.abstract.context'; \nexport * from './taon-cms-comment/taon-cms-comment.constants'; \nexport * from './taon-cms-comment/taon-cms-comment.controller'; \nexport * from './taon-cms-comment/taon-cms-comment.entity'; \nexport * from './taon-cms-comment/taon-cms-comment.middleware'; \nexport * from './taon-cms-comment/taon-cms-comment.models'; \nexport * from './taon-cms-comment/taon-cms-comment.provider'; \nexport * from './taon-cms-comment/taon-cms-comment.repository'; \nexport * from './taon-cms-comment/taon-cms-comment.subscriber'; \nexport * from './taon-cms-comment/taon-cms-comment.utils'; \nexport * from './taon-cms-content/taon-cms-content-api.service'; // @browser\nexport * from './taon-cms-content/taon-cms-content-storage.controller'; \nexport * from './taon-cms-content/taon-cms-content.abstract.context'; \nexport * from './taon-cms-content/taon-cms-content.config.service'; // @browser\nexport * from './taon-cms-content/taon-cms-content.constants'; \nexport * from './taon-cms-content/taon-cms-content.controller'; \nexport * from './taon-cms-content/taon-cms-content.entity'; \nexport * from './taon-cms-content/taon-cms-content.middleware'; \nexport * from './taon-cms-content/taon-cms-content.models'; \nexport * from './taon-cms-content/taon-cms-content.provider'; \nexport * from './taon-cms-content/taon-cms-content.repository'; \nexport * from './taon-cms-content/taon-cms-content.subscriber'; \nexport * from './taon-cms-content/taon-cms-content.utils'; \nexport * from './taon-cms-content/taon-cms-content.validation'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset-api.service'; // @browser\nexport * from './taon-cms-content-asset/taon-cms-content-asset.abstract.context'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.constants'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.controller'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.entity'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.middleware'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.models'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.provider'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.repository'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.subscriber'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.utils'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission-api.service'; // @browser\nexport * from './taon-cms-content-permission/taon-cms-content-permission.abstract.context'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.constants'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.controller'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.entity'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.middleware'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.models'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.provider'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.repository'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.subscriber'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.utils'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision-api.service'; // @browser\nexport * from './taon-cms-content-revision/taon-cms-content-revision.abstract.context'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.constants'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.controller'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.entity'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.middleware'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.models'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.provider'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.repository'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.subscriber'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.utils'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag-api.service'; // @browser\nexport * from './taon-cms-content-tag/taon-cms-content-tag.abstract.context'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.constants'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.controller'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.entity'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.middleware'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.models'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.provider'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.repository'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.subscriber'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.utils'; \nexport * from './taon-cms-tag/taon-cms-tag-api.service'; // @browser\nexport * from './taon-cms-tag/taon-cms-tag.abstract.context'; \nexport * from './taon-cms-tag/taon-cms-tag.constants'; \nexport * from './taon-cms-tag/taon-cms-tag.controller'; \nexport * from './taon-cms-tag/taon-cms-tag.entity'; \nexport * from './taon-cms-tag/taon-cms-tag.middleware'; \nexport * from './taon-cms-tag/taon-cms-tag.models'; \nexport * from './taon-cms-tag/taon-cms-tag.provider'; \nexport * from './taon-cms-tag/taon-cms-tag.repository'; \nexport * from './taon-cms-tag/taon-cms-tag.subscriber'; \nexport * from './taon-cms-tag/taon-cms-tag.utils'; \nexport * from './taon-posts/taon-cms-post/taon-cms-editable.directive'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post.component'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post.models'; \nexport * from './taon-posts/taon-cms-post/taon-cms-post.routes'; // @browser\nexport * from './taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component'; // @browser\nexport * from './taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models'; \nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes'; // @browser\nexport * from './taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component'; // @browser\nexport * from './taon-posts/taon-related-post-chooser/taon-related-post-chooser.component'; // @browser","export * from './migrations';\nexport * from './env';\nexport * from './index._auto-generated_';\nexport * from './my-organization-proj';\nexport * from './taon-cms-content/taon-cms-content-storage.controller';\nexport * from './taon-posts/taon-related-post-chooser'; // @browser\n/* */ \nexport default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","map","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA;AAIO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,iBAAiB,CAAA;AAAhE,IAAA,WAAA,GAAA;;QACG,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,EACvD,yBAA6C,EAC9C;;IAoDH;;IAjDE,MAAM,EAAE,CAAC,WAAwB,EAAA;AAC/B,QAAA,MAAM,WAAW,CAAC,gBAAgB,EAAE;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC;AAC/C,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE,UAAU;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,WAAW,EAAE,eAAe;AAC7B,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,aAAa,EAAE;AACb,wBAAA,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG;wBAC/B,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC;AAC/C,qBAAA;AACD,oBAAA,mBAAmB,EAAE;AACnB,wBAAA,CAAC,SAAS,CAAC,QAAQ,GAAG;AACpB,4BAAA,eAAe,CAAC,cAAc;AAC9B,4BAAA,eAAe,CAAC,cAAc;AAC/B,yBAAA;AACD,wBAAA,CAAC,SAAS,CAAC,eAAe,GAAG,GAAG;AACjC,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC;AAEF,YAAA,MAAM,WAAW,CAAC,iBAAiB,EAAE;QACvC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC;AAC3C,YAAA,MAAM,WAAW,CAAC,mBAAmB,EAAE;QACzC;gBAAU;AACR,YAAA,MAAM,WAAW,CAAC,OAAO,EAAE;QAC7B;IACF;;;IAIA,MAAM,IAAI,CAAC,WAAwB,EAAA;AACjC,QAAA,MAAM,WAAW,CAAC,gBAAgB,EAAE;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,EAAE;AAEjE,YAAA,MAAM,WAAW,CAAC,iBAAiB,EAAE;QACvC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC;AAC3C,YAAA,MAAM,WAAW,CAAC,mBAAmB,EAAE;QACzC;gBAAU;AACR,YAAA,MAAM,WAAW,CAAC,OAAO,EAAE;QAC7B;IACF;CAED;AAvDY,gCAAgC,GAAA,UAAA,CAAA;AAH5C,IAAA,aAAa,CAAC;AACb,QAAA,SAAS,EAAE,kCAAkC;KAC9C;AACY,CAAA,EAAA,gCAAgC,CAuD5C;AACD;;ACtEA;AAEA;AACO,MAAM,iCAAiC,GAAG;AAC/C,8BAA0B,gCAAgC;;AAE5D;;ACNA;;ACAA;AAEA;AACO,MAAM,uCAAuC,GAAG,MAAuB,SAAS,CAAC,kBAAkB;AAC1G;AACO,MAAM,yCAAyC,GAAG,MAAuB,SAAS,CAAC,qCAAqC;AAC/H;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,6DAA6D,GAAG;AAC7E;AACO,MAAM,8DAA8D,GAAG;AAC9E;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,oCAAoC,GAAG,MAAuB,SAAS,CAAC,EAAG;AACxF;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,oDAAoD,GAAG;AACpE;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,oDAAoD,GAAG;AACpE;AACO,MAAM,oDAAoD,GAAG;AACpE;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,sDAAsD,GAAG;AACtE;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,sEAAsE,GAAG;AACtF;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,sDAAsD,GAAG;AACtE;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,uDAAuD,GAAG;AACvE;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,oDAAoD,GAAG;AACpE;AACO,MAAM,0EAA0E,GAAG;AAC1F;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,sDAAsD,GAAG;AACtE;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,+CAA+C,GAAG;AAC/D;;AChJA;AAEA;AACO,MAAM,kCAAkC,GAAG,MAAuB,SAAS,CAAC,kBAAkB;AACrG;AACO,MAAM,oCAAoC,GAAG,MAAuB,SAAS,CAAC,qCAAqC;AAC1H;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,wDAAwD,GAAG;AACxE;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,+BAA+B,GAAG,MAAuB,SAAS,CAAC,EAAG;AACnF;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,2BAA2B,GAAG;AAC3C;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,yBAAyB,GAAG;AACzC;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,0BAA0B,GAAG;AAC1C;AACO,MAAM,0CAA0C,GAAG;AAC1D;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,2BAA2B,GAAG;AAC3C;AACO,MAAM,0CAA0C,GAAG;AAC1D;AACO,MAAM,oDAAoD,GAAG;AACpE;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,oDAAoD,GAAG;AACpE;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,iEAAiE,GAAG;AACjF;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,qEAAqE,GAAG;AACrF;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,uBAAuB,GAAG;AACvC;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,0CAA0C,GAAG;AAC1D;AACO,MAAM,0CAA0C,GAAG;AAC1D;;AChJA;AAEA;AACO,MAAM,mCAAmC,GAAG,MAAuB,SAAS,CAAC,kBAAkB;AACtG;AACO,MAAM,qCAAqC,GAAG,MAAuB,SAAS,CAAC,qCAAqC;AAC3H;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,0BAA0B,GAAG;AAC1C;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,0DAA0D,GAAG;AAC1E;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,gCAAgC,GAAG,MAAuB,SAAS,CAAC,EAAG;AACpF;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,2BAA2B,GAAG;AAC3C;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,kEAAkE,GAAG;AAClF;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,0CAA0C,GAAG;AAC1D;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,0CAA0C,GAAG;AAC1D;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,sEAAsE,GAAG;AACtF;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,wBAAwB,GAAG;AACxC;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,2CAA2C,GAAG;AAC3D;;AChJA;AAEA;AACO,MAAM,iCAAiC,GAAG,MAAuB,SAAS,CAAC,kBAAkB;AACpG;AACO,MAAM,mCAAmC,GAAG,MAAuB,SAAS,CAAC,qCAAqC;AACzH;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,uDAAuD,GAAG;AACvE;AACO,MAAM,wDAAwD,GAAG;AACxE;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,8BAA8B,GAAG,MAAuB,SAAS,CAAC,EAAG;AAClF;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,0BAA0B,GAAG;AAC1C;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,wBAAwB,GAAG;AACxC;AACO,MAAM,2BAA2B,GAAG;AAC3C;AACO,MAAM,yBAAyB,GAAG;AACzC;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,0BAA0B,GAAG;AAC1C;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,gEAAgE,GAAG;AAChF;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,oEAAoE,GAAG;AACpF;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,sBAAsB,GAAG;AACtC;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,0CAA0C,GAAG;AAC1D;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,yCAAyC,GAAG;AACzD;;AChJA;AAEA;AACO,MAAM,2CAA2C,GAAG,MAAuB,SAAS,CAAC,kBAAkB;AAC9G;AACO,MAAM,6CAA6C,GAAG,MAAuB,SAAS,CAAC,qCAAqC;AACnI;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,iEAAiE,GAAG;AACjF;AACO,MAAM,kEAAkE,GAAG;AAClF;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,wCAAwC,GAAG,MAAuB,SAAS,CAAC,EAAG;AAC5F;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,uCAAuC,GAAG;AACvD;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,sDAAsD,GAAG;AACtE;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,mCAAmC,GAAG;AACnD;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,6DAA6D,GAAG;AAC7E;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,wDAAwD,GAAG;AACxE;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,wDAAwD,GAAG;AACxE;AACO,MAAM,wDAAwD,GAAG;AACxE;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,6DAA6D,GAAG;AAC7E;AACO,MAAM,qDAAqD,GAAG;AACrE;AACO,MAAM,0DAA0D,GAAG;AAC1E;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,0EAA0E,GAAG;AAC1F;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,0DAA0D,GAAG;AAC1E;AACO,MAAM,uDAAuD,GAAG;AACvE;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,sDAAsD,GAAG;AACtE;AACO,MAAM,2DAA2D,GAAG;AAC3E;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,wDAAwD,GAAG;AACxE;AACO,MAAM,8EAA8E,GAAG;AAC9F;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,0DAA0D,GAAG;AAC1E;AACO,MAAM,yDAAyD,GAAG;AACzE;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,oDAAoD,GAAG;AACpE;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,mDAAmD,GAAG;AACnE;;AChJA;AAEA;AACO,MAAM,oCAAoC,GAAG,MAAuB,SAAS,CAAC,kBAAkB;AACvG;AACO,MAAM,sCAAsC,GAAG,MAAuB,SAAS,CAAC,qCAAqC;AAC5H;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,0DAA0D,GAAG;AAC1E;AACO,MAAM,2DAA2D,GAAG;AAC3E;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,iCAAiC,GAAG,MAAuB,SAAS,CAAC,EAAG;AACrF;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,gCAAgC,GAAG;AAChD;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,2BAA2B,GAAG;AAC3C;AACO,MAAM,8BAA8B,GAAG;AAC9C;AACO,MAAM,4BAA4B,GAAG;AAC5C;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,iCAAiC,GAAG;AACjD;AACO,MAAM,6BAA6B,GAAG;AAC7C;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,sDAAsD,GAAG;AACtE;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,wCAAwC,GAAG;AACxD;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,sDAAsD,GAAG;AACtE;AACO,MAAM,8CAA8C,GAAG;AAC9D;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,oCAAoC,GAAG;AACpD;AACO,MAAM,yCAAyC,GAAG;AACzD;AACO,MAAM,mEAAmE,GAAG;AACnF;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,gDAAgD,GAAG;AAChE;AACO,MAAM,0CAA0C,GAAG;AAC1D;AACO,MAAM,0CAA0C,GAAG;AAC1D;AACO,MAAM,qCAAqC,GAAG;AACrD;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,+CAA+C,GAAG;AAC/D;AACO,MAAM,oDAAoD,GAAG;AACpE;AACO,MAAM,2CAA2C,GAAG;AAC3D;AACO,MAAM,iDAAiD,GAAG;AACjE;AACO,MAAM,uEAAuE,GAAG;AACvF;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,mDAAmD,GAAG;AACnE;AACO,MAAM,kDAAkD,GAAG;AAClE;AACO,MAAM,sCAAsC,GAAG;AACtD;AACO,MAAM,yBAAyB,GAAG;AACzC;AACO,MAAM,kCAAkC,GAAG;AAClD;AACO,MAAM,+BAA+B,GAAG;AAC/C;AACO,MAAM,6CAA6C,GAAG;AAC7D;AACO,MAAM,4CAA4C,GAAG;AAC5D;AACO,MAAM,4CAA4C,GAAG;AAC5D;;IC9IY;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACzB,CAAC,EAHW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;IAKV;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,cAA2B;AAC3B,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AAC3B,CAAC,EALW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;IAOT;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACvC,IAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,eAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC7C,CAAC,EALW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;ACd3B;AACA;;AAEG;AACI,MAAM,wBAAwB,GAAG;AACxC;;AAEG;AACI,MAAM,MAAM,GAAG;AACtB;;AAEG;AACI,MAAM,eAAe,GAAG;AAC/B;;AAEG;AACI,MAAM,gBAAgB,GAAG;AAChC;;AAEG;AACI,MAAM,4BAA4B,GAAG;AAC5C;;AAEG;AACI,MAAM,uBAAuB,GAAG;AAMvC;;AC3BA,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,iCAAiC,EAAE,EAAC,iCAAiC,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mEAAgD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mEAAgD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;SAEpR,SAAS,GAAA;AACvB,IAAA,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;AAC1C;;ACPA;AAGA;AACA;AAEA;AACA;;;;;AAKG;AACH,MAAM,OAAQ,SAAQ,sBAA0B,CAAA;AAC9C;;AAEG;IACI,CAAC,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,CAAsB,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE;IACd;AAEA;;;AAGG;IACH,uBAAuB,GAAA;AACrB,QAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC;AAChD,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACf;AACD;AACD;AAEA;AACA;;AAEG;AACH,MAAM,QAAS,SAAQ,sBAErB,CAAA;AACA;;AAEG;IACI,CAAC,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,iCAAA,CAAmC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE;IACd;AAEA;;AAEG;IACI,kBAAkB,GAAA;AACvB,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EACpC,SAAS,EACT;AACE,YAAA,YAAY,EAAE,eAAe;AAC9B,SAAA,CACF;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAA,CAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACf;AACD;AACD;AAEA;;;;AAIG;AACI,eAAe,QAAQ,CAC5B,KAAe,EACf,QAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BhB,IAAA,QAAQ,KAAK,CAAC;AAChB;;AC5FA;AAMO,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,sBAA6C,CAAA;;AAItF,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEX,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;AAKhC,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEd,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;;AAE5B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEhB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAK3B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAErB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAxBP,qBAAqB,GAAA,UAAA,CAAA;AAJjC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,qBAAqB,CAyBjC;;IC1CW;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AAC3B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;IAOlB;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;;SCFf,YAAY,CAAC,OAAe,EAAE,MAAM,GAAG,GAAG,EAAA;IACxD,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC/B,IAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AAC1B;SAEgB,gBAAgB,CAAC,KAAa,EAAE,IAAI,GAAG,WAAW,EAAA;AAChE,IAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AAC9C,QAAA,YAAY,CAAC,CAAA,EAAG,IAAI,CAAA,4BAAA,CAA8B,CAAC;IACrD;AACF;SAEgB,qBAAqB,CACnC,KAAa,EACb,IAAI,GAAG,iBAAiB,EAAA;AAExB,IAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;AAC7C,QAAA,YAAY,CAAC,CAAA,EAAG,IAAI,CAAA,gCAAA,CAAkC,CAAC;IACzD;AACF;SAEgB,oBAAoB,CAClC,KAIC,EACD,QAAQ,GAAG,KAAK,EAAA;AAEhB,IAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC/D,YAAY,CAAC,4BAA4B,CAAC;IAC5C;AACA,IAAA,IACE,KAAK,CAAC,IAAI,KAAK,SAAS;AACxB,QAAA,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EACvD;QACA,YAAY,CAAC,mDAAmD,CAAC;IACnE;IACA,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,CAAU,EAAE;QAC9C,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;AAC1C,YAAA,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;AAC5D,gBAAA,YAAY,CAAC,CAAA,EAAG,KAAK,CAAA,4BAAA,CAA8B,CAAC;YACtD;QACF;IACF;IACA,KAAK,MAAM,KAAK,IAAI;AAClB,QAAA,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe;AAClD,KAAA,EAAE;AACV,QAAA,IACE,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS;AAC1B,YAAA,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI;AACrB,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,EAChC;AACA,YAAA,YAAY,CAAC,CAAA,EAAG,KAAK,CAAA,0BAAA,CAA4B,CAAC;QACpD;IACF;IACA,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,cAAc,CAAU,EAAE;AAC3D,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;YACvD,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QACvC;IACF;AACA,IAAA,IACE,KAAK,CAAC,MAAM,KAAK,SAAS;AAC1B,QAAA,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAC1D;QACA,YAAY,CAAC,+CAA+C,CAAC;IAC/D;AACA,IAAA,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE;AACjE,QAAA,IACE,EACE,KAAK,CAAC,WAAW,YAAY,IAAI;AACjC,YAAA,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CACtC;AACD,YAAA,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,EACnD;YACA,YAAY,CAAC,2CAA2C,CAAC;QAC3D;IACF;IACA,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAU,EAAE;AAC1E,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACvB,gBAAA,YAAY,CAAC,CAAA,EAAG,KAAK,CAAA,kBAAA,CAAoB,CAAC;YAC5C;AACA,YAAA,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;AACpB,gBAAA,gBAAgB,CACd,EAAE,EACF,KAAK,KAAK;AACR,sBAAE;sBACA,KAAK,KAAK;AACV,0BAAE;0BACA,cAAc,CACrB;YACH;QACF;IACF;AACF;;AC7FA;AAKO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kBAAyC,CAAA;AAAjF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAuC,MACzD,qBAAqB;IAYzB;AAVE,IAAA,MAAM,eAAe,CAAC,EAAU,EAAE,OAAsB,EAAA;;QAEtD,MAAM,QAAQ,GAAG,MAAM;AACpB,aAAA,aAAa,CAAwB,IAAI,CAAC,MAAM;AAChD,aAAA,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,YAAY,CAAC,CAAA,SAAA,EAAY,EAAE,kBAAkB,EAAE,GAAG,CAAC;QACrD;;IAEF;;AAbW,yBAAyB,GAAA,UAAA,CAAA;AAHrC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,2BAA2B;KACvC;AACY,CAAA,EAAA,yBAAyB,CAcrC;;ACbD;AAMO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,sBAA6C,CAAA;AAArF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAuC,MACzD,qBAAqB;AAEvB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;IAC9E;;AALa,yBAAyB,GAAA,UAAA,CAAA;AAJrC,IAAA,cAAc,CAA4B;AACzC,QAAA,SAAS,EAAE,2BAA2B;AACtC,QAAA,cAAc,EAAE,EAAE;KACnB;AACY,CAAA,EAAA,yBAAyB,CAKrC;;ACpBD;AAQO,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,gBAAgB,CAAA;8GAAhD,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA;;AAAvB,uBAAuB,GAAA,UAAA,CAAA;AANnC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,yBAAyB;KACrC;;AAIY,CAAA,EAAA,uBAAuB,CAInC;2FAJY,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAFnC;;;ACPD;AAKO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kBAAkB,CAAA;;AAApD,yBAAyB,GAAA,UAAA,CAAA;AAHrC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,2BAA2B;KACvC;AACY,CAAA,EAAA,yBAAyB,CAA8B;;ACJpE;AAMO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,2BAA2B,CAAA;AAAnE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC;IAIxE;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,qBAAqB;IAC9B;;AAJW,yBAAyB,GAAA,UAAA,CAAA;AAJrC,IAAA,cAAc,CAA4B;AACzC,QAAA,SAAS,EAAE,2BAA2B;;KAEvC;AACY,CAAA,EAAA,yBAAyB,CAKrC;;ACfD;AASA;MAEa,8BAA8B,GAAG,aAAa,CAAC,OAAO;AACjE,IAAA,WAAW,EAAE,gCAAgC;AAC7C,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,qBAAqB,EAAE;IACnC,WAAW,EAAE,EAAE,yBAAyB,EAAE;IAC1C,YAAY,EAAE,EAAE,yBAAyB,EAAE;IAC3C,SAAS,EAAE,EAAE,uBAAuB,EAAE;IACtC,WAAW,EAAE,EAAE,yBAAyB,EAAE;IAC1C,WAAW,EAAE,EAAE,yBAAyB,EAAE;AAC3C,CAAA,CAAC;;ACRF;AAMO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAAoC,CAAA;;AAI5E,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKX,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEvB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAET,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKlB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAErB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKtB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;;;;AAEX,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE;;;;AAElC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKf,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AA5CL,oBAAoB,GAAA,UAAA,CAAA;AAJhC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,oBAAoB,CA6ChC;;AC3DD;AAKO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAwC,CAAA;AAA/E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAsC,MAAM,oBAAoB;IAetF;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,wBAAwB,GAAA,UAAA,CAAA;AAHpC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,0BAA0B;KACtC;AACY,CAAA,EAAA,wBAAwB,CAgBpC;;;ACbD;AAMO,IAAM,wBAAwB,GAAA,0BAAA,GAA9B,MAAM,wBAAyB,SAAQ,sBAA4C,CAAA;AAAnF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAsC,MAAM,oBAAoB;AAEpF,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;;IAqB5E;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,EAAE;YAC9D,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,CAAA,MAAA,EAAS,YAAY,CAAC,OAAO,CAAC,0BAAwB,CAAC;sBAC1E,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAtBU,wBAAwB,GAAA,0BAAA,GAAA,UAAA,CAAA;AAJpC,IAAA,cAAc,CAA2B;AACxC,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,cAAc,EAAE;KACjB;AACY,CAAA,EAAA,wBAAwB,CAwBpC;;ACvCD;AAQO,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,gBAAgB,CAAA;8GAA/C,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;AAAtB,sBAAsB,GAAA,UAAA,CAAA;AANlC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,wBAAwB;KACpC;;AAIY,CAAA,EAAA,sBAAsB,CAIlC;2FAJY,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAFlC;;;ACPD;AAKO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAkB,CAAA;;AAAnD,wBAAwB,GAAA,UAAA,CAAA;AAHpC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,0BAA0B;KACtC;AACY,CAAA,EAAA,wBAAwB,CAA8B;;ACJnE;AAMO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAA2B,CAAA;AAAlE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC;IAItE;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,oBAAoB;IAC7B;;AAJW,wBAAwB,GAAA,UAAA,CAAA;AAJpC,IAAA,cAAc,CAA2B;AACxC,QAAA,SAAS,EAAE,0BAA0B;;KAEtC;AACY,CAAA,EAAA,wBAAwB,CAKpC;;ACfD;AASA;MAEa,6BAA6B,GAAG,aAAa,CAAC,OAAO;AAChE,IAAA,WAAW,EAAE,+BAA+B;AAC5C,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,oBAAoB,EAAE;IAClC,WAAW,EAAE,EAAE,wBAAwB,EAAE;IACzC,YAAY,EAAE,EAAE,wBAAwB,EAAE;IAC1C,SAAS,EAAE,EAAE,sBAAsB,EAAE;IACrC,WAAW,EAAE,EAAE,wBAAwB,EAAE;IACzC,WAAW,EAAE,EAAE,wBAAwB,EAAE;AAC1C,CAAA,CAAC;;ACNF;AAMO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,cAA4C,CAAA;;AAI5F,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEZ,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKX,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEvB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAET,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKlB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEJ,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,KAAA,CAAA,CAAA;AAKvB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEb,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAKd,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEpB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKpB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEP,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAKxC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AA5CL,4BAA4B,GAAA,UAAA,CAAA;AAJxC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,8BAA8B;AACzC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,4BAA4B,CA6CxC;;ACxDD;AAKO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,kBAAgD,CAAA;AAA/F,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA8C,MAChE,4BAA4B;IA0DhC;AAxDE,IAAA,MAAM,cAAc,CAClB,SAAiB,EACjB,OAAsB,EAAA;;AAGtB,QAAA,OAAO;AACJ,aAAA,aAAa,CAA+B,IAAI,CAAC,MAAM;AACvD,aAAA,IAAI,CAAC;YACJ,KAAK,EAAE,EAAE,SAAS,EAAE;AACpB,YAAA,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;AAClC,SAAA,CAAC;;IAEN;AAEA,IAAA,MAAM,eAAe,CACnB,SAAiB,EACjB,cAAsB,EACtB,OAAsB,EAAA;;QAGtB,MAAM,QAAQ,GAAG,MAAM;AACpB,aAAA,aAAa,CAA+B,IAAI,CAAC,MAAM;AACvD,aAAA,SAAS,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE;YACb,YAAY,CACV,YAAY,cAAc,CAAA,YAAA,EAAe,SAAS,CAAA,gBAAA,CAAkB,EACpE,GAAG,CACJ;QACH;AACA,QAAA,OAAO,QAAQ;;IAEjB;AAEA,IAAA,MAAM,aAAa,CACjB,OAA6B,EAC7B,QAAgC,EAChC,OAAsB,EAAA;;QAGtB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;AACD,QAAA,OAAO,UAAU,CAAC,IAAI,CACpB,UAAU,CAAC,MAAM,CAAC;YAChB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,cAAc,EAAE,OAAO,CAAC,OAAO;AAC/B,YAAA,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ;YACR,eAAe,EAAE,OAAO,CAAC,YAAY;YACrC,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,SAAA,CAAC,CACH;;IAEH;;AA3DW,gCAAgC,GAAA,UAAA,CAAA;AAH5C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,kCAAkC;KAC9C;AACY,CAAA,EAAA,gCAAgC,CA4D5C;;AC9DD;AAMO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,sBAAoD,CAAA;AAAnG,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA8C,MAChE,4BAA4B;AAE9B,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,CAAC,gBAAgB,CACtD,gCAAgC,CACjC;IACH;;AAPa,gCAAgC,GAAA,UAAA,CAAA;AAJ5C,IAAA,cAAc,CAAmC;AAChD,QAAA,SAAS,EAAE,kCAAkC;AAC7C,QAAA,cAAc,EAAE,EAAE;KACnB;AACY,CAAA,EAAA,gCAAgC,CAO5C;;ACtBD;AAQO,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,gBAAgB,CAAA;8GAAvD,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA9B,8BAA8B,EAAA,CAAA,CAAA;;AAA9B,8BAA8B,GAAA,UAAA,CAAA;AAN1C,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,gCAAgC;KAC5C;;AAIY,CAAA,EAAA,8BAA8B,CAI1C;2FAJY,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAF1C;;;ACPD;AAKO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,kBAAkB,CAAA;;AAA3D,gCAAgC,GAAA,UAAA,CAAA;AAH5C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,kCAAkC;KAC9C;AACY,CAAA,EAAA,gCAAgC,CAA8B;;ACJ3E;AAMO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,2BAA2B,CAAA;AAA1E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,CAAC,cAAc,CAAC,8BAA8B,CAAC;IAItF;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,4BAA4B;IACrC;;AAJW,gCAAgC,GAAA,UAAA,CAAA;AAJ5C,IAAA,cAAc,CAAmC;AAChD,QAAA,SAAS,EAAE,kCAAkC;;KAE9C;AACY,CAAA,EAAA,gCAAgC,CAK5C;;ACfD;AASA;MAEa,qCAAqC,GAAG,aAAa,CAAC,OAAO;AACxE,IAAA,WAAW,EAAE,uCAAuC;AACpD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,4BAA4B,EAAE;IAC1C,WAAW,EAAE,EAAE,gCAAgC,EAAE;IACjD,YAAY,EAAE,EAAE,gCAAgC,EAAE;IAClD,SAAS,EAAE,EAAE,8BAA8B,EAAE;IAC7C,WAAW,EAAE,EAAE,gCAAgC,EAAE;IACjD,WAAW,EAAE,EAAE,gCAAgC,EAAE;AAClD,CAAA,CAAC;;ACVF;AAMO,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,sBAA+C,CAAA;;AAI1F,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAET,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKlB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEb,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AATH,uBAAuB,GAAA,UAAA,CAAA;AAJnC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,uBAAuB,CAUnC;;ACrBD;AAKO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,kBAA2C,CAAA;AAArF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAyC,MAC3D,uBAAuB;IAgC3B;AA9BE,IAAA,MAAM,UAAU,CACd,SAAiB,EACjB,OAAsB,EAAA;;QAGtB,MAAM,KAAK,GAAG,MAAM;AACjB,aAAA,aAAa,CAA0B,IAAI,CAAC,MAAM;AAClD,aAAA,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;AAC1D,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;;IAEtC;AAEA,IAAA,MAAM,WAAW,CACf,SAAiB,EACjB,MAAgB,EAChB,OAAsB,EAAA;;QAGtB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;QACD,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAC1C,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CACxC;AACD,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B;;IAEF;;AAjCW,2BAA2B,GAAA,UAAA,CAAA;AAHvC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,6BAA6B;KACzC;AACY,CAAA,EAAA,2BAA2B,CAkCvC;;AChCD;AAMO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,sBAA+C,CAAA;AAAzF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAyC,MAC3D,uBAAuB;AAEzB,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CACjD,2BAA2B,CAC5B;IACH;;AAPa,2BAA2B,GAAA,UAAA,CAAA;AAJvC,IAAA,cAAc,CAA8B;AAC3C,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,cAAc,EAAE,EAAE;KACnB;AACY,CAAA,EAAA,2BAA2B,CAOvC;;ACtBD;AAQO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,gBAAgB,CAAA;8GAAlD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA;;AAAzB,yBAAyB,GAAA,UAAA,CAAA;AANrC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,2BAA2B;KACvC;;AAIY,CAAA,EAAA,yBAAyB,CAIrC;2FAJY,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAFrC;;;ACPD;AAKO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,kBAAkB,CAAA;;AAAtD,2BAA2B,GAAA,UAAA,CAAA;AAHvC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,6BAA6B;KACzC;AACY,CAAA,EAAA,2BAA2B,CAA8B;;ACJtE;AAMO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,2BAA2B,CAAA;AAArE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC;IAI5E;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,uBAAuB;IAChC;;AAJW,2BAA2B,GAAA,UAAA,CAAA;AAJvC,IAAA,cAAc,CAA8B;AAC3C,QAAA,SAAS,EAAE,6BAA6B;;KAEzC;AACY,CAAA,EAAA,2BAA2B,CAKvC;;ACfD;AASA;MAEa,gCAAgC,GAAG,aAAa,CAAC,OAAO;AACnE,IAAA,WAAW,EAAE,kCAAkC;AAC/C,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,uBAAuB,EAAE;IACrC,WAAW,EAAE,EAAE,2BAA2B,EAAE;IAC5C,YAAY,EAAE,EAAE,2BAA2B,EAAE;IAC7C,SAAS,EAAE,EAAE,yBAAyB,EAAE;IACxC,WAAW,EAAE,EAAE,2BAA2B,EAAE;IAC5C,WAAW,EAAE,EAAE,2BAA2B,EAAE;AAC7C,CAAA,CAAC;;ACVF;AAMO,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,sBAAwC,CAAA;;AAI5E,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;;AAE5B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;;AAE5B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEhB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAdhB,gBAAgB,GAAA,UAAA,CAAA;AAJ5B,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,gBAAgB,CAe5B;;ACzBD;AAKO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,kBAAoC,CAAA;AAAvE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAkC,MAAM,gBAAgB;IA4B9E;AA1BE,IAAA,MAAM,WAAW,CAAC,GAAa,EAAE,OAAsB,EAAA;;QAErD,KAAK,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,GAAG,GAAG,MAAM;AACf,iBAAA,aAAa,CAAmB,IAAI,CAAC,MAAM;AAC3C,iBAAA,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,YAAY,CAAC,CAAA,IAAA,EAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC;YAChD;QACF;;IAEF;AAEA;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AA5BW,oBAAoB,GAAA,UAAA,CAAA;AAHhC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,sBAAsB;KAClC;AACY,CAAA,EAAA,oBAAoB,CA6BhC;;;AC5BD;AAMO,IAAM,oBAAoB,GAAA,sBAAA,GAA1B,MAAM,oBAAqB,SAAQ,sBAAwC,CAAA;AAA3E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAkC,MAAM,gBAAgB;AAE5E,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;;IAqBpE;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE;YAC1D,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,CAAA,MAAA,EAAS,YAAY,CAAC,OAAO,CAAC,sBAAoB,CAAC;sBACtE,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAtBU,oBAAoB,GAAA,sBAAA,GAAA,UAAA,CAAA;AAJhC,IAAA,cAAc,CAAuB;AACpC,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,cAAc,EAAE;KACjB;AACY,CAAA,EAAA,oBAAoB,CAwBhC;;ACvCD;AAQO,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAgB,CAAA;8GAA3C,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAlB,kBAAkB,EAAA,CAAA,CAAA;;AAAlB,kBAAkB,GAAA,UAAA,CAAA;AAN9B,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,oBAAoB;KAChC;;AAIY,CAAA,EAAA,kBAAkB,CAI9B;2FAJY,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAF9B;;;ACPD;AAKO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,kBAAkB,CAAA;;AAA/C,oBAAoB,GAAA,UAAA,CAAA;AAHhC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,sBAAsB;KAClC;AACY,CAAA,EAAA,oBAAoB,CAA8B;;ACJ/D;AAMO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,2BAA2B,CAAA;AAA9D,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;IAI9D;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,gBAAgB;IACzB;;AAJW,oBAAoB,GAAA,UAAA,CAAA;AAJhC,IAAA,cAAc,CAAuB;AACpC,QAAA,SAAS,EAAE,sBAAsB;;KAElC;AACY,CAAA,EAAA,oBAAoB,CAKhC;;ACfD;AASA;MAEa,yBAAyB,GAAG,aAAa,CAAC,OAAO;AAC5D,IAAA,WAAW,EAAE,2BAA2B;AACxC,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,gBAAgB,EAAE;IAC9B,WAAW,EAAE,EAAE,oBAAoB,EAAE;IACrC,YAAY,EAAE,EAAE,oBAAoB,EAAE;IACtC,SAAS,EAAE,EAAE,kBAAkB,EAAE;IACjC,WAAW,EAAE,EAAE,oBAAoB,EAAE;IACrC,WAAW,EAAE,EAAE,oBAAoB,EAAE;AACtC,CAAA,CAAC;;ACJF;AAMO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAAoC,CAAA;AAAvE,IAAA,WAAA,GAAA;;;AAcL,QAAA,IAAA,CAAA,IAAI,GAAuB,kBAAkB,CAAC,MAAM;;QA6CpD,IAAA,CAAA,QAAQ,GAAkB,IAAI;;QAK9B,IAAA,CAAA,QAAQ,GAAkB,IAAI;;QAK9B,IAAA,CAAA,aAAa,GAAkB,IAAI;IAgCrC;;AAjGE,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKX,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEvB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,MAAM,EAAE;;;;AAEV,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKrD,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEb,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAKd,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;;AAE5B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAUb,UAAA,CAAA;AAPC,IAAA,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACtC,IAAA,SAAS,CAAC;AACT,QAAA,IAAI,EAAE,wBAAwB;QAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE;QAC7D,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,oBAAoB,EAAE,IAAI,EAAE;KACzE;;;;AAEoC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAUrC,UAAA,CAAA;AAPC,IAAA,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACtC,IAAA,SAAS,CAAC;AACT,QAAA,IAAI,EAAE,8BAA8B;QACpC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE;QAC7D,iBAAiB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;KACxE;;;;AAEmC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAKpC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEjB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKvB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEpB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKpB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEP,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA;AAKpC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEjB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAK1B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEf,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAK5B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;;;;AAE9B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAMf,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;;;8BAE/B,IAAI;AAAQ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAKzB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AApGL,oBAAoB,GAAA,UAAA,CAAA;AAJhC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,oBAAoB,CAqGhC;;ACjGD;AAKO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAwC,CAAA;AAA/E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAsC,MACxD,oBAAoB;AAEL,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,CAAC,gBAAgB,CACvE,gCAAgC,CACjC;AAEgB,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAClE,2BAA2B,CAC5B;AAEgB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAChE,yBAAyB,CAC1B;AAEgB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;IAgerE;IA9dE,MAAM,aAAa,CACjB,KAA2B,EAAA;;AAG3B,QAAA,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,YAAA,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAC/C,YAAA,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AAC/D,YAAA,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;AAC7D,YAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC;YACrE,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;YACrD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;AACD,YAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CACnC,UAAU,CAAC,MAAM,CAAC;AAChB,gBAAA,GAAG,MAAM;AACT,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,SAAS,EAAE,GAAG;AACf,aAAA,CAAC,CACH;AACD,YAAA,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC;AAC/E,YAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC;AACvE,YAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,CAAC;YACrE,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,CACvD,OAAO,EACP,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,EACpD,OAAO,CACR;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;AACjD,QAAA,CAAC,CAAC;;IAEJ;AAEA,IAAA,MAAM,aAAa,CACjB,EAAU,EACV,KAA2B,EAAA;;QAG3B,gBAAgB,CAAC,EAAE,CAAC;QACpB,oBAAoB,CAAC,KAAK,CAAC;AAC3B,QAAA,qBAAqB,CAAC,KAAK,CAAC,eAAe,CAAC;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;AAClD,YAAA,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,KAAK;kBACb,QAAQ,CAAC;kBACT,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChC,YAAA,MAAM,cAAc,GAClB,KAAK,CAAC,cAAc,KAAK;kBACrB,QAAQ,CAAC;kBACT,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACxC,YAAA,MAAM,aAAa,GACjB,KAAK,CAAC,aAAa,KAAK;kBACpB,QAAQ,CAAC;kBACT,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC,YAAY,CACtB,OAAO,EACP,KAAK,CAAC,eAAe,EACrB,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,EACpD,OAAO,CACR;AACH,QAAA,CAAC,CAAC;;IAEJ;AAEA,IAAA,MAAM,cAAc,CAClB,EAAU,EACV,eAAuB,EAAA;;AAGvB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;;IAExE;AAEA,IAAA,MAAM,cAAc,CAClB,EAAU,EACV,KAA4B,EAAA;;QAG5B,gBAAgB,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACvC,YAAY,CAAC,kCAAkC,CAAC;QAClD;AACA,QAAA,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAC7D,QAAA,qBAAqB,CAAC,KAAK,CAAC,eAAe,CAAC;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;AACtD,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,eAAe,CAC1E,EAAE,EACF,KAAK,CAAC,cAAc,EACpB,OAAO,CACR;AACD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACtB,gBAAA,YAAY,CACV,uEAAuE,EACvE,GAAG,CACJ;YACH;AACA,YAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ;AACxC,YAAA,MAAM,cAAc,GAAqC;gBACvD,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,MAAM;gBACN,SAAS;gBACT,YAAY;gBACZ,cAAc;gBACd,QAAQ;gBACR,aAAa;gBACb,QAAQ;aACT;AACD,YAAA,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,EAAE;AACrE,gBAAA,YAAY,CACV,kEAAkE,EAClE,GAAG,CACJ;YACH;AACA,YAAA,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7C,YAAA,MAAM,QAAQ,GAAG;;AAEf,gBAAA,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACjF,gBAAA,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;AAChC,gBAAA,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE;AACtD,gBAAA,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE;aACrD;AACD,YAAA,OAAO,IAAI,CAAC,YAAY,CACtB,OAAO,EACP,KAAK,CAAC,eAAe,EACrB,QAAQ,EACR,OAAO,CACR;AACH,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,aAAa,CAAC,EAAU,EAAA;;QAE5B,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACtC,OAAO,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;AAC1E,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,gBAAgB,CAAC,EAAU,EAAA;;QAE/B,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAC9C,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,CACtD;;IAEH;IAEA,MAAM,eAAe,CAAC,EAAU,EAAA;;QAE9B,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAC9C,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,CACrD;;IAEH;AAEA,IAAA,MAAM,cAAc,CAClB,EAAU,EACV,aAAqB,EACrB,eAAuB,EAAA;;AAGvB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC;;IAEzE;AAEA,IAAA,MAAM,iBAAiB,CACrB,EAAU,EACV,aAAqB,EACrB,eAAuB,EAAA;;AAGvB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC;;IAE1E;IAEQ,MAAM,iBAAiB,CAC7B,EAAU,EACV,aAAqB,EACrB,eAAuB,EACvB,MAAe,EAAA;;QAGf,gBAAgB,CAAC,EAAE,CAAC;AACpB,QAAA,gBAAgB,CAAC,aAAa,EAAE,eAAe,CAAC;QAChD,qBAAqB,CAAC,eAAe,CAAC;AACtC,QAAA,IAAI,EAAE,KAAK,aAAa,EAAE;YACxB,YAAY,CAAC,iCAAiC,CAAC;QACjD;QACA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACtD,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;YACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;AACxD,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,IAAI,EAAE;YACzC,QAAQ,CAAC,cAAc,GAAG;AACxB,kBAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,aAAa,CAAC,CAAC;AACtC,kBAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,aAAa,CAAC;AAClD,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC;AACvE,QAAA,CAAC,CAAC;;IAEJ;AAEQ,IAAA,MAAM,cAAc,CAC1B,EAAU,EACV,OAAsB,EAAA;;QAGtB,MAAM,OAAO,GAAG,MAAM;AACnB,aAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,aAAA,OAAO,CAAC;YACP,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;AACrD,SAAA,CAAC;QACJ,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,YAAY,CAAC,CAAA,QAAA,EAAW,EAAE,kBAAkB,EAAE,GAAG,CAAC;QACpD;AACA,QAAA,OAAO,OAAO;;IAEhB;IAEQ,aAAa,CACnB,KAAoC,EACpC,OAA8B,EAAA;AAE9B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,IAAI,IAAI,kBAAkB,CAAC,MAAM;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE,KAAK;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,IAAI;QACxC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;YAC7C,YAAY,CAAC,8BAA8B,CAAC;QAC9C;AACA,QAAA,MAAM,WAAW,GACf,KAAK,CAAC,WAAW,KAAK;AACpB,eAAG,OAAO,EAAE,WAAW,IAAI,IAAI;AAC/B,cAAE,KAAK,CAAC,WAAW;QACvB,OAAO;YACL,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI;YACrE,QAAQ,EACN,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,EAAE,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ;YAC7E,QAAQ,EACN,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,EAAE,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ;AAC7E,YAAA,aAAa,EACX,KAAK,CAAC,aAAa,KAAK;AACtB,mBAAG,OAAO,EAAE,aAAa,IAAI,IAAI;kBAC/B,KAAK,CAAC,aAAa;AACzB,YAAA,OAAO,EACL,KAAK,CAAC,OAAO,KAAK;AAChB,mBAAG,OAAO,EAAE,OAAO,IAAI,IAAI;kBACzB,KAAK,CAAC,OAAO;AACnB,YAAA,UAAU,EACR,KAAK,CAAC,UAAU,KAAK;AACnB,mBAAG,OAAO,EAAE,UAAU,IAAI,IAAI;kBAC5B,KAAK,CAAC,UAAU;AACtB,YAAA,YAAY,EACV,KAAK,CAAC,YAAY,KAAK;AACrB,mBAAG,OAAO,EAAE,YAAY,IAAI,IAAI;kBAC9B,KAAK,CAAC,YAAY;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO,EAAE,MAAM,IAAI,OAAO;AAClD,YAAA,WAAW,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC;SACjE;IACH;AAEQ,IAAA,MAAM,UAAU,CACtB,OAA6B,EAC7B,OAAsB,EAAA;;QAGtB,OAAO;YACL,GAAG,IAAI,CAAC,aAAa,CAAC;AACpB,gBAAA,GAAG,OAAO;gBACV,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;aAC3C,CAAC;AACF,YAAA,MAAM,EAAE,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;AAC9E,YAAA,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AACzD,YAAA,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC;SACpE;;IAEH;AAEQ,IAAA,aAAa,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,UAAU,EAAE;AACzE,YAAA,YAAY,CAAC,CAAA,mCAAA,EAAsC,MAAM,GAAG,EAAE,GAAG,CAAC;QACpE;AACA,QAAA,OAAO,MAAM;IACf;IAEQ,MAAM,kBAAkB,CAC9B,MAA4B,EAC5B,MAAgB,EAChB,aAAuB,EACvB,OAAsB,EAAA;;AAGtB,QAAA,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;QAClF;QACA,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;QAC5C,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC;;IAEvD;AAEQ,IAAA,MAAM,kBAAkB,CAC9B,aAAuB,EACvB,OAAsB,EAAA;;AAGtB,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACzB;QACF;QACA,MAAM,WAAW,GAAG,MAAM;aACvB,aAAa,CAAuB,oBAAoB;aACxD,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;AACpC,QAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACtE,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7D,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,YAAA,YAAY,CAAC,CAAA,WAAA,EAAc,SAAS,kBAAkB,EAAE,GAAG,CAAC;QAC9D;;IAEF;AAEQ,IAAA,MAAM,oBAAoB,CAChC,IAAY,EACZ,OAAsB,EACtB,SAAkB,EAAA;;QAGlB,MAAM,QAAQ,GAAG,MAAM;AACpB,aAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,aAAA,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;QACtB,IAAI,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;AACzC,YAAA,YAAY,CAAC,CAAA,MAAA,EAAS,IAAI,sBAAsB,EAAE,GAAG,CAAC;QACxD;;IAEF;IAEQ,MAAM,mBAAmB,CAC/B,EAAU,EACV,cAAwB,EACxB,WAAqB,EACrB,OAAsB,EAAA;;AAGtB,QAAA,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC/B,YAAY,CAAC,iCAAiC,CAAC;QACjD;QACA,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;AAC3E,QAAA,IAAI,cAAc,CAAC,MAAM,EAAE;AACzB,YAAA,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;AACjE,YAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,YAAA,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtE,YAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,gBAAA,YAAY,CAAC,CAAA,QAAA,EAAW,SAAS,kBAAkB,EAAE,GAAG,CAAC;YAC3D;QACF;AACA,QAAA,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5E,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;YAClC,MAAM,UAAU,CAAC,kBAAkB;iBAChC,QAAQ,CAAC,cAAc;iBACvB,EAAE,CAAC,EAAE;AACL,iBAAA,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;QACjC;;IAEF;IAEQ,MAAM,kBAAkB,CAC9B,EAAU,EACV,aAAuB,EACvB,WAAqB,EACrB,OAAsB,EAAA;;AAGtB,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACvF,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzF,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAClC,YAAA,MAAM;AACH,iBAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,iBAAA,kBAAkB;iBAClB,QAAQ,CAAC,aAAa;iBACtB,EAAE,CAAC,EAAE;AACL,iBAAA,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;QACjC;;IAEF;IAEQ,MAAM,YAAY,CACxB,OAA6B,EAC7B,eAAuB,EACvB,QAAgC,EAChC,OAAsB,EAAA;;AAGtB,QAAA,IAAI,OAAO,CAAC,OAAO,KAAK,eAAe,EAAE;AACvC,YAAA,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC;QACrE;AACA,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAC3B,QAAQ,EACR,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,aAAa,EACtB,OAAO,CACR;AACD,QAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;;AAEnE,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;AAC/F,QAAA,IACE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,EACtE;YACA,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,CACvD,OAAO,EACP,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EACvC,OAAO,CACR;QACH;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;AAC3E,QAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CACpC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAC5C,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CACnE;AACD,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE;AACzB,YAAA,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC;QACrE;AACA,QAAA,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;AACxF,QAAA,MAAM,IAAI,CAAC,mBAAmB,CAC5B,OAAO,CAAC,EAAE,EACV,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,EAC3C,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,EACzC,OAAO,CACR;AACD,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAC3B,OAAO,CAAC,EAAE,EACV,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,EAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,EACpD,OAAO,CACR;AACD,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;AAC9D,QAAA,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,CACvD,OAAO,EACP;AACE,YAAA,GAAG,MAAM;YACT,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,YAAA,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AACzD,YAAA,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC;SACpE,EACD,OAAO,CACR;AACD,QAAA,OAAO,OAAO;;IAEhB;AAEA;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AA/eW,wBAAwB,GAAA,UAAA,CAAA;AAHpC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,0BAA0B;KACtC;AACY,CAAA,EAAA,wBAAwB,CAgfpC;;ACvfD;AAmBO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,sBAA4C,CAAA;AAAnF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAsC,MACxD,oBAAoB;AAEtB,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;IA8F5E;AA3FE,IAAA,aAAa,CACH,KAA2B,EAAA;;AAGnC,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC;;IAEvE;IAGA,aAAa,CACE,EAAU,EACf,KAA2B,EAAA;;AAGnC,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC;;IAE3E;IAGA,aAAa,CACE,EAAU,EACG,eAAuB,EAAA;;AAGjD,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,EAAE,eAAe,CAAC;;IAErE;IAGA,cAAc,CACC,EAAU,EACf,KAA4B,EAAA;;AAGpC,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;;IAE5E;AAGA,IAAA,gBAAgB,CACD,EAAU,EAAA;;AAGvB,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,EAAE,CAAC;;IAEvE;AAGA,IAAA,eAAe,CACA,EAAU,EAAA;;AAGvB,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC;;IAEtE;AAGA,IAAA,cAAc,CACC,EAAU,EACC,aAAqB,EACnB,eAAuB,EAAA;;AAGjD,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAC7D,EAAE,EAAE,aAAa,EAAE,eAAe,CACnC;;IAEH;AAGA,IAAA,iBAAiB,CACF,EAAU,EACC,aAAqB,EACnB,eAAuB,EAAA;;AAGjD,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAChE,EAAE,EAAE,aAAa,EAAE,eAAe,CACnC;;IAEH;AAGA,IAAA,aAAa,CACE,EAAU,EAAA;;AAGvB,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,CAAC;;IAEpE;;AA1FA,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;IAEJ,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAKR,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACX,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAKR,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AAEN,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAM1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACX,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAKR,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,eAAe,CAAC,CAAA;AACtB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAO1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AAEN,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,eAAe,CAAC,CAAA;AACtB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAO1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAjGU,wBAAwB,GAAA,UAAA,CAAA;AAjBpC,IAAA,cAAc,CAA2B;AACxC,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,cAAc,EAAE;YACd,QAAQ;YACR,OAAO;YACP,eAAe;YACf,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,gBAAgB;YAChB,mBAAmB;YACnB;AACD,SAAA;KACF;AACY,CAAA,EAAA,wBAAwB,CAkGpC;;AC3ID;AAKO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAkB,CAAA;;AAAnD,wBAAwB,GAAA,UAAA,CAAA;AAHpC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,0BAA0B;KACtC;AACY,CAAA,EAAA,wBAAwB,CAA8B;;ACJnE;AAQO,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,gBAAgB,CAAA;8GAA/C,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;AAAtB,sBAAsB,GAAA,UAAA,CAAA;AANlC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,wBAAwB;KACpC;;AAIY,CAAA,EAAA,sBAAsB,CAA4B;2FAAlD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAFlC;;;ACND;AAMO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAA2B,CAAA;AAAlE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC;IAItE;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,oBAAoB;IAC7B;;AAJW,wBAAwB,GAAA,UAAA,CAAA;AAJpC,IAAA,cAAc,CAA2B;AACxC,QAAA,SAAS,EAAE,0BAA0B;;KAEtC;AACY,CAAA,EAAA,wBAAwB,CAKpC;;ACJD;AAMO,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,yBAAyB,CAAA;IAClE,MAAM,iBAAiB,CAC/B,KAAyB,EACzB,WAAgB,EAChB,GAAoB,EACpB,GAAqB,EAAA;;;;;;;;;AAUrB,QAAA,QAAQ,KAAK,CAAC;IAChB;AAEA,IAAA,mBAAmB,KAAU;IAE7B,uBAAuB,GAAA;AACrB,QAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;IAC7D;AAEA,IAAA,MAAM,0BAA0B,GAAA;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;IAC/D;;AA1BW,+BAA+B,GAAA,UAAA,CAAA;AAJ3C,IAAA,cAAc,CAAkC;AAC/C,QAAA,SAAS,EAAE,iCAAiC;QAC5C,cAAc,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,wBAAwB,CAAC;KAChF;AACY,CAAA,EAAA,+BAA+B,CA2B3C;;AC5CD;AAgBA;MAEa,6BAA6B,GAAG,aAAa,CAAC,OAAO;AAChE,IAAA,WAAW,EAAE,+BAA+B;AAC5C,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE;QACR,eAAe;QACf,8BAA8B;QAC9B,yBAAyB;QACzB,gCAAgC;QAChC,qCAAqC;AACtC,KAAA;IACD,QAAQ,EAAE,EAAE,oBAAoB,EAAE;AAClC,IAAA,WAAW,EAAE,EAAE,wBAAwB,EAAE,+BAA+B,EAAE;IAC1E,YAAY,EAAE,EAAE,wBAAwB,EAAE;IAC1C,SAAS,EAAE,EAAE,sBAAsB,EAAE;IACrC,WAAW,EAAE,EAAE,wBAAwB,EAAE;IACzC,WAAW,EAAE,EAAE,wBAAwB,EAAE;AAC1C,CAAA,CAAC;;ACrBF;AAMO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,cAAyC,CAAA;;AAItF,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEZ,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKX,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEvB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAElB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKzB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEd,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAMb,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEH,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAMxB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAErB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKtB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEf,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;AAKZ,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEX,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;AAKhC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEnB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAKxB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEvB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKpB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEV,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAKrC,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAlEL,yBAAyB,GAAA,UAAA,CAAA;AAJrC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,2BAA2B;AACtC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,yBAAyB,CAmErC;;ACjFD;AAKO,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,kBAA6C,CAAA;AAAzF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA2C,MAAM,yBAAyB;IAehG;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,6BAA6B,GAAA,UAAA,CAAA;AAHzC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,+BAA+B;KAC3C;AACY,CAAA,EAAA,6BAA6B,CAgBzC;;;ACbD;AAMO,IAAM,6BAA6B,GAAA,+BAAA,GAAnC,MAAM,6BAA8B,SAAQ,sBAAiD,CAAA;AAA7F,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA2C,MAAM,yBAAyB;AAE9F,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CAAC;;IAqBtF;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,EAAE;YACnE,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,CAAA,MAAA,EAAS,YAAY,CAAC,OAAO,CAAC,+BAA6B,CAAC;sBAC/E,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,6BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAtBU,6BAA6B,GAAA,+BAAA,GAAA,UAAA,CAAA;AAJzC,IAAA,cAAc,CAAgC;AAC7C,QAAA,SAAS,EAAE,+BAA+B;AAC1C,QAAA,cAAc,EAAE;KACjB;AACY,CAAA,EAAA,6BAA6B,CAwBzC;;ACvCD;AAQO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,gBAAgB,CAAA;8GAApD,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3B,2BAA2B,EAAA,CAAA,CAAA;;AAA3B,2BAA2B,GAAA,UAAA,CAAA;AANvC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,6BAA6B;KACzC;;AAIY,CAAA,EAAA,2BAA2B,CAIvC;2FAJY,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAFvC;;;ACPD;AAKO,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,kBAAkB,CAAA;;AAAxD,6BAA6B,GAAA,UAAA,CAAA;AAHzC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,+BAA+B;KAC3C;AACY,CAAA,EAAA,6BAA6B,CAA8B;;ACJxE;AAMO,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,2BAA2B,CAAA;AAAvE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC;IAIhF;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,yBAAyB;IAClC;;AAJW,6BAA6B,GAAA,UAAA,CAAA;AAJzC,IAAA,cAAc,CAAgC;AAC7C,QAAA,SAAS,EAAE,+BAA+B;;KAE3C;AACY,CAAA,EAAA,6BAA6B,CAKzC;;ACfD;AASA;MAEa,kCAAkC,GAAG,aAAa,CAAC,OAAO;AACrE,IAAA,WAAW,EAAE,oCAAoC;AACjD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,yBAAyB,EAAE;IACvC,WAAW,EAAE,EAAE,6BAA6B,EAAE;IAC9C,YAAY,EAAE,EAAE,6BAA6B,EAAE;IAC/C,SAAS,EAAE,EAAE,2BAA2B,EAAE;IAC1C,WAAW,EAAE,EAAE,6BAA6B,EAAE;IAC9C,WAAW,EAAE,EAAE,6BAA6B,EAAE;AAC/C,CAAA,CAAC;;ACRF;AAMO,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,cAA8C,CAAA;;AAEhG,UAAA,CAAA;AADC,IAAA,sBAAsB,EAAE;;AACd,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAGX,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;AACxB,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAGhB,UAAA,CAAA;AADC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;AACV,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAGlB,UAAA,CAAA;AADC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;AACf,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AAChB,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAG5B,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACtB,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAGtB,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACnB,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAGzB,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACf,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA;AAG7B,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACb,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAGnC,UAAA,CAAA;AADC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BAClB,IAAI;AAAC,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AA/BL,8BAA8B,GAAA,UAAA,CAAA;AAJ1C,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,gCAAgC;AAC3C,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,8BAA8B,CAgC1C;;AC9CD;AAKO,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,kBAAkD,CAAA;AAAnG,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAgD,MAAM,8BAA8B;IAe1G;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,kCAAkC,GAAA,UAAA,CAAA;AAH9C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,oCAAoC;KAChD;AACY,CAAA,EAAA,kCAAkC,CAgB9C;;;ACbD;AAMO,IAAM,kCAAkC,GAAA,oCAAA,GAAxC,MAAM,kCAAmC,SAAQ,sBAAsD,CAAA;AAAvG,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAgD,MAAM,8BAA8B;AAExG,QAAA,IAAA,CAAA,kCAAkC,GAAG,IAAI,CAAC,gBAAgB,CAAC,kCAAkC,CAAC;;IAqBhG;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,kCAAkC,CAAC,sBAAsB,EAAE;YACxE,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,CAAA,MAAA,EAAS,YAAY,CAAC,OAAO,CAAC,oCAAkC,CAAC;sBACpF,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,kCAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAtBU,kCAAkC,GAAA,oCAAA,GAAA,UAAA,CAAA;AAJ9C,IAAA,cAAc,CAAqC;AAClD,QAAA,SAAS,EAAE,oCAAoC;AAC/C,QAAA,cAAc,EAAE;KACjB;AACY,CAAA,EAAA,kCAAkC,CAwB9C;;ACvCD;AAQO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,gBAAgB,CAAA;8GAAzD,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhC,gCAAgC,EAAA,CAAA,CAAA;;AAAhC,gCAAgC,GAAA,UAAA,CAAA;AAN5C,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,kCAAkC;KAC9C;;AAIY,CAAA,EAAA,gCAAgC,CAI5C;2FAJY,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAF5C;;;ACPD;AAKO,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,kBAAkB,CAAA;;AAA7D,kCAAkC,GAAA,UAAA,CAAA;AAH9C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,oCAAoC;KAChD;AACY,CAAA,EAAA,kCAAkC,CAA8B;;ACJ7E;AAMO,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,2BAA2B,CAAA;AAA5E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,CAAC,cAAc,CAAC,gCAAgC,CAAC;IAI1F;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,8BAA8B;IACvC;;AAJW,kCAAkC,GAAA,UAAA,CAAA;AAJ9C,IAAA,cAAc,CAAqC;AAClD,QAAA,SAAS,EAAE,oCAAoC;;KAEhD;AACY,CAAA,EAAA,kCAAkC,CAK9C;;ACfD;AASA;MAEa,uCAAuC,GAAG,aAAa,CAAC,OAAO;AAC1E,IAAA,WAAW,EAAE,yCAAyC;AACtD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,8BAA8B,EAAE;IAC5C,WAAW,EAAE,EAAE,kCAAkC,EAAE;IACnD,YAAY,EAAE,EAAE,kCAAkC,EAAE;IACpD,SAAS,EAAE,EAAE,gCAAgC,EAAE;IAC/C,WAAW,EAAE,EAAE,kCAAkC,EAAE;IACnD,WAAW,EAAE,EAAE,kCAAkC,EAAE;AACpD,CAAA,CAAC;;ACrBF;MAaa,sBAAsB,GAAG,aAAa,CAAC,OAAO;AACzD,IAAA,WAAW,EAAE,wBAAwB;AACrC,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE;QACR,8BAA8B;QAC9B,6BAA6B;QAC7B,6BAA6B;QAC7B,kCAAkC;QAClC,uCAAuC;QACvC,qCAAqC;QACrC,gCAAgC;QAChC,yBAAyB;QACzB,0BAA0B;AAC3B,KAAA;AACF,CAAA,CAAC;AAEF;;ACxB6G;AAI5G;;MCQY,gCAAgC,CAAA;AAT7C,IAAA,WAAA,GAAA;AAUW,QAAA,IAAA,CAAA,MAAM,GAAsB;AACnC,YAAA,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE;AACnC,YAAA,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE;SACvC;AAEQ,QAAA,IAAA,CAAA,OAAO,GAAoB;YAClC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7C,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxD;AACF,IAAA;8GAVY,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EALjC;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAJS,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,6BAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAMN,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAT5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;oBACtC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE;;;AAGT,EAAA,CAAA;AACF,iBAAA;;;;;;;;ACdM,MAAM,6BAA6B,GAAW;AACnD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,iFAAgD,CAAC,IAAI,CACnD,CAAC,IAAI,CAAC,CAAC,gCAAgC,CACxC;AACJ,KAAA;;;;;;;;ACTH;AAIA;MASa,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;QAQE,IAAA,CAAA,eAAe,GAAG,KAAK;AASxB,IAAA;AAPC,IAAA,eAAe,CAAC,SAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS;IACpC;AAEA,IAAA,iBAAiB,CAAC,SAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;IAC9B;8GATW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbvC,iPASA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDEuB,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEtB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,iPAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AERpC;AAEO,MAAM,uBAAuB,GAAW;AAC7C,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,2EAAyC,CAAC,IAAI,CAC5C,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAClC;AAEH,QAAA,QAAQ,EAAE;AACR,YAAA,cAAc,CAAC;AACb,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,MAAM,EAAE,MACN,uDAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,4BAA4B,CAAC;aAC/D,CAAC;AACF,YAAA,cAAc,CAAC;AACb,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,MAAM,EAAE,MACN,8EAAyE,CAAC,IAAI,CAC5E,CAAC,IAAI,CAAC,CAAC,6BAA6B,CACrC;aACJ,CAAC;;;;;;;;;AASH,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;ACxCM,MAAO,yBAA0B,SAAQ,sBAAsB,CAAA;AADrE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CACvD,yBAAyB,CAC1B;AAOF,IAAA;AALC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACvE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;8GATW,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;;ACNM,MAAM,6BAA6B,GAAG;AAC3C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;ACE1B,IAAW;AAAjB,CAAA,UAAiB,oBAAoB,EAAA;IACnC,SAAgB,QAAQ,CAAC,KAAa,EAAA;QACpC,OAAO,KAAK,KAAK,QAAQ;IAC3B;AAFgB,IAAA,oBAAA,CAAA,QAAQ,WAEvB;AACH,CAAC,EAJgB,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;ACO/B,MAAO,wBAAyB,SAAQ,sBAAsB,CAAA;AADpE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;AAanF,IAAA;AAXC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACtE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;AAEO,IAAA,UAAU,CAAC,IAAW,EAAA;QAC3B,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAC7E,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CACvC;IACH;8GAbW,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;;ACNM,MAAM,4BAA4B,GAAG;AAC1C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;;ACEzB,IAAW;AAAjB,CAAA,UAAiB,mBAAmB,EAAA;IAClC,SAAgB,QAAQ,CAAC,KAAa,EAAA;QACpC,OAAO,KAAK,KAAK,QAAQ;IAC3B;AAFgB,IAAA,mBAAA,CAAA,QAAQ,WAEvB;AACH,CAAC,EAJgB,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;;ACFpC;AAiBA;AAGM,MAAO,wBAAyB,SAAQ,sBAAsB,CAAA;AADpE,IAAA,WAAA,GAAA;;AAEkB,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAC9D,wBAAwB,CACzB;AAEe,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,CAAC,gBAAgB,CACrE,+BAA+B,CAChC;AA0FF,IAAA;IAxFQ,MAAM,WAAW,CAAC,IAAU,EAAA;AACjC,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/B,QAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7B,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;aACzB,sBAAsB,CAAC,QAAQ;AAC/B,aAAA,OAAO,EAAE;AACZ,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI;AAClC,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;QAC3D;AACA,QAAA,OAAO,OAAO,CAAC,CAAC,CAAC;IACnB;AAEO,IAAA,aAAa,CAClB,KAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,KAAK;AACrD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;IAEO,aAAa,CAClB,EAAU,EACV,KAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK;AACzD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;IAEO,aAAa,CAClB,EAAU,EACV,eAAuB,EAAA;QAEvB,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,EAAE,eAAe;AACnE,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;IAEO,cAAc,CACnB,EAAU,EACV,KAA4B,EAAA;QAE5B,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK;AAC1D,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEO,IAAA,aAAa,CAAC,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE;AAClD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEO,IAAA,gBAAgB,CAAC,EAAU,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,EAAE;AACrD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEO,IAAA,eAAe,CAAC,EAAU,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE;AACpD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEO,IAAA,cAAc,CACnB,EAAU,EACV,aAAqB,EACrB,eAAuB,EAAA;AAEvB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CACjD,EAAE,EACF,aAAa,EACb,eAAe,CAChB,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD;AAEO,IAAA,iBAAiB,CACtB,EAAU,EACV,aAAqB,EACrB,eAAuB,EAAA;AAEvB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CACpD,EAAE,EACF,aAAa,EACb,eAAe,CAChB,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD;AAEA,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACtE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;8GAhGW,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;;ACbK,MAAO,2BAA4B,SAAQ,sBAAsB,CAAA;AADvE,IAAA,WAAA,GAAA;;AAEE,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC;AACrE,IAAA;8GAFY,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3B,2BAA2B,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACFM,MAAM,4BAA4B,GAAG;AAC1C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,kBAAkB,CAAC,MAAM;AAC/B,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,aAAa,EAAE,IAAI;;;ACRf,IAAW;AAAjB,CAAA,UAAiB,mBAAmB,EAAA;IAClC,SAAgB,QAAQ,CAAC,KAAa,EAAA;QACpC,OAAO,KAAK,KAAK,QAAQ;IAC3B;AAFgB,IAAA,mBAAA,CAAA,QAAQ,WAEvB;AACH,CAAC,EAJgB,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;;ACO9B,MAAO,6BAA8B,SAAQ,sBAAsB,CAAA;AADzE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CAAC;AAa7F,IAAA;AAXC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAC3E,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;AAEO,IAAA,UAAU,CAAC,IAAW,EAAA;QAC3B,OAAO,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAClF,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CACvC;IACH;8GAbW,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA7B,6BAA6B,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC;;;ACNM,MAAM,iCAAiC,GAAG;AAC/C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;;ACE9B,IAAW;AAAjB,CAAA,UAAiB,wBAAwB,EAAA;IACvC,SAAgB,QAAQ,CAAC,KAAa,EAAA;QACpC,OAAO,KAAK,KAAK,QAAQ;IAC3B;AAFgB,IAAA,wBAAA,CAAA,QAAQ,WAEvB;AACH,CAAC,EAJgB,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;;ACOnC,MAAO,kCAAmC,SAAQ,sBAAsB,CAAA;AAD9E,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,kCAAkC,GAAG,IAAI,CAAC,gBAAgB,CAAC,kCAAkC,CAAC;AAavG,IAAA;AAXC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,kCAAkC,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAChF,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;AAEO,IAAA,UAAU,CAAC,IAAW,EAAA;QAC3B,OAAO,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACvF,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CACvC;IACH;8GAbW,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAlC,kCAAkC,EAAA,CAAA,CAAA;;2FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAD9C;;;ACNM,MAAM,sCAAsC,GAAG;AACpD,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,6BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,6BAA6B,KAA7B,6BAA6B,GAAA,EAAA,CAAA,CAAA;;ACEnC,IAAW;AAAjB,CAAA,UAAiB,6BAA6B,EAAA;IAC5C,SAAgB,QAAQ,CAAC,KAAa,EAAA;QACpC,OAAO,KAAK,KAAK,QAAQ;IAC3B;AAFgB,IAAA,6BAAA,CAAA,QAAQ,WAEvB;AACH,CAAC,EAJgB,6BAA6B,KAA7B,6BAA6B,GAAA,EAAA,CAAA,CAAA;;ACWxC,MAAO,gCAAiC,SAAQ,sBAAsB,CAAA;AAD5E,IAAA,WAAA,GAAA;;AAEmB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CACxD,wBAAwB,CACzB;AAEO,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,CAAC,gBAAgB,CAC9D,gCAAgC,CACjC;AAmBF,IAAA;AAjBQ,IAAA,aAAa,CAAC,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;AAC3C,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;IAEO,cAAc,CACnB,EAAU,EACV,KAA4B,EAAA;QAE5B,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK;AACnD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEA,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,gCAAgC,CAAC,MAAM;AAChD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D;8GAzBW,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhC,gCAAgC,EAAA,CAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAD5C;;;ACVM,MAAM,oCAAoC,GAAG;AAClD,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,GAAA,EAAA,CAAA,CAAA;;ACEjC,IAAW;AAAjB,CAAA,UAAiB,2BAA2B,EAAA;IAC1C,SAAgB,QAAQ,CAAC,KAAa,EAAA;QACpC,OAAO,KAAK,KAAK,QAAQ;IAC3B;AAFgB,IAAA,2BAAA,CAAA,QAAQ,WAEvB;AACH,CAAC,EAJgB,2BAA2B,KAA3B,2BAA2B,GAAA,EAAA,CAAA,CAAA;;ACOtC,MAAO,2BAA4B,SAAQ,sBAAsB,CAAA;AADvE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CACzD,2BAA2B,CAC5B;AAOF,IAAA;AALC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACzE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;8GATW,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3B,2BAA2B,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACNM,MAAM,+BAA+B,GAAG;AAC7C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,sBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,GAAA,EAAA,CAAA,CAAA;;ACE5B,IAAW;AAAjB,CAAA,UAAiB,sBAAsB,EAAA;IACrC,SAAgB,QAAQ,CAAC,KAAa,EAAA;QACpC,OAAO,KAAK,KAAK,QAAQ;IAC3B;AAFgB,IAAA,sBAAA,CAAA,QAAQ,WAEvB;AACH,CAAC,EAJgB,sBAAsB,KAAtB,sBAAsB,GAAA,EAAA,CAAA,CAAA;;ACOjC,MAAO,oBAAqB,SAAQ,sBAAsB,CAAA;AADhE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AAa3E,IAAA;AAXC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAClE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;AAEO,IAAA,UAAU,CAAC,IAAW,EAAA;QAC3B,OAAO,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACzE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CACvC;IACH;8GAbW,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;ACNM,MAAM,wBAAwB,GAAG;AACtC,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;ACErB,IAAW;AAAjB,CAAA,UAAiB,eAAe,EAAA;IAC9B,SAAgB,QAAQ,CAAC,KAAa,EAAA;QACpC,OAAO,KAAK,KAAK,QAAQ;IAC3B;AAFgB,IAAA,eAAA,CAAA,QAAQ,WAEvB;AACH,CAAC,EAJgB,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;MCanB,wBAAwB,CAAA;AAHrC,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAA0B,UAAU;AAClE,aAAA,aAAa;AACC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAA,CAAA,KAAK,GAAG,EAAE;QACV,IAAA,CAAA,SAAS,GAAG,KAAK;QAEhB,IAAA,CAAA,qBAAqB,GAAoB,MAAM;QAC/C,IAAA,CAAA,yBAAyB,GAAG,KAAK;AACvB,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU;AAuFtE,IAAA;IArFC,IACI,eAAe,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YACxB;QACF;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,MAAM,EAAE;IACf;IAGA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;IAGA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,OAAO,EAAE;IAChB;IAGA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;AACnC,QAAA,IAAI,CAAC,KAAK;YACR,IAAI,CAAC,qBAAqB,KAAK;kBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;kBACpC,IAAI,CAAC;sBACH,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG;sBAC7B,IAAI;;QAEZ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7C;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,MAAM,EAAE;IACf;AAGA,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC5B,IAAI,IAAI,CAAC,yBAAyB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAC3D,KAAK,CAAC,cAAc,EAAE;QACxB;IACF;AAGA,IAAA,OAAO,CAAC,KAAqB,EAAA;QAC3B,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE;QAC3D,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAClD;QACF;QACA,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;YACzD;QACF;QACA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;AACxD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC;cACd,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG;cAC/B,MAAM;QACV,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;AAC5D,QAAA,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;AACtB,QAAA,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;AACzB,QAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpB,SAAS,CAAC,eAAe,EAAE;AAC3B,QAAA,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;IAChB;AAEQ,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;IACnE;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,MAAM,EAAE;AACzC,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACpD;aAAO;YACL,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK;QACvC;IACF;8GA/FW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA;;sBAQE;;sBACA;;sBACA;;sBAEA;;sBASA,YAAY;uBAAC,kBAAkB;;sBAK/B,YAAY;uBAAC,gBAAgB;;sBAM7B,YAAY;uBAAC,OAAO;;sBAgBpB,YAAY;uBAAC,MAAM;;sBAMnB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;sBAOlC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MC7CtB,+BAA+B,CAAA;AAc1C,IAAA,WAAA,GAAA;AAbS,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAuB,eAAe,CAAC;AACpD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAiC,EAAE,qDAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgB,IAAI,oDAAC;AACtC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,oDAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAEV,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAC9C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,EAC3B,YAAmE,EACpE;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAG9C,IAAI,CAAC,IAAI,EAAE;IACb;IAEA,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACrC;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CACvC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CACxC,CAAC,SAAS,CAAC;AACV,YAAA,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CACnC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,CACnE;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,KAAK,CAAC;AAC5E,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC;YACpE,CAAC;AACF,SAAA,CAAC;IACJ;IAEA,KAAK,GAAA;AACH,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE;QACtC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACrC;QACF;AACA,QAAA,IAAI,cAAc,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC;YAC/C;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACpC,cAAc;AACd,YAAA,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;SACnC,CAAC,CAAC,IAAI,CACL,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CACzC,CAAC,SAAS,CAAC;AACV,YAAA,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,KAAK,CAAC;AAC9E,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,qEAAqE;AACrE,oBAAA,uCAAuC,CACxC;YACH,CAAC;AACF,SAAA,CAAC;IACJ;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;QAClB;IACF;8GAxEW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,SAAA,EAF/B,CAAC,gCAAgC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5B/C,moDAmCA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDRsB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,glBAA1D,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,mBAGpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,EAAA,SAAA,EAC1D,CAAC,gCAAgC,CAAC,EAAA,QAAA,EAAA,moDAAA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA;;;MEMlC,+BAA+B,CAAA;AAsB1C,IAAA,WAAA,GAAA;AArBS,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA6B,eAAe,CAAC;AAC1D,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAyB,EAAE,iDAAC;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgB,IAAI,oDAAC;AACtC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAClB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AACvB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAClB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/C,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,IAC7B,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;gBAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,CAAA,EAAG,IAAI,CAAC,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CACtE;AACH,QAAA,CAAC,yDAAC;AAEe,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACtC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,EAC3B,YAAmE,EACpE;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAG9C,IAAI,CAAC,IAAI,EAAE;IACb;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB;QACF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC;aACN,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACpC,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC;AACxE,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC;YAChE,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,MAAM,CAAC,KAAY,EAAA;AACjB,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB;IACF;IAEA,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YAClC;QACF;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACxC;QACF;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACtB;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;IAClB;8GApEW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,SAAA,EAF/B,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCvC,iwCA2BA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAG/C,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,WACtC,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,EAAA,SAAA,EAChD,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,iwCAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA;;;AEhCvC;AAoCA;MAiBa,oBAAoB,CAAA;;;AAkI/B,IAAA,WAAA,GAAA;;AAhIS,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA8B,IAAI,gDAAC;AAE/C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkB,MAAM,gDAAC;QAErC,IAAA,CAAA,OAAO,GAAG,MAAM,EAAwB;QAExC,IAAA,CAAA,OAAO,GAAG,MAAM,EAAwB;QAExC,IAAA,CAAA,SAAS,GAAG,MAAM,EAAQ;AAE1B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAA8B,IAAI,uDAAC;QAEvD,IAAA,CAAA,KAAK,GAAG,MAAM,CAAmB;YACxC,IAAI,EAAE,kBAAkB,CAAC,MAAM;AAC/B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,aAAa,EAAE,IAAI;AACpB,SAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEO,QAAA,IAAA,CAAA,SAAS,GAAG;YACnB,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;YAC1D,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE;YACxD,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE;YACxD,EAAE,KAAK,EAAE,kBAAkB,CAAC,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE;SACnE;AAEgB,QAAA,IAAA,CAAA,gBAAgB,GAAG;AAClC,YAAA;gBACE,IAAI,EAAE,kBAAkB,CAAC,KAAK;AAC9B,gBAAA,GAAG,EAAE,UAAU;AACf,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,kBAAkB,CAAC,KAAK;AAC9B,gBAAA,GAAG,EAAE,UAAU;AACf,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,kBAAkB,CAAC,UAAU;AACnC,gBAAA,GAAG,EAAE,eAAe;AACpB,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,aAAa;AAC1B,gBAAA,MAAM,EAAE,EAAE;AACX,aAAA;SACO;AAED,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACtE;AAEQ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK,gDAAC;AAEpB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;AAEzB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;AAE1B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAElB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAyB,EAAE,wDAAC;AAEjD,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,KAAK,+DAAC;AAEnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,EAAE,6DAAC;AAE9B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAyB,EAAE,uDAAC;AAEhD,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,KAAK,8DAAC;AAElC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,EAAE,4DAAC;AAE7B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAyB,EAAE,6DAAC;AAEtD,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,KAAK,oEAAC;AAExC,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,EAAE,kEAAC;AAEnC,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAgB,IAAI,gEAAC;AAElD,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;YAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,CACpD;YACD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CACpC,UAAU,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAC9C;AACH,QAAA,CAAC,gEAAC;QAEO,IAAA,CAAA,OAAO,GAAG,QAAQ,CACzB,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,mDACtD;AAEQ,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CACzB,MACE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;YAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;YAC1B,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,CAAC,IAAI,CAAC,gBAAgB,EAAE,mDAC3B;AAEQ,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAClC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;YAC/B,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;AAC9C,QAAA,CAAC,sDAAC;AAEe,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEtC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEhD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAE1B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAS9C,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACxB,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrC,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;gBAClB,SAAS,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/C;AACF,QAAA,CAAC,CAAC;IACJ;;;IAIA,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;YAC7C;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AACA,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC1B,aAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE;aACxB,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEpD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3C,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACpE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACxB,sDAAsD,CACvD;YACH,CAAC;AACF,SAAA,CAAC;IACN;;;IAIA,cAAc,GAAA;AACZ,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,EAAE,EACxB;YACA;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,+BAA+B,EAAE;AACjC,YAAA,IAAI,EAAE;AACJ,gBAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;AAC9B,gBAAA,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AACtD,aAAA;AACD,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,IAAI,IAAG;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,IACE,IAAI;gBACJ,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;gBAClC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAC5D;AACA,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;YACrD;AACF,QAAA,CAAC,CAAC;IACN;;;AAIA,IAAA,iBAAiB,CAAC,EAAU,EAAA;AAC1B,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,EAAE,EACxB;YACA;QACF;QACA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE;;;IAIA,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;YAC5C;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AACA,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AACzB,aAAA,eAAe,CAAC,IAAI,CAAC,EAAE;aACvB,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEnD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;AACtD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAClE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACvB,oDAAoD,CACrD;YACH,CAAC;AACF,SAAA,CAAC;IACN;;;IAIA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACvD;QACF;AACA,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAChD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACjD,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,CACjC;QACD,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;QACrC;IACF;;;AAIA,IAAA,gBAAgB,CAAC,EAAU,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACvD;QACF;QACA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAC3B,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CACjD;IACH;;;IAIA,qBAAqB,GAAA;QACnB,IACE,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC,EACnC;YACA;QACF;AACA,QAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC;aAChB,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEzD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC;AAC5D,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAC7B,8DAA8D,CAC/D;YACH,CAAC;AACF,SAAA,CAAC;IACN;;;IAIA,WAAW,CACT,KAAQ,EACR,KAA0B,EAAA;QAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5D;;;IAIA,MAAM,YAAY,CAAC,KAAY,EAAA;QAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,YAAY,gBAAgB,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC;YACzD;QACF;AACA,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACjE,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;YAChB;QACF;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,EAAE;gBACxD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;YACzC;QACF;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC;AAC9D,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC;QACtE;gBAAU;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;QAClB;IACF;;;IAIA,WAAW,GAAA;AACT,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACjE;QACF;QACA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IACnC;;;AAIA,IAAA,UAAU,CAAC,KAAY,EAAA;AACrB,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;YAC5C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C;IACF;;;IAIA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YAC9D;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACvB;;;IAIA,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACpC;QACF;QACA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QACvB;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACvB;;;IAIA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACvD;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC;YAChD;QACF;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,OAAO,CACV,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;gBACrB,GAAG,IAAI,CAAC,KAAK,EAAE;AACf,gBAAA,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AACxD,gBAAA,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC;AACnE,aAAA,CAAC,CACH;QACH;aAAO;AACL,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;YAC/B,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE;QACF;IACF;;;IAIA,OAAO,GAAA;QACL,IACE,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;YACjB,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY;AAC5B,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EACrB;YACA;QACF;QACA,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACrC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC;YAChD;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,OAAO,CACV,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9B,gBAAA,IAAI,IAAI,CAAC,OAAO;AACd,sBAAE,IAAI,CAAC,WAAW,CAAC,IAAI;sBACrB,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACtC,gBAAA,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,IAAI,IAAI,EAAE;AACxB,aAAA,CAAC,CACH;QACH;IACF;;;IAIA,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,IACE,CAAC,IAAI;YACL,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAC5B;YACA;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,+BAA+B,EAAE;AACjC,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,QAAQ,IAAG;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC3B;AACF,QAAA,CAAC,CAAC;IACN;;;IAIA,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,IACE,CAAC,IAAI;YACL,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAC5B;YACA;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AACvD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,OAAO,EACL,gEAAgE;AAClE,gBAAA,WAAW,EAAE,QAAQ;AACtB,aAAA;AACF,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,SAAS,IAAG;AACrB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;YACnE;AACF,QAAA,CAAC,CAAC;IACN;;;AAIQ,IAAA,WAAW,CAAC,IAA0B,EAAA;QAC5C,OAAO;YACL,GAAG,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;AAC9D,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC;YAClE,eAAe,EAAE,IAAI,CAAC,OAAO;SAC9B;IACH;;;IAIQ,WAAW,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACtC;AACA,QAAA,OAAO,IAAI;IACb;;;AAIQ,IAAA,OAAO,CAAC,IAAiC,EAAA;AAC/C,QAAA,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE;AACpC,QAAA,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE;AACnC,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACb,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,kBAAkB,CAAC,MAAM;AAC7C,YAAA,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;AACxB,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AACtB,YAAA,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;AAC5B,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AACtB,YAAA,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;AAChC,YAAA,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;AAChC,YAAA,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,IAAI;AAC3C,SAAA,CAAC;AACF,QAAA,IACE,IAAI;YACJ,IAAI,CAAC,YAAY,KAAK,SAAS;AAC/B,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAC5B;YACA,IAAI,CAAC,gBAAgB,EAAE;QACzB;AACA,QAAA,IACE,IAAI;YACJ,IAAI,CAAC,WAAW,KAAK,SAAS;AAC9B,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAC5B;YACA,IAAI,CAAC,eAAe,EAAE;QACxB;IACF;;;AAIQ,IAAA,UAAU,CAAC,IAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;;;AAIQ,IAAA,OAAO,CACb,OAAyC,EACzC,QAAQ,GAAG,KAAK,EAAA;AAEhB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAAE;YACpE;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB;aACG,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,IAAI,IAAG;AACX,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrB,IAAI,QAAQ,EAAE;AACZ,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzB;YACF,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC3D,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,mEAAmE;AACjE,oBAAA,wEAAwE,CAC3E;YACH,CAAC;AACF,SAAA,CAAC;IACN;8GAjnBW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,mZAFpB,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,0BCnDjE,yxQAsLU,EAAA,MAAA,EAAA,CAAA,goDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1IN,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,kBAAkB,8SAClB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,gtBACf,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,2BAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,eAAe;wBACf,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,wBAAwB;AACzB,qBAAA,EAAA,SAAA,EACU,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,EAAA,QAAA,EAAA,yxQAAA,EAAA,MAAA,EAAA,CAAA,goDAAA,CAAA,EAAA;;;;;;;;AEhDjE;AAEO,MAAM,iBAAiB,GAAW;AACvC,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,qEAAmC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC;AAEvE,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;MCTa,+BAA+B,CAAA;AAX5C,IAAA,WAAA,GAAA;QAYW,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAC/CC,KAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAyB,CAAC,CAClD;AACF,IAAA;8GAJY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPhC;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EANoB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,2IAA5D,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAQR,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAX3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;oBACtC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,CAAC;AACvE,oBAAA,QAAQ,EAAE;;;;;AAKT,EAAA,CAAA;AACF,iBAAA;;;;;;;;MCWY,8BAA8B,CAAA;AAP3C,IAAA,WAAA,GAAA;AAQW,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA4B,eAAe,CAAC;AACzD,QAAA,IAAA,CAAA,MAAM,GAAG,SAAS,CAAC,oBAAoB,kDAAC;AACxC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAwB;AAC1C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,EAAC,YAA4C,EAAC;AAW5E,IAAA;IATC,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE;AAC1D,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;QAClB;IACF;AAEA,IAAA,OAAO,CAAC,IAA0B,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACtB;8GAdW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEb,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChClD,ueAYA,EAAA,MAAA,EAAA,CAAA,2PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDgBY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEpE,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,ueAAA,EAAA,MAAA,EAAA,CAAA,2PAAA,CAAA,EAAA;wFAIpD,oBAAoB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEhClD;AA0BA;MAUa,+BAA+B,CAAA;AAR5C,IAAA,WAAA,GAAA;AAYW,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAE3D,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAyB,EAAE,iDAAC;AAE1C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgB,IAAI,oDAAC;AAEtC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAEV,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAE1B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAE9B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAEvB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;AAMzC,QAAA,IAAA,CAAA,OAAO,GAAoB;YAClC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7C,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;AACrD,YAAA;AACE,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA;AACE,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,OAAO,EAAE,WAAW;wBACpB,KAAK,EAAE,CAAC,IAA0B,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACvD,qBAAA;AACD,oBAAA;AACE,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,IAAI,EAAE,aAAa;AACnB,wBAAA,OAAO,EAAE,cAAc;wBACvB,KAAK,EAAE,CAAC,IAA0B,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC9D,qBAAA;AACD,oBAAA;AACE,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,OAAO,EAAE,uBAAuB;AAChC,wBAAA,QAAQ,EAAE,CAAC,IAA0B,KACnC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI;wBACxD,KAAK,EAAE,CAAC,IAA0B,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzD,qBAAA;AACF,iBAAA;AACF,aAAA;SACF;AAoFF,IAAA;AAvHC,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,wBAAwB;IAC/D;IAmCA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;IACzB;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,MAAM,EAAE;IACf;IAEA,GAAG,GAAA;QACD,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAClC;AAEA,IAAA,IAAI,CAAC,IAA0B,EAAA;QAC7B,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzC;AAEA,IAAA,WAAW,CAAC,IAA0B,EAAA;AACpC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;QACpC,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC;YACxD;QACF;AACA,QAAA,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAClE;AAEA,IAAA,MAAM,CAAC,IAA0B,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;YAC1D;QACF;QACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AACvD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,OAAO,EACL,gEAAgE;AAClE,gBAAA,WAAW,EAAE,QAAQ;AACtB,aAAA;AACF,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,SAAS,IAAG;YACrB,IAAI,CAAC,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBACvB;YACF;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC;iBACF,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO;iBACnC,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAExC,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,oBAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,mEAAmE,CACpE;gBACH,CAAC;AACF,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,UAAU,CAAC,IAA+B,EAAA;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;YAC3D,IAAI;AACJ,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA,CAAC;QACF,GAAG,CAAC,iBAAiB,CAAC;AACnB,aAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACtE,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACnC;8GA9IW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,SAAA,EAF/B,CAAC,wBAAwB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAG1B,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrCnC,0VAcA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDmBY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGtC,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAAA,eAAA,EAGxB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,EAAE,sBAAsB,CAAC,EAAA,SAAA,EACvC,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,0VAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAGpC,SAAS;uBAAC,sBAAsB;;;;;;;;AErCnC;AAOA;AAEA,MAAM,WAAW,GAAoC,OAAM,KAAK,KAAG;AACjE,IAAA,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC;IACpC;AACA,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACnD,IAAA,MAAM,IAAI,GAAG,CAAC,MAAM,UAAU,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;SACxE,IAAI,CAAC,IAAI;IACZ,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC;IACnC;AACA,IAAA,OAAO,IAAI;AACb,CAAC;AAEM,MAAM,4BAA4B,GAAW;AAClD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,aAAa,EAAE,MACb,gFAA+C,CAAC,IAAI,CAClD,CAAC,IAAI,CAAC,CAAC,+BAA+B,CACvC;AACJ,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,IAAI,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;QAChC,SAAS,EAAE,CAAC,wBAAwB,CAAC;AACrC,QAAA,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;AAC9B,QAAA,aAAa,EAAE,MACb,gFAA4E,CAAC,IAAI,CAC/E,CAAC,IAAI,CAAC,CAAC,+BAA+B,CACvC;AACJ,KAAA;;AAGH;;;;AAIG;AACH;;ACjDA;AACA;AACA;AACA;AACA;;ACEA;AACA,YAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPjB;;AAEG;;"}
1
+ {"version":3,"file":"cms-websql.mjs","sources":["../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/migrations/1791132517216_initial.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.angular-node-app.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.docs-webapp.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.electron-app.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.mobile-app.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.npm-lib-and-cli-tool.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/env/env.vscode-plugin.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/app.data.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.validation.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content-storage.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.entity.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.repository.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.controller.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.provider.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.middleware.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.subscriber.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms.abstract.context.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/i18n/lib.translation.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.config.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag-api.service.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.constants.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.models.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.utils.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-editable.directive.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.routes.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/lib/index.ts","../../../tmp-libs-for-dist-websql/cms/projects/cms/src/cms-websql.ts"],"sourcesContent":["import { TaonAuthContextRepository } from '@taon-dev/session/websql';\nimport { Taon, TaonBaseMigration, TaonMigration } from 'taon/websql';\nimport { QueryRunner } from 'taon-typeorm/websql';\nimport {\n MyAppAuthorization,\n MyAppGroup,\n MyAppPermission,\n MyAppRole,\n} from '../index';\n\n//#region Migration class for context \"CmsContext\"\n@TaonMigration({\n className: 'CmsContext_1791132517216_initial',\n})\nexport class CmsContext_1791132517216_initial extends TaonBaseMigration {\n private taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository<MyAppAuthorization>,\n );\n\n //#region up\n async up(queryRunner: QueryRunner): Promise<any> {\n await queryRunner.startTransaction();\n try {\n await this.taonAuthContextRepository.persistTree({\n enums: {\n groups: MyAppGroup,\n roles: MyAppRole,\n permissions: MyAppPermission,\n },\n tree: {\n groupAndRoles: {\n [MyAppGroup.Administrator]: '*',\n [MyAppGroup.Customers]: [MyAppRole.BlogReader],\n },\n rolesAndPermissions: {\n [MyAppRole.Customer]: [\n MyAppPermission.AccessCourseP2,\n MyAppPermission.AccessCourseP2,\n ],\n [MyAppRole.CustomerPremium]: '*',\n },\n },\n });\n\n await queryRunner.commitTransaction();\n } catch (error) {\n console.error('Error in migration:', error);\n await queryRunner.rollbackTransaction();\n } finally {\n await queryRunner.release();\n }\n }\n //#endregion\n\n //#region down\n async down(queryRunner: QueryRunner): Promise<any> {\n await queryRunner.startTransaction();\n try {\n await this.taonAuthContextRepository.clearRolesGroupPermissions();\n\n await queryRunner.commitTransaction();\n } catch (error) {\n console.error('Error in migration:', error);\n await queryRunner.rollbackTransaction();\n } finally {\n await queryRunner.release();\n }\n }\n //#endregion\n}\n//#endregion\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CmsContext_1791132517216_initial } from './1791132517216_initial';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_CmsContext = {\n /* 04-10-2026 18:48:37 */ CmsContext_1791132517216_initial,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT = 'angular-node-app';\n// release.envName\nexport const ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_ANGULAR_NODE_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_ANGULAR_NODE_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_ANGULAR_NODE_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_ANGULAR_NODE_APP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_ANGULAR_NODE_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_ANGULAR_NODE_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_ANGULAR_NODE_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_ANGULAR_NODE_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_ANGULAR_NODE_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_DOCS_WEBAPP_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_DOCS_WEBAPP_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT = 'docs-webapp';\n// release.envName\nexport const ENV_DOCS_WEBAPP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_DOCS_WEBAPP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_DOCS_WEBAPP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_DOCS_WEBAPP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_DOCS_WEBAPP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_DOCS_WEBAPP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_DOCS_WEBAPP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_DOCS_WEBAPP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_DOCS_WEBAPP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_DOCS_WEBAPP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_DOCS_WEBAPP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_DOCS_WEBAPP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_DOCS_WEBAPP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_DOCS_WEBAPP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_DOCS_WEBAPP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_DOCS_WEBAPP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_ELECTRON_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// build.ssr\nexport const ENV_ELECTRON_APP_BUILD_SSR = false;\n// loading.preAngularBootstrap.background\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_ELECTRON_APP_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_ELECTRON_APP_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT = 'electron-app';\n// release.envName\nexport const ENV_ELECTRON_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_ELECTRON_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_ELECTRON_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_ELECTRON_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_ELECTRON_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_ELECTRON_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_ELECTRON_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_ELECTRON_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_ELECTRON_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_ELECTRON_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.websql\nexport const ENV_ELECTRON_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_ELECTRON_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_ELECTRON_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_ELECTRON_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_ELECTRON_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_ELECTRON_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_ELECTRON_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_ELECTRON_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_ELECTRON_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_MOBILE_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_MOBILE_APP_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_MOBILE_APP_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_MOBILE_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT = 'mobile-app';\n// release.envName\nexport const ENV_MOBILE_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_MOBILE_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_MOBILE_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_MOBILE_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_MOBILE_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_MOBILE_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_MOBILE_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_MOBILE_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_MOBILE_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_MOBILE_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_MOBILE_APP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_MOBILE_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_MOBILE_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_MOBILE_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_MOBILE_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_MOBILE_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_MOBILE_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_MOBILE_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_MOBILE_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_MOBILE_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_MOBILE_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_MOBILE_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_MOBILE_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_MOBILE_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_MOBILE_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT = 'npm-lib-and-cli-tool';\n// release.envName\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END = undefined;\n// container.start\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/websql';\n// config.superUsers\nexport const ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN = 'cms.example.domain.com';\n// website.title\nexport const ENV_VSCODE_PLUGIN_WEBSITE_TITLE = 'Cms';\n// website.useDomain\nexport const ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT = 'vscode-plugin';\n// release.envName\nexport const ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_VSCODE_PLUGIN_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_VSCODE_PLUGIN_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_VSCODE_PLUGIN_CONTAINER_END = undefined;\n// container.start\nexport const ENV_VSCODE_PLUGIN_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_VSCODE_PLUGIN_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_VSCODE_PLUGIN_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_VSCODE_PLUGIN_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_VSCODE_PLUGIN_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_VSCODE_PLUGIN_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_VSCODE_PLUGIN_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_VSCODE_PLUGIN_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_VSCODE_PLUGIN_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_VSCODE_PLUGIN_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_VSCODE_PLUGIN_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_VSCODE_PLUGIN_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","import { TaonAuthorizationSchema } from '@taon-dev/session/websql';\n\nexport enum MyAppGroup {\n Administrator = 'administrator',\n Customers = 'customers',\n}\n\nexport enum MyAppRole {\n MangePosts = 'manage-posts',\n Customer = 'Customer',\n CustomerPremium = 'CustomerPremium',\n BlogReader = 'BlogReader',\n}\n\nexport enum MyAppPermission {\n AccessToAllEmails = 'AccessToAllEmails',\n AccessCourseP1 = 'AccessCourseP1',\n AccessCourseP2 = 'AccessCourseP2',\n AccessCoursePremium = 'AccessCoursePremium',\n}\n\nexport interface MyAppAuthorization extends TaonAuthorizationSchema {\n group: MyAppGroup;\n role: MyAppRole;\n permission: MyAppPermission;\n}\n","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.cms';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/cms';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.8';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { Translation } from \"@taon-dev/i18n/websql\";\nimport { Taon } from \"taon/websql\";\n\nconst t = Translation.for('src/lib/my-organization-proj.ts', {\"src/lib/my-organization-proj.ts\":{\"en-US\":async () => (await import('./i18n/my-organization-proj.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/my-organization-proj.ts.pl-PL.i18n.data')).default}} as any);\n\nexport function myOrgProj() {\n t.gettext('My Translated Company Name!')\n}\n","//#region tnp-helpers cli template\nimport { UtilsJson } from 'tnp-core/websql';\nimport { Helpers, BaseCommandLineFeature } from 'tnp-helpers/websql';\n/* */ \n//#endregion\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n helloWorldFromGlobalArg() {\n console.log('hello world from global argument!');\n this._exit(0);\n }\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson.getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;\n","//#region imports\nimport {\n Column,\n CustomColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsCategoryDefaultsValues } from './taon-cms-category.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsCategoryEntity',\n createTable: true,\n})\nexport class TaonCmsCategoryEntity extends TaonBaseAbstractEntity<TaonCmsCategoryEntity> {\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n parentCategoryId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n name: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n description: string | null;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n sortOrder: number;\n}\n","export enum TaonCmsContentType {\n Normal = 'normal',\n Video = 'video',\n Audio = 'audio',\n Attachment = 'attachment',\n}\n\nexport enum TaonCmsContentState {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport interface TaonCmsContentFields {\n type: TaonCmsContentType;\n title: string;\n slug: string;\n body: string | null;\n videoKey: string | null;\n audioKey: string | null;\n attachmentKey: string | null;\n excerpt: string | null;\n categoryId: number | null;\n authorUserId: number | null;\n status: 'draft' | 'published' | 'archived';\n publishedAt: Date | null;\n}\n\nexport interface TaonCmsCreateContent\n extends\n Pick<TaonCmsContentFields, 'title' | 'slug'>,\n Partial<Omit<TaonCmsContentFields, 'title' | 'slug'>> {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n}\n\nexport interface TaonCmsUpdateContent extends Partial<TaonCmsContentFields> {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n expectedVersion: number;\n}\n\nexport interface TaonCmsRestoreContent {\n revisionNumber: number;\n expectedVersion: number;\n}\n\nexport interface TaonCmsContentSnapshot extends TaonCmsContentFields {\n tagIds: number[];\n relatedPostIds?: number[];\n permissionIds: number[];\n}\n","import { Taon } from 'taon/websql';\n\nimport type { TaonCmsContentFields } from './taon-cms-content.models';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n\nexport function contentError(message: string, status = 400): never {\n Taon.error({ message, status });\n throw new Error(message);\n}\n\nexport function requireContentId(value: number, name = 'contentId'): void {\n if (!Number.isSafeInteger(value) || value <= 0) {\n contentError(`${name} must be a positive integer.`);\n }\n}\n\nexport function requireContentVersion(\n value: number,\n name = 'expectedVersion',\n): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n contentError(`${name} must be a non-negative integer.`);\n }\n}\n\nexport function validateContentInput(\n input: Partial<TaonCmsContentFields> & {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n },\n creating = false,\n): void {\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n contentError('Content must be an object.');\n }\n if (\n input.type !== undefined &&\n !Object.values(TaonCmsContentType).includes(input.type)\n ) {\n contentError('type must be normal, video, audio, or attachment.');\n }\n for (const field of ['title', 'slug'] as const) {\n if (creating || input[field] !== undefined) {\n if (typeof input[field] !== 'string' || !input[field].trim()) {\n contentError(`${field} must be a non-empty string.`);\n }\n }\n }\n for (const field of [\n 'body', 'excerpt', 'videoKey', 'audioKey', 'attachmentKey',\n ] as const) {\n if (\n input[field] !== undefined &&\n input[field] !== null &&\n typeof input[field] !== 'string'\n ) {\n contentError(`${field} must be a string or null.`);\n }\n }\n for (const field of ['categoryId', 'authorUserId'] as const) {\n if (input[field] !== undefined && input[field] !== null) {\n requireContentId(input[field], field);\n }\n }\n if (\n input.status !== undefined &&\n !['draft', 'published', 'archived'].includes(input.status)\n ) {\n contentError('status must be draft, published, or archived.');\n }\n if (input.publishedAt !== undefined && input.publishedAt !== null) {\n if (\n !(\n input.publishedAt instanceof Date ||\n typeof input.publishedAt === 'string'\n ) ||\n Number.isNaN(new Date(input.publishedAt).getTime())\n ) {\n contentError('publishedAt must be a valid date or null.');\n }\n }\n for (const field of ['tagIds', 'relatedPostIds', 'permissionIds'] as const) {\n const ids = input[field];\n if (ids !== undefined) {\n if (!Array.isArray(ids)) {\n contentError(`${field} must be an array.`);\n }\n for (const id of ids) {\n requireContentId(\n id,\n field === 'tagIds'\n ? 'tagId'\n : field === 'relatedPostIds'\n ? 'relatedPostId'\n : 'permissionId',\n );\n }\n }\n }\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsCategoryRepository',\n})\nexport class TaonCmsCategoryRepository extends TaonBaseRepository<TaonCmsCategoryEntity> {\n entityClassResolveFn: () => typeof TaonCmsCategoryEntity = () =>\n TaonCmsCategoryEntity;\n\n async requireCategory(id: number, manager: EntityManager): Promise<void> {\n //#region @websqlFunc\n const category = await manager\n .getRepository<TaonCmsCategoryEntity>(this.target)\n .findOneBy({ id });\n if (!category) {\n contentError(`Category ${id} does not exist.`, 404);\n }\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryRepository } from './taon-cms-category.repository';\n//#endregion\n\n@TaonController<TaonCmsCategoryController>({\n className: 'TaonCmsCategoryController',\n allowedMethods: [],\n})\nexport class TaonCmsCategoryController extends TaonBaseCrudController<TaonCmsCategoryEntity> {\n entityClassResolveFn: () => typeof TaonCmsCategoryEntity = () =>\n TaonCmsCategoryEntity;\n\n taonCmsCategoryRepository = this.injectCustomRepo(TaonCmsCategoryRepository);\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsCategoryProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsCategoryProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsCategoryMiddleware',\n})\nexport class TaonCmsCategoryMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryProvider } from './taon-cms-category.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsCategorySubscriber>({\n className: 'TaonCmsCategorySubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsCategorySubscriber extends TaonBaseSubscriberForEntity {\n taonCmsCategoryProvider = this.injectProvider(TaonCmsCategoryProvider);\n listenTo(): typeof TaonCmsCategoryEntity {\n return TaonCmsCategoryEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryController } from './taon-cms-category.controller';\nimport { TaonCmsCategoryRepository } from './taon-cms-category.repository';\nimport { TaonCmsCategoryProvider } from './taon-cms-category.provider';\nimport { TaonCmsCategoryMiddleware } from './taon-cms-category.middleware';\nimport { TaonCmsCategorySubscriber } from './taon-cms-category.subscriber';\n//#endregion\n\nexport const TaonCmsCategoryAbstractContext = createContext(() => ({\n contextName: 'TaonCmsCategoryAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsCategoryEntity },\n controllers: { TaonCmsCategoryController },\n repositories: { TaonCmsCategoryRepository },\n providers: { TaonCmsCategoryProvider },\n middlewares: { TaonCmsCategoryMiddleware },\n subscribers: { TaonCmsCategorySubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsCommentDefaultsValues } from './taon-cms-comment.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsCommentEntity',\n createTable: true,\n})\nexport class TaonCmsCommentEntity extends TaonBaseEntity<TaonCmsCommentEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n parentCommentId: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n userId: number | null;\n\n //#region @websql\n @Column({ type: 'text' })\n //#endregion\n body: string;\n\n //#region @websql\n @Column({ type: 'varchar', default: 'published' })\n //#endregion\n status: string;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsCommentRepository',\n})\nexport class TaonCmsCommentRepository extends TaonBaseRepository<TaonCmsCommentEntity> {\n entityClassResolveFn: () => typeof TaonCmsCommentEntity = () => TaonCmsCommentEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentRepository } from './taon-cms-comment.repository';\n//#endregion\n\n@TaonController<TaonCmsCommentController>({\n className: 'TaonCmsCommentController',\n allowedMethods: []\n})\nexport class TaonCmsCommentController extends TaonBaseCrudController<TaonCmsCommentEntity> {\n entityClassResolveFn: () => typeof TaonCmsCommentEntity = () => TaonCmsCommentEntity;\n\n taonCmsCommentRepository = this.injectCustomRepo(TaonCmsCommentRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon.Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsCommentRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsCommentController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsCommentProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsCommentProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsCommentMiddleware',\n})\nexport class TaonCmsCommentMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentProvider } from './taon-cms-comment.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsCommentSubscriber>({\n className: 'TaonCmsCommentSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsCommentSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsCommentProvider = this.injectProvider(TaonCmsCommentProvider);\n listenTo(): typeof TaonCmsCommentEntity {\n return TaonCmsCommentEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentController } from './taon-cms-comment.controller';\nimport { TaonCmsCommentRepository } from './taon-cms-comment.repository';\nimport { TaonCmsCommentProvider } from './taon-cms-comment.provider';\nimport { TaonCmsCommentMiddleware } from './taon-cms-comment.middleware';\nimport { TaonCmsCommentSubscriber } from './taon-cms-comment.subscriber';\n//#endregion\n\nexport const TaonCmsCommentAbstractContext = createContext(() => ({\n contextName: 'TaonCmsCommentAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsCommentEntity },\n controllers: { TaonCmsCommentController },\n repositories: { TaonCmsCommentRepository },\n providers: { TaonCmsCommentProvider },\n middlewares: { TaonCmsCommentMiddleware },\n subscribers: { TaonCmsCommentSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport type { TaonCmsContentSnapshot } from '../taon-cms-content/taon-cms-content.models';\n\nimport { TaonCmsContentRevisionDefaultsValues } from './taon-cms-content-revision.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentRevisionEntity',\n createTable: true,\n})\nexport class TaonCmsContentRevisionEntity extends TaonBaseEntity<TaonCmsContentRevisionEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n revisionNumber: number;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n title: string;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n body: string | null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n snapshot: TaonCmsContentSnapshot | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n createdByUserId: number | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\n\nimport type { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsContentSnapshot } from '../taon-cms-content/taon-cms-content.models';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentRevisionRepository',\n})\nexport class TaonCmsContentRevisionRepository extends TaonBaseRepository<TaonCmsContentRevisionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentRevisionEntity = () =>\n TaonCmsContentRevisionEntity;\n\n async listForContent(\n contentId: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n return manager\n .getRepository<TaonCmsContentRevisionEntity>(this.target)\n .find({\n where: { contentId },\n order: { revisionNumber: 'DESC' },\n });\n //#endregion\n }\n\n async requireRevision(\n contentId: number,\n revisionNumber: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity> {\n //#region @websqlFunc\n const revision = await manager\n .getRepository<TaonCmsContentRevisionEntity>(this.target)\n .findOneBy({ contentId, revisionNumber });\n if (!revision) {\n contentError(\n `Revision ${revisionNumber} of content ${contentId} does not exist.`,\n 404,\n );\n }\n return revision;\n //#endregion\n }\n\n async recordContent(\n content: TaonCmsContentEntity,\n snapshot: TaonCmsContentSnapshot,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentRevisionEntity>(\n this.target,\n );\n return repository.save(\n repository.create({\n contentId: content.id,\n revisionNumber: content.version,\n version: 1,\n title: content.title,\n body: content.body,\n snapshot,\n createdByUserId: content.authorUserId,\n createdAt: new Date(),\n }),\n );\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionRepository } from './taon-cms-content-revision.repository';\n//#endregion\n\n@TaonController<TaonCmsContentRevisionController>({\n className: 'TaonCmsContentRevisionController',\n allowedMethods: [],\n})\nexport class TaonCmsContentRevisionController extends TaonBaseCrudController<TaonCmsContentRevisionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentRevisionEntity = () =>\n TaonCmsContentRevisionEntity;\n\n taonCmsContentRevisionRepository = this.injectCustomRepo(\n TaonCmsContentRevisionRepository,\n );\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentRevisionProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentRevisionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentRevisionMiddleware',\n})\nexport class TaonCmsContentRevisionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionProvider } from './taon-cms-content-revision.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentRevisionSubscriber>({\n className: 'TaonCmsContentRevisionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentRevisionSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentRevisionProvider = this.injectProvider(TaonCmsContentRevisionProvider);\n listenTo(): typeof TaonCmsContentRevisionEntity {\n return TaonCmsContentRevisionEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionController } from './taon-cms-content-revision.controller';\nimport { TaonCmsContentRevisionRepository } from './taon-cms-content-revision.repository';\nimport { TaonCmsContentRevisionProvider } from './taon-cms-content-revision.provider';\nimport { TaonCmsContentRevisionMiddleware } from './taon-cms-content-revision.middleware';\nimport { TaonCmsContentRevisionSubscriber } from './taon-cms-content-revision.subscriber';\n//#endregion\n\nexport const TaonCmsContentRevisionAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentRevisionAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentRevisionEntity },\n controllers: { TaonCmsContentRevisionController },\n repositories: { TaonCmsContentRevisionRepository },\n providers: { TaonCmsContentRevisionProvider },\n middlewares: { TaonCmsContentRevisionMiddleware },\n subscribers: { TaonCmsContentRevisionSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentTagDefaultsValues } from './taon-cms-content-tag.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentTagEntity',\n createTable: true,\n})\nexport class TaonCmsContentTagEntity extends TaonBaseAbstractEntity<TaonCmsContentTagEntity> {\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n tagId: number;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentTagRepository',\n})\nexport class TaonCmsContentTagRepository extends TaonBaseRepository<TaonCmsContentTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentTagEntity = () =>\n TaonCmsContentTagEntity;\n\n async findTagIds(\n contentId: number,\n manager: EntityManager,\n ): Promise<number[]> {\n //#region @websqlFunc\n const links = await manager\n .getRepository<TaonCmsContentTagEntity>(this.target)\n .find({ where: { contentId }, order: { tagId: 'ASC' } });\n return links.map(link => link.tagId);\n //#endregion\n }\n\n async replaceTags(\n contentId: number,\n tagIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentTagEntity>(\n this.target,\n );\n await repository.delete({ contentId });\n const links = [...new Set(tagIds)].map(tagId =>\n repository.create({ contentId, tagId }),\n );\n if (links.length) {\n await repository.save(links);\n }\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagRepository } from './taon-cms-content-tag.repository';\n//#endregion\n\n@TaonController<TaonCmsContentTagController>({\n className: 'TaonCmsContentTagController',\n allowedMethods: [],\n})\nexport class TaonCmsContentTagController extends TaonBaseCrudController<TaonCmsContentTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentTagEntity = () =>\n TaonCmsContentTagEntity;\n\n taonCmsContentTagRepository = this.injectCustomRepo(\n TaonCmsContentTagRepository,\n );\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentTagProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentTagProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentTagMiddleware',\n})\nexport class TaonCmsContentTagMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagProvider } from './taon-cms-content-tag.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentTagSubscriber>({\n className: 'TaonCmsContentTagSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentTagSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentTagProvider = this.injectProvider(TaonCmsContentTagProvider);\n listenTo(): typeof TaonCmsContentTagEntity {\n return TaonCmsContentTagEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagController } from './taon-cms-content-tag.controller';\nimport { TaonCmsContentTagRepository } from './taon-cms-content-tag.repository';\nimport { TaonCmsContentTagProvider } from './taon-cms-content-tag.provider';\nimport { TaonCmsContentTagMiddleware } from './taon-cms-content-tag.middleware';\nimport { TaonCmsContentTagSubscriber } from './taon-cms-content-tag.subscriber';\n//#endregion\n\nexport const TaonCmsContentTagAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentTagAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentTagEntity },\n controllers: { TaonCmsContentTagController },\n repositories: { TaonCmsContentTagRepository },\n providers: { TaonCmsContentTagProvider },\n middlewares: { TaonCmsContentTagMiddleware },\n subscribers: { TaonCmsContentTagSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsTagDefaultsValues } from './taon-cms-tag.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsTagEntity',\n createTable: true,\n})\nexport class TaonCmsTagEntity extends TaonBaseAbstractEntity<TaonCmsTagEntity> {\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n name: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n description: string | null;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsTagRepository',\n})\nexport class TaonCmsTagRepository extends TaonBaseRepository<TaonCmsTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsTagEntity = () => TaonCmsTagEntity;\n\n async requireTags(ids: number[], manager: EntityManager): Promise<void> {\n //#region @websqlFunc\n for (const id of new Set(ids)) {\n const tag = await manager\n .getRepository<TaonCmsTagEntity>(this.target)\n .findOneBy({ id });\n if (!tag) {\n contentError(`Tag ${id} does not exist.`, 404);\n }\n }\n //#endregion\n }\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagRepository } from './taon-cms-tag.repository';\n//#endregion\n\n@TaonController<TaonCmsTagController>({\n className: 'TaonCmsTagController',\n allowedMethods: []\n})\nexport class TaonCmsTagController extends TaonBaseCrudController<TaonCmsTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsTagEntity = () => TaonCmsTagEntity;\n\n taonCmsTagRepository = this.injectCustomRepo(TaonCmsTagRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon.Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsTagRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsTagController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsTagProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsTagProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsTagMiddleware',\n})\nexport class TaonCmsTagMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagProvider } from './taon-cms-tag.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsTagSubscriber>({\n className: 'TaonCmsTagSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsTagSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsTagProvider = this.injectProvider(TaonCmsTagProvider);\n listenTo(): typeof TaonCmsTagEntity {\n return TaonCmsTagEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagController } from './taon-cms-tag.controller';\nimport { TaonCmsTagRepository } from './taon-cms-tag.repository';\nimport { TaonCmsTagProvider } from './taon-cms-tag.provider';\nimport { TaonCmsTagMiddleware } from './taon-cms-tag.middleware';\nimport { TaonCmsTagSubscriber } from './taon-cms-tag.subscriber';\n//#endregion\n\nexport const TaonCmsTagAbstractContext = createContext(() => ({\n contextName: 'TaonCmsTagAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsTagEntity },\n controllers: { TaonCmsTagController },\n repositories: { TaonCmsTagRepository },\n providers: { TaonCmsTagProvider },\n middlewares: { TaonCmsTagMiddleware },\n subscribers: { TaonCmsTagSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n JoinTable,\n ManyToMany,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { TaonPermissionEntity } from '@taon-dev/session/websql';\n\nimport { TaonCmsContentDefaultsValues } from './taon-cms-content.constants';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentEntity',\n createTable: true,\n})\nexport class TaonCmsContentEntity extends TaonBaseEntity<TaonCmsContentEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'varchar', default: TaonCmsContentType.Normal })\n //#endregion\n type: TaonCmsContentType = TaonCmsContentType.Normal;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n title: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @ManyToMany(() => TaonCmsContentEntity)\n @JoinTable({\n name: 'taon_cms_related_posts',\n joinColumn: { name: 'contentId', referencedColumnName: 'id' },\n inverseJoinColumn: { name: 'relatedPostId', referencedColumnName: 'id' },\n })\n //#endregion\n relatedPosts: TaonCmsContentEntity[];\n\n //#region @websql\n @ManyToMany(() => TaonPermissionEntity)\n @JoinTable({\n name: 'taon_cms_content_permissions',\n joinColumn: { name: 'contentId', referencedColumnName: 'id' },\n inverseJoinColumn: { name: 'permissionId', referencedColumnName: 'id' },\n })\n //#endregion\n permissions: TaonPermissionEntity[];\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n excerpt: string | null;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n body: string | null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n videoKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n audioKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n attachmentKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n categoryId: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n authorUserId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar', default: 'draft' })\n //#endregion\n status: string;\n // draft | published | archived\n\n //#region @websql\n @Column({ type: 'datetime', nullable: true })\n //#endregion\n publishedAt: Date | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { In, Raw } from 'taon-typeorm/websql';\nimport type { EntityManager } from 'taon-typeorm/websql';\nimport { TaonPermissionEntity } from '@taon-dev/session/websql';\n\nimport { TaonCmsCategoryRepository } from '../taon-cms-category/taon-cms-category.repository';\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionRepository } from '../taon-cms-content-revision/taon-cms-content-revision.repository';\nimport { TaonCmsContentTagRepository } from '../taon-cms-content-tag/taon-cms-content-tag.repository';\nimport { TaonCmsTagRepository } from '../taon-cms-tag/taon-cms-tag.repository';\n\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentType } from './taon-cms-content.models';\nimport type {\n TaonCmsContentFields,\n TaonCmsContentSnapshot,\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n} from './taon-cms-content.models';\nimport {\n contentError,\n requireContentId,\n requireContentVersion,\n validateContentInput,\n} from './taon-cms-content.validation';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentRepository',\n})\nexport class TaonCmsContentRepository extends TaonBaseRepository<TaonCmsContentEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentEntity = () =>\n TaonCmsContentEntity;\n\n private readonly taonCmsContentRevisionRepository = this.injectCustomRepo(\n TaonCmsContentRevisionRepository,\n );\n\n private readonly taonCmsContentTagRepository = this.injectCustomRepo(\n TaonCmsContentTagRepository,\n );\n\n private readonly taonCmsCategoryRepository = this.injectCustomRepo(\n TaonCmsCategoryRepository,\n );\n\n private readonly tags = this.injectCustomRepo(TaonCmsTagRepository);\n\n async createContent(\n input: TaonCmsCreateContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n validateContentInput(input, true);\n return this.connection.transaction(async manager => {\n const fields = this.contentFields(input);\n const tagIds = [...new Set(input.tagIds ?? [])];\n const relatedPostIds = [...new Set(input.relatedPostIds ?? [])];\n const permissionIds = [...new Set(input.permissionIds ?? [])];\n await this.validateReferences(fields, tagIds, permissionIds, manager);\n await this.requireAvailableSlug(fields.slug, manager);\n const repository = manager.getRepository<TaonCmsContentEntity>(\n this.target,\n );\n const now = new Date();\n const content = await repository.save(\n repository.create({\n ...fields,\n version: 1,\n createdAt: now,\n updatedAt: now,\n }),\n );\n await this.taonCmsContentTagRepository.replaceTags(content.id, tagIds, manager);\n await this.replaceRelatedPosts(content.id, relatedPostIds, [], manager);\n await this.replacePermissions(content.id, permissionIds, [], manager);\n await this.taonCmsContentRevisionRepository.recordContent(\n content,\n { ...fields, tagIds, relatedPostIds, permissionIds },\n manager,\n );\n return this.requireContent(content.id, manager);\n });\n //#endregion\n }\n\n async updateContent(\n id: number,\n input: TaonCmsUpdateContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n validateContentInput(input);\n requireContentVersion(input.expectedVersion);\n return this.connection.transaction(async manager => {\n const current = await this.requireContent(id, manager);\n const snapshot = await this.snapshotOf(current, manager);\n const fields = this.contentFields(input, snapshot);\n const tagIds =\n input.tagIds === undefined\n ? snapshot.tagIds\n : [...new Set(input.tagIds)];\n const relatedPostIds =\n input.relatedPostIds === undefined\n ? snapshot.relatedPostIds\n : [...new Set(input.relatedPostIds)];\n const permissionIds =\n input.permissionIds === undefined\n ? snapshot.permissionIds\n : [...new Set(input.permissionIds)];\n return this.commitUpdate(\n current,\n input.expectedVersion,\n { ...fields, tagIds, relatedPostIds, permissionIds },\n manager,\n );\n });\n //#endregion\n }\n\n async archiveContent(\n id: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.updateContent(id, { status: 'archived', expectedVersion });\n //#endregion\n }\n\n async restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n if (!input || typeof input !== 'object') {\n contentError('Restore input must be an object.');\n }\n requireContentVersion(input.revisionNumber, 'revisionNumber');\n requireContentVersion(input.expectedVersion);\n return this.connection.transaction(async manager => {\n const current = await this.requireContent(id, manager);\n const revision = await this.taonCmsContentRevisionRepository.requireRevision(\n id,\n input.revisionNumber,\n manager,\n );\n if (!revision.snapshot) {\n contentError(\n 'This legacy revision has no complete snapshot and cannot be restored.',\n 409,\n );\n }\n const storedSnapshot = revision.snapshot;\n const snapshotFields: (keyof TaonCmsContentSnapshot)[] = [\n 'type',\n 'title',\n 'slug',\n 'body',\n 'excerpt',\n 'categoryId',\n 'authorUserId',\n 'status',\n 'publishedAt',\n 'tagIds',\n ];\n if (snapshotFields.some(field => storedSnapshot[field] === undefined)) {\n contentError(\n 'This revision has an incomplete snapshot and cannot be restored.',\n 409,\n );\n }\n validateContentInput(revision.snapshot, true);\n const snapshot = {\n // Older complete snapshots predate primary media; preserve those keys.\n ...this.contentFields(revision.snapshot, await this.snapshotOf(current, manager)),\n tagIds: revision.snapshot.tagIds,\n relatedPostIds: revision.snapshot.relatedPostIds ?? [],\n permissionIds: revision.snapshot.permissionIds ?? [],\n };\n return this.commitUpdate(\n current,\n input.expectedVersion,\n snapshot,\n manager,\n );\n });\n //#endregion\n }\n\n async listRevisions(id: number): Promise<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n await this.requireContent(id, manager);\n return this.taonCmsContentRevisionRepository.listForContent(id, manager);\n });\n //#endregion\n }\n\n async listRelatedPosts(id: number): Promise<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager =>\n (await this.requireContent(id, manager)).relatedPosts,\n );\n //#endregion\n }\n\n async listPermissions(id: number): Promise<TaonPermissionEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager =>\n (await this.requireContent(id, manager)).permissions,\n );\n //#endregion\n }\n\n async addRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.changeRelatedPost(id, relatedPostId, expectedVersion, true);\n //#endregion\n }\n\n async deleteRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.changeRelatedPost(id, relatedPostId, expectedVersion, false);\n //#endregion\n }\n\n private async changeRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n adding: boolean,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n requireContentId(relatedPostId, 'relatedPostId');\n requireContentVersion(expectedVersion);\n if (id === relatedPostId) {\n contentError('A post cannot relate to itself.');\n }\n return this.connection.transaction(async manager => {\n const current = await this.requireContent(id, manager);\n await this.requireContent(relatedPostId, manager);\n const snapshot = await this.snapshotOf(current, manager);\n const ids = snapshot.relatedPostIds ?? [];\n snapshot.relatedPostIds = adding\n ? [...new Set([...ids, relatedPostId])]\n : ids.filter(postId => postId !== relatedPostId);\n return this.commitUpdate(current, expectedVersion, snapshot, manager);\n });\n //#endregion\n }\n\n private async requireContent(\n id: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n const content = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOne({\n where: { id },\n relations: { relatedPosts: true, permissions: true },\n });\n if (!content) {\n contentError(`Content ${id} does not exist.`, 404);\n }\n return content;\n //#endregion\n }\n\n private contentFields(\n input: Partial<TaonCmsContentFields>,\n current?: TaonCmsContentFields,\n ): TaonCmsContentFields {\n const type = input.type ?? current?.type ?? TaonCmsContentType.Normal;\n const title = input.title ?? current?.title;\n const slug = input.slug ?? current?.slug;\n if (title === undefined || slug === undefined) {\n contentError('title and slug are required.');\n }\n const publishedAt =\n input.publishedAt === undefined\n ? (current?.publishedAt ?? null)\n : input.publishedAt;\n return {\n type,\n title,\n slug,\n body: input.body === undefined ? (current?.body ?? null) : input.body,\n videoKey:\n input.videoKey === undefined ? (current?.videoKey ?? null) : input.videoKey,\n audioKey:\n input.audioKey === undefined ? (current?.audioKey ?? null) : input.audioKey,\n attachmentKey:\n input.attachmentKey === undefined\n ? (current?.attachmentKey ?? null)\n : input.attachmentKey,\n excerpt:\n input.excerpt === undefined\n ? (current?.excerpt ?? null)\n : input.excerpt,\n categoryId:\n input.categoryId === undefined\n ? (current?.categoryId ?? null)\n : input.categoryId,\n authorUserId:\n input.authorUserId === undefined\n ? (current?.authorUserId ?? null)\n : input.authorUserId,\n status: input.status ?? current?.status ?? 'draft',\n publishedAt: publishedAt === null ? null : new Date(publishedAt),\n };\n }\n\n private async snapshotOf(\n content: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<TaonCmsContentSnapshot> {\n //#region @websqlFunc\n return {\n ...this.contentFields({\n ...content,\n status: this.contentStatus(content.status),\n }),\n tagIds: await this.taonCmsContentTagRepository.findTagIds(content.id, manager),\n relatedPostIds: content.relatedPosts.map(post => post.id),\n permissionIds: content.permissions.map(permission => permission.id),\n };\n //#endregion\n }\n\n private contentStatus(status: string): TaonCmsContentFields['status'] {\n if (status !== 'draft' && status !== 'published' && status !== 'archived') {\n contentError(`Unsupported stored content status: ${status}.`, 409);\n }\n return status;\n }\n\n private async validateReferences(\n fields: TaonCmsContentFields,\n tagIds: number[],\n permissionIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (fields.categoryId !== null) {\n await this.taonCmsCategoryRepository.requireCategory(fields.categoryId, manager);\n }\n await this.tags.requireTags(tagIds, manager);\n await this.requirePermissions(permissionIds, manager);\n //#endregion\n }\n\n private async requirePermissions(\n permissionIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (!permissionIds.length) {\n return;\n }\n const permissions = await manager\n .getRepository<TaonPermissionEntity>(TaonPermissionEntity)\n .findBy({ id: In(permissionIds) });\n const foundIds = new Set(permissions.map(permission => permission.id));\n const missingId = permissionIds.find(id => !foundIds.has(id));\n if (missingId !== undefined) {\n contentError(`Permission ${missingId} does not exist.`, 404);\n }\n //#endregion\n }\n\n private async requireAvailableSlug(\n slug: string,\n manager: EntityManager,\n contentId?: number,\n ): Promise<void> {\n //#region @websqlFunc\n const existing = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOneBy({ slug });\n if (existing && existing.id !== contentId) {\n contentError(`Slug \"${slug}\" is already in use.`, 409);\n }\n //#endregion\n }\n\n private async replaceRelatedPosts(\n id: number,\n relatedPostIds: number[],\n previousIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (relatedPostIds.includes(id)) {\n contentError('A post cannot relate to itself.');\n }\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n if (relatedPostIds.length) {\n const posts = await repository.findBy({ id: In(relatedPostIds) });\n const foundIds = new Set(posts.map(post => post.id));\n const missingId = relatedPostIds.find(postId => !foundIds.has(postId));\n if (missingId !== undefined) {\n contentError(`Content ${missingId} does not exist.`, 404);\n }\n }\n const added = relatedPostIds.filter(postId => !previousIds.includes(postId));\n const removed = previousIds.filter(postId => !relatedPostIds.includes(postId));\n if (added.length || removed.length) {\n await repository.createQueryBuilder()\n .relation('relatedPosts')\n .of(id)\n .addAndRemove(added, removed);\n }\n //#endregion\n }\n\n private async replacePermissions(\n id: number,\n permissionIds: number[],\n previousIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const added = permissionIds.filter(permissionId => !previousIds.includes(permissionId));\n const removed = previousIds.filter(permissionId => !permissionIds.includes(permissionId));\n if (added.length || removed.length) {\n await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .createQueryBuilder()\n .relation('permissions')\n .of(id)\n .addAndRemove(added, removed);\n }\n //#endregion\n }\n\n private async commitUpdate(\n current: TaonCmsContentEntity,\n expectedVersion: number,\n snapshot: TaonCmsContentSnapshot,\n manager: EntityManager,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n if (current.version !== expectedVersion) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n await this.validateReferences(\n snapshot,\n snapshot.tagIds,\n snapshot.permissionIds,\n manager,\n );\n await this.requireAvailableSlug(snapshot.slug, manager, current.id);\n // Preserve the first pre-API version before replacing it.\n const history = await this.taonCmsContentRevisionRepository.listForContent(current.id, manager);\n if (\n !history.some(revision => revision.revisionNumber === current.version)\n ) {\n await this.taonCmsContentRevisionRepository.recordContent(\n current,\n await this.snapshotOf(current, manager),\n manager,\n );\n }\n const fields = this.contentFields(snapshot);\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n const result = await repository.update(\n { id: current.id, version: expectedVersion },\n { ...fields, version: expectedVersion + 1, updatedAt: new Date() },\n );\n if (result.affected !== 1) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n await this.taonCmsContentTagRepository.replaceTags(current.id, snapshot.tagIds, manager);\n await this.replaceRelatedPosts(\n current.id,\n [...new Set(snapshot.relatedPostIds ?? [])],\n current.relatedPosts.map(post => post.id),\n manager,\n );\n await this.replacePermissions(\n current.id,\n [...new Set(snapshot.permissionIds ?? [])],\n current.permissions.map(permission => permission.id),\n manager,\n );\n const updated = await this.requireContent(current.id, manager);\n await this.taonCmsContentRevisionRepository.recordContent(\n updated,\n {\n ...fields,\n tagIds: snapshot.tagIds,\n relatedPostIds: updated.relatedPosts.map(post => post.id),\n permissionIds: updated.permissions.map(permission => permission.id),\n },\n manager,\n );\n return updated;\n //#endregion\n }\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}\n","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n POST,\n PUT,\n DELETE,\n Body,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport type {\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n} from './taon-cms-content.models';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql';\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\n//#endregion\n\n@TaonController<TaonCmsContentController>({\n className: 'TaonCmsContentController',\n allowedMethods: [\n 'getAll',\n 'getBy',\n 'createContent',\n 'updateContent',\n 'deleteContent',\n 'restoreContent',\n 'listRevisions',\n 'listRelatedPosts',\n 'listPermissions',\n 'addRelatedPost',\n 'deleteRelatedPost',\n 'paginationQuery'\n ],\n})\nexport class TaonCmsContentController extends TaonBaseCrudController<TaonCmsContentEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentEntity = () =>\n TaonCmsContentEntity;\n\n taonCmsContentRepository = this.injectCustomRepo(TaonCmsContentRepository);\n\n @POST()\n createContent(\n @Body() input: TaonCmsCreateContent,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.createContent(input);\n //#endregion\n }\n\n @PUT()\n updateContent(\n @Query('id') id: number,\n @Body() input: TaonCmsUpdateContent,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.updateContent(id, input);\n //#endregion\n }\n\n @DELETE()\n deleteContent(\n @Query('id') id: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.archiveContent(id, expectedVersion);\n //#endregion\n }\n\n @POST()\n restoreContent(\n @Query('id') id: number,\n @Body() input: TaonCmsRestoreContent,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.restoreContent(id, input);\n //#endregion\n }\n\n @GET()\n listRelatedPosts(\n @Query('id') id: number,\n ): Taon.Response<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listRelatedPosts(id);\n //#endregion\n }\n\n @GET()\n listPermissions(\n @Query('id') id: number,\n ): Taon.Response<TaonPermissionEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listPermissions(id);\n //#endregion\n }\n\n @POST()\n addRelatedPost(\n @Query('id') id: number,\n @Query('relatedPostId') relatedPostId: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.addRelatedPost(\n id, relatedPostId, expectedVersion,\n );\n //#endregion\n }\n\n @DELETE()\n deleteRelatedPost(\n @Query('id') id: number,\n @Query('relatedPostId') relatedPostId: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon.Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.deleteRelatedPost(\n id, relatedPostId, expectedVersion,\n );\n //#endregion\n }\n\n @GET()\n listRevisions(\n @Query('id') id: number,\n ): Taon.Response<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listRevisions(id);\n //#endregion\n }\n}\n","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentMiddleware',\n})\nexport class TaonCmsContentMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentProvider extends TaonBaseProvider {}\n","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentSubscriber>({\n className: 'TaonCmsContentSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);\n listenTo(): typeof TaonCmsContentEntity {\n return TaonCmsContentEntity;\n }\n}","//#region imports\nimport {\n ExpressRequest,\n ExpressResponse,\n TaonBaseStorageController,\n TaonController,\n TaonStorageObject,\n TaonUploadedFile,\n} from 'taon/websql';\n\nimport { contentError } from './taon-cms-content.validation';\n//#endregion\n\n@TaonController<TaonCmsContentStorageController>({\n className: 'TaonCmsContentStorageController',\n allowedMethods: ['exists', 'download', 'getMetadata', 'uploadFormDataToServer'],\n})\nexport class TaonCmsContentStorageController extends TaonBaseStorageController {\n protected async handleUploadFiles(\n files: TaonUploadedFile[],\n queryParams?: {},\n req?: ExpressRequest,\n res?: ExpressResponse,\n ): Promise<TaonStorageObject[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n afterFileUploadHook(): void {}\n\n buildStorageDownloadUrl(): string {\n throw new Error('Use the download endpoint for CMS media.');\n }\n\n async createStorageDownloadToken(): Promise<string> {\n throw new Error('CMS media download tokens are not enabled.');\n }\n}\n","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsCategoryAbstractContext } from '../taon-cms-category/taon-cms-category.abstract.context';\nimport { TaonCmsContentRevisionAbstractContext } from '../taon-cms-content-revision/taon-cms-content-revision.abstract.context';\nimport { TaonCmsContentTagAbstractContext } from '../taon-cms-content-tag/taon-cms-content-tag.abstract.context';\nimport { TaonCmsTagAbstractContext } from '../taon-cms-tag/taon-cms-tag.abstract.context';\n\nimport { TaonCmsContentController } from './taon-cms-content.controller';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentMiddleware } from './taon-cms-content.middleware';\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\nimport { TaonCmsContentSubscriber } from './taon-cms-content.subscriber';\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\n\n//#endregion\n\nexport const TaonCmsContentAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentAbstractContext',\n abstract: true,\n contexts: {\n TaonBaseContext,\n TaonCmsCategoryAbstractContext,\n TaonCmsTagAbstractContext,\n TaonCmsContentTagAbstractContext,\n TaonCmsContentRevisionAbstractContext,\n },\n entities: { TaonCmsContentEntity },\n controllers: { TaonCmsContentController, TaonCmsContentStorageController },\n repositories: { TaonCmsContentRepository },\n providers: { TaonCmsContentProvider },\n middlewares: { TaonCmsContentMiddleware },\n subscribers: { TaonCmsContentSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentAssetDefaultsValues } from './taon-cms-content-asset.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentAssetEntity',\n createTable: true,\n})\nexport class TaonCmsContentAssetEntity extends TaonBaseEntity<TaonCmsContentAssetEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n contentId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n type: string;\n // image | video | audio | file\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n storageProvider: string;\n // r2 | filesystem | s3\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n bucket: string | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n key: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n originalFilename: string | null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n mimeType: string | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n size: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n durationSeconds: number | null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n metadata: Record<string, any> | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentAssetRepository',\n})\nexport class TaonCmsContentAssetRepository extends TaonBaseRepository<TaonCmsContentAssetEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentAssetEntity = () => TaonCmsContentAssetEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetRepository } from './taon-cms-content-asset.repository';\n//#endregion\n\n@TaonController<TaonCmsContentAssetController>({\n className: 'TaonCmsContentAssetController',\n allowedMethods: []\n})\nexport class TaonCmsContentAssetController extends TaonBaseCrudController<TaonCmsContentAssetEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentAssetEntity = () => TaonCmsContentAssetEntity;\n\n taonCmsContentAssetRepository = this.injectCustomRepo(TaonCmsContentAssetRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon.Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsContentAssetRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsContentAssetController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentAssetProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentAssetProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentAssetMiddleware',\n})\nexport class TaonCmsContentAssetMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetProvider } from './taon-cms-content-asset.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentAssetSubscriber>({\n className: 'TaonCmsContentAssetSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentAssetSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentAssetProvider = this.injectProvider(TaonCmsContentAssetProvider);\n listenTo(): typeof TaonCmsContentAssetEntity {\n return TaonCmsContentAssetEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetController } from './taon-cms-content-asset.controller';\nimport { TaonCmsContentAssetRepository } from './taon-cms-content-asset.repository';\nimport { TaonCmsContentAssetProvider } from './taon-cms-content-asset.provider';\nimport { TaonCmsContentAssetMiddleware } from './taon-cms-content-asset.middleware';\nimport { TaonCmsContentAssetSubscriber } from './taon-cms-content-asset.subscriber';\n//#endregion\n\nexport const TaonCmsContentAssetAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentAssetAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentAssetEntity },\n controllers: { TaonCmsContentAssetController },\n repositories: { TaonCmsContentAssetRepository },\n providers: { TaonCmsContentAssetProvider },\n middlewares: { TaonCmsContentAssetMiddleware },\n subscribers: { TaonCmsContentAssetSubscriber },\n}));\n","//#region imports\nimport {\n Column,\n CustomColumn,\n PrimaryGeneratedColumn,\n Taon,\n TaonBaseAbstractEntity,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentPermissionDefaultsValues } from './taon-cms-content-permission.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentPermissionEntity',\n createTable: true,\n})\nexport class TaonCmsContentPermissionEntity extends TaonBaseEntity<TaonCmsContentPermissionEntity> {\n @PrimaryGeneratedColumn()\n id: number;\n\n @Column({ type: 'integer', default: 0 })\n version: number;\n\n @Column({ type: 'integer' })\n contentId: number;\n\n @Column({ type: 'varchar' })\n type: string;\n // public | authenticated | permission | role |\n // purchase | subscription\n\n @Column({ type: 'integer', nullable: true })\n permissionId: number | null;\n\n @Column({ type: 'integer', nullable: true })\n roleId: number | null;\n\n @Column({ type: 'integer', nullable: true })\n productId: number | null;\n\n @Column({ type: 'varchar', nullable: true })\n stripePriceId: string | null;\n\n @Column({ type: 'simple-json', nullable: true })\n config: Record<string, any> | null;\n\n @Column({ type: 'datetime' })\n createdAt: Date;\n}\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql';\nimport { Raw } from 'taon-typeorm/websql';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentPermissionRepository',\n})\nexport class TaonCmsContentPermissionRepository extends TaonBaseRepository<TaonCmsContentPermissionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentPermissionEntity = () => TaonCmsContentPermissionEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionRepository } from './taon-cms-content-permission.repository';\n//#endregion\n\n@TaonController<TaonCmsContentPermissionController>({\n className: 'TaonCmsContentPermissionController',\n allowedMethods: []\n})\nexport class TaonCmsContentPermissionController extends TaonBaseCrudController<TaonCmsContentPermissionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentPermissionEntity = () => TaonCmsContentPermissionEntity;\n\n taonCmsContentPermissionRepository = this.injectCustomRepo(TaonCmsContentPermissionRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon.Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsContentPermissionRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsContentPermissionController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}\n","//#region imports\nimport { Taon, TaonBaseProvider, TaonProvider } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentPermissionProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentPermissionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentPermissionMiddleware',\n})\nexport class TaonCmsContentPermissionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql';\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionProvider } from './taon-cms-content-permission.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentPermissionSubscriber>({\n className: 'TaonCmsContentPermissionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentPermissionSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentPermissionProvider = this.injectProvider(TaonCmsContentPermissionProvider);\n listenTo(): typeof TaonCmsContentPermissionEntity {\n return TaonCmsContentPermissionEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionController } from './taon-cms-content-permission.controller';\nimport { TaonCmsContentPermissionRepository } from './taon-cms-content-permission.repository';\nimport { TaonCmsContentPermissionProvider } from './taon-cms-content-permission.provider';\nimport { TaonCmsContentPermissionMiddleware } from './taon-cms-content-permission.middleware';\nimport { TaonCmsContentPermissionSubscriber } from './taon-cms-content-permission.subscriber';\n//#endregion\n\nexport const TaonCmsContentPermissionAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentPermissionAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentPermissionEntity },\n controllers: { TaonCmsContentPermissionController },\n repositories: { TaonCmsContentPermissionRepository },\n providers: { TaonCmsContentPermissionProvider },\n middlewares: { TaonCmsContentPermissionMiddleware },\n subscribers: { TaonCmsContentPermissionSubscriber },\n}));\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { TaonSessionAbstractContext } from '@taon-dev/session/websql';\nimport { createContext, TaonBaseContext } from 'taon/websql';\n\nimport { TaonCmsCategoryAbstractContext } from './taon-cms-category/taon-cms-category.abstract.context';\nimport { TaonCmsCommentAbstractContext } from './taon-cms-comment/taon-cms-comment.abstract.context';\nimport { TaonCmsContentAbstractContext } from './taon-cms-content/taon-cms-content.abstract.context';\nimport { TaonCmsContentAssetAbstractContext } from './taon-cms-content-asset/taon-cms-content-asset.abstract.context';\nimport { TaonCmsContentPermissionAbstractContext } from './taon-cms-content-permission/taon-cms-content-permission.abstract.context';\nimport { TaonCmsContentRevisionAbstractContext } from './taon-cms-content-revision/taon-cms-content-revision.abstract.context';\nimport { TaonCmsContentTagAbstractContext } from './taon-cms-content-tag/taon-cms-content-tag.abstract.context';\nimport { TaonCmsTagAbstractContext } from './taon-cms-tag/taon-cms-tag.abstract.context';\n\nexport const TaonCmsAbstractContext = createContext(() => ({\n contextName: 'TaonCmsAbstractContext',\n abstract: true,\n contexts: {\n TaonCmsCategoryAbstractContext,\n TaonCmsCommentAbstractContext,\n TaonCmsContentAbstractContext,\n TaonCmsContentAssetAbstractContext,\n TaonCmsContentPermissionAbstractContext,\n TaonCmsContentRevisionAbstractContext,\n TaonCmsContentTagAbstractContext,\n TaonCmsTagAbstractContext,\n TaonSessionAbstractContext,\n },\n}));\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CoreModels } from 'tnp-core/websql';\n\n// join interface type here\nimport { EnUsTraslationOverrideSrcLibMyOrganizationProjTs } from './my-organization-proj.ts.en-US.i18n.data';\nimport { PlPlTraslationOverrideSrcLibMyOrganizationProjTs } from './my-organization-proj.ts.pl-PL.i18n.data';;\nexport type LibOverride = CoreModels.DeepPartial<EnUsTraslationOverrideSrcLibMyOrganizationProjTs \n| PlPlTraslationOverrideSrcLibMyOrganizationProjTs>;\n\n // THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MtxGrid, MtxGridColumn } from '@ng-matero/extensions/grid';\n\ninterface TaonCmsAssetRow {\n id: number;\n name: string;\n}\n\n@Component({\n selector: 'taon-cms-assets-backoffice',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MtxGrid],\n template: `\n <h1>CMS assets</h1>\n <mtx-grid [data]=\"assets\" [columns]=\"columns\"></mtx-grid>\n `,\n})\nexport class TaonCmsAssetsBackofficeComponent {\n readonly assets: TaonCmsAssetRow[] = [\n { id: 1, name: 'Sample image.jpg' },\n { id: 2, name: 'Sample document.pdf' },\n ];\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true },\n { header: 'Asset Name', field: 'name', sortable: true },\n ];\n}\n","import { Routes } from '@angular/router';\n\nexport const TaonCmsAssetsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-assets-backoffice.component').then(\n m => m.TaonCmsAssetsBackofficeComponent,\n ),\n },\n];\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-cms-backoffice',\n templateUrl: './taon-cms-backoffice.component.html',\n styleUrls: ['./taon-cms-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonCmsBackofficeComponent {\n componentLoaded = false;\n\n onRouteActivate(component: any): void {\n this.componentLoaded = !!component;\n }\n\n onRouteDeactivate(component: any): void {\n this.componentLoaded = false;\n }\n}\n","@if (!componentLoaded) {\n <code>\n In CMS you can manage content and settings for your website.\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql';\n//#endregion\n\nexport const TaonCmsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-backoffice.component').then(\n m => m.TaonCmsBackofficeComponent,\n ),\n\n children: [\n adminLazyRoute({\n path: 'posts',\n menuItem: 'Posts',\n expandable: true,\n icon: 'edit',\n loader: () =>\n import('../index').then(m => m.TaonCmsPostsBackofficeRoutes),\n }),\n adminLazyRoute({\n path: 'assets',\n menuItem: 'Assets',\n expandable: false,\n icon: 'perm_media',\n loader: () =>\n import('../taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes').then(\n m => m.TaonCmsAssetsBackofficeRoutes,\n ),\n }),\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsBackofficeRoutes;\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryController } from './taon-cms-category.controller';\n\n@Injectable()\nexport class TaonCmsCategoryApiService extends TaonBaseAngularService {\n private taonCmsCategoryController = this.injectController(\n TaonCmsCategoryController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsCategoryEntity[]> {\n return this.taonCmsCategoryController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}\n","import type { TaonCmsCategoryEntity } from './taon-cms-category.entity';\n\nexport const TaonCmsCategoryDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsCategoryEntity>;","export enum TaonCmsCategoryState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsCategoryState } from './taon-cms-category.models';\n\nexport namespace TaonCmsCategoryUtils {\n export function isActive(state: string): state is TaonCmsCategoryState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentController } from './taon-cms-comment.controller';\n\n@Injectable()\nexport class TaonCmsCommentApiService extends TaonBaseAngularService {\n private taonCmsCommentController = this.injectController(TaonCmsCommentController);\n\n public get allMyEntities$(): Observable<TaonCmsCommentEntity[]> {\n return this.taonCmsCommentController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsCommentController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsCommentEntity } from './taon-cms-comment.entity';\n\nexport const TaonCmsCommentDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsCommentEntity>;","export enum TaonCmsCommentState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsCommentState } from './taon-cms-comment.models';\n\nexport namespace TaonCmsCommentUtils {\n export function isActive(state: string): state is TaonCmsCommentState {\n return state === 'active';\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService, TaonStorageObject } from 'taon/websql';\n\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\nimport { TaonCmsContentController } from './taon-cms-content.controller';\nimport type { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql';\nimport type {\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n} from './taon-cms-content.models';\n//#endregion\n\n@Injectable()\nexport class TaonCmsContentApiService extends TaonBaseAngularService {\n public readonly taonCmsContentController = this.injectController(\n TaonCmsContentController,\n );\n\n public readonly taonCmsContentStorageController = this.injectController(\n TaonCmsContentStorageController,\n );\n\n public async uploadMedia(file: File): Promise<TaonStorageObject> {\n const formData = new FormData();\n formData.append('file', file);\n const response = await this.taonCmsContentStorageController\n .uploadFormDataToServer(formData)\n .request();\n const objects = response.body.json;\n if (objects.length !== 1 || !objects[0].key) {\n throw new Error('The upload did not return a media key.');\n }\n return objects[0];\n }\n\n public createContent(\n input: TaonCmsCreateContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.createContent(input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public updateContent(\n id: number,\n input: TaonCmsUpdateContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.updateContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public deleteContent(\n id: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.deleteContent(id, expectedVersion)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.restoreContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public listRevisions(id: number): Observable<TaonCmsContentRevisionEntity[]> {\n return this.taonCmsContentController.listRevisions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public listRelatedPosts(id: number): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.listRelatedPosts(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public listPermissions(id: number): Observable<TaonPermissionEntity[]> {\n return this.taonCmsContentController.listPermissions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public addRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.addRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n ).request!().observable.pipe(map(res => res.body.json));\n }\n\n public deleteRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.deleteRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n ).request!().observable.pipe(map(res => res.body.json));\n }\n\n public get allMyEntities$(): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TaonBaseAngularService } from 'taon/websql';\n\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\n\n@Injectable()\nexport class TaonCmsContentConfigService extends TaonBaseAngularService {\n taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);\n}\n","import type { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n\nexport const TaonCmsContentDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n type: TaonCmsContentType.Normal,\n videoKey: null,\n audioKey: null,\n attachmentKey: null,\n} as Partial<TaonCmsContentEntity>;","import { TaonCmsContentState } from './taon-cms-content.models';\n\nexport namespace TaonCmsContentUtils {\n export function isActive(state: string): state is TaonCmsContentState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetController } from './taon-cms-content-asset.controller';\n\n@Injectable()\nexport class TaonCmsContentAssetApiService extends TaonBaseAngularService {\n private taonCmsContentAssetController = this.injectController(TaonCmsContentAssetController);\n\n public get allMyEntities$(): Observable<TaonCmsContentAssetEntity[]> {\n return this.taonCmsContentAssetController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsContentAssetController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\n\nexport const TaonCmsContentAssetDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentAssetEntity>;","export enum TaonCmsContentAssetState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentAssetState } from './taon-cms-content-asset.models';\n\nexport namespace TaonCmsContentAssetUtils {\n export function isActive(state: string): state is TaonCmsContentAssetState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionController } from './taon-cms-content-permission.controller';\n\n@Injectable()\nexport class TaonCmsContentPermissionApiService extends TaonBaseAngularService {\n private taonCmsContentPermissionController = this.injectController(TaonCmsContentPermissionController);\n\n public get allMyEntities$(): Observable<TaonCmsContentPermissionEntity[]> {\n return this.taonCmsContentPermissionController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsContentPermissionController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\n\nexport const TaonCmsContentPermissionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentPermissionEntity>;","export enum TaonCmsContentPermissionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentPermissionState } from './taon-cms-content-permission.models';\n\nexport namespace TaonCmsContentPermissionUtils {\n export function isActive(state: string): state is TaonCmsContentPermissionState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport { TaonCmsContentController } from '../taon-cms-content/taon-cms-content.controller';\nimport type { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsRestoreContent } from '../taon-cms-content/taon-cms-content.models';\n\nimport type { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionController } from './taon-cms-content-revision.controller';\n\n@Injectable()\nexport class TaonCmsContentRevisionApiService extends TaonBaseAngularService {\n private readonly contentController = this.injectController(\n TaonCmsContentController,\n );\n\n private taonCmsContentRevisionController = this.injectController(\n TaonCmsContentRevisionController,\n );\n\n public listRevisions(id: number): Observable<TaonCmsContentRevisionEntity[]> {\n return this.contentController.listRevisions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Observable<TaonCmsContentEntity> {\n return this.contentController.restoreContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public get allMyEntities$(): Observable<TaonCmsContentRevisionEntity[]> {\n return this.taonCmsContentRevisionController.getAll()\n .request!().observable.pipe(map(res => res.body?.json));\n }\n}\n","import type { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\n\nexport const TaonCmsContentRevisionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentRevisionEntity>;","export enum TaonCmsContentRevisionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentRevisionState } from './taon-cms-content-revision.models';\n\nexport namespace TaonCmsContentRevisionUtils {\n export function isActive(state: string): state is TaonCmsContentRevisionState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagController } from './taon-cms-content-tag.controller';\n\n@Injectable()\nexport class TaonCmsContentTagApiService extends TaonBaseAngularService {\n private taonCmsContentTagController = this.injectController(\n TaonCmsContentTagController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsContentTagEntity[]> {\n return this.taonCmsContentTagController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}\n","import type { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\n\nexport const TaonCmsContentTagDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentTagEntity>;","export enum TaonCmsContentTagState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentTagState } from './taon-cms-content-tag.models';\n\nexport namespace TaonCmsContentTagUtils {\n export function isActive(state: string): state is TaonCmsContentTagState {\n return state === 'active';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/websql';\n\nimport type { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagController } from './taon-cms-tag.controller';\n\n@Injectable()\nexport class TaonCmsTagApiService extends TaonBaseAngularService {\n private taonCmsTagController = this.injectController(TaonCmsTagController);\n\n public get allMyEntities$(): Observable<TaonCmsTagEntity[]> {\n return this.taonCmsTagController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsTagController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsTagEntity } from './taon-cms-tag.entity';\n\nexport const TaonCmsTagDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsTagEntity>;","export enum TaonCmsTagState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsTagState } from './taon-cms-tag.models';\n\nexport namespace TaonCmsTagUtils {\n export function isActive(state: string): state is TaonCmsTagState {\n return state === 'active';\n }\n}","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n SecurityContext,\n inject,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n selector: '[taonCmsEditable]',\n})\nexport class TaonCmsEditableDirective {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef)\n .nativeElement;\n private readonly sanitizer = inject(DomSanitizer);\n private value = '';\n private composing = false;\n\n @Input() taonCmsEditableFormat: 'text' | 'html' = 'text';\n @Input() taonCmsEditableSingleLine = false;\n @Output() readonly taonCmsEditableChange = new EventEmitter<string>();\n\n @Input()\n set taonCmsEditable(value: string) {\n if (value === this.value) {\n return;\n }\n this.value = value;\n this.render();\n }\n\n @HostListener('compositionstart')\n compositionStart(): void {\n this.composing = true;\n }\n\n @HostListener('compositionend')\n compositionEnd(): void {\n this.composing = false;\n this.onInput();\n }\n\n @HostListener('input')\n onInput(): void {\n if (this.composing) {\n return;\n }\n const text = this.element.innerText;\n this.value =\n this.taonCmsEditableFormat === 'html'\n ? this.sanitize(this.element.innerHTML)\n : this.taonCmsEditableSingleLine\n ? text.replace(/\\s*\\n\\s*/g, ' ')\n : text;\n // Remember emitted values so Angular does not rewrite the DOM/caret on input.\n this.taonCmsEditableChange.emit(this.value);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.onInput();\n this.render();\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if (this.taonCmsEditableSingleLine && event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const selection = this.element.ownerDocument.getSelection();\n if (!selection?.rangeCount || !event.clipboardData) {\n return;\n }\n const range = selection.getRangeAt(0);\n if (!this.element.contains(range.commonAncestorContainer)) {\n return;\n }\n const pasted = event.clipboardData.getData('text/plain');\n const text = this.taonCmsEditableSingleLine\n ? pasted.replace(/\\s*\\n\\s*/g, ' ')\n : pasted;\n range.deleteContents();\n const node = this.element.ownerDocument.createTextNode(text);\n range.insertNode(node);\n range.setStartAfter(node);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n this.onInput();\n }\n\n private sanitize(value: string): string {\n return this.sanitizer.sanitize(SecurityContext.HTML, value) ?? '';\n }\n\n private render(): void {\n if (this.taonCmsEditableFormat === 'html') {\n this.element.innerHTML = this.sanitize(this.value);\n } else {\n this.element.textContent = this.value;\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { finalize } from 'rxjs';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsContentRevisionApiService } from '../../taon-cms-content-revision/taon-cms-content-revision-api.service';\nimport type { TaonCmsContentRevisionEntity } from '../../taon-cms-content-revision/taon-cms-content-revision.entity';\n\n@Component({\n selector: 'taon-cms-revision-chooser',\n templateUrl: './taon-cms-revision-chooser.component.html',\n styleUrls: ['./taon-cms-revision-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe, MatButtonModule, MatDialogModule, MatRadioModule],\n providers: [TaonCmsContentRevisionApiService],\n})\nexport class TaonCmsRevisionChooserComponent {\n readonly post = inject<TaonCmsContentEntity>(MAT_DIALOG_DATA);\n readonly revisions = signal<TaonCmsContentRevisionEntity[]>([]);\n readonly selected = signal<number | null>(null);\n readonly loading = signal(false);\n readonly applying = signal(false);\n readonly error = signal('');\n\n private readonly api = inject(TaonCmsContentRevisionApiService);\n private readonly ref = inject(\n MatDialogRef<TaonCmsRevisionChooserComponent, TaonCmsContentEntity>,\n );\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.load();\n }\n\n load(): void {\n if (this.loading() || this.applying()) {\n return;\n }\n this.selected.set(null);\n this.loading.set(true);\n this.error.set('');\n this.api.listRevisions(this.post.id).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n ).subscribe({\n next: revisions => this.revisions.set(\n [...revisions].sort((a, b) => b.revisionNumber - a.revisionNumber),\n ),\n error: (error: unknown) => {\n console.error('[taon-cms-revision-chooser] Unable to load revisions', error);\n this.error.set('Revisions could not be loaded. Please try again.');\n },\n });\n }\n\n apply(): void {\n const revisionNumber = this.selected();\n if (this.loading() || this.applying()) {\n return;\n }\n if (revisionNumber === null) {\n this.error.set('Select a revision to restore.');\n return;\n }\n this.applying.set(true);\n this.error.set('');\n this.api.restoreContent(this.post.id, {\n revisionNumber,\n expectedVersion: this.post.version,\n }).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.applying.set(false)),\n ).subscribe({\n next: post => this.ref.close(post),\n error: (error: unknown) => {\n console.error('[taon-cms-revision-chooser] Unable to restore revision', error);\n this.error.set(\n 'The revision could not be restored. If the post changed, close and ' +\n 'reopen it to load its latest version.',\n );\n },\n });\n }\n\n cancel(): void {\n if (!this.applying()) {\n this.ref.close();\n }\n }\n}\n","<h2 mat-dialog-title>Restore a revision</h2>\n<mat-dialog-content>\n <p>Restoring replaces the post, including its status, with the selected revision.</p>\n @if (loading()) {\n <p role=\"status\">Loading revisions...</p>\n } @else {\n <mat-radio-group aria-label=\"Post revisions\" [value]=\"selected()\" (change)=\"selected.set($event.value)\" [disabled]=\"applying()\">\n @for (revision of revisions(); track revision.id) {\n <mat-radio-button [value]=\"revision.revisionNumber\" [disabled]=\"!revision.snapshot\">\n <strong>Revision {{ revision.revisionNumber }}</strong>\n <span>{{ revision.createdAt | date: 'medium' }}</span>\n @if (revision.createdByUserId !== null && revision.createdByUserId !== undefined) {\n <span>User {{ revision.createdByUserId }}</span>\n }\n @if (!revision.snapshot) {\n <span>Legacy revision - cannot be restored</span>\n }\n </mat-radio-button>\n } @empty {\n <p>No revisions are available.</p>\n }\n </mat-radio-group>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" [disabled]=\"loading() || applying()\" (click)=\"load()\">Reload revisions</button>\n }\n @if (applying()) {\n <p role=\"status\">Restoring...</p>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" [disabled]=\"applying()\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || applying() || selected() === null\" (click)=\"apply()\">Apply</button>\n</mat-dialog-actions>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { finalize } from 'rxjs';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n\nexport interface TaonRelatedPostChooserData {\n postId?: number;\n excludedIds: number[];\n}\n\n@Component({\n selector: 'taon-related-post-chooser',\n templateUrl: './taon-related-post-chooser.component.html',\n styleUrls: ['./taon-related-post-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, MatDialogModule, MatRadioModule],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonRelatedPostChooserComponent {\n readonly data = inject<TaonRelatedPostChooserData>(MAT_DIALOG_DATA);\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n readonly selected = signal<number | null>(null);\n readonly query = signal('');\n readonly loading = signal(false);\n readonly error = signal('');\n readonly filteredPosts = computed(() => {\n const query = this.query().trim().toLowerCase();\n return this.posts().filter(post =>\n post.id !== this.data.postId &&\n !this.data.excludedIds.includes(post.id) &&\n `${post.id} ${post.title} ${post.slug}`.toLowerCase().includes(query),\n );\n });\n\n private readonly api = inject(TaonCmsContentApiService);\n private readonly ref = inject(\n MatDialogRef<TaonRelatedPostChooserComponent, TaonCmsContentEntity>,\n );\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.load();\n }\n\n load(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.selected.set(null);\n this.error.set('');\n this.api.allMyEntities$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: posts => this.posts.set(posts),\n error: (error: unknown) => {\n console.error('[taon-related-post-chooser] Unable to load posts', error);\n this.error.set('Posts could not be loaded. Please try again.');\n },\n });\n }\n\n search(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.query.set(event.target.value);\n this.selected.set(null);\n }\n }\n\n choose(): void {\n if (this.loading() || this.error()) {\n return;\n }\n const post = this.filteredPosts().find(post => post.id === this.selected());\n if (!post) {\n this.error.set('Select a related post.');\n return;\n }\n this.ref.close(post);\n }\n\n cancel(): void {\n this.ref.close();\n }\n}\n","<h2 mat-dialog-title>Add related post</h2>\n<mat-dialog-content>\n <label class=\"search-field\">\n <span>Search posts</span>\n <input type=\"search\" aria-label=\"Search posts by ID, title or slug\" [value]=\"query()\" [disabled]=\"loading()\" (input)=\"search($event)\" />\n </label>\n @if (loading()) {\n <p role=\"status\">Loading posts...</p>\n } @else if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" (click)=\"load()\">Try again</button>\n } @else {\n <mat-radio-group aria-label=\"Related post\" [value]=\"selected()\" (change)=\"selected.set($event.value)\">\n @for (post of filteredPosts(); track post.id) {\n <mat-radio-button [value]=\"post.id\">\n #{{ post.id }} - {{ post.title }} <span class=\"slug\">{{ post.slug }}</span>\n </mat-radio-button>\n } @empty {\n <p>No matching posts available.</p>\n }\n </mat-radio-group>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || !!error() || selected() === null\" (click)=\"choose()\">Add related post</button>\n</mat-dialog-actions>\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TaonPermissionApiService } from '@taon-dev/session/websql';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql';\nimport { TaonConfirmDialogComponent } from '@taon-dev/ui/websql';\nimport { Observable, Subscription, finalize } from 'rxjs';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsUpdateContent } from '../../taon-cms-content/taon-cms-content.models';\nimport { TaonCmsContentType } from '../../taon-cms-content/taon-cms-content.models';\nimport { TaonCmsRevisionChooserComponent } from '../taon-cms-revision-chooser/taon-cms-revision-chooser.component';\nimport { TaonRelatedPostChooserComponent } from '../taon-related-post-chooser/taon-related-post-chooser.component';\nimport type { TaonRelatedPostChooserData } from '../taon-related-post-chooser/taon-related-post-chooser.component';\n\nimport { TaonCmsEditableDirective } from './taon-cms-editable.directive';\nimport type { TaonCmsPostDraft, TaonCmsPostMode } from './taon-cms-post.models';\n//#endregion\n\n@Component({\n selector: 'taon-cms-post',\n templateUrl: './taon-cms-post.component.html',\n styleUrls: ['./taon-cms-post.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatRadioModule,\n MatSelectModule,\n TaonCmsEditableDirective,\n ],\n providers: [TaonCmsContentApiService, TaonPermissionApiService],\n})\nexport class TaonCmsPostComponent {\n //#region fields and getters\n readonly post = input<TaonCmsContentEntity | null>(null);\n\n readonly mode = model<TaonCmsPostMode>('view');\n\n readonly changed = output<TaonCmsContentEntity>();\n\n readonly deleted = output<TaonCmsContentEntity>();\n\n readonly cancelled = output<void>();\n\n readonly currentPost = signal<TaonCmsContentEntity | null>(null);\n\n readonly draft = signal<TaonCmsPostDraft>({\n type: TaonCmsContentType.Normal,\n title: '',\n slug: '',\n excerpt: '',\n body: '',\n videoKey: null,\n audioKey: null,\n attachmentKey: null,\n });\n\n readonly postTypes = [\n { value: TaonCmsContentType.Normal, label: 'Normal post' },\n { value: TaonCmsContentType.Video, label: 'Video post' },\n { value: TaonCmsContentType.Audio, label: 'Audio post' },\n { value: TaonCmsContentType.Attachment, label: 'Attachment post' },\n ];\n\n private readonly mediaAttachments = [\n {\n type: TaonCmsContentType.Video,\n key: 'videoKey',\n heading: 'Video Attachment',\n uploadLabel: 'Upload video',\n accept: 'video/*',\n },\n {\n type: TaonCmsContentType.Audio,\n key: 'audioKey',\n heading: 'Audio Attachment',\n uploadLabel: 'Upload audio',\n accept: 'audio/*',\n },\n {\n type: TaonCmsContentType.Attachment,\n key: 'attachmentKey',\n heading: 'File Attachment',\n uploadLabel: 'Upload file',\n accept: '',\n },\n ] as const;\n\n readonly mediaAttachment = computed(() =>\n this.mediaAttachments.find(media => media.type === this.draft().type),\n );\n\n readonly busy = signal(false);\n\n readonly uploading = signal(false);\n\n readonly dialogOpen = signal(false);\n\n readonly error = signal('');\n\n readonly relatedPosts = signal<TaonCmsContentEntity[]>([]);\n\n readonly relatedPostsLoading = signal(false);\n\n readonly relatedPostsError = signal('');\n\n readonly permissions = signal<TaonPermissionEntity[]>([]);\n\n readonly permissionsLoading = signal(false);\n\n readonly permissionsError = signal('');\n\n readonly permissionOptions = signal<TaonPermissionEntity[]>([]);\n\n readonly permissionOptionsLoading = signal(false);\n\n readonly permissionOptionsError = signal('');\n\n readonly selectedPermissionId = signal<number | null>(null);\n\n readonly availablePermissions = computed(() => {\n const assignedIds = new Set(\n this.permissions().map(permission => permission.id),\n );\n return this.permissionOptions().filter(\n permission => !assignedIds.has(permission.id),\n );\n });\n\n readonly editing = computed(\n () => this.mode() === 'edit' || this.mode() === 'add',\n );\n\n readonly canSave = computed(\n () =>\n !!this.draft().title.trim() &&\n !!this.draft().slug.trim() &&\n !this.relatedPostsLoading() &&\n !this.relatedPostsError() &&\n !this.permissionsLoading() &&\n !this.permissionsError(),\n );\n\n readonly canPublish = computed(() => {\n const post = this.currentPost();\n return !!post && post.status !== 'published';\n });\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly permissionApi = inject(TaonPermissionApiService);\n\n private readonly dialog = inject(MatDialog);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private relatedPostsLoad?: Subscription;\n\n private permissionsLoad?: Subscription;\n //#endregion\n\n //#region constructor\n constructor() {\n effect(() => {\n const post = this.post();\n untracked(() => this.setPost(post));\n });\n effect(() => {\n if (this.editing()) {\n untracked(() => this.loadPermissionOptions());\n }\n });\n }\n //#endregion\n\n //#region methods / load related posts\n loadRelatedPosts(): void {\n if (this.busy() || this.relatedPostsLoading()) {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.relatedPostsLoading.set(true);\n this.relatedPostsError.set('');\n this.relatedPostsLoad = this.api\n .listRelatedPosts(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.relatedPostsLoading.set(false)),\n )\n .subscribe({\n next: posts => this.relatedPosts.set(posts),\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to load related posts', error);\n this.relatedPostsError.set(\n 'Related posts could not be loaded. Please try again.',\n );\n },\n });\n }\n //#endregion\n\n //#region methods / add related post\n addRelatedPost(): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading() ||\n this.relatedPostsError()\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonRelatedPostChooserComponent,\n TaonRelatedPostChooserData,\n TaonCmsContentEntity\n >(TaonRelatedPostChooserComponent, {\n data: {\n postId: this.currentPost()?.id,\n excludedIds: this.relatedPosts().map(post => post.id),\n },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(post => {\n this.dialogOpen.set(false);\n if (\n post &&\n post.id !== this.currentPost()?.id &&\n !this.relatedPosts().some(related => related.id === post.id)\n ) {\n this.relatedPosts.update(posts => [...posts, post]);\n }\n });\n }\n //#endregion\n\n //#region methods / remove related post\n removeRelatedPost(id: number): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading() ||\n this.relatedPostsError()\n ) {\n return;\n }\n this.relatedPosts.update(posts => posts.filter(post => post.id !== id));\n }\n //#endregion\n\n //#region methods / load permissions\n loadPermissions(): void {\n if (this.busy() || this.permissionsLoading()) {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.permissionsLoading.set(true);\n this.permissionsError.set('');\n this.permissionsLoad = this.api\n .listPermissions(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.permissionsLoading.set(false)),\n )\n .subscribe({\n next: permissions => this.permissions.set(permissions),\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to load permissions', error);\n this.permissionsError.set(\n 'Permissions could not be loaded. Please try again.',\n );\n },\n });\n }\n //#endregion\n\n //#region methods / add permission\n addPermission(): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n const permissionId = this.selectedPermissionId();\n const permission = this.availablePermissions().find(\n item => item.id === permissionId,\n );\n if (permission) {\n this.permissions.update(permissions => [...permissions, permission]);\n this.selectedPermissionId.set(null);\n }\n }\n //#endregion\n\n //#region methods / remove permission\n removePermission(id: number): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n this.permissions.update(items =>\n items.filter(permission => permission.id !== id),\n );\n }\n //#endregion\n\n //#region methods / load permission options\n loadPermissionOptions(): void {\n if (\n this.permissionOptionsLoading() ||\n this.permissionOptions().length > 0\n ) {\n return;\n }\n this.permissionOptionsLoading.set(true);\n this.permissionOptionsError.set('');\n this.permissionApi.allMyEntities$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.permissionOptionsLoading.set(false)),\n )\n .subscribe({\n next: permissions => this.permissionOptions.set(permissions),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load permission options',\n error,\n );\n this.permissionOptionsError.set(\n 'Available permissions could not be loaded. Please try again.',\n );\n },\n });\n }\n //#endregion\n\n //#region methods / update draft\n updateDraft<K extends keyof TaonCmsPostDraft>(\n field: K,\n value: TaonCmsPostDraft[K],\n ): void {\n this.draft.update(draft => ({ ...draft, [field]: value }));\n }\n //#endregion\n\n //#region methods / file selected\n async fileSelected(event: Event): Promise<void> {\n if (!(event.target instanceof HTMLInputElement)) {\n this.error.set('Unable to read the selected media file.');\n return;\n }\n const input = event.target;\n const file = input.files?.[0];\n if (!file) {\n return;\n }\n const media = this.mediaAttachment();\n if (!media || !this.editing() || this.busy() || this.dialogOpen()) {\n input.value = '';\n return;\n }\n const draft = this.draft();\n this.busy.set(true);\n this.uploading.set(true);\n this.error.set('');\n try {\n const object = await this.api.uploadMedia(file);\n if (!this.destroyRef.destroyed && this.draft() === draft) {\n this.updateDraft(media.key, object.key);\n }\n } catch (error: unknown) {\n console.error('[taon-cms-post] Unable to upload media', error);\n this.error.set('The media could not be uploaded. Please try again.');\n } finally {\n this.busy.set(false);\n this.uploading.set(false);\n input.value = '';\n }\n }\n //#endregion\n\n //#region methods / remove media\n removeMedia(): void {\n const media = this.mediaAttachment();\n if (!media || !this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n this.updateDraft(media.key, null);\n }\n //#endregion\n\n //#region methods / update slug\n updateSlug(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.updateDraft('slug', event.target.value);\n }\n }\n //#endregion\n\n //#region methods / edit\n edit(): void {\n if (this.mode() !== 'view' || this.busy() || this.dialogOpen()) {\n return;\n }\n if (!this.requirePost()) {\n return;\n }\n this.error.set('');\n this.mode.set('edit');\n }\n //#endregion\n\n //#region methods / cancel\n cancel(): void {\n if (this.busy() || this.dialogOpen()) {\n return;\n }\n this.setPost(this.currentPost());\n this.error.set('');\n if (this.editing()) {\n this.mode.set('view');\n }\n this.cancelled.emit();\n }\n //#endregion\n\n //#region methods / save\n save(): void {\n if (this.busy() || this.dialogOpen() || !this.editing()) {\n return;\n }\n if (!this.canSave()) {\n this.error.set('A title and slug are required.');\n return;\n }\n if (this.mode() === 'add') {\n this.persist(\n this.api.createContent({\n ...this.draft(),\n relatedPostIds: this.relatedPosts().map(post => post.id),\n permissionIds: this.permissions().map(permission => permission.id),\n }),\n );\n } else {\n const post = this.requirePost();\n if (post) {\n this.persist(this.api.updateContent(post.id, this.updateInput(post)));\n }\n }\n }\n //#endregion\n\n //#region methods / publish\n publish(): void {\n if (\n this.busy() ||\n this.dialogOpen() ||\n !this.canPublish() ||\n this.mode() === 'view-clean' ||\n this.mode() === 'add'\n ) {\n return;\n }\n if (this.editing() && !this.canSave()) {\n this.error.set('A title and slug are required.');\n return;\n }\n const post = this.requirePost();\n if (post) {\n this.persist(\n this.api.updateContent(post.id, {\n ...(this.editing()\n ? this.updateInput(post)\n : { expectedVersion: post.version }),\n status: 'published',\n publishedAt: new Date(),\n }),\n );\n }\n }\n //#endregion\n\n //#region methods / revert\n revert(): void {\n const post = this.requirePost();\n if (\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean'\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonCmsRevisionChooserComponent,\n TaonCmsContentEntity,\n TaonCmsContentEntity\n >(TaonCmsRevisionChooserComponent, {\n data: post,\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(restored => {\n this.dialogOpen.set(false);\n if (restored) {\n this.acceptPost(restored);\n }\n });\n }\n //#endregion\n\n //#region methods / delete\n delete(): void {\n const post = this.requirePost();\n if (\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean'\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: 'Delete post?',\n message:\n 'This archives the post. It can be restored from its revisions.',\n confirmText: 'Delete',\n },\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n this.dialogOpen.set(false);\n if (confirmed) {\n this.persist(this.api.deleteContent(post.id, post.version), true);\n }\n });\n }\n //#endregion\n\n //#region methods / update input\n private updateInput(post: TaonCmsContentEntity): TaonCmsUpdateContent {\n return {\n ...this.draft(),\n relatedPostIds: this.relatedPosts().map(related => related.id),\n permissionIds: this.permissions().map(permission => permission.id),\n expectedVersion: post.version,\n };\n }\n //#endregion\n\n //#region methods / require post\n private requirePost(): TaonCmsContentEntity | null {\n const post = this.currentPost();\n if (!post) {\n this.error.set('No post is loaded.');\n }\n return post;\n }\n //#endregion\n\n //#region methods / set post\n private setPost(post: TaonCmsContentEntity | null): void {\n this.relatedPostsLoad?.unsubscribe();\n this.permissionsLoad?.unsubscribe();\n this.relatedPostsLoading.set(false);\n this.relatedPostsError.set('');\n this.permissionsLoading.set(false);\n this.permissionsError.set('');\n this.currentPost.set(post);\n this.relatedPosts.set(post?.relatedPosts ?? []);\n this.permissions.set(post?.permissions ?? []);\n this.selectedPermissionId.set(null);\n this.draft.set({\n type: post?.type ?? TaonCmsContentType.Normal,\n title: post?.title ?? '',\n slug: post?.slug ?? '',\n excerpt: post?.excerpt ?? '',\n body: post?.body ?? '',\n videoKey: post?.videoKey ?? null,\n audioKey: post?.audioKey ?? null,\n attachmentKey: post?.attachmentKey ?? null,\n });\n if (\n post &&\n post.relatedPosts === undefined &&\n this.mode() !== 'view-clean'\n ) {\n this.loadRelatedPosts();\n }\n if (\n post &&\n post.permissions === undefined &&\n this.mode() !== 'view-clean'\n ) {\n this.loadPermissions();\n }\n }\n //#endregion\n\n //#region methods / accept post\n private acceptPost(post: TaonCmsContentEntity): void {\n this.setPost(post);\n this.error.set('');\n this.mode.set('view');\n this.changed.emit(post);\n }\n //#endregion\n\n //#region methods / persist\n private persist(\n request: Observable<TaonCmsContentEntity>,\n deleting = false,\n ): void {\n if (this.busy() || this.dialogOpen() || this.mode() === 'view-clean') {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n request\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: post => {\n this.acceptPost(post);\n if (deleting) {\n this.deleted.emit(post);\n }\n },\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to save post', error);\n this.error.set(\n 'The post could not be saved. Check the slug and your connection. ' +\n 'If another user changed it, close and reopen the post before retrying.',\n );\n },\n });\n }\n //#endregion\n}\n","@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"Post type\"\n [value]=\"draft().type\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"updateDraft('type', $event.value)\">\n @for (type of postTypes; track type.value) {\n <mat-radio-button [value]=\"type.value\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditableSingleLine]=\"true\"\n [taonCmsEditable]=\"draft().title\"\n (taonCmsEditableChange)=\"updateDraft('title', $event)\"></div>\n <div\n class=\"post-excerpt editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</button>\n } @else {\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql';\n//#endregion\n\nexport const TaonCmsPostRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-post.component').then(m => m.TaonCmsPostComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsPostRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsPostRoutes;","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivatedRoute, RouterLink } from '@angular/router';\nimport { map } from 'rxjs';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostComponent } from '../taon-cms-post/taon-cms-post.component';\n\n@Component({\n selector: 'taon-cms-post-details-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, MatButtonModule, RouterLink, TaonCmsPostComponent],\n template: `\n @if (post$ | async; as post) {\n <a mat-button routerLink=\"../\">Back to Posts</a>\n <taon-cms-post [post]=\"post\"></taon-cms-post>\n }\n `,\n})\nexport class TaonCmsPostDetailsPageComponent {\n readonly post$ = inject(ActivatedRoute).data.pipe(\n map(data => data['post'] as TaonCmsContentEntity),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n viewChild,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostComponent } from '../taon-cms-post/taon-cms-post.component';\n\nexport interface TaonCmsPostEditDialogData {\n post?: TaonCmsContentEntity;\n mode: 'edit' | 'add';\n}\n\n@Component({\n selector: 'taon-cms-post-edit-dialog',\n templateUrl: './taon-cms-post-edit-dialog.component.html',\n styleUrls: ['./taon-cms-post-edit-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, MatDialogModule, MatIconModule, TaonCmsPostComponent],\n})\nexport class TaonCmsPostEditDialogComponent {\n readonly data = inject<TaonCmsPostEditDialogData>(MAT_DIALOG_DATA);\n readonly editor = viewChild(TaonCmsPostComponent);\n readonly changed = new EventEmitter<TaonCmsContentEntity>();\n private readonly ref = inject(MatDialogRef<TaonCmsPostEditDialogComponent>);\n\n close(): void {\n if (!this.editor()?.busy() && !this.editor()?.dialogOpen()) {\n this.ref.close();\n }\n }\n\n deleted(post: TaonCmsContentEntity): void {\n this.ref.close(post);\n }\n}\n","<header class=\"dialog-header\">\n <h2>{{ data.mode === 'add' ? 'Add post' : 'Manage post' }}</h2>\n <button mat-icon-button type=\"button\" aria-label=\"Close post editor\" [disabled]=\"editor()?.busy() || editor()?.dialogOpen()\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</header>\n<taon-cms-post\n [post]=\"data.post ?? null\"\n [mode]=\"data.mode\"\n (changed)=\"changed.emit($event)\"\n (deleted)=\"deleted($event)\"\n (cancelled)=\"close()\" />\n","//#region imports\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n ViewChild,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport {\n TaonConfirmDialogComponent,\n TaonDatatableComponent,\n} from '@taon-dev/ui/websql';\nimport { Subject, finalize, takeUntil } from 'rxjs';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostEditDialogComponent } from '../taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component';\nimport type { TaonCmsPostEditDialogData } from '../taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component';\n//#endregion\n\n@Component({\n selector: 'app-taon-cms-posts-backoffice',\n templateUrl: './taon-cms-posts-backoffice.component.html',\n styleUrls: ['./taon-cms-posts-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, TaonDatatableComponent],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonCmsPostsBackofficeComponent {\n @ViewChild(TaonDatatableComponent)\n readonly datatable!: TaonDatatableComponent;\n\n readonly taonCmsContentApiService = inject(TaonCmsContentApiService);\n\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly deleting = signal<number | null>(null);\n\n readonly error = signal('');\n\n private readonly dialog = inject(MatDialog);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly cancelLoad$ = new Subject<void>();\n\n public get crud() {\n return this.taonCmsContentApiService.taonCmsContentController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true },\n { header: 'Title', field: 'title', sortable: true },\n { header: 'Status', field: 'status', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'edit',\n tooltip: 'Edit post',\n click: (post: TaonCmsContentEntity) => this.edit(post),\n },\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Post details',\n click: (post: TaonCmsContentEntity) => this.openDetails(post),\n },\n {\n type: 'icon',\n icon: 'delete',\n tooltip: 'Delete (archive) post',\n disabled: (post: TaonCmsContentEntity) =>\n post.status === 'archived' || this.deleting() !== null,\n click: (post: TaonCmsContentEntity) => this.delete(post),\n },\n ],\n },\n ];\n\n reload(): void {\n this.datatable.reload();\n }\n\n ngAfterViewInit(): void {\n this.reload();\n }\n\n add(): void {\n this.openEditor({ mode: 'add' });\n }\n\n edit(post: TaonCmsContentEntity): void {\n this.openEditor({ mode: 'edit', post });\n }\n\n openDetails(post: TaonCmsContentEntity): void {\n const postsRoute = this.route.parent;\n if (!postsRoute) {\n this.error.set('The Post details route is unavailable.');\n return;\n }\n void this.router.navigate([post.id], { relativeTo: postsRoute });\n }\n\n delete(post: TaonCmsContentEntity): void {\n if (this.deleting() !== null || post.status === 'archived') {\n return;\n }\n this.deleting.set(post.id);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: 'Delete post?',\n message:\n 'This archives the post. It can be restored from its revisions.',\n confirmText: 'Delete',\n },\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n if (!confirmed) {\n this.deleting.set(null);\n return;\n }\n this.error.set('');\n this.taonCmsContentApiService\n .deleteContent(post.id, post.version)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.deleting.set(null)),\n )\n .subscribe({\n next: () => this.reload(),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to delete post',\n error,\n );\n this.error.set(\n 'The post could not be deleted. Refresh the table before retrying.',\n );\n },\n });\n });\n }\n\n private openEditor(data: TaonCmsPostEditDialogData): void {\n const ref = this.dialog.open(TaonCmsPostEditDialogComponent, {\n data,\n width: '100vw',\n height: '100dvh',\n maxWidth: '100vw',\n maxHeight: '100dvh',\n disableClose: true,\n autoFocus: 'first-tabbable',\n });\n ref.componentInstance.changed\n .pipe(takeUntil(ref.afterClosed()), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n}\n","<h1>CMS posts</h1>\n@if (loading()) {\n <p role=\"status\">Loading posts...</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'status']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\">\n</taon-datatable>\n","//#region imports\nimport { inject } from '@angular/core';\nimport { Routes } from '@angular/router';\nimport { ResolveFn } from '@angular/router';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n//#endregion\n\nconst resolvePost: ResolveFn<TaonCmsContentEntity> = async route => {\n const id = Number(route.paramMap.get('id'));\n if (!Number.isSafeInteger(id) || id <= 0) {\n throw new Error('Invalid Post ID');\n }\n const apiService = inject(TaonCmsContentApiService);\n const post = (await apiService.taonCmsContentController.getBy(id).request())\n .body.json;\n if (!post) {\n throw new Error('Post not found');\n }\n return post;\n};\n\nexport const TaonCmsPostsBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-cms-posts-backoffice.component').then(\n m => m.TaonCmsPostsBackofficeComponent,\n ),\n },\n {\n path: ':id',\n data: { hideInNavigation: true },\n providers: [TaonCmsContentApiService],\n resolve: { post: resolvePost },\n loadComponent: () =>\n import('../taon-cms-post-details-page/taon-cms-post-details-page.component').then(\n m => m.TaonCmsPostDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonCmsPostsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsPostsBackofficeRoutes;\n","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './app.data'; \nexport * from './build-info._auto-generated_'; \nexport * from './my-organization-proj'; \nexport * from './start-cli'; \nexport * from './taon-cms.abstract.context'; \nexport * from './i18n/lib.translation'; \nexport * from './taon-cms-assets-backoffice/taon-cms-assets-backoffice.component'; // @browser\nexport * from './taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes'; // @browser\nexport * from './taon-cms-backoffice/taon-cms-backoffice.component'; // @browser\nexport * from './taon-cms-backoffice/taon-cms-backoffice.models'; \nexport * from './taon-cms-backoffice/taon-cms-backoffice.routes'; // @browser\nexport * from './taon-cms-category/taon-cms-category-api.service'; // @browser\nexport * from './taon-cms-category/taon-cms-category.abstract.context'; \nexport * from './taon-cms-category/taon-cms-category.constants'; \nexport * from './taon-cms-category/taon-cms-category.controller'; \nexport * from './taon-cms-category/taon-cms-category.entity'; \nexport * from './taon-cms-category/taon-cms-category.middleware'; \nexport * from './taon-cms-category/taon-cms-category.models'; \nexport * from './taon-cms-category/taon-cms-category.provider'; \nexport * from './taon-cms-category/taon-cms-category.repository'; \nexport * from './taon-cms-category/taon-cms-category.subscriber'; \nexport * from './taon-cms-category/taon-cms-category.utils'; \nexport * from './taon-cms-comment/taon-cms-comment-api.service'; // @browser\nexport * from './taon-cms-comment/taon-cms-comment.abstract.context'; \nexport * from './taon-cms-comment/taon-cms-comment.constants'; \nexport * from './taon-cms-comment/taon-cms-comment.controller'; \nexport * from './taon-cms-comment/taon-cms-comment.entity'; \nexport * from './taon-cms-comment/taon-cms-comment.middleware'; \nexport * from './taon-cms-comment/taon-cms-comment.models'; \nexport * from './taon-cms-comment/taon-cms-comment.provider'; \nexport * from './taon-cms-comment/taon-cms-comment.repository'; \nexport * from './taon-cms-comment/taon-cms-comment.subscriber'; \nexport * from './taon-cms-comment/taon-cms-comment.utils'; \nexport * from './taon-cms-content/taon-cms-content-api.service'; // @browser\nexport * from './taon-cms-content/taon-cms-content-storage.controller'; \nexport * from './taon-cms-content/taon-cms-content.abstract.context'; \nexport * from './taon-cms-content/taon-cms-content.config.service'; // @browser\nexport * from './taon-cms-content/taon-cms-content.constants'; \nexport * from './taon-cms-content/taon-cms-content.controller'; \nexport * from './taon-cms-content/taon-cms-content.entity'; \nexport * from './taon-cms-content/taon-cms-content.middleware'; \nexport * from './taon-cms-content/taon-cms-content.models'; \nexport * from './taon-cms-content/taon-cms-content.provider'; \nexport * from './taon-cms-content/taon-cms-content.repository'; \nexport * from './taon-cms-content/taon-cms-content.subscriber'; \nexport * from './taon-cms-content/taon-cms-content.utils'; \nexport * from './taon-cms-content/taon-cms-content.validation'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset-api.service'; // @browser\nexport * from './taon-cms-content-asset/taon-cms-content-asset.abstract.context'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.constants'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.controller'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.entity'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.middleware'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.models'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.provider'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.repository'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.subscriber'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.utils'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission-api.service'; // @browser\nexport * from './taon-cms-content-permission/taon-cms-content-permission.abstract.context'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.constants'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.controller'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.entity'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.middleware'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.models'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.provider'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.repository'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.subscriber'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.utils'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision-api.service'; // @browser\nexport * from './taon-cms-content-revision/taon-cms-content-revision.abstract.context'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.constants'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.controller'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.entity'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.middleware'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.models'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.provider'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.repository'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.subscriber'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.utils'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag-api.service'; // @browser\nexport * from './taon-cms-content-tag/taon-cms-content-tag.abstract.context'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.constants'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.controller'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.entity'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.middleware'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.models'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.provider'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.repository'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.subscriber'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.utils'; \nexport * from './taon-cms-tag/taon-cms-tag-api.service'; // @browser\nexport * from './taon-cms-tag/taon-cms-tag.abstract.context'; \nexport * from './taon-cms-tag/taon-cms-tag.constants'; \nexport * from './taon-cms-tag/taon-cms-tag.controller'; \nexport * from './taon-cms-tag/taon-cms-tag.entity'; \nexport * from './taon-cms-tag/taon-cms-tag.middleware'; \nexport * from './taon-cms-tag/taon-cms-tag.models'; \nexport * from './taon-cms-tag/taon-cms-tag.provider'; \nexport * from './taon-cms-tag/taon-cms-tag.repository'; \nexport * from './taon-cms-tag/taon-cms-tag.subscriber'; \nexport * from './taon-cms-tag/taon-cms-tag.utils'; \nexport * from './taon-posts/taon-cms-post/taon-cms-editable.directive'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post.component'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post.models'; \nexport * from './taon-posts/taon-cms-post/taon-cms-post.routes'; // @browser\nexport * from './taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component'; // @browser\nexport * from './taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models'; \nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes'; // @browser\nexport * from './taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component'; // @browser\nexport * from './taon-posts/taon-related-post-chooser/taon-related-post-chooser.component'; // @browser","export * from './migrations';\nexport * from './env';\nexport * from './index._auto-generated_';\nexport * from './my-organization-proj';\nexport * from './taon-cms-content/taon-cms-content-storage.controller';\nexport * from './taon-posts/taon-related-post-chooser'; // @browser\n/* */ \nexport default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","map","i2"],"mappings":"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CJ,KAAA;;AAGH;;;;AAIG;AACH;;ACjDA;AACA;AACA;AACA;AACA;;ACEA;AACA,YAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPjB;;AAEG;;"}