@aurorajs.dev/catalyst-cli 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2916) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/generate/index.js +33 -1
  3. package/dist/commands/sheets/diff.js +2 -4
  4. package/dist/commands/sheets/pull.d.ts +0 -1
  5. package/dist/commands/sheets/pull.js +2 -14
  6. package/dist/commands/sheets/push.d.ts +0 -1
  7. package/dist/commands/sheets/push.js +2 -14
  8. package/dist/commands/sheets/validate.js +3 -4
  9. package/dist/generator/domain/column-width.d.ts +2 -2
  10. package/dist/generator/domain/column-width.js +20 -15
  11. package/dist/generator/domain/config.d.ts +45 -6
  12. package/dist/generator/domain/config.js +152 -48
  13. package/dist/generator/domain/cross-bc-relations-discovery.d.ts +38 -0
  14. package/dist/generator/domain/cross-bc-relations-discovery.js +89 -0
  15. package/dist/generator/domain/cross-schema-resolver.d.ts +54 -1
  16. package/dist/generator/domain/cross-schema-resolver.js +52 -3
  17. package/dist/generator/domain/custom-field-value.d.ts +124 -0
  18. package/dist/generator/domain/custom-field-value.js +206 -0
  19. package/dist/generator/domain/declared-surface.d.ts +45 -0
  20. package/dist/generator/domain/declared-surface.js +106 -0
  21. package/dist/generator/domain/dialog-width.d.ts +46 -0
  22. package/dist/generator/domain/dialog-width.js +70 -0
  23. package/dist/generator/domain/display-field.d.ts +28 -3
  24. package/dist/generator/domain/display-field.js +53 -3
  25. package/dist/generator/domain/form-id.d.ts +3 -0
  26. package/dist/generator/domain/form-id.js +21 -0
  27. package/dist/generator/domain/i18n-embedded.d.ts +102 -0
  28. package/dist/generator/domain/i18n-embedded.js +112 -0
  29. package/dist/generator/domain/i18n-table.d.ts +112 -0
  30. package/dist/generator/domain/i18n-table.js +189 -0
  31. package/dist/generator/domain/model.d.ts +59 -17
  32. package/dist/generator/domain/model.js +1 -3
  33. package/dist/generator/domain/module-resolution.d.ts +17 -0
  34. package/dist/generator/domain/module-resolution.js +23 -0
  35. package/dist/generator/domain/operation-names.d.ts +17 -0
  36. package/dist/generator/domain/operation-names.js +27 -0
  37. package/dist/generator/domain/pivot.js +11 -1
  38. package/dist/generator/domain/property-filters.d.ts +168 -6
  39. package/dist/generator/domain/property-filters.js +257 -13
  40. package/dist/generator/domain/property-mappers.d.ts +69 -5
  41. package/dist/generator/domain/property-mappers.js +155 -61
  42. package/dist/generator/domain/property-pick-model.d.ts +12 -0
  43. package/dist/generator/domain/property-pick-model.js +47 -0
  44. package/dist/generator/domain/property-predicates.d.ts +57 -17
  45. package/dist/generator/domain/property-predicates.js +58 -18
  46. package/dist/generator/domain/property-validators.d.ts +20 -0
  47. package/dist/generator/domain/property-validators.js +71 -0
  48. package/dist/generator/domain/property-width.js +4 -2
  49. package/dist/generator/domain/readonly-payload-types.d.ts +72 -0
  50. package/dist/generator/domain/readonly-payload-types.js +96 -0
  51. package/dist/generator/domain/relation-search-eligibility.d.ts +15 -0
  52. package/dist/generator/domain/relation-search-eligibility.js +50 -0
  53. package/dist/generator/domain/relations-builder.d.ts +113 -0
  54. package/dist/generator/domain/relations-builder.js +422 -0
  55. package/dist/generator/domain/schema-loader.d.ts +41 -0
  56. package/dist/generator/domain/schema-loader.js +414 -4
  57. package/dist/generator/domain/widget-type.d.ts +1 -0
  58. package/dist/generator/domain/widget-type.js +1 -0
  59. package/dist/generator/engine/code-writer/code-writer.d.ts +334 -23
  60. package/dist/generator/engine/code-writer/code-writer.js +1052 -145
  61. package/dist/generator/engine/code-writer/drivers/import.driver.d.ts +22 -0
  62. package/dist/generator/engine/code-writer/drivers/import.driver.js +64 -0
  63. package/dist/generator/engine/code-writer/drivers/object.driver.d.ts +30 -0
  64. package/dist/generator/engine/code-writer/drivers/object.driver.js +58 -0
  65. package/dist/generator/engine/file-manager.d.ts +29 -2
  66. package/dist/generator/engine/file-manager.js +8 -2
  67. package/dist/generator/engine/file-writer.d.ts +3 -3
  68. package/dist/generator/engine/file-writer.js +58 -58
  69. package/dist/generator/engine/ignored-file.d.ts +6 -0
  70. package/dist/generator/engine/ignored-file.js +31 -0
  71. package/dist/generator/engine/lock-file.d.ts +36 -54
  72. package/dist/generator/engine/lock-file.js +74 -168
  73. package/dist/generator/engine/template-engine.js +9 -1
  74. package/dist/generator/handlers/back.handler.d.ts +72 -0
  75. package/dist/generator/handlers/back.handler.js +354 -59
  76. package/dist/generator/handlers/front.handler.d.ts +54 -0
  77. package/dist/generator/handlers/front.handler.js +247 -29
  78. package/dist/generator/handlers/handler-utils.js +2 -1
  79. package/dist/generator/packages/front-package-helpers.d.ts +8 -1
  80. package/dist/generator/packages/front-package-helpers.js +26 -5
  81. package/dist/generator/packages/installers/auditing.js +3 -3
  82. package/dist/generator/packages/installers/authorization-code.js +2 -5
  83. package/dist/generator/packages/installers/common.js +3 -3
  84. package/dist/generator/packages/installers/front/identity.js +8 -17
  85. package/dist/generator/packages/installers/front/queue-manager.d.ts +23 -0
  86. package/dist/generator/packages/installers/front/queue-manager.js +35 -0
  87. package/dist/generator/packages/installers/identity.js +4 -0
  88. package/dist/generator/packages/installers/mcp.js +1 -1
  89. package/dist/generator/packages/installers/message.js +1 -1
  90. package/dist/generator/packages/installers/ms-email.js +1 -1
  91. package/dist/generator/packages/installers/ms-entra-id.js +3 -3
  92. package/dist/generator/packages/installers/queue-manager.js +2 -3
  93. package/dist/generator/packages/installers/storage-account-azure.js +2 -2
  94. package/dist/generator/packages/installers/storage-account.js +4 -4
  95. package/dist/generator/packages/installers/support.js +1 -1
  96. package/dist/generator/packages/installers/tools.js +1 -1
  97. package/dist/generator/packages/installers/whatsapp.js +1 -1
  98. package/dist/generator/packages/package-helpers.js +10 -10
  99. package/dist/generator/utils/code-gen.d.ts +14 -3
  100. package/dist/generator/utils/code-gen.js +77 -27
  101. package/dist/generator/utils/mocker.js +19 -10
  102. package/dist/generator/utils/path-allowed.js +23 -2
  103. package/dist/generator/utils/relations-file.d.ts +127 -0
  104. package/dist/generator/utils/relations-file.js +310 -0
  105. package/dist/generator/utils/string-utils.d.ts +7 -0
  106. package/dist/generator/utils/string-utils.js +13 -0
  107. package/dist/origin/domain/actions.d.ts +13 -0
  108. package/dist/origin/domain/actions.js +13 -1
  109. package/dist/origin/domain/diff.js +9 -1
  110. package/dist/sheets/domain/auth.d.ts +15 -1
  111. package/dist/sheets/domain/auth.js +25 -2
  112. package/dist/sheets/domain/retry.d.ts +61 -0
  113. package/dist/sheets/domain/retry.js +76 -0
  114. package/dist/sheets/domain/types.d.ts +148 -2
  115. package/dist/sheets/domain/types.js +252 -12
  116. package/dist/sheets/sync/diff-engine.js +62 -5
  117. package/dist/sheets/sync/sheet-to-yaml.d.ts +21 -0
  118. package/dist/sheets/sync/sheet-to-yaml.js +238 -58
  119. package/dist/sheets/sync/yaml-to-sheet.d.ts +62 -0
  120. package/dist/sheets/sync/yaml-to-sheet.js +277 -30
  121. package/dist/sheets/transformers/property-transformer.d.ts +39 -0
  122. package/dist/sheets/transformers/property-transformer.js +121 -23
  123. package/dist/sheets/validators/schema-validator.js +54 -38
  124. package/dist/templates/ai/claude/.claude/settings.json +1 -4
  125. package/dist/templates/backend/application/.claude/skills/catalyst-backend-testing/SKILL.md +264 -234
  126. package/dist/templates/backend/application/.claude/skills/catalyst-cross-bounded-context-ports/SKILL.md +40 -10
  127. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/SKILL.md +80 -55
  128. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/references/field-schema-and-decorators.md +91 -62
  129. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/references/query-statement.md +206 -200
  130. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/SKILL.md +66 -64
  131. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/additional-apis-workflow.md +81 -22
  132. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/cli-first-workflow.md +17 -17
  133. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/create-handler.md +10 -8
  134. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/delete-handler.md +7 -7
  135. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/read-handler.md +27 -17
  136. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/update-handler.md +35 -20
  137. package/dist/templates/backend/application/.claude/skills/catalyst-nestjs-primitives/SKILL.md +151 -27
  138. package/dist/templates/backend/application/.claude/skills/catalyst-nestjs-primitives/references/minimum-templates.md +1 -1
  139. package/dist/templates/backend/application/.claude/skills/catalyst-project-structure/SKILL.md +210 -246
  140. package/dist/templates/backend/application/.claude/skills/catalyst-provider-composition/SKILL.md +263 -0
  141. package/dist/templates/backend/application/.claude/skills/catalyst-schema-migrations/SKILL.md +308 -0
  142. package/dist/templates/backend/application/.claude/skills/catalyst-tools/SKILL.md +266 -0
  143. package/dist/templates/backend/application/.oxlintrc.json +171 -0
  144. package/dist/templates/backend/application/CLAUDE.md +27 -1
  145. package/dist/templates/backend/application/README.md +6 -4
  146. package/dist/templates/backend/application/drizzle.config.ts +46 -0
  147. package/dist/templates/backend/application/nest-cli.json +7 -2
  148. package/dist/templates/backend/application/package.json +56 -73
  149. package/dist/templates/backend/application/scripts/db/check.ts +80 -0
  150. package/dist/templates/backend/application/scripts/db/generate.ts +55 -0
  151. package/dist/templates/backend/application/scripts/db/migrate.ts +101 -0
  152. package/dist/templates/backend/application/scripts/db/query.spec.ts +497 -0
  153. package/dist/templates/backend/application/scripts/db/query.ts +410 -0
  154. package/dist/templates/backend/application/scripts/iam/permissions-without-role.ts +178 -0
  155. package/dist/templates/backend/application/scripts/tz-pin.spec.ts +10 -0
  156. package/dist/templates/backend/application/src/@aurora/core.module.ts +52 -32
  157. package/dist/templates/backend/application/src/@aurora/decorators/auth.decorator.ts +0 -4
  158. package/dist/templates/backend/application/src/@aurora/decorators/index.ts +1 -1
  159. package/dist/templates/backend/application/src/@aurora/modules/authentication/authentication.module.spec.ts +7 -27
  160. package/dist/templates/backend/application/src/@aurora/modules/authentication/authentication.module.ts +17 -12
  161. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/anonymous-account.spec.ts +1 -1
  162. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/anonymous-account.ts +3 -1
  163. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/errors/index.ts +1 -0
  164. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/errors/token-issuance-disabled.error.ts +20 -0
  165. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/index.ts +1 -0
  166. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-cache-invalidator.port.ts +17 -0
  167. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-cache-invalidator.token.ts +1 -0
  168. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-loader.port.ts +55 -1
  169. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/authentication-strategy.port.ts +10 -1
  170. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/index.ts +12 -10
  171. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/jwt-signer.port.ts +10 -1
  172. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/resolve-authentication-mode.spec.ts +1 -1
  173. package/dist/templates/backend/application/src/@aurora/modules/authentication/index.ts +5 -4
  174. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/factory/authentication-strategy.factory.spec.ts +14 -27
  175. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/factory/authentication-strategy.factory.ts +9 -5
  176. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/guards/authentication-jwt.guard.spec.ts +16 -17
  177. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/guards/authentication-jwt.guard.ts +2 -2
  178. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/guards/authorization-permissions.guard.ts +1 -2
  179. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/guards/index.ts +2 -2
  180. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/providers/hub-session-manager.provider.ts +2 -2
  181. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/providers/jwt-signer.provider.ts +2 -2
  182. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/aurora-hub/aurora-hub-consumer.adapter.ts +18 -5
  183. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/aurora-hub/index.ts +1 -0
  184. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/authentication-cache-invalidator.adapter.spec.ts +56 -0
  185. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/authentication-cache-invalidator.adapter.ts +28 -0
  186. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/cache-key.ts +9 -0
  187. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/index.ts +11 -0
  188. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/jwt-passport.strategy.ts +1 -1
  189. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/anonymous-account-loader.adapter.spec.ts +3 -3
  190. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/anonymous-account-loader.adapter.ts +2 -2
  191. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/jwt-signer.adapter.spec.ts +222 -25
  192. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/jwt-signer.adapter.ts +62 -12
  193. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/local-provider-cache-invalidation.spec.ts +84 -0
  194. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/local-provider.adapter.spec.ts +158 -0
  195. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/local-provider.adapter.ts +30 -5
  196. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/warnings/authentication-boot-warning.spec.ts +9 -8
  197. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/warnings/authentication-boot-warning.ts +1 -1
  198. package/dist/templates/backend/application/src/@aurora/modules/criteria/criteria-config.module.ts +15 -8
  199. package/dist/templates/backend/application/src/@aurora/modules/criteria/index.ts +1 -1
  200. package/dist/templates/backend/application/src/@aurora/modules/graphql/core.graphql +197 -252
  201. package/dist/templates/backend/application/src/@aurora/modules/graphql/graphql-config.module.ts +3 -3
  202. package/dist/templates/backend/application/src/@aurora/modules/graphql/guards/gql-throttler.guard.spec.ts +7 -6
  203. package/dist/templates/backend/application/src/@aurora/modules/graphql/index.ts +3 -3
  204. package/dist/templates/backend/application/src/@aurora/modules/graphql/schema-store.module.ts +1 -1
  205. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/event-dispatcher.spec.ts +175 -0
  206. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/event-dispatcher.ts +37 -0
  207. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/handler-registry.module.ts +24 -0
  208. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/handler.decorator.ts +21 -0
  209. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/index.ts +4 -0
  210. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/keyed-handler-registry.spec.ts +171 -0
  211. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/keyed-handler-registry.ts +46 -0
  212. package/dist/templates/backend/application/src/@aurora/modules/health/app-version.provider.spec.ts +65 -0
  213. package/dist/templates/backend/application/src/@aurora/modules/health/app-version.provider.ts +113 -0
  214. package/dist/templates/backend/application/src/@aurora/modules/health/health.controller.spec.ts +50 -0
  215. package/dist/templates/backend/application/src/@aurora/modules/health/health.controller.ts +33 -0
  216. package/dist/templates/backend/application/src/@aurora/modules/health/health.module.ts +20 -0
  217. package/dist/templates/backend/application/src/@aurora/modules/health/index.ts +3 -0
  218. package/dist/templates/backend/application/src/@aurora/modules/index.ts +10 -5
  219. package/dist/templates/backend/application/src/@aurora/modules/lang/core-get-fallback-lang-from-json.service.ts +5 -3
  220. package/dist/templates/backend/application/src/@aurora/modules/lang/core-get-langs-from-json.service.ts +2 -2
  221. package/dist/templates/backend/application/src/@aurora/modules/lang/core-langs.ts +1 -1
  222. package/dist/templates/backend/application/src/@aurora/modules/lang/index.ts +3 -3
  223. package/dist/templates/backend/application/src/@aurora/modules/mailer/index.ts +2 -1
  224. package/dist/templates/backend/application/src/@aurora/modules/mailer/mailer-client.module.spec.ts +41 -33
  225. package/dist/templates/backend/application/src/@aurora/modules/mailer/mailer-client.module.ts +4 -4
  226. package/dist/templates/backend/application/src/@aurora/modules/mailer/mailer-smtp-transport.service.ts +4 -2
  227. package/dist/templates/backend/application/src/@aurora/modules/pdf/index.ts +7 -0
  228. package/dist/templates/backend/application/src/@aurora/modules/pdf/pdf-document.types.ts +48 -0
  229. package/dist/templates/backend/application/src/@aurora/modules/pdf/pdf-isolation.spec.ts +17 -0
  230. package/dist/templates/backend/application/src/@aurora/modules/pdf/pdf-renderer.service.ts +12 -0
  231. package/dist/templates/backend/application/src/@aurora/modules/pdf/pdfmake/index.ts +5 -0
  232. package/dist/templates/backend/application/src/@aurora/modules/pdf/pdfmake/pdfmake-renderer.service.spec.ts +58 -0
  233. package/dist/templates/backend/application/src/@aurora/modules/pdf/pdfmake/pdfmake-renderer.service.ts +123 -0
  234. package/dist/templates/backend/application/src/@aurora/modules/report-engine/aurora-report.token.ts +11 -0
  235. package/dist/templates/backend/application/src/@aurora/modules/report-engine/execute-report.service.spec.ts +154 -0
  236. package/dist/templates/backend/application/src/@aurora/modules/report-engine/execute-report.service.ts +112 -0
  237. package/dist/templates/backend/application/src/@aurora/modules/report-engine/index.ts +82 -0
  238. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cardinality.guard.spec.ts +297 -0
  239. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cardinality.guard.ts +180 -0
  240. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.types.ts +409 -0
  241. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.validator.spec.ts +289 -0
  242. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.validator.ts +98 -0
  243. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.preflight.spec.ts +241 -0
  244. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.provider.spec.ts +95 -0
  245. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.provider.ts +74 -0
  246. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.token.ts +17 -0
  247. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-engine.module.spec.ts +119 -0
  248. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-engine.module.ts +105 -0
  249. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-preflight.service.ts +152 -0
  250. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-query.builder.spec.ts +451 -0
  251. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-query.builder.ts +319 -0
  252. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-registry.spec.ts +176 -0
  253. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-registry.ts +47 -0
  254. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-selection.validator.spec.ts +104 -0
  255. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-selection.validator.ts +64 -0
  256. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-tenant.scoper.spec.ts +232 -0
  257. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-tenant.scoper.ts +132 -0
  258. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/client-mode.spec.ts +157 -0
  259. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/client-mode.ts +93 -0
  260. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/server-mode.spec.ts +289 -0
  261. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/server-mode.ts +259 -0
  262. package/dist/templates/backend/application/src/@aurora/modules/server-static/index.ts +1 -1
  263. package/dist/templates/backend/application/src/@aurora/services/index.ts +2 -3
  264. package/dist/templates/backend/application/src/@aurora/services/logger.service.ts +20 -6
  265. package/dist/templates/backend/application/src/@aurora/shared.module.ts +11 -10
  266. package/dist/templates/backend/application/src/@bridges/bridges.module.ts +33 -4
  267. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/index.ts +1 -0
  268. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/index.ts +2 -0
  269. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/production-planning-operator-account-reader.port.ts +29 -0
  270. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/production-planning-operator-account-reader.token.ts +3 -0
  271. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/index.ts +1 -0
  272. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/storage-account-file-manager.adapter.spec.ts +90 -0
  273. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/storage-account-file-manager.adapter.ts +36 -0
  274. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/index.ts +1 -0
  275. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/index.ts +2 -0
  276. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/storage-account-file-manager.port.ts +47 -0
  277. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/storage-account-file-manager.token.ts +1 -0
  278. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/index.ts +1 -0
  279. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/storage-account-signed-url.adapter.spec.ts +69 -0
  280. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/storage-account-signed-url.adapter.ts +37 -0
  281. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/index.ts +1 -0
  282. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/index.ts +2 -0
  283. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/storage-account-signed-url.port.ts +21 -0
  284. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/storage-account-signed-url.token.ts +1 -0
  285. package/dist/templates/backend/application/src/@config/bullmq/index.ts +1 -0
  286. package/dist/templates/backend/application/src/@config/drizzle/aurora-drizzle-schema.spec.ts +238 -0
  287. package/dist/templates/backend/application/src/@config/drizzle/aurora-drizzle-schema.ts +335 -0
  288. package/dist/templates/backend/application/src/@config/drizzle/aurora-field-schemas.spec.ts +92 -0
  289. package/dist/templates/backend/application/src/@config/drizzle/aurora-field-schemas.ts +158 -0
  290. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations-journal.config.ts +31 -0
  291. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations.module.spec.ts +153 -0
  292. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations.module.ts +91 -0
  293. package/dist/templates/backend/application/src/@config/drizzle/index.ts +3 -0
  294. package/dist/templates/backend/application/src/@config/index.ts +6 -1
  295. package/dist/templates/backend/application/src/@config/lang/index.ts +1 -0
  296. package/dist/templates/backend/application/src/@config/lang/lang.providers.ts +26 -0
  297. package/dist/templates/backend/application/src/@config/mailer/index.ts +1 -1
  298. package/dist/templates/backend/application/src/@config/mailer/mailer-transport.module.ts +5 -1
  299. package/dist/templates/backend/application/src/@config/pdf/index.ts +1 -0
  300. package/dist/templates/backend/application/src/@config/pdf/pdf-renderer.module.spec.ts +53 -0
  301. package/dist/templates/backend/application/src/@config/pdf/pdf-renderer.module.ts +17 -0
  302. package/dist/templates/backend/application/src/@config/storage-account/index.ts +1 -0
  303. package/dist/templates/backend/application/src/@config/storage-account/storage-account.providers.spec.ts +48 -0
  304. package/dist/templates/backend/application/src/@config/storage-account/storage-account.providers.ts +34 -0
  305. package/dist/templates/backend/application/src/app.controller.spec.ts +2 -2
  306. package/dist/templates/backend/application/src/app.controller.ts +1 -1
  307. package/dist/templates/backend/application/src/app.module.ts +39 -7
  308. package/dist/templates/backend/application/src/database/migrations/0001_create_example_demo_table.sql +9 -0
  309. package/dist/templates/backend/application/src/database/migrations/0002_backfill_custom_field_group_entity_types.sql +19 -0
  310. package/dist/templates/backend/application/src/database/migrations/0003_create_production_order_header_code_sequence.sql +22 -0
  311. package/dist/templates/backend/application/src/database/migrations/0004_remove_null_elements_from_array_columns.sql +37 -0
  312. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705093120_baseline/migration.sql +503 -0
  313. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705093120_baseline/snapshot.json +6287 -0
  314. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705095048_gap-finder/migration.sql +482 -0
  315. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705095048_gap-finder/snapshot.json +12646 -0
  316. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705144001_gap-finder-fixes/migration.sql +38 -0
  317. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705144001_gap-finder-fixes/snapshot.json +12853 -0
  318. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706090131_gap-finder-fx-normalization/migration.sql +17 -0
  319. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706090131_gap-finder-fx-normalization/snapshot.json +13090 -0
  320. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706102144_gap-finder-reported-currency/migration.sql +1 -0
  321. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706102144_gap-finder-reported-currency/snapshot.json +13103 -0
  322. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706104434_gap-finder-market-share-engine-version/migration.sql +4 -0
  323. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706104434_gap-finder-market-share-engine-version/snapshot.json +13123 -0
  324. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706121044_gap-finder-historical-price/migration.sql +17 -0
  325. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706121044_gap-finder-historical-price/snapshot.json +13357 -0
  326. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706143916_gap-finder-backtest-run-state-block/migration.sql +7 -0
  327. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706143916_gap-finder-backtest-run-state-block/snapshot.json +13443 -0
  328. package/dist/templates/backend/application/src/database/migrations/drizzle/20260707080202_business-partner-portal/migration.sql +266 -0
  329. package/dist/templates/backend/application/src/database/migrations/drizzle/20260707080202_business-partner-portal/snapshot.json +17183 -0
  330. package/dist/templates/backend/application/src/database/migrations/drizzle/20260710072059_bpp-supplier-document-invoice-unique/migration.sql +18 -0
  331. package/dist/templates/backend/application/src/database/migrations/drizzle/20260710072059_bpp-supplier-document-invoice-unique/snapshot.json +17183 -0
  332. package/dist/templates/backend/application/src/database/migrations/drizzle/20260712072603_busy_mystique/migration.sql +177 -0
  333. package/dist/templates/backend/application/src/database/migrations/drizzle/20260712072603_busy_mystique/snapshot.json +19569 -0
  334. package/dist/templates/backend/application/src/database/migrations/drizzle/20260714215357_custom-fields/migration.sql +85 -0
  335. package/dist/templates/backend/application/src/database/migrations/drizzle/20260714215357_custom-fields/snapshot.json +20741 -0
  336. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715072820_gap-finder-source-registry-latency/migration.sql +1 -0
  337. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715072820_gap-finder-source-registry-latency/snapshot.json +20754 -0
  338. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715110357_gap-finder-peer-group-curation-reason/migration.sql +1 -0
  339. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715110357_gap-finder-peer-group-curation-reason/snapshot.json +20767 -0
  340. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715151843_add-common-lang/migration.sql +22 -0
  341. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715151843_add-common-lang/snapshot.json +21066 -0
  342. package/dist/templates/backend/application/src/database/migrations/drizzle/20260716165704_add_pivot_table_equipment_process/migration.sql +8 -0
  343. package/dist/templates/backend/application/src/database/migrations/drizzle/20260716165704_add_pivot_table_equipment_process/snapshot.json +21089 -0
  344. package/dist/templates/backend/application/src/database/migrations/drizzle/20260717132829_common-country/migration.sql +42 -0
  345. package/dist/templates/backend/application/src/database/migrations/drizzle/20260717132829_common-country/snapshot.json +21661 -0
  346. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719084905_custom-field-group-label-i18n-embedded/migration.sql +5 -0
  347. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719084905_custom-field-group-label-i18n-embedded/snapshot.json +21661 -0
  348. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719175835_add-custom-field-group-entity-types/migration.sql +2 -0
  349. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719175835_add-custom-field-group-entity-types/snapshot.json +21695 -0
  350. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719235605_add-custom-field-entity-registry/migration.sql +13 -0
  351. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719235605_add-custom-field-entity-registry/snapshot.json +21866 -0
  352. package/dist/templates/backend/application/src/database/migrations/drizzle/20260720094932_drop-custom-field-group-entity-pivot/migration.sql +1 -0
  353. package/dist/templates/backend/application/src/database/migrations/drizzle/20260720094932_drop-custom-field-group-entity-pivot/snapshot.json +21701 -0
  354. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722150640_close-labeli18n-rename-and-tag-index-drift/migration.sql +12 -0
  355. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722150640_close-labeli18n-rename-and-tag-index-drift/snapshot.json +21706 -0
  356. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722165358_normalize-legacy-index-names/migration.sql +470 -0
  357. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722165358_normalize-legacy-index-names/snapshot.json +21767 -0
  358. package/dist/templates/backend/application/src/database/migrations/drizzle/20260728173835_drop-iam-tag-custom-field-value/migration.sql +1 -0
  359. package/dist/templates/backend/application/src/database/migrations/drizzle/20260728173835_drop-iam-tag-custom-field-value/snapshot.json +21391 -0
  360. package/dist/templates/backend/application/src/database/migrations/drizzle/20260804193217_align-custom-field-option-i18n/migration.sql +3 -0
  361. package/dist/templates/backend/application/src/database/migrations/drizzle/20260804193217_align-custom-field-option-i18n/snapshot.json +21394 -0
  362. package/dist/templates/backend/application/src/database/migrations/drizzle/20260818175624_drop-gap-finder-tables/migration.sql +46 -0
  363. package/dist/templates/backend/application/src/database/migrations/drizzle/20260818175624_drop-gap-finder-tables/snapshot.json +14170 -0
  364. package/dist/templates/backend/application/src/database/migrations/drizzle/20260822160309_rename-position-total-processed-weight/migration.sql +1 -0
  365. package/dist/templates/backend/application/src/database/migrations/drizzle/20260822160309_rename-position-total-processed-weight/snapshot.json +14172 -0
  366. package/dist/templates/backend/application/src/database/migrations/drizzle/20260830220002_add-impersonation-credential/migration.sql +32 -0
  367. package/dist/templates/backend/application/src/database/migrations/drizzle/20260830220002_add-impersonation-credential/snapshot.json +14204 -0
  368. package/dist/templates/backend/application/src/database/migrations/drizzle/20260902105452_mask-oauth-token-columns/migration.sql +2 -0
  369. package/dist/templates/backend/application/src/database/migrations/drizzle/20260902105452_mask-oauth-token-columns/snapshot.json +14204 -0
  370. package/dist/templates/backend/application/src/database/migrations/drizzle/20260903214717_add-biller-master-data-tables/migration.sql +145 -0
  371. package/dist/templates/backend/application/src/database/migrations/drizzle/20260903214717_add-biller-master-data-tables/snapshot.json +16167 -0
  372. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904195613_simplify-biller-tariff-model/migration.sql +42 -0
  373. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904195613_simplify-biller-tariff-model/snapshot.json +15944 -0
  374. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235448_add-biller-billing-run-pipeline/migration.sql +144 -0
  375. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235448_add-biller-billing-run-pipeline/snapshot.json +17910 -0
  376. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235725_add-biller-invoice-number-sequence/migration.sql +1 -0
  377. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235725_add-biller-invoice-number-sequence/snapshot.json +17921 -0
  378. package/dist/templates/backend/application/src/database/migrations/drizzle/20260905090449_make-remittance-run-index-non-unique/migration.sql +2 -0
  379. package/dist/templates/backend/application/src/database/migrations/drizzle/20260905090449_make-remittance-run-index-non-unique/snapshot.json +17921 -0
  380. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907223122_normalize-tools-native-enums/migration.sql +37 -0
  381. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907223122_normalize-tools-native-enums/snapshot.json +17921 -0
  382. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907224811_normalize-lacrem-native-enums/migration.sql +19 -0
  383. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907224811_normalize-lacrem-native-enums/snapshot.json +17921 -0
  384. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907225915_normalize-sap-integration-native-enums/migration.sql +58 -0
  385. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907225915_normalize-sap-integration-native-enums/snapshot.json +17921 -0
  386. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907231830_normalize-iam-native-enums/migration.sql +19 -0
  387. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907231830_normalize-iam-native-enums/snapshot.json +17921 -0
  388. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907232903_normalize-o-auth-native-enums/migration.sql +37 -0
  389. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907232903_normalize-o-auth-native-enums/snapshot.json +17921 -0
  390. package/dist/templates/backend/application/src/database/migrations/drizzle/20260914212920_add-biller-billing-cycle-master/migration.sql +79 -0
  391. package/dist/templates/backend/application/src/database/migrations/drizzle/20260914212920_add-biller-billing-cycle-master/snapshot.json +17983 -0
  392. package/dist/templates/backend/application/src/database/migrations/drizzle/20260915072010_add-biller-charge-billed-by-billing-run/migration.sql +11 -0
  393. package/dist/templates/backend/application/src/database/migrations/drizzle/20260915072010_add-biller-charge-billed-by-billing-run/snapshot.json +18017 -0
  394. package/dist/templates/backend/application/src/database/migrations/drizzle/20260915113209_add-iam-account-has-add-child-tenants/migration.sql +1 -0
  395. package/dist/templates/backend/application/src/database/migrations/drizzle/20260915113209_add-iam-account-has-add-child-tenants/snapshot.json +17760 -0
  396. package/dist/templates/backend/application/src/database/migrations/drizzle/20260916230702_date-columns-to-real-date/migration.sql +22 -0
  397. package/dist/templates/backend/application/src/database/migrations/drizzle/20260916230702_date-columns-to-real-date/snapshot.json +18031 -0
  398. package/dist/templates/backend/application/src/database/migrations/drizzle/20260918120918_drop-biller-tables/migration.sql +14 -0
  399. package/dist/templates/backend/application/src/database/migrations/drizzle/20260918120918_drop-biller-tables/snapshot.json +14217 -0
  400. package/dist/templates/backend/application/src/database/migrations/drizzle/20260918121214_purge-biller-rows/migration.sql +28 -0
  401. package/dist/templates/backend/application/src/database/migrations/drizzle/20260918121214_purge-biller-rows/snapshot.json +14217 -0
  402. package/dist/templates/backend/application/src/database/migrations/drizzle/README.md +199 -0
  403. package/dist/templates/backend/application/src/database/procedures/calculate_order_total/1.sql +18 -0
  404. package/dist/templates/backend/application/src/database/procedures/production_planning_set_production_order_header_code/1.sql +38 -0
  405. package/dist/templates/backend/application/src/database/procedures/production_planning_set_production_order_position_code/1.sql +33 -0
  406. package/dist/templates/backend/application/src/database/procedures/production_planning_trg_set_production_order_header_code/1.sql +8 -0
  407. package/dist/templates/backend/application/src/database/procedures/production_planning_trg_set_production_order_position_code/1.sql +8 -0
  408. package/dist/templates/backend/application/src/main.ts +27 -19
  409. package/dist/templates/backend/application/src/repl.ts +2 -2
  410. package/dist/templates/backend/application/test/app.e2e-spec.ts +2 -1
  411. package/dist/templates/backend/application/test/vitest-setup.ts +13 -0
  412. package/dist/templates/backend/application/tsconfig.build.json +3 -1
  413. package/dist/templates/backend/application/tsconfig.json +8 -17
  414. package/dist/templates/backend/application/vitest.config.e2e.ts +24 -0
  415. package/dist/templates/backend/application/vitest.config.ts +18 -0
  416. package/dist/templates/backend/env/.env +8 -0
  417. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/authorization-code.module.ts +3 -3
  418. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/auth.controller.spec.ts +24 -38
  419. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/auth.controller.ts +2 -3
  420. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/index.ts +1 -0
  421. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/pkce/index.ts +2 -0
  422. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/pkce/pkce-helpers.spec.ts +2 -4
  423. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/pkce/pkce-verifier-store.service.spec.ts +1 -1
  424. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-create-app.controller.ts +31 -0
  425. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-delete-app-by-id.controller.ts +32 -0
  426. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-find-app-by-id.controller.ts +31 -0
  427. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-find-app.controller.ts +33 -0
  428. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-get-apps.controller.ts +41 -0
  429. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-my-preferences-app.controller.ts +31 -0
  430. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-paginate-apps.controller.ts +32 -0
  431. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-save-my-launchpad-layout-app.controller.ts +41 -0
  432. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-toggle-favorite-app.controller.ts +34 -0
  433. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-update-app-by-id.controller.ts +32 -0
  434. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-app.dto.ts +115 -0
  435. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-create-app.dto.ts +85 -0
  436. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-update-app-by-id.dto.ts +78 -0
  437. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-update-apps.dto.ts +78 -0
  438. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/index.ts +8 -0
  439. package/dist/templates/backend/packages/hub/src/@api/hub/app/graphql/hub-app.graphql +256 -0
  440. package/dist/templates/backend/packages/hub/src/@api/hub/app/index.ts +87 -0
  441. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-create-app.resolver.ts +27 -0
  442. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-delete-app-by-id.resolver.ts +28 -0
  443. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-find-app-by-id.resolver.ts +26 -0
  444. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-find-app.resolver.ts +26 -0
  445. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-get-apps.resolver.ts +33 -0
  446. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-my-preferences-app.resolver.ts +27 -0
  447. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-paginate-apps.resolver.ts +26 -0
  448. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-save-my-launchpad-layout-app.resolver.ts +34 -0
  449. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-toggle-favorite-app.resolver.ts +30 -0
  450. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-update-app-by-id.resolver.ts +28 -0
  451. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-create-app-account.controller.ts +29 -0
  452. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-create-apps-accounts.controller.ts +30 -0
  453. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-delete-app-account-by-id.controller.ts +34 -0
  454. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-delete-apps-accounts.controller.ts +35 -0
  455. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-find-app-account-by-id.controller.ts +35 -0
  456. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-find-app-account.controller.ts +36 -0
  457. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-get-apps-accounts.controller.ts +36 -0
  458. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-paginate-apps-accounts.controller.ts +32 -0
  459. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-update-app-account-by-id.controller.ts +33 -0
  460. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-app-account.dto.ts +59 -0
  461. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-create-app-account.dto.ts +44 -0
  462. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-update-app-account-by-id.dto.ts +44 -0
  463. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-update-apps-accounts.dto.ts +44 -0
  464. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/index.ts +8 -0
  465. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/graphql/hub-app-account.graphql +82 -0
  466. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/index.ts +81 -0
  467. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-create-app-account.resolver.ts +25 -0
  468. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-create-apps-accounts.resolver.ts +25 -0
  469. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-delete-app-account-by-id.resolver.ts +27 -0
  470. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-delete-apps-accounts.resolver.ts +26 -0
  471. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-find-app-account-by-id.resolver.ts +27 -0
  472. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-find-app-account.resolver.ts +26 -0
  473. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-get-apps-accounts.resolver.ts +26 -0
  474. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-paginate-apps-accounts.resolver.ts +26 -0
  475. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-update-app-account-by-id.resolver.ts +26 -0
  476. package/dist/templates/backend/packages/hub/src/@api/hub/hub-per-app-permission.seeder.spec.ts +224 -0
  477. package/dist/templates/backend/packages/hub/src/@api/hub/hub-per-app-permission.seeder.ts +131 -0
  478. package/dist/templates/backend/packages/hub/src/@api/hub/hub.module.ts +34 -0
  479. package/dist/templates/backend/packages/hub/src/@api/hub/hub.seeder.ts +33 -0
  480. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.handler.spec.ts +521 -0
  481. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.handler.ts +234 -0
  482. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.service.ts +19 -0
  483. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.handler.spec.ts +419 -0
  484. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.handler.ts +164 -0
  485. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.service.ts +24 -0
  486. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.handler.spec.ts +132 -0
  487. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.handler.ts +35 -0
  488. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.service.ts +22 -0
  489. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.handler.spec.ts +172 -0
  490. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.handler.ts +43 -0
  491. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.service.ts +27 -0
  492. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.handler.spec.ts +331 -0
  493. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.handler.ts +84 -0
  494. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.service.ts +27 -0
  495. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/my-preferences/hub-my-preferences-app.handler.spec.ts +146 -0
  496. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/my-preferences/hub-my-preferences-app.handler.ts +38 -0
  497. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.handler.spec.ts +179 -0
  498. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.handler.ts +38 -0
  499. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.service.ts +27 -0
  500. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/save-my-launchpad-layout/hub-save-my-launchpad-layout-app.handler.spec.ts +354 -0
  501. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/save-my-launchpad-layout/hub-save-my-launchpad-layout-app.handler.ts +161 -0
  502. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/toggle-favorite/hub-toggle-favorite-app.handler.spec.ts +192 -0
  503. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/toggle-favorite/hub-toggle-favorite-app.handler.ts +60 -0
  504. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.handler.spec.ts +274 -0
  505. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.handler.ts +82 -0
  506. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.service.ts +25 -0
  507. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/hub-app-permission.ts +18 -0
  508. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/hub-app.field-schema.ts +101 -0
  509. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/index.ts +2 -0
  510. package/dist/templates/backend/packages/hub/src/@app/hub/app/index.ts +79 -0
  511. package/dist/templates/backend/packages/hub/src/@app/hub/app/infrastructure/drizzle/hub-drizzle-app.repository.ts +43 -0
  512. package/dist/templates/backend/packages/hub/src/@app/hub/app/infrastructure/drizzle/hub-drizzle-app.schema.ts +40 -0
  513. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-assert-no-accounts-reference.function.spec.ts +230 -0
  514. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-assert-no-accounts-reference.function.ts +106 -0
  515. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads-vs-relation-order.spec.ts +226 -0
  516. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads.function.spec.ts +73 -0
  517. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads.function.ts +27 -0
  518. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-validate-redirect-uri.function.spec.ts +41 -0
  519. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-validate-redirect-uri.function.ts +49 -0
  520. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/index.ts +3 -0
  521. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/index.ts +1 -0
  522. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-app-account.handler.ts +28 -0
  523. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-app-account.service.ts +25 -0
  524. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-apps-accounts.handler.ts +26 -0
  525. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-apps-accounts.service.ts +19 -0
  526. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-app-account-by-id.handler.ts +41 -0
  527. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-app-account-by-id.service.ts +37 -0
  528. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-apps-accounts.handler.ts +34 -0
  529. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-apps-accounts.service.ts +33 -0
  530. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account-by-id.handler.ts +32 -0
  531. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account-by-id.service.ts +31 -0
  532. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account.handler.ts +29 -0
  533. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account.service.ts +27 -0
  534. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/get/hub-get-apps-accounts.handler.ts +23 -0
  535. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/get/hub-get-apps-accounts.service.ts +27 -0
  536. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/paginate/hub-paginate-apps-accounts.handler.ts +23 -0
  537. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/paginate/hub-paginate-apps-accounts.service.ts +27 -0
  538. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/update/hub-update-app-account-by-id.handler.ts +64 -0
  539. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/update/hub-update-app-account-by-id.service.ts +33 -0
  540. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/domain/hub-app-account.field-schema.ts +53 -0
  541. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/domain/index.ts +1 -0
  542. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/index.ts +82 -0
  543. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/infrastructure/drizzle/hub-drizzle-app-account.repository.ts +40 -0
  544. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/infrastructure/drizzle/hub-drizzle-app-account.schema.ts +17 -0
  545. package/dist/templates/backend/packages/hub/src/@app/hub/hub.relations.ts +23 -0
  546. package/dist/templates/backend/packages/hub/src/@app/hub/hub.seed.ts +117 -0
  547. package/dist/templates/backend/packages/hub/src/@app/hub/index.ts +14 -0
  548. package/dist/templates/backend/packages/hub/src/@bridges/providers/iam-bounded-context-writer.bridge.ts +8 -0
  549. package/dist/templates/backend/packages/hub/src/@bridges/providers/iam-permission-writer.bridge.ts +8 -0
  550. package/dist/templates/backend/packages/hub/src/@bridges/providers/o-auth-application-provisioner.bridge.ts +8 -0
  551. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-account-composite-key.e2e-spec.ts +282 -0
  552. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-deprovisioning.e2e-spec.ts +472 -0
  553. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-provisioning.e2e-spec.ts +345 -0
  554. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-per-app-access.e2e-spec.ts +655 -0
  555. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-check-password-me-account.controller.ts +4 -5
  556. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-check-unique-email-account.controller.ts +2 -2
  557. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-check-unique-username-account.controller.ts +2 -2
  558. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-count-account.controller.ts +32 -0
  559. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-create-account.controller.ts +6 -6
  560. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-delete-account-by-id.controller.ts +4 -5
  561. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-delete-accounts.controller.ts +6 -7
  562. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-find-account-by-id.controller.ts +4 -5
  563. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-find-account.controller.ts +6 -7
  564. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-get-accounts.controller.ts +6 -7
  565. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-me-account.controller.ts +6 -6
  566. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-paginate-accounts.controller.ts +5 -6
  567. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-paginate-with-tenant-constraint-accounts.controller.ts +4 -5
  568. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-account-by-id.controller.ts +13 -8
  569. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-accounts.controller.ts +4 -5
  570. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-me-account.controller.ts +4 -5
  571. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-account.dto.ts +20 -11
  572. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-create-account.dto.ts +9 -29
  573. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-update-account-by-id.dto.ts +9 -29
  574. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-update-accounts.dto.ts +9 -21
  575. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/index.ts +4 -4
  576. package/dist/templates/backend/packages/iam/src/@api/iam/account/graphql/iam-account.graphql +47 -44
  577. package/dist/templates/backend/packages/iam/src/@api/iam/account/index.ts +40 -34
  578. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-check-password-me-account.resolver.ts +4 -5
  579. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-check-unique-email-account.resolver.ts +2 -2
  580. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-check-unique-username-account.resolver.ts +2 -2
  581. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-count-account.resolver.ts +25 -0
  582. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-create-account.resolver.ts +5 -5
  583. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-delete-account-by-id.resolver.ts +4 -5
  584. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-delete-accounts.resolver.ts +4 -5
  585. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-find-account-by-id.resolver.ts +4 -5
  586. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-find-account.resolver.ts +4 -5
  587. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-get-accounts.resolver.ts +4 -5
  588. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-me-account.resolver.ts +5 -5
  589. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-paginate-accounts.resolver.ts +4 -5
  590. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-paginate-with-tenant-constraint-accounts.resolver.ts +4 -5
  591. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-account-by-id.resolver.ts +12 -7
  592. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-accounts.resolver.ts +4 -5
  593. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-me-account.resolver.ts +4 -5
  594. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-create-bounded-context.controller.ts +3 -3
  595. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-create-bounded-contexts.controller.ts +3 -3
  596. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-delete-bounded-context-by-id.controller.ts +4 -5
  597. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-delete-bounded-contexts.controller.ts +6 -7
  598. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-find-bounded-context-by-id.controller.ts +4 -5
  599. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-find-bounded-context.controller.ts +6 -7
  600. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-get-bounded-contexts.controller.ts +6 -7
  601. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-paginate-bounded-contexts.controller.ts +5 -6
  602. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-update-bounded-context-by-id.controller.ts +4 -5
  603. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-update-bounded-contexts.controller.ts +4 -5
  604. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/dto/iam-bounded-context.dto.ts +3 -2
  605. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/dto/index.ts +4 -4
  606. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/graphql/iam-bounded-context.graphql +24 -12
  607. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/index.ts +24 -24
  608. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-create-bounded-context.resolver.ts +3 -3
  609. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-create-bounded-contexts.resolver.ts +3 -3
  610. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-delete-bounded-context-by-id.resolver.ts +4 -5
  611. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-delete-bounded-contexts.resolver.ts +4 -5
  612. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-find-bounded-context-by-id.resolver.ts +4 -5
  613. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-find-bounded-context.resolver.ts +4 -5
  614. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-get-bounded-contexts.resolver.ts +4 -5
  615. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-paginate-bounded-contexts.resolver.ts +4 -5
  616. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-update-bounded-context-by-id.resolver.ts +4 -5
  617. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-update-bounded-contexts.resolver.ts +4 -5
  618. package/dist/templates/backend/packages/iam/src/@api/iam/iam-bootstrap.seeder.spec.ts +46 -22
  619. package/dist/templates/backend/packages/iam/src/@api/iam/iam-bootstrap.seeder.ts +36 -23
  620. package/dist/templates/backend/packages/iam/src/@api/iam/iam.module.ts +46 -20
  621. package/dist/templates/backend/packages/iam/src/@api/iam/iam.seeder.ts +7 -7
  622. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-create-permission.controller.ts +3 -3
  623. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-create-permissions.controller.ts +3 -3
  624. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-delete-permission-by-id.controller.ts +4 -5
  625. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-delete-permissions.controller.ts +6 -7
  626. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-find-permission-by-id.controller.ts +4 -5
  627. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-find-permission.controller.ts +6 -7
  628. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-get-permissions.controller.ts +6 -7
  629. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-paginate-permissions.controller.ts +5 -6
  630. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-update-permission-by-id.controller.ts +4 -5
  631. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-update-permissions.controller.ts +4 -5
  632. package/dist/templates/backend/packages/iam/src/@api/iam/permission/dto/iam-permission.dto.ts +5 -4
  633. package/dist/templates/backend/packages/iam/src/@api/iam/permission/dto/index.ts +4 -4
  634. package/dist/templates/backend/packages/iam/src/@api/iam/permission/graphql/iam-permission.graphql +18 -15
  635. package/dist/templates/backend/packages/iam/src/@api/iam/permission/index.ts +24 -24
  636. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-create-permission.resolver.ts +3 -3
  637. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-create-permissions.resolver.ts +3 -3
  638. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-delete-permission-by-id.resolver.ts +4 -5
  639. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-delete-permissions.resolver.ts +4 -5
  640. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-find-permission-by-id.resolver.ts +4 -5
  641. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-find-permission.resolver.ts +4 -5
  642. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-get-permissions.resolver.ts +4 -5
  643. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-paginate-permissions.resolver.ts +4 -5
  644. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-update-permission-by-id.resolver.ts +4 -5
  645. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-update-permissions.resolver.ts +4 -5
  646. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-create-permission-role.controller.ts +3 -3
  647. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-create-permissions-roles.controller.ts +3 -3
  648. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-delete-permission-role-by-id.controller.ts +4 -5
  649. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-delete-permissions-roles.controller.ts +6 -7
  650. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-find-permission-role-by-id.controller.ts +4 -5
  651. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-find-permission-role.controller.ts +6 -7
  652. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-get-permissions-roles.controller.ts +6 -7
  653. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-paginate-permissions-roles.controller.ts +5 -6
  654. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-update-permission-role-by-id.controller.ts +4 -5
  655. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-update-permissions-roles.controller.ts +4 -5
  656. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/dto/iam-permission-role.dto.ts +5 -4
  657. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/dto/index.ts +4 -4
  658. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/graphql/iam-permission-role.graphql +21 -9
  659. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/index.ts +24 -24
  660. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-create-permission-role.resolver.ts +3 -3
  661. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-create-permissions-roles.resolver.ts +3 -3
  662. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-delete-permission-role-by-id.resolver.ts +4 -5
  663. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-delete-permissions-roles.resolver.ts +4 -5
  664. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-find-permission-role-by-id.resolver.ts +4 -5
  665. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-find-permission-role.resolver.ts +4 -5
  666. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-get-permissions-roles.resolver.ts +4 -5
  667. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-paginate-permissions-roles.resolver.ts +4 -5
  668. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-update-permission-role-by-id.resolver.ts +4 -5
  669. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-update-permissions-roles.resolver.ts +4 -5
  670. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-create-role.controller.ts +3 -3
  671. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-create-roles.controller.ts +3 -3
  672. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-delete-role-by-id.controller.ts +4 -5
  673. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-delete-roles.controller.ts +6 -7
  674. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-find-role-by-id.controller.ts +4 -5
  675. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-find-role.controller.ts +6 -7
  676. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-get-roles.controller.ts +6 -7
  677. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-inherit-permissions-role-role.controller.ts +4 -5
  678. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-paginate-roles.controller.ts +5 -6
  679. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-update-role-by-id.controller.ts +4 -5
  680. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-update-roles.controller.ts +4 -5
  681. package/dist/templates/backend/packages/iam/src/@api/iam/role/dto/iam-role.dto.ts +5 -4
  682. package/dist/templates/backend/packages/iam/src/@api/iam/role/dto/index.ts +4 -4
  683. package/dist/templates/backend/packages/iam/src/@api/iam/role/graphql/iam-role.graphql +19 -19
  684. package/dist/templates/backend/packages/iam/src/@api/iam/role/index.ts +26 -26
  685. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-create-role.resolver.ts +3 -3
  686. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-create-roles.resolver.ts +3 -3
  687. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-delete-role-by-id.resolver.ts +4 -5
  688. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-delete-roles.resolver.ts +4 -5
  689. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-find-role-by-id.resolver.ts +4 -5
  690. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-find-role.resolver.ts +4 -5
  691. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-get-roles.resolver.ts +4 -5
  692. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-inherit-permissions-role-role.resolver.ts +4 -5
  693. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-paginate-roles.resolver.ts +4 -5
  694. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-update-role-by-id.resolver.ts +4 -5
  695. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-update-roles.resolver.ts +4 -5
  696. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-create-role-account.controller.ts +3 -3
  697. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-create-roles-accounts.controller.ts +3 -3
  698. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-delete-role-account-by-id.controller.ts +4 -5
  699. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-delete-roles-accounts.controller.ts +6 -7
  700. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-find-role-account-by-id.controller.ts +4 -5
  701. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-find-role-account.controller.ts +6 -7
  702. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-get-roles-accounts.controller.ts +6 -7
  703. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-paginate-roles-accounts.controller.ts +5 -6
  704. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-update-role-account-by-id.controller.ts +4 -5
  705. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-update-roles-accounts.controller.ts +4 -5
  706. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/dto/iam-role-account.dto.ts +5 -4
  707. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/dto/index.ts +4 -4
  708. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/graphql/iam-role-account.graphql +19 -9
  709. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/index.ts +24 -24
  710. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-create-role-account.resolver.ts +3 -3
  711. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-create-roles-accounts.resolver.ts +3 -3
  712. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-delete-role-account-by-id.resolver.ts +4 -5
  713. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-delete-roles-accounts.resolver.ts +4 -5
  714. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-find-role-account-by-id.resolver.ts +4 -5
  715. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-find-role-account.resolver.ts +4 -5
  716. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-get-roles-accounts.resolver.ts +4 -5
  717. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-paginate-roles-accounts.resolver.ts +4 -5
  718. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-update-role-account-by-id.resolver.ts +4 -5
  719. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-update-roles-accounts.resolver.ts +4 -5
  720. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-create-tag.controller.ts +3 -3
  721. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-delete-tag-by-id.controller.ts +4 -5
  722. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-find-tag-by-id.controller.ts +4 -5
  723. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-find-tag.controller.ts +6 -7
  724. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-get-tags.controller.ts +6 -7
  725. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-paginate-tags.controller.ts +5 -6
  726. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-update-tag-by-id.controller.ts +4 -5
  727. package/dist/templates/backend/packages/iam/src/@api/iam/tag/dto/index.ts +4 -4
  728. package/dist/templates/backend/packages/iam/src/@api/iam/tag/graphql/iam-tag.graphql +9 -9
  729. package/dist/templates/backend/packages/iam/src/@api/iam/tag/index.ts +18 -18
  730. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-create-tag.resolver.ts +3 -3
  731. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-delete-tag-by-id.resolver.ts +4 -5
  732. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-find-tag-by-id.resolver.ts +4 -5
  733. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-find-tag.resolver.ts +4 -5
  734. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-get-tags.resolver.ts +4 -5
  735. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-paginate-tags.resolver.ts +4 -5
  736. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-update-tag-by-id.resolver.ts +4 -5
  737. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-create-tenant.controller.ts +7 -5
  738. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-create-tenants.controller.ts +7 -5
  739. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-delete-tenant-by-id.controller.ts +4 -5
  740. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-delete-tenants.controller.ts +6 -7
  741. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-find-tenant-by-id.controller.ts +4 -5
  742. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-find-tenant.controller.ts +6 -7
  743. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-get-tenants.controller.ts +6 -7
  744. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-get-with-tenant-constraint-tenants.controller.ts +4 -5
  745. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-paginate-tenants.controller.ts +5 -6
  746. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-paginate-with-tenant-constraint-tenants.controller.ts +4 -5
  747. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-update-tenant-by-id.controller.ts +13 -6
  748. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-update-tenants.controller.ts +13 -6
  749. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/dto/iam-tenant.dto.ts +4 -3
  750. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/dto/index.ts +4 -4
  751. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/graphql/iam-tenant.graphql +24 -18
  752. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/index.ts +28 -28
  753. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-create-tenant.resolver.ts +6 -5
  754. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-create-tenants.resolver.ts +6 -5
  755. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-delete-tenant-by-id.resolver.ts +4 -5
  756. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-delete-tenants.resolver.ts +4 -5
  757. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-find-tenant-by-id.resolver.ts +4 -5
  758. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-find-tenant.resolver.ts +4 -5
  759. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-get-tenants.resolver.ts +4 -5
  760. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-get-with-tenant-constraint-tenants.resolver.ts +4 -5
  761. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-paginate-tenants.resolver.ts +4 -5
  762. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-paginate-with-tenant-constraint-tenants.resolver.ts +4 -5
  763. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-update-tenant-by-id.resolver.ts +12 -6
  764. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-update-tenants.resolver.ts +12 -6
  765. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-create-tenant-account.controller.ts +7 -5
  766. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-create-tenants-accounts.controller.ts +7 -5
  767. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-delete-tenant-account-by-id.controller.ts +4 -5
  768. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-delete-tenants-accounts.controller.ts +6 -7
  769. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-find-tenant-account-by-id.controller.ts +4 -5
  770. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-find-tenant-account.controller.ts +6 -7
  771. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-get-tenants-accounts.controller.ts +6 -7
  772. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-paginate-tenants-accounts.controller.ts +5 -6
  773. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-update-tenant-account-by-id.controller.ts +13 -6
  774. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-update-tenants-accounts.controller.ts +13 -6
  775. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/dto/iam-tenant-account.dto.ts +5 -4
  776. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/dto/index.ts +4 -4
  777. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/graphql/iam-tenant-account.graphql +21 -9
  778. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/index.ts +24 -24
  779. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-create-tenant-account.resolver.ts +6 -5
  780. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-create-tenants-accounts.resolver.ts +6 -5
  781. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-delete-tenant-account-by-id.resolver.ts +4 -5
  782. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-delete-tenants-accounts.resolver.ts +4 -5
  783. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-find-tenant-account-by-id.resolver.ts +4 -5
  784. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-find-tenant-account.resolver.ts +4 -5
  785. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-get-tenants-accounts.resolver.ts +4 -5
  786. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-paginate-tenants-accounts.resolver.ts +4 -5
  787. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-update-tenant-account-by-id.resolver.ts +12 -6
  788. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-update-tenants-accounts.resolver.ts +12 -6
  789. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-count-user.controller.ts +32 -0
  790. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-delete-user-by-id.controller.ts +4 -5
  791. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-delete-users.controller.ts +6 -7
  792. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-find-user-by-id.controller.ts +4 -5
  793. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-find-user.controller.ts +6 -7
  794. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-forgot-password-user.controller.ts +4 -5
  795. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-get-users.controller.ts +6 -7
  796. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-paginate-users.controller.ts +5 -6
  797. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-reset-password-user.controller.ts +4 -5
  798. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-update-user-by-id.controller.ts +4 -5
  799. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-update-users.controller.ts +4 -5
  800. package/dist/templates/backend/packages/iam/src/@api/iam/user/dto/iam-user.dto.ts +3 -2
  801. package/dist/templates/backend/packages/iam/src/@api/iam/user/dto/index.ts +4 -4
  802. package/dist/templates/backend/packages/iam/src/@api/iam/user/graphql/iam-user.graphql +20 -18
  803. package/dist/templates/backend/packages/iam/src/@api/iam/user/index.ts +30 -24
  804. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-count-user.resolver.ts +25 -0
  805. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-delete-user-by-id.resolver.ts +4 -5
  806. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-delete-users.resolver.ts +4 -5
  807. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-find-user-by-id.resolver.ts +4 -5
  808. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-find-user.resolver.ts +4 -5
  809. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-forgot-password-user.resolver.ts +4 -5
  810. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-get-users.resolver.ts +4 -5
  811. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-paginate-users.resolver.ts +4 -5
  812. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-reset-password-user.resolver.ts +4 -5
  813. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-update-user-by-id.resolver.ts +4 -5
  814. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-update-users.resolver.ts +4 -5
  815. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-password-me/iam-check-password-me-account.handler.ts +4 -6
  816. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-email/iam-check-unique-email-account.handler.spec.ts +75 -0
  817. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-email/iam-check-unique-email-account.handler.ts +5 -2
  818. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-username/iam-check-unique-username-account.handler.spec.ts +75 -0
  819. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-username/iam-check-unique-username-account.handler.ts +5 -2
  820. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/count/iam-count-account.handler.ts +2 -3
  821. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/count/iam-count-account.service.ts +3 -4
  822. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.handler.spec.ts +236 -51
  823. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.handler.ts +99 -42
  824. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.service.ts +4 -3
  825. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-accounts.service.ts +4 -3
  826. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-account-by-id.handler.ts +5 -5
  827. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-account-by-id.service.ts +3 -4
  828. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-accounts.handler.ts +5 -5
  829. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-accounts.service.ts +3 -4
  830. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account-by-id.handler.ts +4 -5
  831. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account-by-id.service.ts +7 -6
  832. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account.handler.ts +4 -5
  833. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account.service.ts +7 -6
  834. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/get/iam-get-accounts.handler.ts +4 -5
  835. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/get/iam-get-accounts.service.ts +7 -6
  836. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/iam-account.payload-types.ts +34 -0
  837. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/me/iam-me-account.handler.spec.ts +3 -3
  838. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/me/iam-me-account.handler.ts +2 -2
  839. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate/iam-paginate-accounts.handler.ts +4 -5
  840. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate/iam-paginate-accounts.service.ts +7 -6
  841. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate-with-tenant-constraint/iam-paginate-with-tenant-constraint-accounts.handler.ts +4 -6
  842. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.handler.spec.ts +497 -38
  843. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.handler.ts +171 -51
  844. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.service.ts +9 -6
  845. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.handler.spec.ts +299 -0
  846. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.handler.ts +107 -7
  847. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.service.ts +5 -5
  848. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/subscribers/iam-account-updated-cache-invalidator.subscriber.spec.ts +62 -0
  849. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/subscribers/iam-account-updated-cache-invalidator.subscriber.ts +59 -0
  850. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update-me/iam-update-me-account.handler.ts +5 -7
  851. package/dist/templates/backend/packages/iam/src/@app/iam/account/domain/iam-account.field-schema.ts +15 -7
  852. package/dist/templates/backend/packages/iam/src/@app/iam/account/domain/index.ts +1 -1
  853. package/dist/templates/backend/packages/iam/src/@app/iam/account/index.ts +45 -38
  854. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/drizzle/iam-drizzle-account.repository.ts +144 -0
  855. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/drizzle/iam-drizzle-account.schema.ts +46 -0
  856. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/create/iam-create-bounded-context.handler.ts +5 -7
  857. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/create/iam-create-bounded-context.service.ts +4 -3
  858. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/create/iam-create-bounded-contexts.handler.ts +4 -4
  859. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/create/iam-create-bounded-contexts.service.ts +4 -3
  860. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-context-by-id.handler.ts +5 -8
  861. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-context-by-id.service.ts +3 -4
  862. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-contexts.handler.ts +5 -8
  863. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-contexts.service.ts +3 -4
  864. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context-by-id.handler.ts +4 -5
  865. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context-by-id.service.ts +7 -6
  866. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context.handler.ts +4 -5
  867. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context.service.ts +7 -6
  868. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/get/iam-get-bounded-contexts.handler.ts +4 -5
  869. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/get/iam-get-bounded-contexts.service.ts +7 -6
  870. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/paginate/iam-paginate-bounded-contexts.handler.ts +4 -5
  871. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/paginate/iam-paginate-bounded-contexts.service.ts +7 -6
  872. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-context-by-id.handler.ts +12 -11
  873. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-context-by-id.service.ts +9 -6
  874. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-contexts.handler.ts +6 -9
  875. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-contexts.service.ts +5 -5
  876. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/domain/iam-bounded-context.field-schema.ts +4 -4
  877. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/domain/index.ts +1 -1
  878. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/index.ts +29 -29
  879. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/drizzle/iam-drizzle-bounded-context.repository.ts +40 -0
  880. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/drizzle/iam-drizzle-bounded-context.schema.ts +33 -0
  881. package/dist/templates/backend/packages/iam/src/@app/iam/iam.relations.ts +116 -0
  882. package/dist/templates/backend/packages/iam/src/@app/iam/iam.seed.ts +45 -45
  883. package/dist/templates/backend/packages/iam/src/@app/iam/index.ts +25 -52
  884. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/create/iam-create-permission.handler.ts +5 -4
  885. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/create/iam-create-permission.service.ts +4 -3
  886. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/create/iam-create-permissions.handler.ts +4 -4
  887. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/create/iam-create-permissions.service.ts +4 -3
  888. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permission-by-id.handler.ts +5 -5
  889. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permission-by-id.service.ts +3 -4
  890. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permissions.handler.ts +5 -5
  891. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permissions.service.ts +3 -4
  892. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission-by-id.handler.ts +4 -5
  893. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission-by-id.service.ts +7 -6
  894. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission.handler.ts +4 -5
  895. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission.service.ts +7 -6
  896. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get/iam-get-permissions.handler.ts +4 -5
  897. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get/iam-get-permissions.service.ts +7 -6
  898. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get-permissions-without-role/iam-get-permissions-without-role.handler.spec.ts +121 -0
  899. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get-permissions-without-role/iam-get-permissions-without-role.handler.ts +73 -0
  900. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/paginate/iam-paginate-permissions.handler.ts +4 -5
  901. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/paginate/iam-paginate-permissions.service.ts +7 -6
  902. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permission-by-id.handler.ts +12 -8
  903. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permission-by-id.service.ts +9 -6
  904. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permissions.handler.ts +6 -6
  905. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permissions.service.ts +5 -5
  906. package/dist/templates/backend/packages/iam/src/@app/iam/permission/domain/iam-permission.field-schema.ts +5 -5
  907. package/dist/templates/backend/packages/iam/src/@app/iam/permission/domain/index.ts +1 -1
  908. package/dist/templates/backend/packages/iam/src/@app/iam/permission/index.ts +32 -29
  909. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/drizzle/iam-drizzle-permission.repository.ts +100 -0
  910. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/drizzle/iam-drizzle-permission.schema.ts +23 -0
  911. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/create/iam-create-permission-role.handler.ts +5 -7
  912. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/create/iam-create-permission-role.service.ts +6 -6
  913. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/create/iam-create-permissions-roles.handler.ts +4 -4
  914. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/create/iam-create-permissions-roles.service.ts +4 -3
  915. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permission-role-by-id.handler.ts +5 -8
  916. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permission-role-by-id.service.ts +3 -4
  917. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permissions-roles.handler.ts +5 -8
  918. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permissions-roles.service.ts +3 -4
  919. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role-by-id.handler.ts +4 -5
  920. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role-by-id.service.ts +7 -6
  921. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role.handler.ts +4 -5
  922. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role.service.ts +7 -6
  923. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/get/iam-get-permissions-roles.handler.ts +4 -5
  924. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/get/iam-get-permissions-roles.service.ts +7 -6
  925. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/paginate/iam-paginate-permissions-roles.handler.ts +4 -5
  926. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/paginate/iam-paginate-permissions-roles.service.ts +7 -6
  927. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permission-role-by-id.handler.ts +12 -11
  928. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permission-role-by-id.service.ts +9 -6
  929. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permissions-roles.handler.ts +6 -9
  930. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permissions-roles.service.ts +5 -5
  931. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/domain/iam-permission-role.field-schema.ts +2 -2
  932. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/domain/index.ts +1 -1
  933. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/index.ts +29 -29
  934. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/drizzle/iam-drizzle-permission-role.repository.ts +40 -0
  935. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/drizzle/iam-drizzle-permission-role.schema.ts +14 -0
  936. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/create/iam-create-role.handler.ts +5 -4
  937. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/create/iam-create-role.service.ts +4 -3
  938. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/create/iam-create-roles.handler.ts +4 -4
  939. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/create/iam-create-roles.service.ts +4 -3
  940. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-role-by-id.handler.ts +5 -5
  941. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-role-by-id.service.ts +3 -4
  942. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-roles.handler.ts +5 -5
  943. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-roles.service.ts +3 -4
  944. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role-by-id.handler.ts +4 -5
  945. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role-by-id.service.ts +7 -6
  946. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role.handler.ts +4 -5
  947. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role.service.ts +7 -6
  948. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/get/iam-get-roles.handler.ts +4 -5
  949. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/get/iam-get-roles.service.ts +7 -6
  950. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/inherit-permissions-role/iam-inherit-permissions-role-role.handler.ts +5 -7
  951. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/paginate/iam-paginate-roles.handler.ts +4 -5
  952. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/paginate/iam-paginate-roles.service.ts +7 -6
  953. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-role-by-id.handler.ts +12 -8
  954. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-role-by-id.service.ts +9 -6
  955. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-roles.handler.ts +6 -6
  956. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-roles.service.ts +5 -5
  957. package/dist/templates/backend/packages/iam/src/@app/iam/role/domain/iam-role.field-schema.ts +5 -5
  958. package/dist/templates/backend/packages/iam/src/@app/iam/role/domain/index.ts +1 -1
  959. package/dist/templates/backend/packages/iam/src/@app/iam/role/index.ts +30 -30
  960. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/drizzle/iam-drizzle-role.repository.ts +149 -0
  961. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/drizzle/iam-drizzle-role.schema.ts +33 -0
  962. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/create/iam-create-role-account.handler.ts +5 -4
  963. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/create/iam-create-role-account.service.ts +6 -6
  964. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/create/iam-create-roles-accounts.handler.ts +4 -4
  965. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/create/iam-create-roles-accounts.service.ts +4 -3
  966. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-role-account-by-id.handler.ts +5 -8
  967. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-role-account-by-id.service.ts +3 -4
  968. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-roles-accounts.handler.ts +5 -5
  969. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-roles-accounts.service.ts +3 -4
  970. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account-by-id.handler.ts +4 -5
  971. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account-by-id.service.ts +7 -6
  972. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account.handler.ts +4 -5
  973. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account.service.ts +7 -6
  974. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/get/iam-get-roles-accounts.handler.ts +4 -5
  975. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/get/iam-get-roles-accounts.service.ts +7 -6
  976. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/paginate/iam-paginate-roles-accounts.handler.ts +4 -5
  977. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/paginate/iam-paginate-roles-accounts.service.ts +7 -6
  978. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-role-account-by-id.handler.ts +12 -11
  979. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-role-account-by-id.service.ts +9 -6
  980. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-roles-accounts.handler.ts +6 -6
  981. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-roles-accounts.service.ts +5 -5
  982. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/domain/iam-role-account.field-schema.ts +2 -2
  983. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/domain/index.ts +1 -1
  984. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/index.ts +29 -29
  985. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/drizzle/iam-drizzle-role-account.repository.ts +40 -0
  986. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/drizzle/iam-drizzle-role-account.schema.ts +14 -0
  987. package/dist/templates/backend/packages/iam/src/@app/iam/shared/functions/iam-create-permissions-from-roles.function.ts +2 -2
  988. package/dist/templates/backend/packages/iam/src/@app/iam/shared/functions/iam-resolve-account-tenants.function.spec.ts +100 -0
  989. package/dist/templates/backend/packages/iam/src/@app/iam/shared/functions/iam-resolve-account-tenants.function.ts +59 -0
  990. package/dist/templates/backend/packages/iam/src/@app/iam/shared/iam-bootstrap.constants.ts +19 -0
  991. package/dist/templates/backend/packages/iam/src/@app/iam/shared/index.ts +4 -2
  992. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/create/iam-create-tag.handler.ts +5 -4
  993. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/create/iam-create-tag.service.ts +4 -3
  994. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/delete/iam-delete-tag-by-id.handler.ts +5 -5
  995. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/delete/iam-delete-tag-by-id.service.ts +3 -4
  996. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag-by-id.handler.ts +4 -5
  997. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag-by-id.service.ts +7 -6
  998. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag.handler.ts +4 -5
  999. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag.service.ts +7 -6
  1000. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/get/iam-get-tags.handler.ts +4 -5
  1001. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/get/iam-get-tags.service.ts +7 -6
  1002. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/paginate/iam-paginate-tags.handler.ts +4 -5
  1003. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/paginate/iam-paginate-tags.service.ts +7 -6
  1004. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/update/iam-update-tag-by-id.handler.ts +12 -8
  1005. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/update/iam-update-tag-by-id.service.ts +9 -6
  1006. package/dist/templates/backend/packages/iam/src/@app/iam/tag/domain/iam-tag.field-schema.ts +3 -3
  1007. package/dist/templates/backend/packages/iam/src/@app/iam/tag/domain/index.ts +1 -1
  1008. package/dist/templates/backend/packages/iam/src/@app/iam/tag/index.ts +23 -23
  1009. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/drizzle/iam-drizzle-tag.repository.ts +35 -0
  1010. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/drizzle/iam-drizzle-tag.schema.ts +21 -0
  1011. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenant.handler.spec.ts +195 -0
  1012. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenant.handler.ts +85 -7
  1013. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenant.service.ts +4 -3
  1014. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenants.handler.spec.ts +98 -0
  1015. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenants.handler.ts +53 -7
  1016. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenants.service.ts +4 -3
  1017. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenant-by-id.handler.ts +5 -5
  1018. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenant-by-id.service.ts +3 -4
  1019. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenants.handler.ts +5 -5
  1020. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenants.service.ts +3 -4
  1021. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant-by-id.handler.ts +4 -5
  1022. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant-by-id.service.ts +7 -6
  1023. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant.handler.ts +4 -5
  1024. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant.service.ts +7 -6
  1025. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get/iam-get-tenants.handler.ts +4 -5
  1026. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get/iam-get-tenants.service.ts +7 -6
  1027. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get-with-tenant-constraint/iam-get-with-tenant-constraint-tenants.handler.ts +4 -6
  1028. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate/iam-paginate-tenants.handler.ts +4 -5
  1029. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate/iam-paginate-tenants.service.ts +7 -6
  1030. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate-with-tenant-constraint/iam-paginate-with-tenant-constraint-tenants.handler.ts +4 -6
  1031. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenant-by-id.handler.spec.ts +222 -0
  1032. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenant-by-id.handler.ts +83 -8
  1033. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenant-by-id.service.ts +9 -6
  1034. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenants.handler.spec.ts +75 -0
  1035. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenants.handler.ts +28 -7
  1036. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenants.service.ts +5 -5
  1037. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/domain/iam-tenant.field-schema.ts +4 -4
  1038. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/domain/index.ts +1 -1
  1039. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/index.ts +31 -31
  1040. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/drizzle/iam-drizzle-tenant.repository.ts +108 -0
  1041. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/drizzle/iam-drizzle-tenant.schema.ts +35 -0
  1042. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenant-account.handler.spec.ts +115 -0
  1043. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenant-account.handler.ts +38 -9
  1044. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenant-account.service.ts +6 -6
  1045. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenants-accounts.handler.spec.ts +105 -0
  1046. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenants-accounts.handler.ts +43 -7
  1047. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenants-accounts.service.ts +4 -3
  1048. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenant-account-by-id.handler.ts +5 -8
  1049. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenant-account-by-id.service.ts +3 -4
  1050. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenants-accounts.handler.ts +5 -8
  1051. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenants-accounts.service.ts +3 -4
  1052. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account-by-id.handler.ts +4 -5
  1053. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account-by-id.service.ts +7 -6
  1054. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account.handler.ts +4 -5
  1055. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account.service.ts +7 -6
  1056. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/get/iam-get-tenants-accounts.handler.ts +4 -5
  1057. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/get/iam-get-tenants-accounts.service.ts +7 -6
  1058. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/paginate/iam-paginate-tenants-accounts.handler.ts +4 -5
  1059. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/paginate/iam-paginate-tenants-accounts.service.ts +7 -6
  1060. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenant-account-by-id.handler.spec.ts +83 -0
  1061. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenant-account-by-id.handler.ts +33 -11
  1062. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenant-account-by-id.service.ts +9 -6
  1063. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenants-accounts.handler.spec.ts +78 -0
  1064. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenants-accounts.handler.ts +27 -10
  1065. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenants-accounts.service.ts +5 -5
  1066. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/domain/iam-tenant-account.field-schema.ts +2 -2
  1067. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/domain/index.ts +1 -1
  1068. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/index.ts +29 -29
  1069. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/drizzle/iam-drizzle-tenant-account.repository.ts +40 -0
  1070. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/drizzle/iam-drizzle-tenant-account.schema.ts +14 -0
  1071. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/count/iam-count-user.handler.ts +2 -3
  1072. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/count/iam-count-user.service.ts +3 -4
  1073. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/create/iam-create-user.handler.ts +5 -4
  1074. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/create/iam-create-user.service.ts +4 -3
  1075. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/create/iam-create-users.handler.ts +4 -4
  1076. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/create/iam-create-users.service.ts +4 -3
  1077. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-user-by-id.handler.ts +5 -5
  1078. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-user-by-id.service.ts +3 -4
  1079. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-users.handler.ts +5 -5
  1080. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-users.service.ts +3 -4
  1081. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-id.handler.ts +4 -5
  1082. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-id.service.ts +7 -6
  1083. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-username-password.service.spec.ts +24 -14
  1084. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-username-password.service.ts +23 -21
  1085. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user.handler.ts +4 -5
  1086. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user.service.ts +7 -6
  1087. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/forgot-password/iam-forgot-password-user.handler.ts +5 -7
  1088. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/get/iam-get-users.handler.ts +4 -5
  1089. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/get/iam-get-users.service.ts +7 -6
  1090. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/paginate/iam-paginate-users.handler.ts +4 -5
  1091. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/paginate/iam-paginate-users.service.ts +7 -6
  1092. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/reset-password/iam-reset-password-user.handler.ts +5 -7
  1093. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-user-by-id.handler.ts +12 -8
  1094. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-user-by-id.service.ts +9 -6
  1095. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-users.handler.ts +6 -6
  1096. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-users.service.ts +5 -5
  1097. package/dist/templates/backend/packages/iam/src/@app/iam/user/domain/iam-user.field-schema.spec.ts +36 -0
  1098. package/dist/templates/backend/packages/iam/src/@app/iam/user/domain/iam-user.field-schema.ts +6 -6
  1099. package/dist/templates/backend/packages/iam/src/@app/iam/user/domain/index.ts +1 -1
  1100. package/dist/templates/backend/packages/iam/src/@app/iam/user/index.ts +42 -35
  1101. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/drizzle/iam-drizzle-user.repository.ts +40 -0
  1102. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/drizzle/iam-drizzle-user.schema.ts +42 -0
  1103. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-loader.adapter.spec.ts +827 -0
  1104. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-loader.adapter.ts +223 -20
  1105. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-provisioner.adapter.spec.ts +282 -0
  1106. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-provisioner.adapter.ts +121 -0
  1107. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-operator-account-reader.adapter.spec.ts +63 -0
  1108. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-operator-account-reader.adapter.ts +39 -0
  1109. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/index.ts +3 -0
  1110. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/index.ts +1 -1
  1111. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/iam-account-provisioner.port.ts +88 -0
  1112. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/iam-account-provisioner.token.ts +1 -0
  1113. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/index.ts +2 -0
  1114. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-seeder.adapter.ts +2 -2
  1115. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-writer.adapter.spec.ts +156 -0
  1116. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-writer.adapter.ts +75 -0
  1117. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/index.ts +2 -0
  1118. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/index.ts +1 -1
  1119. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/iam-bounded-context-writer.port.ts +49 -0
  1120. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/iam-bounded-context-writer.token.ts +1 -0
  1121. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/index.ts +4 -2
  1122. package/dist/templates/backend/packages/iam/src/@bridges/iam/client/index.ts +1 -0
  1123. package/dist/templates/backend/packages/iam/src/@bridges/iam/client/ports/index.ts +2 -2
  1124. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-seeder.adapter.ts +2 -2
  1125. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-writer.adapter.spec.ts +315 -0
  1126. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-writer.adapter.ts +147 -0
  1127. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/index.ts +2 -0
  1128. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/index.ts +1 -1
  1129. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/iam-permission-writer.port.ts +70 -0
  1130. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/iam-permission-writer.token.ts +1 -0
  1131. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/index.ts +4 -2
  1132. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/iam-tenant-writer.adapter.spec.ts +173 -0
  1133. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/iam-tenant-writer.adapter.ts +63 -0
  1134. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/index.ts +1 -0
  1135. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/index.ts +1 -0
  1136. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/iam-tenant-writer.port.ts +54 -0
  1137. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/iam-tenant-writer.token.ts +1 -0
  1138. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/index.ts +2 -0
  1139. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/adapters/iam-credential-verifier.adapter.ts +2 -2
  1140. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/adapters/index.ts +1 -0
  1141. package/dist/templates/backend/packages/iam/src/@bridges/providers/account-loader.bridge.ts +2 -2
  1142. package/dist/templates/backend/packages/iam/src/@bridges/providers/credential-verifier.bridge.ts +2 -2
  1143. package/dist/templates/backend/packages/iam/src/@bridges/providers/iam-bounded-context-seeder.bridge.ts +2 -2
  1144. package/dist/templates/backend/packages/iam/src/@bridges/providers/iam-permission-seeder.bridge.ts +2 -2
  1145. package/dist/templates/backend/packages/iam/test/acceptance/iam/core-back-exception-status.e2e-spec.ts +286 -0
  1146. package/dist/templates/backend/packages/iam/test/acceptance/iam/user-sensitive-fields-masking.e2e-spec.ts +289 -0
  1147. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-count-access-token.controller.ts +32 -0
  1148. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-delete-access-token-by-id.controller.ts +4 -5
  1149. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-find-access-token-by-id.controller.ts +4 -5
  1150. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-find-access-token.controller.ts +6 -7
  1151. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-get-access-tokens.controller.ts +6 -7
  1152. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-paginate-access-tokens.controller.ts +5 -6
  1153. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/index.ts +4 -4
  1154. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-access-token.dto.ts +6 -5
  1155. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-create-access-token.dto.ts +5 -4
  1156. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-update-access-token-by-id.dto.ts +5 -4
  1157. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-update-access-tokens.dto.ts +5 -4
  1158. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/graphql/o-auth-access-token.graphql +25 -14
  1159. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/index.ts +20 -14
  1160. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-count-access-token.resolver.ts +25 -0
  1161. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-delete-access-token-by-id.resolver.ts +4 -5
  1162. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-find-access-token-by-id.resolver.ts +4 -5
  1163. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-find-access-token.resolver.ts +4 -5
  1164. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-get-access-tokens.resolver.ts +4 -5
  1165. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-paginate-access-tokens.resolver.ts +4 -5
  1166. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-create-application.controller.ts +3 -3
  1167. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-delete-application-by-id.controller.ts +4 -5
  1168. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-find-application-by-id.controller.ts +4 -5
  1169. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-find-application.controller.ts +6 -7
  1170. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-get-applications.controller.ts +6 -7
  1171. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-paginate-applications.controller.ts +5 -6
  1172. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-update-application-by-id.controller.ts +4 -5
  1173. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/index.ts +4 -4
  1174. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-application.dto.ts +4 -3
  1175. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-create-application.dto.ts +1 -1
  1176. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-update-application-by-id.dto.ts +1 -1
  1177. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-update-applications.dto.ts +1 -1
  1178. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/graphql/o-auth-application.graphql +23 -14
  1179. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/index.ts +18 -18
  1180. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-create-application.resolver.ts +3 -3
  1181. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-delete-application-by-id.resolver.ts +4 -5
  1182. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-find-application-by-id.resolver.ts +4 -5
  1183. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-find-application.resolver.ts +4 -5
  1184. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-get-applications.resolver.ts +4 -5
  1185. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-paginate-applications.resolver.ts +4 -5
  1186. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-update-application-by-id.resolver.ts +4 -5
  1187. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-create-application-client.controller.ts +3 -3
  1188. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-create-applications-clients.controller.ts +3 -3
  1189. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-delete-application-client-by-id.controller.ts +4 -5
  1190. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-delete-applications-clients.controller.ts +6 -7
  1191. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-find-application-client-by-id.controller.ts +4 -5
  1192. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-find-application-client.controller.ts +6 -7
  1193. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-get-applications-clients.controller.ts +6 -7
  1194. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-paginate-applications-clients.controller.ts +5 -6
  1195. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-update-application-client-by-id.controller.ts +4 -5
  1196. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/dto/index.ts +4 -4
  1197. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/dto/o-auth-application-client.dto.ts +5 -4
  1198. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/graphql/o-auth-application-client.graphql +13 -10
  1199. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/index.ts +22 -22
  1200. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-create-application-client.resolver.ts +3 -3
  1201. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-create-applications-clients.resolver.ts +3 -3
  1202. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-delete-application-client-by-id.resolver.ts +4 -5
  1203. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-delete-applications-clients.resolver.ts +4 -5
  1204. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-find-application-client-by-id.resolver.ts +4 -5
  1205. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-find-application-client.resolver.ts +4 -5
  1206. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-get-applications-clients.resolver.ts +4 -5
  1207. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-paginate-applications-clients.resolver.ts +4 -5
  1208. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-update-application-client-by-id.resolver.ts +4 -5
  1209. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-create-authorization-code.controller.ts +3 -3
  1210. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-delete-authorization-code-by-id.controller.ts +4 -5
  1211. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-delete-authorization-codes.controller.ts +6 -7
  1212. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-find-authorization-code-by-id.controller.ts +4 -5
  1213. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-find-authorization-code.controller.ts +6 -7
  1214. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-get-authorization-codes.controller.ts +6 -7
  1215. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-paginate-authorization-codes.controller.ts +5 -6
  1216. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-update-authorization-code-by-id.controller.ts +4 -5
  1217. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/dto/index.ts +4 -4
  1218. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/dto/o-auth-authorization-code.dto.ts +3 -2
  1219. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/graphql/o-auth-authorization-code.graphql +20 -17
  1220. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/index.ts +20 -20
  1221. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-create-authorization-code.resolver.ts +3 -3
  1222. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-delete-authorization-code-by-id.resolver.ts +4 -5
  1223. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-delete-authorization-codes.resolver.ts +4 -5
  1224. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-find-authorization-code-by-id.resolver.ts +4 -5
  1225. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-find-authorization-code.resolver.ts +4 -5
  1226. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-get-authorization-codes.resolver.ts +4 -5
  1227. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-paginate-authorization-codes.resolver.ts +4 -5
  1228. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-update-authorization-code-by-id.resolver.ts +4 -5
  1229. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-create-client.controller.ts +3 -3
  1230. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-delete-client-by-id.controller.ts +4 -5
  1231. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-find-client-by-id.controller.ts +4 -5
  1232. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-find-client.controller.ts +6 -7
  1233. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-get-clients.controller.ts +6 -7
  1234. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-paginate-clients.controller.ts +5 -6
  1235. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-update-client-by-id.controller.ts +4 -5
  1236. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/index.ts +4 -4
  1237. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-client.dto.ts +6 -12
  1238. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-create-client.dto.ts +1 -8
  1239. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-update-client-by-id.dto.ts +1 -8
  1240. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-update-clients.dto.ts +1 -8
  1241. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/graphql/o-auth-client.graphql +16 -23
  1242. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/index.ts +18 -18
  1243. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-create-client.resolver.ts +3 -3
  1244. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-delete-client-by-id.resolver.ts +4 -5
  1245. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-find-client-by-id.resolver.ts +4 -5
  1246. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-find-client.resolver.ts +4 -5
  1247. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-get-clients.resolver.ts +4 -5
  1248. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-paginate-clients.resolver.ts +4 -5
  1249. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-update-client-by-id.resolver.ts +4 -5
  1250. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-find-credential-by-id.controller.ts +4 -5
  1251. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-find-credential.controller.ts +6 -7
  1252. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-get-credentials.controller.ts +6 -7
  1253. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-paginate-credentials.controller.ts +5 -6
  1254. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/dto/index.ts +1 -1
  1255. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/dto/o-auth-credential.dto.ts +24 -9
  1256. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/graphql/o-auth-credential.graphql +31 -6
  1257. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/index.ts +9 -9
  1258. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-find-credential-by-id.resolver.ts +4 -5
  1259. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-find-credential.resolver.ts +4 -5
  1260. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-get-credentials.resolver.ts +4 -5
  1261. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-paginate-credentials.resolver.ts +4 -5
  1262. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-authorize.controller.spec.ts +33 -25
  1263. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-authorize.controller.ts +2 -6
  1264. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-impersonate-token.controller.ts +73 -0
  1265. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-token.controller.spec.ts +5 -4
  1266. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-token.controller.ts +3 -6
  1267. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-get-jwks.controller.spec.ts +5 -7
  1268. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-get-jwks.controller.ts +1 -4
  1269. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-logout.controller.spec.ts +52 -31
  1270. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-logout.controller.ts +6 -9
  1271. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-revoke-token.controller.spec.ts +5 -4
  1272. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-revoke-token.controller.ts +2 -2
  1273. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-session.controller.spec.ts +13 -12
  1274. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-session.controller.ts +1 -1
  1275. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/graphql/flows.graphql +32 -0
  1276. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/index.ts +18 -10
  1277. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-impersonate-token.resolver.ts +89 -0
  1278. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-token.resolver.spec.ts +10 -6
  1279. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-token.resolver.ts +8 -8
  1280. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-revoke-token.resolver.spec.ts +10 -8
  1281. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-revoke-token.resolver.ts +7 -4
  1282. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth-bootstrap.seeder.spec.ts +111 -41
  1283. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth-bootstrap.seeder.ts +38 -23
  1284. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth.module.ts +20 -20
  1285. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth.seeder.ts +18 -7
  1286. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-delete-refresh-token-by-id.controller.ts +4 -5
  1287. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-find-refresh-token-by-id.controller.ts +4 -5
  1288. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-find-refresh-token.controller.ts +6 -7
  1289. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-get-refresh-tokens.controller.ts +6 -7
  1290. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-paginate-refresh-tokens.controller.ts +5 -6
  1291. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/index.ts +4 -4
  1292. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-create-refresh-token.dto.ts +1 -1
  1293. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-refresh-token.dto.ts +4 -3
  1294. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-update-refresh-token-by-id.dto.ts +1 -1
  1295. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-update-refresh-tokens.dto.ts +1 -1
  1296. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/graphql/o-auth-refresh-token.graphql +23 -14
  1297. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/index.ts +14 -14
  1298. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-delete-refresh-token-by-id.resolver.ts +4 -5
  1299. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-find-refresh-token-by-id.resolver.ts +4 -5
  1300. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-find-refresh-token.resolver.ts +4 -5
  1301. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-get-refresh-tokens.resolver.ts +4 -5
  1302. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-paginate-refresh-tokens.resolver.ts +4 -5
  1303. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-create-scope.controller.ts +3 -3
  1304. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-delete-scope-by-id.controller.ts +4 -5
  1305. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-find-scope-by-id.controller.ts +4 -5
  1306. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-find-scope.controller.ts +6 -7
  1307. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-get-scopes.controller.ts +6 -7
  1308. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-paginate-scopes.controller.ts +5 -6
  1309. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-update-scope-by-id.controller.ts +4 -5
  1310. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/dto/index.ts +4 -4
  1311. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/graphql/o-auth-scope.graphql +16 -13
  1312. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/index.ts +18 -18
  1313. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-create-scope.resolver.ts +3 -3
  1314. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-delete-scope-by-id.resolver.ts +4 -5
  1315. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-find-scope-by-id.resolver.ts +4 -5
  1316. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-find-scope.resolver.ts +4 -5
  1317. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-get-scopes.resolver.ts +4 -5
  1318. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-paginate-scopes.resolver.ts +4 -5
  1319. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-update-scope-by-id.resolver.ts +4 -5
  1320. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/count/o-auth-count-access-token.handler.ts +20 -0
  1321. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/count/o-auth-count-access-token.service.ts +24 -0
  1322. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/create/o-auth-create-access-token.handler.ts +5 -7
  1323. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/create/o-auth-create-access-token.service.ts +4 -3
  1324. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/delete/o-auth-delete-access-token-by-id.handler.ts +5 -8
  1325. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/delete/o-auth-delete-access-token-by-id.service.ts +3 -4
  1326. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token-by-id.handler.ts +4 -5
  1327. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token-by-id.service.ts +7 -6
  1328. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token.handler.ts +4 -5
  1329. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token.service.ts +7 -6
  1330. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/get/o-auth-get-access-tokens.handler.ts +4 -5
  1331. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/get/o-auth-get-access-tokens.service.ts +7 -6
  1332. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/paginate/o-auth-paginate-access-tokens.handler.ts +4 -5
  1333. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/paginate/o-auth-paginate-access-tokens.service.ts +7 -6
  1334. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/domain/index.ts +1 -1
  1335. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/domain/o-auth-access-token.field-schema.ts +8 -7
  1336. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/index.ts +27 -21
  1337. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/drizzle/o-auth-drizzle-access-token.repository.ts +40 -0
  1338. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/drizzle/o-auth-drizzle-access-token.schema.ts +35 -0
  1339. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/create/o-auth-create-application.handler.ts +5 -7
  1340. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/create/o-auth-create-application.service.ts +4 -3
  1341. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/delete/o-auth-delete-application-by-id.handler.ts +5 -8
  1342. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/delete/o-auth-delete-application-by-id.service.ts +3 -4
  1343. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application-by-id.handler.ts +4 -5
  1344. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application-by-id.service.ts +7 -6
  1345. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application.handler.ts +4 -5
  1346. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application.service.ts +7 -6
  1347. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/get/o-auth-get-applications.handler.ts +4 -5
  1348. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/get/o-auth-get-applications.service.ts +7 -6
  1349. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/paginate/o-auth-paginate-applications.handler.ts +4 -5
  1350. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/paginate/o-auth-paginate-applications.service.ts +7 -6
  1351. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/update/o-auth-update-application-by-id.handler.spec.ts +144 -0
  1352. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/update/o-auth-update-application-by-id.handler.ts +12 -11
  1353. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/update/o-auth-update-application-by-id.service.ts +9 -6
  1354. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/domain/index.ts +1 -1
  1355. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/domain/o-auth-application.field-schema.spec.ts +20 -0
  1356. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/domain/o-auth-application.field-schema.ts +6 -7
  1357. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/index.ts +23 -23
  1358. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/drizzle/o-auth-drizzle-application.repository.ts +102 -0
  1359. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/drizzle/o-auth-drizzle-application.schema.ts +32 -0
  1360. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/create/o-auth-create-application-client.handler.ts +5 -7
  1361. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/create/o-auth-create-application-client.service.ts +6 -6
  1362. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/create/o-auth-create-applications-clients.handler.ts +4 -4
  1363. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/create/o-auth-create-applications-clients.service.ts +7 -3
  1364. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-application-client-by-id.handler.ts +5 -8
  1365. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-application-client-by-id.service.ts +3 -4
  1366. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-applications-clients.handler.ts +5 -8
  1367. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-applications-clients.service.ts +3 -4
  1368. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client-by-id.handler.ts +4 -5
  1369. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client-by-id.service.ts +7 -6
  1370. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client.handler.ts +4 -5
  1371. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client.service.ts +7 -6
  1372. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/get/o-auth-get-applications-clients.handler.ts +4 -5
  1373. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/get/o-auth-get-applications-clients.service.ts +7 -6
  1374. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/paginate/o-auth-paginate-applications-clients.handler.ts +4 -5
  1375. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/paginate/o-auth-paginate-applications-clients.service.ts +7 -6
  1376. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/update/o-auth-update-application-client-by-id.handler.ts +12 -11
  1377. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/update/o-auth-update-application-client-by-id.service.ts +9 -6
  1378. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/domain/index.ts +1 -1
  1379. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/domain/o-auth-application-client.field-schema.ts +2 -2
  1380. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/index.ts +27 -27
  1381. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/drizzle/o-auth-drizzle-application-client.repository.ts +40 -0
  1382. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/drizzle/o-auth-drizzle-application-client.schema.ts +14 -0
  1383. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/create/o-auth-create-authorization-code.handler.ts +5 -7
  1384. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/create/o-auth-create-authorization-code.service.ts +4 -3
  1385. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-code-by-id.handler.ts +5 -8
  1386. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-code-by-id.service.ts +3 -4
  1387. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-codes.handler.ts +5 -8
  1388. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-codes.service.ts +3 -4
  1389. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code-by-id.handler.ts +4 -5
  1390. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code-by-id.service.ts +7 -6
  1391. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code.handler.ts +4 -5
  1392. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code.service.ts +7 -6
  1393. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/get/o-auth-get-authorization-codes.handler.ts +4 -5
  1394. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/get/o-auth-get-authorization-codes.service.ts +7 -6
  1395. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/paginate/o-auth-paginate-authorization-codes.handler.ts +4 -5
  1396. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/paginate/o-auth-paginate-authorization-codes.service.ts +7 -6
  1397. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/update/o-auth-update-authorization-code-by-id.handler.ts +12 -11
  1398. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/update/o-auth-update-authorization-code-by-id.service.ts +9 -6
  1399. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/domain/index.ts +1 -1
  1400. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/domain/o-auth-authorization-code.field-schema.ts +5 -5
  1401. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/index.ts +25 -25
  1402. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/drizzle/o-auth-drizzle-authorization-code.repository.ts +66 -0
  1403. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/drizzle/o-auth-drizzle-authorization-code.schema.ts +42 -0
  1404. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/create/o-auth-create-client.handler.ts +5 -4
  1405. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/create/o-auth-create-client.service.ts +4 -3
  1406. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/delete/o-auth-delete-client-by-id.handler.ts +5 -5
  1407. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/delete/o-auth-delete-client-by-id.service.ts +3 -4
  1408. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client-by-id.handler.ts +4 -5
  1409. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client-by-id.service.ts +7 -6
  1410. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client.handler.ts +4 -5
  1411. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client.service.ts +7 -6
  1412. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/get/o-auth-get-clients.handler.ts +4 -5
  1413. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/get/o-auth-get-clients.service.ts +7 -6
  1414. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/paginate/o-auth-paginate-clients.handler.ts +4 -5
  1415. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/paginate/o-auth-paginate-clients.service.ts +7 -6
  1416. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/update/o-auth-update-client-by-id.handler.ts +14 -8
  1417. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/update/o-auth-update-client-by-id.service.ts +9 -6
  1418. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/domain/index.ts +1 -1
  1419. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/domain/o-auth-client.field-schema.ts +5 -12
  1420. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/index.ts +23 -23
  1421. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/drizzle/o-auth-drizzle-client.repository.ts +109 -0
  1422. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/drizzle/o-auth-drizzle-client.schema.ts +35 -0
  1423. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/create/o-auth-create-credential.service.spec.ts +62 -0
  1424. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/create/o-auth-create-credential.service.ts +4 -3
  1425. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential-by-id.handler.ts +4 -5
  1426. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential-by-id.service.ts +7 -6
  1427. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential.handler.ts +4 -5
  1428. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential.service.ts +7 -6
  1429. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/get/o-auth-get-credentials.handler.ts +4 -5
  1430. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/get/o-auth-get-credentials.service.ts +7 -6
  1431. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/paginate/o-auth-paginate-credentials.handler.ts +4 -5
  1432. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/paginate/o-auth-paginate-credentials.service.ts +7 -6
  1433. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/domain/index.ts +1 -1
  1434. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/domain/o-auth-credential.field-schema.ts +19 -7
  1435. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/index.ts +18 -18
  1436. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/drizzle/o-auth-drizzle-credential.repository.ts +38 -0
  1437. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/drizzle/o-auth-drizzle-credential.schema.ts +31 -0
  1438. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/authorize/o-auth-authorize.handler.spec.ts +37 -35
  1439. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/authorize/o-auth-authorize.handler.ts +9 -18
  1440. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/o-auth-create-token.handler.spec.ts +12 -11
  1441. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/o-auth-create-token.handler.ts +5 -5
  1442. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-authorization-code.service.spec.ts +72 -36
  1443. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-authorization-code.service.ts +26 -16
  1444. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-password.service.spec.ts +58 -24
  1445. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-password.service.ts +20 -11
  1446. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-refresh.service.spec.ts +126 -66
  1447. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-refresh.service.ts +50 -33
  1448. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/get-jwks/o-auth-get-jwks.handler.spec.ts +3 -3
  1449. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/get-jwks/o-auth-get-jwks.handler.ts +4 -1
  1450. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/o-auth-create-impersonate-token.handler.spec.ts +351 -0
  1451. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/o-auth-create-impersonate-token.handler.ts +117 -0
  1452. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/services/o-auth-create-impersonate-token.service.spec.ts +242 -0
  1453. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/services/o-auth-create-impersonate-token.service.ts +156 -0
  1454. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/revoke-token/o-auth-revoke-token.handler.spec.ts +7 -6
  1455. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/revoke-token/o-auth-revoke-token.handler.ts +2 -2
  1456. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/revoke-token/services/o-auth-revoke-token.service.spec.ts +134 -37
  1457. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/revoke-token/services/o-auth-revoke-token.service.ts +67 -28
  1458. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/session/o-auth-hub-session.service.spec.ts +22 -18
  1459. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/session/o-auth-hub-session.service.ts +4 -1
  1460. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-chain.error.ts +26 -0
  1461. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-permission-refresh-failed.error.ts +34 -0
  1462. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-self.error.ts +25 -0
  1463. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-no-client.error.ts +26 -0
  1464. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-not-found.error.ts +27 -0
  1465. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-privileged.error.ts +26 -0
  1466. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-unavailable.error.ts +36 -0
  1467. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation.errors.spec.ts +132 -0
  1468. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/index.ts +12 -5
  1469. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/flows.types.ts +38 -3
  1470. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/impersonation-privilege-denylist.spec.ts +281 -0
  1471. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/impersonation-privilege-denylist.ts +239 -0
  1472. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/index.ts +2 -2
  1473. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/index.ts +36 -28
  1474. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/shared/pkce/o-auth-verify-pkce-s256.spec.ts +3 -3
  1475. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/shared/pkce/o-auth-verify-pkce-s256.ts +2 -2
  1476. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/index.ts +22 -48
  1477. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/o-auth.relations.ts +81 -0
  1478. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/o-auth.seed.ts +80 -46
  1479. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/create/o-auth-create-refresh-token.handler.ts +5 -7
  1480. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/create/o-auth-create-refresh-token.service.ts +4 -3
  1481. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/delete/o-auth-delete-refresh-token-by-id.handler.ts +5 -8
  1482. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/delete/o-auth-delete-refresh-token-by-id.service.ts +3 -4
  1483. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token-by-id.handler.ts +4 -5
  1484. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token-by-id.service.ts +7 -6
  1485. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token.handler.ts +4 -5
  1486. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token.service.ts +7 -6
  1487. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/get/o-auth-get-refresh-tokens.handler.ts +4 -5
  1488. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/get/o-auth-get-refresh-tokens.service.ts +7 -6
  1489. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/paginate/o-auth-paginate-refresh-tokens.handler.ts +4 -5
  1490. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/paginate/o-auth-paginate-refresh-tokens.service.ts +7 -6
  1491. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/domain/index.ts +1 -1
  1492. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/domain/o-auth-refresh-token.field-schema.ts +7 -6
  1493. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/index.ts +20 -20
  1494. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/drizzle/o-auth-drizzle-refresh-token.repository.ts +40 -0
  1495. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/drizzle/o-auth-drizzle-refresh-token.schema.ts +33 -0
  1496. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/create/o-auth-create-scope.handler.ts +5 -4
  1497. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/create/o-auth-create-scope.service.ts +4 -3
  1498. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/delete/o-auth-delete-scope-by-id.handler.ts +5 -5
  1499. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/delete/o-auth-delete-scope-by-id.service.ts +3 -4
  1500. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope-by-id.handler.ts +4 -5
  1501. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope-by-id.service.ts +7 -6
  1502. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope.handler.ts +4 -5
  1503. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope.service.ts +7 -6
  1504. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/get/o-auth-get-scopes.handler.ts +4 -5
  1505. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/get/o-auth-get-scopes.service.ts +7 -6
  1506. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/paginate/o-auth-paginate-scopes.handler.ts +4 -5
  1507. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/paginate/o-auth-paginate-scopes.service.ts +7 -6
  1508. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/update/o-auth-update-scope-by-id.handler.ts +12 -8
  1509. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/update/o-auth-update-scope-by-id.service.ts +9 -6
  1510. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/domain/index.ts +1 -1
  1511. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/domain/o-auth-scope.field-schema.ts +3 -3
  1512. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/index.ts +23 -23
  1513. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/drizzle/o-auth-drizzle-scope.repository.ts +40 -0
  1514. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/drizzle/o-auth-drizzle-scope.schema.ts +23 -0
  1515. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-authenticate-application.function.spec.ts +72 -25
  1516. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-authenticate-application.function.ts +31 -16
  1517. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-generate-application-secret.function.spec.ts +30 -0
  1518. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-generate-application-secret.function.ts +21 -0
  1519. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-resolve-application-client.function.spec.ts +43 -32
  1520. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-resolve-application-client.function.ts +13 -9
  1521. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/index.ts +6 -5
  1522. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/services/token-retention.service.spec.ts +70 -79
  1523. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/services/token-retention.service.ts +44 -38
  1524. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/index.ts +1 -0
  1525. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/o-auth-application-provisioner.adapter.spec.ts +727 -0
  1526. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/o-auth-application-provisioner.adapter.ts +274 -0
  1527. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/index.ts +1 -0
  1528. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/index.ts +2 -0
  1529. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/o-auth-application-provisioner.port.ts +79 -0
  1530. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/o-auth-application-provisioner.token.ts +1 -0
  1531. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/index.ts +1 -0
  1532. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/o-auth-client-reader.adapter.spec.ts +58 -0
  1533. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/o-auth-client-reader.adapter.ts +6 -4
  1534. package/dist/templates/backend/packages/o-auth/src/@bridges/providers/iam-client-reader.bridge.ts +2 -2
  1535. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/impersonate-token-guarded-transports.e2e-spec.ts +365 -0
  1536. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/masked-property-query-guard.e2e-spec.ts +936 -0
  1537. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/oauth-bootstrap-seeder-idempotency.e2e-spec.ts +211 -0
  1538. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/token-masking.e2e-spec.ts +232 -0
  1539. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/graphql/queue-manager.graphql +149 -0
  1540. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/index.ts +24 -0
  1541. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.auth-metadata.spec.ts +84 -0
  1542. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.spec.ts +210 -0
  1543. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.ts +228 -0
  1544. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/queue-manager.module.ts +84 -0
  1545. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/queue-manager.seeder.ts +33 -0
  1546. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/index.ts +20 -0
  1547. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/queue-inspector.port.ts +144 -0
  1548. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/queue-registry.token.ts +30 -0
  1549. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/bull-board-queue-inspector.adapter.spec.ts +261 -0
  1550. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/bull-board-queue-inspector.adapter.ts +388 -0
  1551. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/index.ts +1 -0
  1552. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/index.ts +1 -0
  1553. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/queue-manager.seed.ts +51 -0
  1554. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/queue-registry.providers.ts +37 -0
  1555. package/dist/templates/codegen/backend/@api/__bounded_context_name__.module.ts.eta +2 -4
  1556. package/dist/templates/codegen/backend/@api/__bounded_context_name__.seeder.ts.eta +7 -7
  1557. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-count-__module_name__.controller.ts.eta +69 -0
  1558. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-create-__module_name__.controller.ts.eta +17 -18
  1559. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-create-__module_names__.controller.ts.eta +12 -12
  1560. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-delete-__module_name__-by-id.controller.ts.eta +16 -17
  1561. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-delete-__module_names__.controller.ts.eta +15 -23
  1562. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-find-__module_name__-by-id.controller.ts.eta +14 -17
  1563. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-find-__module_name__.controller.ts.eta +16 -19
  1564. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-get-__module_names__.controller.ts.eta +16 -19
  1565. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-get-raw-__module_names__.controller.ts.eta +3 -28
  1566. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-max-__module_name__.controller.ts.eta +72 -0
  1567. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-min-__module_name__.controller.ts.eta +72 -0
  1568. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-paginate-__module_names__.controller.ts.eta +15 -18
  1569. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-sum-__module_name__.controller.ts.eta +72 -0
  1570. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-update-__module_name__-by-id.controller.ts.eta +21 -19
  1571. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-update-__module_names__.controller.ts.eta +20 -23
  1572. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-upsert-__module_name__.controller.ts.eta +12 -21
  1573. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-__module_name__.dto.ts.eta +45 -14
  1574. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-create-__module_name__.dto.ts.eta +17 -6
  1575. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-update-__module_name__-by-id.dto.ts.eta +17 -6
  1576. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-update-__module_names__.dto.ts.eta +17 -6
  1577. package/dist/templates/codegen/backend/@api/__module_name__/dto/index.ts.eta +4 -4
  1578. package/dist/templates/codegen/backend/@api/__module_name__/graphql/__bounded_context_name__-__module_name__.graphql.eta +185 -52
  1579. package/dist/templates/codegen/backend/@api/__module_name__/index.ts.eta +102 -30
  1580. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-__module_name__-custom-field-value.resolver.ts.eta +32 -0
  1581. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-count-__module_name__.resolver.ts.eta +62 -0
  1582. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-create-__module_name__.resolver.ts.eta +16 -18
  1583. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-create-__module_names__.resolver.ts.eta +12 -12
  1584. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-delete-__module_name__-by-id.resolver.ts.eta +17 -17
  1585. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-delete-__module_names__.resolver.ts.eta +14 -21
  1586. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-find-__module_name__-by-id.resolver.ts.eta +14 -17
  1587. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-find-__module_name__.resolver.ts.eta +14 -17
  1588. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-get-__module_names__.resolver.ts.eta +14 -17
  1589. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-get-raw-__module_names__.resolver.ts.eta +3 -28
  1590. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-max-__module_name__.resolver.ts.eta +64 -0
  1591. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-min-__module_name__.resolver.ts.eta +64 -0
  1592. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-paginate-__module_names__.resolver.ts.eta +14 -17
  1593. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-sum-__module_name__.resolver.ts.eta +64 -0
  1594. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-update-__module_name__-by-id.resolver.ts.eta +23 -19
  1595. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-update-__module_names__.resolver.ts.eta +23 -23
  1596. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-upsert-__module_name__.resolver.ts.eta +12 -21
  1597. package/dist/templates/codegen/backend/@app/__bounded_context_name__.seed.ts.eta +6 -4
  1598. package/dist/templates/codegen/backend/@app/__module_name__/application/__bounded_context_name__-__module_name__.payload-types.ts.eta +53 -0
  1599. package/dist/templates/codegen/backend/@app/__module_name__/application/count/__bounded_context_name__-count-__module_name__.handler.ts.eta +6 -44
  1600. package/dist/templates/codegen/backend/@app/__module_name__/application/count/__bounded_context_name__-count-__module_name__.service.ts.eta +5 -6
  1601. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_name__.handler.ts.eta +61 -49
  1602. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_name__.service.ts.eta +100 -82
  1603. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_names__.handler.ts.eta +51 -9
  1604. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_names__.service.ts.eta +111 -31
  1605. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_name__-by-id.handler.ts.eta +37 -50
  1606. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_name__-by-id.service.ts.eta +100 -80
  1607. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_names__.handler.ts.eta +14 -52
  1608. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_names__.service.ts.eta +39 -61
  1609. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__-by-id.handler.ts.eta +21 -39
  1610. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__-by-id.service.ts.eta +35 -11
  1611. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__.handler.ts.eta +21 -40
  1612. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__.service.ts.eta +35 -10
  1613. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-__module_names__.handler.ts.eta +24 -41
  1614. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-__module_names__.service.ts.eta +35 -10
  1615. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-raw-__module_names__.handler.ts.eta +15 -46
  1616. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-raw-__module_names__.service.ts.eta +5 -7
  1617. package/dist/templates/codegen/backend/@app/__module_name__/application/max/__bounded_context_name__-max-__module_name__.handler.ts.eta +43 -0
  1618. package/dist/templates/codegen/backend/@app/__module_name__/application/max/__bounded_context_name__-max-__module_name__.service.ts.eta +5 -6
  1619. package/dist/templates/codegen/backend/@app/__module_name__/application/min/__bounded_context_name__-min-__module_name__.handler.ts.eta +43 -0
  1620. package/dist/templates/codegen/backend/@app/__module_name__/application/min/__bounded_context_name__-min-__module_name__.service.ts.eta +5 -6
  1621. package/dist/templates/codegen/backend/@app/__module_name__/application/paginate/__bounded_context_name__-paginate-__module_names__.handler.ts.eta +24 -40
  1622. package/dist/templates/codegen/backend/@app/__module_name__/application/paginate/__bounded_context_name__-paginate-__module_names__.service.ts.eta +39 -10
  1623. package/dist/templates/codegen/backend/@app/__module_name__/application/sum/__bounded_context_name__-sum-__module_name__.handler.ts.eta +43 -0
  1624. package/dist/templates/codegen/backend/@app/__module_name__/application/sum/__bounded_context_name__-sum-__module_name__.service.ts.eta +5 -6
  1625. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_name__-by-id.handler.ts.eta +78 -64
  1626. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_name__-by-id.service.ts.eta +71 -35
  1627. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_names__.handler.ts.eta +36 -52
  1628. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_names__.service.ts.eta +25 -41
  1629. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-and-increment-__module_names__.service.ts.eta +24 -41
  1630. package/dist/templates/codegen/backend/@app/__module_name__/application/upsert/__bounded_context_name__-upsert-__module_name__.handler.ts.eta +28 -52
  1631. package/dist/templates/codegen/backend/@app/__module_name__/application/upsert/__bounded_context_name__-upsert-__module_name__.service.ts.eta +23 -83
  1632. package/dist/templates/codegen/backend/@app/__module_name__/domain/__bounded_context_name__-__module_name__.field-schema.ts.eta +41 -2
  1633. package/dist/templates/codegen/backend/@app/__module_name__/domain/index.ts.eta +1 -1
  1634. package/dist/templates/codegen/backend/@app/__module_name__/index.ts.eta +117 -122
  1635. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-custom-field-value.schema.ts.eta +37 -0
  1636. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-i18n.repository.ts.eta +65 -0
  1637. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-i18n.schema.ts.eta +47 -0
  1638. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__.repository.ts.eta +180 -0
  1639. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__.schema.ts.eta +154 -0
  1640. package/dist/templates/codegen/backend/@app/index.ts.eta +0 -1
  1641. package/dist/templates/codegen/backend/additional-@api/__module_name__/controllers/__additional_api_name__.controller.ts.eta +30 -25
  1642. package/dist/templates/codegen/backend/additional-@api/__module_name__/resolvers/__additional_api_name__.resolver.ts.eta +33 -25
  1643. package/dist/templates/codegen/backend/additional-@app/__module_name__/application/__additional_api_action__/__additional_api_name__.handler.ts.eta +30 -11
  1644. package/dist/templates/codegen/frontend/module/__bounded_context_name__.navigation.ts.eta +1 -0
  1645. package/dist/templates/codegen/frontend/module/__module_name__/__module_name__.columns.ts.eta +233 -30
  1646. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.detail-config.ts.eta +18 -2
  1647. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.graphql.ts.eta +223 -71
  1648. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.list-config.ts.eta +11 -2
  1649. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.resolvers.ts.eta +168 -58
  1650. package/dist/templates/codegen/frontend/module/__module_name__/data-access/index.ts.eta +8 -0
  1651. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-detail.component.ts.eta +257 -57
  1652. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-form-embed.component.ts.eta +336 -89
  1653. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-form.component.ts.eta +348 -141
  1654. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list-actions-cell.component.ts.eta +35 -12
  1655. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list-translations-cell.component.ts.eta +91 -0
  1656. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list.component.ts.eta +153 -52
  1657. package/dist/templates/codegen/frontend/module/__module_name__/features/index.ts.eta +19 -0
  1658. package/dist/templates/codegen/frontend/module/__module_name__/index.ts.eta +7 -5
  1659. package/dist/templates/codegen/partials/fields/boolean-field.eta +11 -4
  1660. package/dist/templates/codegen/partials/fields/color-picker-field.eta +8 -0
  1661. package/dist/templates/codegen/partials/fields/date-field.eta +6 -16
  1662. package/dist/templates/codegen/partials/fields/datetime-field.eta +8 -0
  1663. package/dist/templates/codegen/partials/fields/enum-field.eta +16 -10
  1664. package/dist/templates/codegen/partials/fields/number-field.eta +2 -4
  1665. package/dist/templates/codegen/partials/fields/password-field.eta +14 -18
  1666. package/dist/templates/codegen/partials/fields/text-field.eta +2 -7
  1667. package/dist/templates/codegen/partials/fields/varchar-field.eta +2 -7
  1668. package/dist/templates/codegen/partials/form/dialog-frame.eta +14 -11
  1669. package/dist/templates/codegen/partials/form/field-errors.eta +10 -0
  1670. package/dist/templates/codegen/partials/form/field-label.eta +21 -6
  1671. package/dist/templates/codegen/partials/form/form-body.eta +32 -28
  1672. package/dist/templates/codegen/partials/form/view-frame-tabbed.eta +54 -4
  1673. package/dist/templates/codegen/partials/form/view-frame.eta +62 -4
  1674. package/dist/templates/codegen/partials/i18n-recompute.eta +72 -0
  1675. package/dist/templates/codegen/partials/i18n-validate.eta +51 -0
  1676. package/dist/templates/codegen/partials/relationships/async-multiple-search-select.eta +4 -8
  1677. package/dist/templates/codegen/partials/relationships/async-search-select.eta +4 -8
  1678. package/dist/templates/codegen/partials/relationships/grid-elements-manager.eta +1 -0
  1679. package/dist/templates/codegen/partials/relationships/grid-select-element.eta +5 -7
  1680. package/dist/templates/codegen/partials/relationships/multiple-search-select.eta +4 -8
  1681. package/dist/templates/codegen/partials/relationships/multiple-select.eta +17 -8
  1682. package/dist/templates/codegen/partials/relationships/search-select.eta +5 -8
  1683. package/dist/templates/codegen/partials/relationships/select.eta +14 -6
  1684. package/dist/templates/frontend/application/.claude/skills/catalyst-data-layer/SKILL.md +67 -51
  1685. package/dist/templates/frontend/application/.claude/skills/catalyst-data-layer/references/known-patterns.md +24 -20
  1686. package/dist/templates/frontend/application/.claude/skills/catalyst-data-table-management/SKILL.md +38 -33
  1687. package/dist/templates/frontend/application/.claude/skills/catalyst-form-composer-auditor/SKILL.md +133 -73
  1688. package/dist/templates/frontend/application/.claude/skills/catalyst-form-composer-auditor/references/catalyst-detail-form-rules.md +308 -253
  1689. package/dist/templates/frontend/application/.claude/skills/catalyst-project-structure/SKILL.md +281 -173
  1690. package/dist/templates/frontend/application/.claude/skills/catalyst-review-module/SKILL.md +1 -1
  1691. package/dist/templates/frontend/application/.claude/skills/catalyst-widget-creator/SKILL.md +288 -0
  1692. package/dist/templates/frontend/application/.claude/skills/layout-design-system/SKILL.md +69 -10
  1693. package/dist/templates/frontend/application/.claude/skills/transloco-i18n/SKILL.md +21 -0
  1694. package/dist/templates/frontend/application/CLAUDE.md +18 -3
  1695. package/dist/templates/frontend/application/angular.json +6 -4
  1696. package/dist/templates/frontend/application/codegen.ts +2 -1
  1697. package/dist/templates/frontend/application/libs/ui/accordion/src/lib/hlm-accordion-trigger.ts +1 -1
  1698. package/dist/templates/frontend/application/libs/ui/alert/src/lib/hlm-alert.ts +1 -1
  1699. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/index.ts +3 -0
  1700. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-action.ts +1 -3
  1701. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-cancel.ts +3 -4
  1702. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-content.ts +5 -2
  1703. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-description.ts +5 -4
  1704. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-footer.ts +5 -4
  1705. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-header.ts +5 -4
  1706. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-media.ts +15 -0
  1707. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-overlay.ts +1 -1
  1708. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-title.ts +5 -4
  1709. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-trigger.ts +1 -3
  1710. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-content.ts +1 -1
  1711. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-empty.ts +1 -3
  1712. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-group.ts +1 -3
  1713. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-input.ts +45 -44
  1714. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-item.ts +3 -5
  1715. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-label.ts +1 -3
  1716. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-list.ts +2 -4
  1717. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-search.ts +8 -18
  1718. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-separator.ts +1 -3
  1719. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-status.ts +2 -4
  1720. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete.ts +8 -18
  1721. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-badge.ts +2 -2
  1722. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-fallback.ts +1 -1
  1723. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-image.ts +1 -1
  1724. package/dist/templates/frontend/application/libs/ui/badge/src/lib/hlm-badge.ts +1 -1
  1725. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/index.ts +0 -5
  1726. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/lib/hlm-breadcrumb-ellipsis.ts +12 -25
  1727. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/lib/hlm-breadcrumb-separator.ts +1 -1
  1728. package/dist/templates/frontend/application/libs/ui/button/src/lib/hlm-button.ts +6 -8
  1729. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group-separator.ts +5 -4
  1730. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group-text.ts +4 -1
  1731. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group.ts +4 -4
  1732. package/dist/templates/frontend/application/libs/ui/calendar/src/index.ts +8 -1
  1733. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar-multi.ts +189 -223
  1734. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar-range.ts +188 -218
  1735. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar.ts +184 -212
  1736. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-month-year-calendar.ts +139 -0
  1737. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-action.ts +1 -3
  1738. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-content.ts +2 -4
  1739. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-description.ts +1 -3
  1740. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-footer.ts +2 -5
  1741. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-header.ts +2 -4
  1742. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-title.ts +1 -3
  1743. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card.token.ts +19 -0
  1744. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card.ts +4 -2
  1745. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel-next.ts +5 -7
  1746. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel-previous.ts +5 -7
  1747. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel.ts +8 -6
  1748. package/dist/templates/frontend/application/libs/ui/checkbox/src/lib/hlm-checkbox.ts +13 -14
  1749. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible-content.ts +1 -3
  1750. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible-trigger.ts +1 -3
  1751. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible.ts +1 -3
  1752. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip-input.ts +1 -3
  1753. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip-remove.ts +2 -4
  1754. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip.ts +2 -4
  1755. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chips.ts +12 -12
  1756. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-content.ts +1 -3
  1757. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-empty.ts +1 -3
  1758. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-group.ts +1 -3
  1759. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-input.ts +58 -43
  1760. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-item.ts +3 -5
  1761. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-label.ts +1 -3
  1762. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-list.ts +2 -4
  1763. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-multiple.ts +8 -18
  1764. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-placeholder.ts +1 -1
  1765. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-separator.ts +1 -3
  1766. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-status.ts +2 -4
  1767. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-trigger.ts +17 -2
  1768. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-value.ts +1 -0
  1769. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox.ts +8 -18
  1770. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-dialog.ts +2 -2
  1771. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-group-label.ts +1 -1
  1772. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-group.ts +4 -1
  1773. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-input.ts +10 -4
  1774. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-item.ts +1 -1
  1775. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-list.ts +1 -1
  1776. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-separator.ts +1 -1
  1777. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-shortcut.ts +4 -1
  1778. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command.ts +1 -1
  1779. package/dist/templates/frontend/application/libs/ui/context-menu/src/lib/hlm-context-menu-trigger.ts +25 -14
  1780. package/dist/templates/frontend/application/libs/ui/date-picker/src/index.ts +24 -3
  1781. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-multi-input.ts +104 -0
  1782. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-anchor.ts +23 -0
  1783. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-input.ts +105 -0
  1784. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-multi.token.ts +61 -0
  1785. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-multi.ts +70 -85
  1786. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-trigger.ts +104 -0
  1787. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker.token.ts +22 -0
  1788. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker.ts +83 -97
  1789. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-input.ts +107 -0
  1790. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-picker.token.ts +36 -1
  1791. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-picker.ts +90 -89
  1792. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-input.ts +105 -0
  1793. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-picker.token.ts +89 -0
  1794. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-picker.ts +199 -0
  1795. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-close.ts +2 -4
  1796. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-content.ts +21 -13
  1797. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-description.ts +5 -4
  1798. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-footer.ts +1 -3
  1799. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-header.ts +2 -4
  1800. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-overlay.ts +4 -3
  1801. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-title.ts +2 -4
  1802. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-trigger.ts +1 -3
  1803. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog.service.ts +7 -4
  1804. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/index.ts +4 -0
  1805. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox-indicator.ts +3 -5
  1806. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox.ts +30 -12
  1807. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-focus-on-hover.ts +35 -0
  1808. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-group.ts +1 -3
  1809. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-item-sub-indicator.ts +2 -2
  1810. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-item.ts +4 -2
  1811. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-label.ts +4 -4
  1812. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-radio-indicator.ts +5 -7
  1813. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-radio.ts +26 -13
  1814. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-separator.ts +2 -4
  1815. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-shortcut.ts +5 -4
  1816. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-sub-trigger.ts +52 -0
  1817. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-sub.ts +21 -26
  1818. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-trigger.ts +14 -17
  1819. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu.ts +21 -26
  1820. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-content.ts +2 -4
  1821. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-description.ts +2 -4
  1822. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-header.ts +2 -4
  1823. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-media.ts +4 -3
  1824. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-title.ts +1 -3
  1825. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty.ts +2 -4
  1826. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-content.ts +2 -4
  1827. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-description.ts +2 -5
  1828. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-error.ts +2 -6
  1829. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-group.ts +2 -4
  1830. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-label.ts +3 -7
  1831. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-separator.ts +3 -5
  1832. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-set.ts +5 -7
  1833. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-title.ts +2 -4
  1834. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field.ts +1 -1
  1835. package/dist/templates/frontend/application/libs/ui/hover-card/src/lib/hlm-hover-card-content.ts +1 -1
  1836. package/dist/templates/frontend/application/libs/ui/input/src/lib/hlm-input.ts +10 -27
  1837. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-addon.ts +6 -6
  1838. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-button.ts +3 -3
  1839. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-input.ts +2 -4
  1840. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-text.ts +2 -2
  1841. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-textarea.ts +2 -4
  1842. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group.ts +5 -24
  1843. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-fake-caret.ts +7 -4
  1844. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-group.ts +6 -5
  1845. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-separator.ts +3 -7
  1846. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-slot.ts +22 -10
  1847. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp.ts +2 -4
  1848. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-actions.ts +2 -4
  1849. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-content.ts +5 -4
  1850. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-description.ts +6 -8
  1851. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-footer.ts +2 -4
  1852. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-group.ts +4 -1
  1853. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-header.ts +2 -4
  1854. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-media.ts +4 -3
  1855. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-separator.ts +3 -2
  1856. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-title.ts +5 -4
  1857. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item.ts +7 -6
  1858. package/dist/templates/frontend/application/libs/ui/kbd/src/lib/hlm-kbd-group.ts +1 -1
  1859. package/dist/templates/frontend/application/libs/ui/kbd/src/lib/hlm-kbd.ts +4 -5
  1860. package/dist/templates/frontend/application/libs/ui/label/src/lib/hlm-label.ts +3 -10
  1861. package/dist/templates/frontend/application/libs/ui/menubar/src/lib/hlm-menubar-trigger.ts +23 -15
  1862. package/dist/templates/frontend/application/libs/ui/menubar/src/lib/hlm-menubar.ts +1 -1
  1863. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select-opt-group.ts +8 -5
  1864. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select-option.ts +8 -5
  1865. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select.ts +17 -11
  1866. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-content.ts +10 -3
  1867. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-item.ts +4 -1
  1868. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-link.ts +7 -4
  1869. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-list.ts +4 -1
  1870. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-trigger.ts +18 -4
  1871. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu.ts +3 -0
  1872. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-numbered-pagination-query-params.ts +68 -67
  1873. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-numbered-pagination.ts +1 -3
  1874. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-content.ts +2 -4
  1875. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-ellipsis.ts +12 -18
  1876. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-item.ts +2 -9
  1877. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-link.ts +2 -1
  1878. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-next.ts +10 -9
  1879. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-previous.ts +11 -9
  1880. package/dist/templates/frontend/application/libs/ui/popover/src/index.ts +9 -0
  1881. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-content.ts +2 -1
  1882. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-description.ts +12 -0
  1883. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-header.ts +12 -0
  1884. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-title.ts +12 -0
  1885. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-trigger.ts +1 -3
  1886. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover.ts +2 -3
  1887. package/dist/templates/frontend/application/libs/ui/progress/src/lib/hlm-progress-indicator.ts +10 -4
  1888. package/dist/templates/frontend/application/libs/ui/progress/src/lib/hlm-progress.ts +2 -1
  1889. package/dist/templates/frontend/application/libs/ui/radio-group/src/lib/hlm-radio.ts +3 -4
  1890. package/dist/templates/frontend/application/libs/ui/resizable/src/lib/hlm-resizable-handle.ts +1 -1
  1891. package/dist/templates/frontend/application/libs/ui/scroll-area/src/lib/hlm-scroll-area.ts +6 -4
  1892. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-content.ts +1 -1
  1893. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-group.ts +1 -3
  1894. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-item.ts +3 -5
  1895. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-label.ts +2 -4
  1896. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-multiple.ts +8 -18
  1897. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-placeholder.ts +1 -1
  1898. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-scroll-down.ts +1 -1
  1899. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-scroll-up.ts +1 -1
  1900. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-separator.ts +2 -4
  1901. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-trigger.ts +16 -4
  1902. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-values-content.ts +4 -1
  1903. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select.ts +8 -18
  1904. package/dist/templates/frontend/application/libs/ui/separator/src/lib/hlm-separator.ts +4 -1
  1905. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-close.ts +2 -4
  1906. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-content.ts +14 -30
  1907. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-description.ts +1 -3
  1908. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-footer.ts +2 -4
  1909. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-header.ts +2 -4
  1910. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-overlay.ts +1 -4
  1911. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-title.ts +2 -4
  1912. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-trigger.ts +1 -3
  1913. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-content.ts +1 -1
  1914. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-footer.ts +1 -1
  1915. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-action.ts +4 -6
  1916. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-content.ts +1 -1
  1917. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-label.ts +4 -4
  1918. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group.ts +1 -1
  1919. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-header.ts +1 -1
  1920. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-input.ts +4 -7
  1921. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-inset.ts +5 -7
  1922. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-action.ts +2 -8
  1923. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-badge.ts +4 -8
  1924. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-button.ts +3 -3
  1925. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-skeleton.ts +3 -3
  1926. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-sub-button.ts +8 -6
  1927. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-sub.ts +8 -4
  1928. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu.ts +1 -1
  1929. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-rail.ts +2 -2
  1930. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-separator.ts +1 -1
  1931. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-trigger.ts +8 -19
  1932. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-wrapper.ts +1 -1
  1933. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.service.ts +28 -11
  1934. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.token.ts +2 -0
  1935. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.ts +11 -15
  1936. package/dist/templates/frontend/application/libs/ui/slider/src/lib/hlm-slider.ts +3 -3
  1937. package/dist/templates/frontend/application/libs/ui/sonner/src/lib/hlm-toaster.ts +12 -1
  1938. package/dist/templates/frontend/application/libs/ui/spinner/src/lib/hlm-spinner.ts +2 -1
  1939. package/dist/templates/frontend/application/libs/ui/switch/src/lib/hlm-switch-thumb.ts +2 -1
  1940. package/dist/templates/frontend/application/libs/ui/switch/src/lib/hlm-switch.ts +15 -9
  1941. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-list.ts +1 -1
  1942. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-paginated-list.ts +8 -20
  1943. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-trigger.ts +1 -1
  1944. package/dist/templates/frontend/application/libs/ui/textarea/src/lib/hlm-textarea.ts +10 -28
  1945. package/dist/templates/frontend/application/libs/ui/toggle/src/lib/hlm-toggle.ts +1 -1
  1946. package/dist/templates/frontend/application/libs/ui/tooltip/src/lib/hlm-tooltip.ts +3 -2
  1947. package/dist/templates/frontend/application/libs/ui/utils/src/index.ts +1 -0
  1948. package/dist/templates/frontend/application/libs/ui/utils/src/lib/provide-spartan-hlm.ts +34 -0
  1949. package/dist/templates/frontend/application/package.json +38 -29
  1950. package/dist/templates/frontend/application/public/i18n/en.json +18 -2
  1951. package/dist/templates/frontend/application/public/i18n/es.json +18 -2
  1952. package/dist/templates/frontend/application/public/i18n/navigation/en.json +22 -29
  1953. package/dist/templates/frontend/application/public/i18n/navigation/es.json +22 -29
  1954. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.component.spec.ts +11 -10
  1955. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.component.ts +12 -15
  1956. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.stories.ts +0 -2
  1957. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.component.spec.ts +19 -11
  1958. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.component.ts +12 -15
  1959. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.stories.ts +0 -22
  1960. package/dist/templates/frontend/application/src/@aurora/components/breadcrumb/breadcrumb.service.ts +2 -2
  1961. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.component.spec.ts +663 -0
  1962. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.component.ts +334 -0
  1963. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.stories.ts +103 -0
  1964. package/dist/templates/frontend/application/src/@aurora/components/chart/index.ts +1 -0
  1965. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.component.spec.ts +671 -0
  1966. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.component.ts +802 -0
  1967. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.stories.ts +180 -0
  1968. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-utils.spec.ts +270 -0
  1969. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-utils.ts +177 -0
  1970. package/dist/templates/frontend/application/src/@aurora/components/color-picker/index.ts +2 -0
  1971. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/custom-field-capture-form.component.spec.ts +344 -0
  1972. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/custom-field-capture-form.component.ts +366 -0
  1973. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/index.ts +4 -0
  1974. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/build-custom-field-capture-model.spec.ts +82 -0
  1975. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/build-custom-field-capture-model.ts +49 -0
  1976. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-form.types.ts +57 -0
  1977. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-value-equality.spec.ts +28 -0
  1978. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-value-equality.ts +24 -0
  1979. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/validate-custom-field-capture-value.spec.ts +50 -0
  1980. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/validate-custom-field-capture-value.ts +30 -0
  1981. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/boolean-cell.component.ts +3 -6
  1982. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/date-cell.component.ts +62 -0
  1983. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/date-cell.stories.ts +117 -0
  1984. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/enum-cell.component.ts +23 -0
  1985. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/index.ts +2 -0
  1986. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/column-toggle.component.ts +7 -29
  1987. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/data-table.component.spec.ts +460 -0
  1988. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/data-table.component.ts +17 -3
  1989. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/head-selection.component.ts +2 -1
  1990. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/row-selection.component.ts +2 -1
  1991. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/sort-button.component.ts +44 -14
  1992. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-export.component.ts +5 -9
  1993. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-filters.component.ts +2 -11
  1994. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-pagination.component.ts +16 -26
  1995. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-search.component.ts +1 -11
  1996. package/dist/templates/frontend/application/src/@aurora/components/data-table/index.ts +5 -1
  1997. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-filter-where.spec.ts +123 -8
  1998. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-filter-where.ts +55 -33
  1999. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-search-where.spec.ts +141 -17
  2000. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-search-where.ts +50 -21
  2001. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-sort-order.spec.ts +22 -11
  2002. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-sort-order.ts +25 -19
  2003. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/column-helpers.spec.ts +72 -0
  2004. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/column-helpers.ts +8 -1
  2005. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/custom-field-column.ts +141 -0
  2006. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relations-node.spec.ts +157 -0
  2007. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relations-node.ts +69 -0
  2008. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/merge-custom-field-columns.spec.ts +217 -0
  2009. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/merge-custom-field-columns.ts +146 -0
  2010. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/nested-column.ts +24 -23
  2011. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/relation-cell.spec.ts +33 -0
  2012. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/relation-cell.ts +13 -0
  2013. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/resolve-custom-field-filter.spec.ts +140 -0
  2014. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/resolve-custom-field-filter.ts +119 -0
  2015. package/dist/templates/frontend/application/src/@aurora/components/data-table/services/in-memory-column-config-storage.ts +2 -2
  2016. package/dist/templates/frontend/application/src/@aurora/components/data-table/types.ts +57 -8
  2017. package/dist/templates/frontend/application/src/@aurora/components/date-picker/date-picker.component.spec.ts +189 -0
  2018. package/dist/templates/frontend/application/src/@aurora/components/date-picker/date-picker.component.ts +137 -0
  2019. package/dist/templates/frontend/application/src/@aurora/components/date-picker/index.ts +1 -0
  2020. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.component.spec.ts +296 -0
  2021. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.component.ts +223 -0
  2022. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.stories.ts +143 -0
  2023. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/index.ts +1 -0
  2024. package/dist/templates/frontend/application/src/@aurora/components/grid-pick-dialog/grid-pick-dialog.component.ts +22 -26
  2025. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.component.spec.ts +98 -10
  2026. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.component.ts +41 -10
  2027. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.stories.ts +6 -0
  2028. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.component.spec.ts +80 -0
  2029. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.component.ts +10 -26
  2030. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.stories.ts +2 -2
  2031. package/dist/templates/frontend/application/src/@aurora/components/hlm-badge-icon-cell/hlm-badge-icon-cell.component.ts +4 -7
  2032. package/dist/templates/frontend/application/src/@aurora/components/hlm-password-strength/hlm-password-strength.component.ts +1 -2
  2033. package/dist/templates/frontend/application/src/@aurora/components/index.ts +11 -0
  2034. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.component.spec.ts +14 -15
  2035. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.component.ts +12 -15
  2036. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.stories.ts +0 -9
  2037. package/dist/templates/frontend/application/src/@aurora/components/password-input/index.ts +1 -0
  2038. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.component.spec.ts +271 -0
  2039. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.component.ts +181 -0
  2040. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.stories.ts +189 -0
  2041. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/index.ts +2 -0
  2042. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/progress-uploader.component.ts +76 -0
  2043. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/progress-uploader.service.ts +105 -0
  2044. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.component.spec.ts +14 -15
  2045. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.component.ts +17 -18
  2046. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.stories.ts +0 -14
  2047. package/dist/templates/frontend/application/src/@aurora/components/status-badge/index.ts +3 -0
  2048. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge-cell.component.ts +37 -0
  2049. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge-cell.stories.ts +74 -0
  2050. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.component.ts +63 -0
  2051. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.spec.ts +93 -0
  2052. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.stories.ts +107 -0
  2053. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.types.ts +43 -0
  2054. package/dist/templates/frontend/application/src/@aurora/composables/atoms/data-table/use-table-data.ts +3 -2
  2055. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-find-by-id.ts +12 -2
  2056. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-find.ts +14 -2
  2057. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-get.ts +11 -2
  2058. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-paginate.ts +9 -2
  2059. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-aggregate-shell.spec.ts +191 -0
  2060. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-aggregate-shell.ts +24 -4
  2061. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-graphql-detail.ts +23 -14
  2062. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-graphql-list.ts +14 -10
  2063. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-paginated-data-table.spec.ts +251 -0
  2064. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-paginated-data-table.ts +64 -19
  2065. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-pivot-membership.spec.ts +142 -0
  2066. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-pivot-membership.ts +7 -9
  2067. package/dist/templates/frontend/application/src/@aurora/directives/index.ts +1 -0
  2068. package/dist/templates/frontend/application/src/@aurora/directives/scroll-fade.directive.ts +150 -0
  2069. package/dist/templates/frontend/application/src/@aurora/index.ts +1 -0
  2070. package/dist/templates/frontend/application/src/@aurora/lib/calendar-i18n.spec.ts +138 -0
  2071. package/dist/templates/frontend/application/src/@aurora/lib/calendar-i18n.ts +93 -0
  2072. package/dist/templates/frontend/application/src/@aurora/lib/expand-display-field-template.ts +30 -0
  2073. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-date.spec.ts +50 -0
  2074. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-date.ts +43 -0
  2075. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-datetime.spec.ts +42 -0
  2076. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-datetime.ts +34 -0
  2077. package/dist/templates/frontend/application/src/@aurora/lib/format-local-date.spec.ts +28 -0
  2078. package/dist/templates/frontend/application/src/@aurora/lib/format-local-date.ts +23 -0
  2079. package/dist/templates/frontend/application/src/@aurora/lib/format-utc-date.spec.ts +47 -0
  2080. package/dist/templates/frontend/application/src/@aurora/lib/format-utc-date.ts +25 -0
  2081. package/dist/templates/frontend/application/src/@aurora/lib/index.ts +12 -0
  2082. package/dist/templates/frontend/application/src/@aurora/lib/item-label-of.spec.ts +45 -0
  2083. package/dist/templates/frontend/application/src/@aurora/lib/item-label-of.ts +17 -7
  2084. package/dist/templates/frontend/application/src/@aurora/lib/local-time.spec.ts +54 -0
  2085. package/dist/templates/frontend/application/src/@aurora/lib/local-time.ts +40 -0
  2086. package/dist/templates/frontend/application/src/@aurora/lib/resolve-enum-label.spec.ts +130 -0
  2087. package/dist/templates/frontend/application/src/@aurora/lib/resolve-enum-label.ts +61 -0
  2088. package/dist/templates/frontend/application/src/@aurora/lib/resolve-i18n-value.spec.ts +101 -0
  2089. package/dist/templates/frontend/application/src/@aurora/lib/resolve-i18n-value.ts +30 -0
  2090. package/dist/templates/frontend/application/src/@aurora/lib/resolve-storage-file-url.spec.ts +39 -0
  2091. package/dist/templates/frontend/application/src/@aurora/lib/resolve-storage-file-url.ts +38 -0
  2092. package/dist/templates/frontend/application/src/@aurora/lib/scroll-fade.spec.ts +94 -0
  2093. package/dist/templates/frontend/application/src/@aurora/lib/scroll-fade.ts +51 -0
  2094. package/dist/templates/frontend/application/src/@aurora/lib/use-async-search-list.spec.ts +133 -0
  2095. package/dist/templates/frontend/application/src/@aurora/lib/use-async-search-list.ts +1 -6
  2096. package/dist/templates/frontend/application/src/@aurora/lib/utc-date-prefix.ts +24 -0
  2097. package/dist/templates/frontend/application/src/@aurora/modules/authentication/README.md +59 -2
  2098. package/dist/templates/frontend/application/src/@aurora/modules/authentication/data-access/authentication.graphql.ts +15 -15
  2099. package/dist/templates/frontend/application/src/@aurora/modules/authentication/guards/permission.guard.spec.ts +195 -0
  2100. package/dist/templates/frontend/application/src/@aurora/modules/authentication/guards/permission.guard.ts +65 -0
  2101. package/dist/templates/frontend/application/src/@aurora/modules/authentication/index.ts +7 -2
  2102. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/anonymous-current-account.adapter.spec.ts +92 -0
  2103. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/anonymous-current-account.adapter.ts +36 -2
  2104. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-aurora-adapter.service.spec.ts +494 -0
  2105. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-aurora-adapter.service.ts +99 -50
  2106. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-disabled.service.ts +8 -4
  2107. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authenticated-initializer.ts +8 -7
  2108. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.provider.ts +2 -0
  2109. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.service.ts +27 -1
  2110. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.spec.ts +113 -0
  2111. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.ts +56 -3
  2112. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.types.ts +6 -2
  2113. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/current-account.service.ts +68 -0
  2114. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver-permission-bounce.spec.ts +80 -0
  2115. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver.service.spec.ts +440 -0
  2116. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver.service.ts +156 -0
  2117. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/resolve-landing-route.spec.ts +75 -0
  2118. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/resolve-landing-route.ts +27 -0
  2119. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/safe-redirect-path.spec.ts +41 -0
  2120. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/safe-redirect-path.ts +21 -0
  2121. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/session-recovery-coordinator.service.spec.ts +759 -0
  2122. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/session-recovery-coordinator.service.ts +310 -0
  2123. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/token-store.service.spec.ts +293 -0
  2124. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/token-store.service.ts +116 -1
  2125. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.css +150 -0
  2126. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.spec.ts +288 -0
  2127. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.ts +776 -0
  2128. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.gridstack.css +15 -0
  2129. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.helpers.ts +174 -0
  2130. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/index.ts +2 -0
  2131. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/dashboard-tile.component.spec.ts +261 -0
  2132. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/dashboard-tile.component.ts +306 -0
  2133. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/index.ts +1 -0
  2134. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/index.ts +2 -0
  2135. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/index.ts +1 -0
  2136. package/dist/templates/frontend/application/src/@aurora/modules/graphql/apollo.factory.spec.ts +1001 -530
  2137. package/dist/templates/frontend/application/src/@aurora/modules/graphql/apollo.factory.ts +108 -34
  2138. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-create.ts +17 -8
  2139. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete-by-id.ts +14 -8
  2140. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete-by-keys.ts +15 -7
  2141. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete.ts +18 -9
  2142. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-insert.ts +14 -8
  2143. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-update.ts +14 -8
  2144. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find-by-id.spec.ts +6 -4
  2145. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find-by-id.ts +12 -11
  2146. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find.spec.ts +7 -5
  2147. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find.ts +16 -13
  2148. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-get.spec.ts +6 -4
  2149. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-get.ts +13 -14
  2150. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-paginate.spec.ts +8 -5
  2151. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-paginate.ts +11 -9
  2152. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/types.ts +5 -3
  2153. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.spec.ts +170 -0
  2154. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.ts +36 -6
  2155. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.types.ts +24 -12
  2156. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-auth.handler.spec.ts +30 -108
  2157. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-auth.handler.ts +9 -76
  2158. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-error.handler.spec.ts +12 -3
  2159. package/dist/templates/frontend/application/src/@aurora/modules/graphql/index.ts +5 -0
  2160. package/dist/templates/frontend/application/src/@aurora/modules/health/health.service.spec.ts +138 -0
  2161. package/dist/templates/frontend/application/src/@aurora/modules/health/health.service.ts +60 -0
  2162. package/dist/templates/frontend/application/src/@aurora/modules/health/index.ts +1 -0
  2163. package/dist/templates/frontend/application/src/@aurora/modules/index.ts +5 -0
  2164. package/dist/templates/frontend/application/src/@aurora/modules/lang/index.ts +1 -0
  2165. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang-flag-icons.ts +34 -0
  2166. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang.service.spec.ts +129 -0
  2167. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang.service.ts +37 -3
  2168. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/build-report-columns.spec.ts +367 -0
  2169. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/build-report-columns.ts +186 -0
  2170. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/index.ts +24 -0
  2171. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-cell-renderer.registry.ts +52 -0
  2172. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-fetch-adapter.spec.ts +148 -0
  2173. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-fetch-adapter.ts +68 -0
  2174. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-filter-form.component.ts +154 -0
  2175. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-filter-form.spec.ts +181 -0
  2176. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-viewer.types.ts +230 -0
  2177. package/dist/templates/frontend/application/src/@aurora/modules/session/session.service.ts +2 -2
  2178. package/dist/templates/frontend/application/src/@aurora/modules/theme/index.ts +2 -0
  2179. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.service.spec.ts +240 -0
  2180. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.service.ts +128 -0
  2181. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.type.ts +4 -0
  2182. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget-component-i18n.spec.ts +217 -0
  2183. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget-i18n.spec.ts +221 -0
  2184. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.component.ts +318 -0
  2185. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.spec.ts +274 -0
  2186. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.ts +89 -0
  2187. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.component.ts +200 -0
  2188. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.spec.ts +373 -0
  2189. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.ts +80 -0
  2190. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget-i18n.spec.ts +176 -0
  2191. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.component.ts +230 -0
  2192. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.spec.ts +332 -0
  2193. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.ts +67 -0
  2194. package/dist/templates/frontend/application/src/@aurora/modules/widget/aurora-widget-def.ts +101 -0
  2195. package/dist/templates/frontend/application/src/@aurora/modules/widget/index.ts +17 -0
  2196. package/dist/templates/frontend/application/src/@aurora/modules/widget/refreshable-widget.spec.ts +75 -0
  2197. package/dist/templates/frontend/application/src/@aurora/modules/widget/refreshable-widget.ts +32 -0
  2198. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-category.ts +16 -0
  2199. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source-runner.spec.ts +298 -0
  2200. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source-runner.ts +103 -0
  2201. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source.ts +68 -0
  2202. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-permission-filter.spec.ts +195 -0
  2203. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-permission-filter.ts +84 -0
  2204. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-registry.spec.ts +91 -0
  2205. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-registry.ts +38 -0
  2206. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-scope-deriver.spec.ts +85 -0
  2207. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-scope-deriver.ts +41 -0
  2208. package/dist/templates/frontend/application/src/@aurora/pipes/index.ts +1 -0
  2209. package/dist/templates/frontend/application/src/@aurora/pipes/to-options.pipe.ts +2 -5
  2210. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message-legacy.pipe.spec.ts +81 -0
  2211. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message-legacy.pipe.ts +50 -0
  2212. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message.pipe.spec.ts +197 -0
  2213. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message.pipe.ts +97 -21
  2214. package/dist/templates/frontend/application/src/@aurora/query-dsl/index.ts +32 -0
  2215. package/dist/templates/frontend/application/src/@aurora/query-dsl/query-statement.spec.ts +94 -0
  2216. package/dist/templates/frontend/application/src/@aurora/query-dsl/query-statement.type-contract.ts +38 -0
  2217. package/dist/templates/frontend/application/src/app/app.config.ts +18 -6
  2218. package/dist/templates/frontend/application/src/app/app.routes.ts +1 -1
  2219. package/dist/templates/frontend/application/src/app/app.ts +1 -2
  2220. package/dist/templates/frontend/application/src/app/aurora-widget.providers.ts +21 -0
  2221. package/dist/templates/frontend/application/src/app/aurora.provider.spec.ts +1 -2
  2222. package/dist/templates/frontend/application/src/app/aurora.provider.ts +12 -5
  2223. package/dist/templates/frontend/application/src/app/domains/admin/home/home.component.ts +15 -0
  2224. package/dist/templates/frontend/application/src/app/domains/admin/layout/layout.component.ts +2 -3
  2225. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/app-sidebar.spec.ts +111 -0
  2226. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/app-sidebar.ts +74 -21
  2227. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-active.spec.ts +124 -0
  2228. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-active.ts +48 -0
  2229. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-filter.spec.ts +203 -0
  2230. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-filter.ts +122 -0
  2231. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-main.ts +19 -28
  2232. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-secondary.ts +1 -2
  2233. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-sub-items.ts +10 -23
  2234. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-user.ts +1 -2
  2235. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/types.ts +4 -0
  2236. package/dist/templates/frontend/application/src/app/domains/admin/layout/site-header.spec.ts +153 -0
  2237. package/dist/templates/frontend/application/src/app/domains/admin/layout/site-header.ts +109 -31
  2238. package/dist/templates/frontend/application/src/app/domains/admin/navigation-data.ts +4 -20
  2239. package/dist/templates/frontend/application/src/app/domains/admin/routes.ts +4 -3
  2240. package/dist/templates/frontend/application/src/app/domains/auth/callback-error/callback-error.component.ts +1 -2
  2241. package/dist/templates/frontend/application/src/app/domains/auth/layout.ts +1 -2
  2242. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/login-form.spec.ts +32 -31
  2243. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/login-form.ts +23 -33
  2244. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/oauth-session.service.ts +2 -4
  2245. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/sign-in.component.ts +1 -2
  2246. package/dist/templates/frontend/application/src/app/domains/auth/sign-out/sign-out.component.spec.ts +13 -11
  2247. package/dist/templates/frontend/application/src/app/domains/auth/sign-out/sign-out.component.ts +6 -9
  2248. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/sign-up.component.ts +1 -2
  2249. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/signup-form.spec.ts +60 -0
  2250. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/signup-form.ts +25 -16
  2251. package/dist/templates/frontend/application/src/app/domains/auth/signed-out/signed-out.component.ts +1 -2
  2252. package/dist/templates/frontend/application/src/app/transloco-lang.factory.spec.ts +40 -0
  2253. package/dist/templates/frontend/application/src/app/transloco-lang.factory.ts +28 -0
  2254. package/dist/templates/frontend/application/src/app/transloco-loader.ts +2 -2
  2255. package/dist/templates/frontend/application/src/environments/environment.dev.ts +46 -3
  2256. package/dist/templates/frontend/application/src/environments/environment.local.ts +47 -4
  2257. package/dist/templates/frontend/application/src/environments/environment.prod.ts +46 -3
  2258. package/dist/templates/frontend/application/src/environments/environment.qa.ts +46 -3
  2259. package/dist/templates/frontend/application/src/environments/environment.ts +46 -3
  2260. package/dist/templates/frontend/application/src/environments/environment.type.ts +61 -0
  2261. package/dist/templates/frontend/application/src/index.html +21 -1
  2262. package/dist/templates/frontend/application/src/styles.css +772 -8
  2263. package/dist/templates/frontend/application/tsconfig.app.json +3 -9
  2264. package/dist/templates/frontend/application/tsconfig.json +17 -1
  2265. package/dist/templates/frontend/packages/dashboard/public/i18n/dashboard/en.json +41 -0
  2266. package/dist/templates/frontend/packages/dashboard/public/i18n/dashboard/es.json +41 -0
  2267. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/dashboard.routes.ts +8 -0
  2268. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard-i18n.spec.ts +342 -0
  2269. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.component.spec.ts +349 -0
  2270. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.component.ts +622 -0
  2271. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.helpers.spec.ts +152 -0
  2272. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.helpers.ts +79 -0
  2273. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.orchestration.ts +159 -0
  2274. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/index.ts +1 -0
  2275. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog-dialog.component.ts +295 -0
  2276. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog.helpers.spec.ts +202 -0
  2277. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog.helpers.ts +58 -0
  2278. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/index.ts +3 -0
  2279. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.graphql.spec.ts +142 -0
  2280. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.graphql.ts +48 -0
  2281. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.service.ts +71 -0
  2282. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.types.ts +44 -0
  2283. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/index.ts +1 -0
  2284. package/dist/templates/frontend/packages/hub/public/i18n/hub/en.json +50 -0
  2285. package/dist/templates/frontend/packages/hub/public/i18n/hub/es.json +50 -0
  2286. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/app.columns.ts +113 -0
  2287. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/app.cross-context.spec.ts +56 -0
  2288. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.detail-config.ts +12 -0
  2289. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.graphql.ts +157 -0
  2290. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.list-config.ts +13 -0
  2291. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.resolvers.ts +39 -0
  2292. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/index.ts +8 -0
  2293. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-form.component.ts +326 -0
  2294. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-list-actions-cell.component.ts +75 -0
  2295. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-list.component.ts +429 -0
  2296. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/index.ts +7 -0
  2297. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/index.ts +7 -0
  2298. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.detail-config.ts +13 -0
  2299. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.graphql.ts +156 -0
  2300. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.list-config.ts +14 -0
  2301. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub-icons.providers.ts +11 -0
  2302. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.navigation.ts +39 -0
  2303. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.routes.ts +35 -0
  2304. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.types.ts +5 -0
  2305. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/index.ts +6 -0
  2306. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/data-access/launchpad.graphql.ts +48 -0
  2307. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.component.spec.ts +259 -0
  2308. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.component.ts +228 -0
  2309. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.helpers.ts +21 -0
  2310. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad-keyboard.helpers.ts +148 -0
  2311. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.component.spec.ts +493 -0
  2312. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.component.ts +612 -0
  2313. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.helpers.spec.ts +328 -0
  2314. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.helpers.ts +167 -0
  2315. package/dist/templates/frontend/packages/iam/public/i18n/iam/en.json +6 -1
  2316. package/dist/templates/frontend/packages/iam/public/i18n/iam/es.json +6 -1
  2317. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/current-account.adapter.spec.ts +459 -0
  2318. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/current-account.adapter.ts +140 -0
  2319. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/index.ts +1 -0
  2320. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.derive.spec.ts +63 -0
  2321. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.derive.ts +32 -0
  2322. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.detail-config.ts +12 -0
  2323. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.graphql.ts +288 -0
  2324. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.list-config.ts +13 -0
  2325. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.resolvers.spec.ts +72 -0
  2326. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.resolvers.ts +123 -0
  2327. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/index.ts +12 -0
  2328. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-detail.component.spec.ts +78 -0
  2329. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-detail.component.ts +170 -0
  2330. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-form.component.spec.ts +914 -0
  2331. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-form.component.ts +896 -0
  2332. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-list-actions-cell.component.ts +113 -0
  2333. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-list.component.ts +261 -0
  2334. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/index.ts +6 -0
  2335. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/index.ts +11 -0
  2336. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.detail-config.ts +12 -0
  2337. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.graphql.ts +171 -0
  2338. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.list-config.ts +13 -0
  2339. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.resolvers.ts +39 -0
  2340. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/index.ts +8 -0
  2341. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-detail.component.ts +160 -0
  2342. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-form.component.ts +150 -0
  2343. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-list-actions-cell.component.ts +75 -0
  2344. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-list.component.ts +242 -0
  2345. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/index.ts +8 -0
  2346. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/index.ts +7 -0
  2347. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam-icons.providers.ts +23 -0
  2348. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam.navigation.ts +59 -0
  2349. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam.routes.ts +92 -0
  2350. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/index.ts +8 -0
  2351. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.detail-config.ts +12 -0
  2352. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.graphql.ts +181 -0
  2353. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.list-config.ts +13 -0
  2354. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.resolvers.ts +72 -0
  2355. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/index.ts +8 -0
  2356. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-form-embed.component.ts +97 -0
  2357. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-form.component.ts +130 -0
  2358. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-list-actions-cell.component.ts +75 -0
  2359. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-list.component.ts +398 -0
  2360. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/index.ts +7 -0
  2361. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/permission.columns.ts +73 -0
  2362. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.detail-config.ts +12 -0
  2363. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.graphql.ts +200 -0
  2364. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.list-config.ts +13 -0
  2365. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/index.ts +8 -0
  2366. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.detail-config.ts +12 -0
  2367. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.graphql.ts +195 -0
  2368. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.list-config.ts +13 -0
  2369. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.resolvers.ts +39 -0
  2370. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/index.ts +8 -0
  2371. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-detail.component.ts +295 -0
  2372. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-form.component.ts +185 -0
  2373. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-list-actions-cell.component.ts +75 -0
  2374. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-list.component.ts +236 -0
  2375. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/index.ts +7 -0
  2376. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/role.columns.ts +119 -0
  2377. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.detail-config.ts +12 -0
  2378. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.graphql.ts +199 -0
  2379. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.list-config.ts +13 -0
  2380. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/shared/validators/unique-email.validator.ts +31 -0
  2381. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/shared/validators/unique-username.validator.ts +29 -0
  2382. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/index.ts +8 -0
  2383. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.detail-config.ts +12 -0
  2384. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.graphql.ts +113 -0
  2385. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.list-config.ts +13 -0
  2386. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.resolvers.ts +39 -0
  2387. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/index.ts +7 -0
  2388. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-form.component.ts +88 -0
  2389. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-list-actions-cell.component.ts +75 -0
  2390. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-list.component.ts +318 -0
  2391. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/index.ts +7 -0
  2392. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/index.ts +8 -0
  2393. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.detail-config.ts +12 -0
  2394. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.graphql.ts +224 -0
  2395. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.list-config.ts +13 -0
  2396. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.resolvers.ts +65 -0
  2397. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/index.ts +7 -0
  2398. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-form.component.ts +168 -0
  2399. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-list-actions-cell.component.ts +75 -0
  2400. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-list.component.ts +330 -0
  2401. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/index.ts +7 -0
  2402. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/tenant.columns.ts +103 -0
  2403. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.detail-config.ts +12 -0
  2404. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.graphql.ts +204 -0
  2405. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.list-config.ts +13 -0
  2406. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/index.ts +8 -0
  2407. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.detail-config.ts +11 -0
  2408. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.graphql.ts +180 -0
  2409. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.list-config.ts +13 -0
  2410. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.resolvers.ts +39 -0
  2411. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/features/index.ts +5 -0
  2412. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/index.ts +6 -0
  2413. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/widgets/iam.widgets.spec.ts +262 -0
  2414. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/widgets/iam.widgets.ts +156 -0
  2415. package/dist/templates/frontend/packages/o-auth/public/i18n/o-auth/en.json +7 -5
  2416. package/dist/templates/frontend/packages/o-auth/public/i18n/o-auth/es.json +8 -6
  2417. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/access-token.columns.ts +86 -0
  2418. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.detail-config.ts +10 -0
  2419. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.graphql.ts +117 -0
  2420. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.list-config.ts +13 -0
  2421. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.resolvers.ts +43 -0
  2422. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/index.ts +8 -0
  2423. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/features/access-token-list-actions-cell.component.ts +60 -0
  2424. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/features/access-token-list.component.ts +224 -0
  2425. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/features/index.ts +6 -0
  2426. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/index.ts +7 -0
  2427. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/application.columns.ts +78 -0
  2428. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.detail-config.ts +12 -0
  2429. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.graphql.ts +140 -0
  2430. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.list-config.ts +13 -0
  2431. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.resolvers.ts +39 -0
  2432. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/index.ts +8 -0
  2433. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-form.component.ts +198 -0
  2434. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-list-actions-cell.component.ts +75 -0
  2435. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-list.component.ts +322 -0
  2436. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/index.ts +7 -0
  2437. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/index.ts +7 -0
  2438. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application-client/data-access/application-client.graphql.ts +158 -0
  2439. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/authorization-code.columns.ts +123 -0
  2440. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.detail-config.ts +12 -0
  2441. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.graphql.ts +168 -0
  2442. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.list-config.ts +13 -0
  2443. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.resolvers.ts +47 -0
  2444. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/index.ts +8 -0
  2445. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/authorization-code-form.component.ts +218 -0
  2446. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/authorization-code-list-actions-cell.component.ts +76 -0
  2447. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/authorization-code-list.component.ts +333 -0
  2448. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/index.ts +7 -0
  2449. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/index.ts +7 -0
  2450. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/client.columns.ts +145 -0
  2451. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.detail-config.ts +12 -0
  2452. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.graphql.ts +134 -0
  2453. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.list-config.ts +13 -0
  2454. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.resolvers.ts +69 -0
  2455. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/index.ts +8 -0
  2456. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-form.component.ts +291 -0
  2457. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-list-actions-cell.component.ts +75 -0
  2458. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-list.component.ts +335 -0
  2459. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/index.ts +7 -0
  2460. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/index.ts +7 -0
  2461. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/o-auth-icons.providers.ts +21 -0
  2462. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/o-auth.navigation.ts +59 -0
  2463. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/o-auth.routes.ts +44 -0
  2464. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/index.ts +8 -0
  2465. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.detail-config.ts +10 -0
  2466. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.graphql.ts +104 -0
  2467. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.list-config.ts +13 -0
  2468. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.resolvers.ts +39 -0
  2469. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/features/index.ts +6 -0
  2470. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/features/refresh-token-list-actions-cell.component.ts +60 -0
  2471. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/features/refresh-token-list.component.ts +221 -0
  2472. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/index.ts +7 -0
  2473. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/refresh-token.columns.ts +60 -0
  2474. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/index.ts +8 -0
  2475. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.detail-config.ts +12 -0
  2476. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.graphql.ts +120 -0
  2477. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.list-config.ts +13 -0
  2478. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.resolvers.ts +39 -0
  2479. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/index.ts +7 -0
  2480. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-form.component.spec.ts +75 -0
  2481. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-form.component.ts +116 -0
  2482. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-list-actions-cell.component.ts +75 -0
  2483. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-list.component.ts +318 -0
  2484. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/index.ts +7 -0
  2485. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/widgets/o-auth.widgets.spec.ts +338 -0
  2486. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/widgets/o-auth.widgets.ts +230 -0
  2487. package/dist/templates/frontend/packages/queue-manager/public/i18n/queue-manager/en.json +92 -0
  2488. package/dist/templates/frontend/packages/queue-manager/public/i18n/queue-manager/es.json +92 -0
  2489. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/index.ts +1 -0
  2490. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/queue.graphql.ts +214 -0
  2491. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/queue.service.ts +301 -0
  2492. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/use-queue-polling.spec.ts +281 -0
  2493. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/use-queue-polling.ts +87 -0
  2494. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-data-dialog.component.spec.ts +345 -0
  2495. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-data-dialog.component.ts +246 -0
  2496. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-drawer.component.ts +492 -0
  2497. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/queue-detail.component.ts +666 -0
  2498. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/queue-list.component.ts +547 -0
  2499. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/index.ts +6 -0
  2500. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager-icons.providers.ts +5 -0
  2501. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.navigation.ts +11 -0
  2502. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.routes.ts +15 -0
  2503. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.types.spec.ts +154 -0
  2504. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.types.ts +192 -0
  2505. package/dist/templates/monorepo/.backlog/config.yml +41 -0
  2506. package/dist/templates/monorepo/.claude/agents/jd-fix-agent.md +35 -0
  2507. package/dist/templates/monorepo/.claude/agents/jd-judge-a.md +41 -0
  2508. package/dist/templates/monorepo/.claude/agents/jd-judge-b.md +41 -0
  2509. package/dist/templates/monorepo/.claude/commands/business-rules/audit.md +2 -0
  2510. package/dist/templates/monorepo/.claude/commands/business-rules/check.md +2 -0
  2511. package/dist/templates/monorepo/.claude/commands/business-rules/document.md +4 -1
  2512. package/dist/templates/monorepo/.claude/commands/business-rules/promote.md +2 -0
  2513. package/dist/templates/monorepo/.claude/commands/opsx/apply.md +36 -7
  2514. package/dist/templates/monorepo/.claude/commands/opsx/archive.md +91 -26
  2515. package/dist/templates/monorepo/.claude/commands/opsx/explore.md +51 -27
  2516. package/dist/templates/monorepo/.claude/commands/opsx/propose.md +64 -26
  2517. package/dist/templates/monorepo/.claude/commands/opsx/sync.md +258 -0
  2518. package/dist/templates/monorepo/.claude/hooks/__fixtures__/br-hr-regression-baseline.txt +263 -0
  2519. package/dist/templates/monorepo/.claude/hooks/architecture-checkpoint.test.ts +470 -0
  2520. package/dist/templates/monorepo/.claude/hooks/architecture-checkpoint.ts +395 -43
  2521. package/dist/templates/monorepo/.claude/hooks/auto-allow-readonly-bash.test.ts +158 -0
  2522. package/dist/templates/monorepo/.claude/hooks/auto-allow-readonly-bash.ts +314 -0
  2523. package/dist/templates/monorepo/.claude/hooks/business-rules-injector.test.ts +387 -0
  2524. package/dist/templates/monorepo/.claude/hooks/business-rules-injector.ts +231 -0
  2525. package/dist/templates/monorepo/.claude/hooks/catalyst-regen-review.test.ts +114 -0
  2526. package/dist/templates/monorepo/.claude/hooks/catalyst-regen-review.ts +260 -0
  2527. package/dist/templates/monorepo/.claude/hooks/check-required-setup.test.ts +183 -0
  2528. package/dist/templates/monorepo/.claude/hooks/check-required-setup.ts +304 -0
  2529. package/dist/templates/monorepo/.claude/hooks/format-with-prettier.ts +98 -0
  2530. package/dist/templates/monorepo/.claude/hooks/harness-rules-content-guard.ts +12 -7
  2531. package/dist/templates/monorepo/.claude/hooks/inject-prompt-context.test.ts +453 -0
  2532. package/dist/templates/monorepo/.claude/hooks/inject-prompt-context.ts +526 -0
  2533. package/dist/templates/monorepo/.claude/hooks/instructions-loaded-log.test.ts +131 -0
  2534. package/dist/templates/monorepo/.claude/hooks/instructions-loaded-log.ts +132 -0
  2535. package/dist/templates/monorepo/.claude/hooks/lint-barrels.test.ts +237 -0
  2536. package/dist/templates/monorepo/.claude/hooks/lint-barrels.ts +319 -0
  2537. package/dist/templates/monorepo/.claude/rules/route-aurora-components.md +24 -0
  2538. package/dist/templates/monorepo/.claude/rules/route-aurora-yaml.md +29 -0
  2539. package/dist/templates/monorepo/.claude/rules/route-backend-test.md +31 -0
  2540. package/dist/templates/monorepo/.claude/rules/route-drizzle-schema.md +35 -0
  2541. package/dist/templates/monorepo/.claude/rules/route-eta.md +17 -0
  2542. package/dist/templates/monorepo/.claude/rules/route-skill-md.md +28 -0
  2543. package/dist/templates/monorepo/.claude/rules/scope-backend.md +39 -0
  2544. package/dist/templates/monorepo/.claude/rules/scope-cli.md +28 -0
  2545. package/dist/templates/monorepo/.claude/rules/scope-frontend.md +34 -0
  2546. package/dist/templates/monorepo/.claude/scheduled_tasks.lock +1 -0
  2547. package/dist/templates/monorepo/.claude/scripts/catalyst-dev-mode.sh +2 -3
  2548. package/dist/templates/monorepo/.claude/scripts/daily-tips.txt +1 -0
  2549. package/dist/templates/monorepo/.claude/scripts/generate-skills-index.test.ts +397 -0
  2550. package/dist/templates/monorepo/.claude/scripts/generate-skills-index.ts +196 -23
  2551. package/dist/templates/monorepo/.claude/scripts/status-line.sh +13 -2
  2552. package/dist/templates/monorepo/.claude/settings.json +106 -17
  2553. package/dist/templates/monorepo/.claude/skills/REGISTRY.md +61 -28
  2554. package/dist/templates/monorepo/.claude/skills/business-rules-guard/SKILL.md +15 -2
  2555. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/audit.md +9 -7
  2556. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/format.md +70 -2
  2557. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/workflow.md +2 -1
  2558. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/SKILL.md +954 -0
  2559. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/frontier-worker-addendum.md +145 -0
  2560. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/worker-system-prompt.md +88 -0
  2561. package/dist/templates/monorepo/.claude/skills/catalyst-cli/SKILL.md +117 -38
  2562. package/dist/templates/monorepo/.claude/skills/catalyst-cli/references/origin-conciliation.md +188 -20
  2563. package/dist/templates/monorepo/.claude/skills/catalyst-cli/references/schema-versioning.md +1 -1
  2564. package/dist/templates/monorepo/.claude/skills/catalyst-delegation/SKILL.md +180 -0
  2565. package/dist/templates/monorepo/.claude/skills/catalyst-langs/SKILL.md +241 -0
  2566. package/dist/templates/monorepo/.claude/skills/catalyst-query-dsl/SKILL.md +236 -0
  2567. package/dist/templates/monorepo/.claude/skills/catalyst-query-dsl/references/query-language.md +265 -0
  2568. package/dist/templates/monorepo/.claude/skills/catalyst-report-creator/SKILL.md +232 -0
  2569. package/dist/templates/monorepo/.claude/skills/catalyst-report-creator/references/cube-authoring.md +155 -0
  2570. package/dist/templates/monorepo/.claude/skills/catalyst-schema/SKILL.md +94 -30
  2571. package/dist/templates/monorepo/.claude/skills/catalyst-schema/front-presentation.md +209 -0
  2572. package/dist/templates/monorepo/.claude/skills/catalyst-schema/patterns-workflow.md +26 -2
  2573. package/dist/templates/monorepo/.claude/skills/catalyst-schema/types-reference.md +184 -2
  2574. package/dist/templates/monorepo/.claude/skills/catalyst-skill-creator/SKILL.md +10 -2
  2575. package/dist/templates/monorepo/.claude/skills/catalyst-update-skill-registry/SKILL.md +54 -16
  2576. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/SKILL.md +24 -14
  2577. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/references/audit.md +384 -0
  2578. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/references/enforcement.md +7 -6
  2579. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/references/format.md +140 -6
  2580. package/dist/templates/monorepo/.claude/skills/judgment-day/SKILL.md +26 -15
  2581. package/dist/templates/monorepo/.claude/skills/judgment-day/references/prompts-and-formats.md +46 -21
  2582. package/dist/templates/monorepo/.claude/skills/openspec-apply-change/SKILL.md +35 -6
  2583. package/dist/templates/monorepo/.claude/skills/openspec-archive-change/SKILL.md +87 -22
  2584. package/dist/templates/monorepo/.claude/skills/openspec-explore/SKILL.md +89 -65
  2585. package/dist/templates/monorepo/.claude/skills/openspec-propose/SKILL.md +62 -24
  2586. package/dist/templates/monorepo/.claude/skills/openspec-sync-specs/SKILL.md +262 -0
  2587. package/dist/templates/monorepo/.claude/skills/typescript/SKILL.md +5 -0
  2588. package/dist/templates/monorepo/.claude/skills-triggers-index.json +135 -0
  2589. package/dist/templates/monorepo/.husky/post-checkout +17 -0
  2590. package/dist/templates/monorepo/.husky/post-merge +15 -0
  2591. package/dist/templates/monorepo/.husky/pre-commit +26 -0
  2592. package/dist/templates/monorepo/.mcp.json +7 -0
  2593. package/dist/templates/monorepo/CLAUDE.md +274 -327
  2594. package/dist/templates/monorepo/cliter/business-rules-index.json +9252 -269
  2595. package/dist/templates/monorepo/cliter/harness-rules/barrels.md +414 -0
  2596. package/dist/templates/monorepo/cliter/harness-rules/bridges.md +211 -0
  2597. package/dist/templates/monorepo/cliter/harness-rules/dev-modes.md +85 -0
  2598. package/dist/templates/monorepo/cliter/harness-rules/docs-location.md +67 -0
  2599. package/dist/templates/monorepo/cliter/harness-rules/generated-artifacts.md +104 -0
  2600. package/dist/templates/monorepo/cliter/harness-rules/generated-code.md +77 -0
  2601. package/dist/templates/monorepo/cliter/harness-rules/module-graph.md +89 -0
  2602. package/dist/templates/monorepo/cliter/harness-rules/modules.md +78 -0
  2603. package/dist/templates/monorepo/cliter/harness-rules/persistence-integrity.md +92 -0
  2604. package/dist/templates/monorepo/cliter/harness-rules/ports-adapters.md +82 -0
  2605. package/dist/templates/monorepo/cliter/harness-rules/protocol-flows.md +88 -0
  2606. package/dist/templates/monorepo/cliter/harness-rules/types-acl.md +93 -0
  2607. package/dist/templates/monorepo/cliter/harness-rules-index.json +1117 -0
  2608. package/dist/templates/monorepo/docs/AURORA-CATALYST-BRIEF.md +253 -0
  2609. package/dist/templates/monorepo/docs/_catalog-schema-base.json +1 -1
  2610. package/dist/templates/monorepo/docs/business-rules/ARCHITECTURE.md +14 -11
  2611. package/dist/templates/monorepo/docs/business-rules/INDEX.md +84 -5
  2612. package/dist/templates/monorepo/docs/business-rules/MIGRATION.md +11 -52
  2613. package/dist/templates/monorepo/docs/business-rules/README.md +42 -925
  2614. package/dist/templates/monorepo/docs/harness-rules/INDEX.md +14 -7
  2615. package/dist/templates/monorepo/docs/harness-rules/README.md +37 -393
  2616. package/dist/templates/monorepo/docs/langs/README.md +260 -0
  2617. package/dist/templates/monorepo/docs/superpowers/specs/2026-07-02-report-creator-skill-design.md +176 -0
  2618. package/dist/templates/monorepo/openspec/config.yaml +38 -10
  2619. package/dist/templates/monorepo/package.json +16 -3
  2620. package/dist/templates/monorepo/pnpm-workspace.yaml +10 -2
  2621. package/dist/templates/monorepo/scripts/_catalog-runtime/README.md +30 -0
  2622. package/dist/templates/monorepo/scripts/_catalog-runtime/build-index.determinism.test.ts +81 -0
  2623. package/dist/templates/monorepo/scripts/_catalog-runtime/build-index.ts +214 -0
  2624. package/dist/templates/monorepo/scripts/_catalog-runtime/catalog-index.test.ts +146 -0
  2625. package/dist/templates/monorepo/scripts/_catalog-runtime/catalog-index.ts +120 -0
  2626. package/dist/templates/monorepo/scripts/_catalog-runtime/check-core.ts +280 -0
  2627. package/dist/templates/monorepo/scripts/_catalog-runtime/cli.ts +26 -0
  2628. package/dist/templates/monorepo/scripts/_catalog-runtime/frontmatter.ts +15 -0
  2629. package/dist/templates/monorepo/scripts/_catalog-runtime/glob.ts +86 -0
  2630. package/dist/templates/monorepo/scripts/_catalog-runtime/index.ts +74 -0
  2631. package/dist/templates/monorepo/scripts/_catalog-runtime/parse.ts +159 -0
  2632. package/dist/templates/monorepo/scripts/_catalog-runtime/repo-root.ts +36 -0
  2633. package/dist/templates/monorepo/scripts/_catalog-runtime/types.ts +154 -0
  2634. package/dist/templates/monorepo/scripts/_catalog-runtime/validate.ts +254 -0
  2635. package/dist/templates/monorepo/scripts/backlog/README.md +689 -0
  2636. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-budget.jsonl +10 -0
  2637. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-crash.jsonl +9 -0
  2638. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-max-turns.jsonl +10 -0
  2639. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-needs-guidance-prose.jsonl +5 -0
  2640. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-needs-guidance.jsonl +10 -0
  2641. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-success.jsonl +10 -0
  2642. package/dist/templates/monorepo/scripts/backlog/attempt.test.ts +290 -0
  2643. package/dist/templates/monorepo/scripts/backlog/attempt.ts +181 -0
  2644. package/dist/templates/monorepo/scripts/backlog/close.test.ts +3932 -0
  2645. package/dist/templates/monorepo/scripts/backlog/close.ts +2499 -0
  2646. package/dist/templates/monorepo/scripts/backlog/contract.test.ts +174 -0
  2647. package/dist/templates/monorepo/scripts/backlog/dev.aurora.backlog-dispatch.plist +81 -0
  2648. package/dist/templates/monorepo/scripts/backlog/dispatch.test.ts +3270 -0
  2649. package/dist/templates/monorepo/scripts/backlog/dispatch.ts +2718 -0
  2650. package/dist/templates/monorepo/scripts/backlog/entry.test.ts +1654 -0
  2651. package/dist/templates/monorepo/scripts/backlog/entry.ts +791 -0
  2652. package/dist/templates/monorepo/scripts/backlog/graph-cli.ts +70 -0
  2653. package/dist/templates/monorepo/scripts/backlog/graph.test.ts +800 -0
  2654. package/dist/templates/monorepo/scripts/backlog/graph.ts +386 -0
  2655. package/dist/templates/monorepo/scripts/backlog/guards.test.ts +2259 -0
  2656. package/dist/templates/monorepo/scripts/backlog/guards.ts +1452 -0
  2657. package/dist/templates/monorepo/scripts/backlog/lanes/frontier.settings.json +116 -0
  2658. package/dist/templates/monorepo/scripts/backlog/lanes/local.settings.json +64 -0
  2659. package/dist/templates/monorepo/scripts/backlog/lanes.json +28 -0
  2660. package/dist/templates/monorepo/scripts/backlog/launch.test.ts +3126 -0
  2661. package/dist/templates/monorepo/scripts/backlog/launch.ts +1125 -0
  2662. package/dist/templates/monorepo/scripts/backlog/maintenance.test.ts +2642 -0
  2663. package/dist/templates/monorepo/scripts/backlog/maintenance.ts +1483 -0
  2664. package/dist/templates/monorepo/scripts/backlog/notify.test.ts +60 -0
  2665. package/dist/templates/monorepo/scripts/backlog/notify.ts +47 -0
  2666. package/dist/templates/monorepo/scripts/backlog/parent.test.ts +221 -0
  2667. package/dist/templates/monorepo/scripts/backlog/parent.ts +174 -0
  2668. package/dist/templates/monorepo/scripts/backlog/prompt.test.ts +928 -0
  2669. package/dist/templates/monorepo/scripts/backlog/prompt.ts +622 -0
  2670. package/dist/templates/monorepo/scripts/backlog/render.test.ts +318 -0
  2671. package/dist/templates/monorepo/scripts/backlog/render.ts +351 -0
  2672. package/dist/templates/monorepo/scripts/backlog/reviewer.test.ts +354 -0
  2673. package/dist/templates/monorepo/scripts/backlog/reviewer.ts +308 -0
  2674. package/dist/templates/monorepo/scripts/backlog/slots.test.ts +1179 -0
  2675. package/dist/templates/monorepo/scripts/backlog/slots.ts +752 -0
  2676. package/dist/templates/monorepo/scripts/backlog/task-view.test.ts +918 -0
  2677. package/dist/templates/monorepo/scripts/backlog/task-view.ts +513 -0
  2678. package/dist/templates/monorepo/scripts/backlog/types.ts +286 -0
  2679. package/dist/templates/monorepo/scripts/backlog/watch.test.ts +505 -0
  2680. package/dist/templates/monorepo/scripts/backlog/watch.ts +449 -0
  2681. package/dist/templates/monorepo/scripts/backlog/worker-edit.test.ts +484 -0
  2682. package/dist/templates/monorepo/scripts/backlog/worker-edit.ts +477 -0
  2683. package/dist/templates/monorepo/scripts/business-rules/document.ts +2 -1
  2684. package/dist/templates/monorepo/scripts/business-rules/parse-catalog.ts +2 -1
  2685. package/dist/templates/monorepo/scripts/catalyst/regen-review.test.ts +313 -0
  2686. package/dist/templates/monorepo/scripts/catalyst/regen-review.ts +287 -0
  2687. package/dist/templates/monorepo/scripts/harness-rules/audit.ts +620 -0
  2688. package/dist/templates/monorepo/scripts/harness-rules/check.ts +37 -0
  2689. package/dist/templates/monorepo/scripts/harness-rules/generate-index.ts +215 -0
  2690. package/dist/templates/monorepo/scripts/harness-rules/lint-barrels.test.ts +1125 -0
  2691. package/dist/templates/monorepo/scripts/harness-rules/lint-barrels.ts +1059 -0
  2692. package/dist/templates/monorepo/scripts/harness-rules/types.ts +62 -0
  2693. package/dist/templates/monorepo/scripts/harness-rules/validate-catalog.ts +121 -0
  2694. package/oclif.manifest.json +74 -74
  2695. package/package.json +14 -10
  2696. package/dist/generator/engine/code-writer/export-references.d.ts +0 -10
  2697. package/dist/generator/engine/code-writer/export-references.js +0 -69
  2698. package/dist/templates/backend/application/eslint.config.mjs +0 -40
  2699. package/dist/templates/backend/application/src/@aurora/services/bootstrap.service.ts +0 -20
  2700. package/dist/templates/backend/application/src/i18n/en/iam.json +0 -18
  2701. package/dist/templates/backend/application/src/i18n/es/iam.json +0 -18
  2702. package/dist/templates/backend/application/test/authentication-none-mode.e2e-spec.ts +0 -138
  2703. package/dist/templates/backend/application/test/jest-e2e.json +0 -18
  2704. package/dist/templates/backend/application/test/mocks/mime.mock.ts +0 -10
  2705. package/dist/templates/backend/application/test/mocks/uuid.mock.ts +0 -17
  2706. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-accounts.handler.ts +0 -26
  2707. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/sequelize/iam-sequelize-account.model.ts +0 -197
  2708. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/sequelize/iam-sequelize-account.repository.ts +0 -71
  2709. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/sequelize/iam-sequelize-bounded-context.model.ts +0 -94
  2710. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/sequelize/iam-sequelize-bounded-context.repository.ts +0 -24
  2711. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/sequelize/iam-sequelize-permission.model.ts +0 -93
  2712. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/sequelize/iam-sequelize-permission.repository.ts +0 -61
  2713. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/sequelize/iam-sequelize-permission-role.model.ts +0 -48
  2714. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/sequelize/iam-sequelize-permission-role.repository.ts +0 -24
  2715. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/sequelize/iam-sequelize-role.model.ts +0 -116
  2716. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/sequelize/iam-sequelize-role.repository.ts +0 -68
  2717. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/sequelize/iam-sequelize-role-account.model.ts +0 -48
  2718. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/sequelize/iam-sequelize-role-account.repository.ts +0 -24
  2719. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/sequelize/iam-sequelize-tag.model.ts +0 -70
  2720. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/sequelize/iam-sequelize-tag.repository.ts +0 -21
  2721. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/sequelize/iam-sequelize-tenant.model.ts +0 -121
  2722. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/sequelize/iam-sequelize-tenant.repository.ts +0 -57
  2723. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/sequelize/iam-sequelize-tenant-account.model.ts +0 -48
  2724. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/sequelize/iam-sequelize-tenant-account.repository.ts +0 -24
  2725. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/sequelize/iam-sequelize-user.model.ts +0 -144
  2726. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/sequelize/iam-sequelize-user.repository.ts +0 -21
  2727. package/dist/templates/backend/packages/iam/src/@bridges/iam/index.ts +0 -3
  2728. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/index.ts +0 -1
  2729. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/sequelize/o-auth-sequelize-access-token.model.ts +0 -118
  2730. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/sequelize/o-auth-sequelize-access-token.repository.ts +0 -24
  2731. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/sequelize/o-auth-sequelize-application.model.ts +0 -101
  2732. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/sequelize/o-auth-sequelize-application.repository.ts +0 -61
  2733. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/sequelize/o-auth-sequelize-application-client.model.ts +0 -48
  2734. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/sequelize/o-auth-sequelize-application-client.repository.ts +0 -24
  2735. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/sequelize/o-auth-sequelize-authorization-code.model.ts +0 -146
  2736. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/sequelize/o-auth-sequelize-authorization-code.repository.ts +0 -44
  2737. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/sequelize/o-auth-sequelize-client.model.ts +0 -146
  2738. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/sequelize/o-auth-sequelize-client.repository.ts +0 -57
  2739. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/sequelize/o-auth-sequelize-credential.model.ts +0 -139
  2740. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/sequelize/o-auth-sequelize-credential.repository.ts +0 -24
  2741. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/sequelize/o-auth-sequelize-refresh-token.model.ts +0 -98
  2742. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/sequelize/o-auth-sequelize-refresh-token.repository.ts +0 -24
  2743. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/sequelize/o-auth-sequelize-scope.model.ts +0 -84
  2744. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/sequelize/o-auth-sequelize-scope.repository.ts +0 -24
  2745. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/index.ts +0 -1
  2746. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/sequelize/__bounded_context_name__-sequelize-__module_name__.model.ts.eta +0 -213
  2747. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/sequelize/__bounded_context_name__-sequelize-__module_name__.repository.ts.eta +0 -94
  2748. package/dist/templates/codegen/partials/declare-i18n-repository.eta +0 -3
  2749. package/dist/templates/codegen/partials/import-i18n-repository.eta +0 -3
  2750. package/dist/templates/frontend/application/libs/ui/icon/src/index.ts +0 -7
  2751. package/dist/templates/frontend/application/libs/ui/icon/src/lib/hlm-icon.token.ts +0 -20
  2752. package/dist/templates/frontend/application/libs/ui/icon/src/lib/hlm-icon.ts +0 -42
  2753. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relation-includes.spec.ts +0 -141
  2754. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relation-includes.ts +0 -47
  2755. package/dist/templates/frontend/application/src/@aurora/modules/graphql/parse-gql-fields.ts +0 -32
  2756. package/dist/templates/frontend/application/src/app/aurora.types.ts +0 -2671
  2757. package/dist/templates/frontend/application/src/app/domains/admin/bounded-contexts/dashboard/dashboard.routes.ts +0 -8
  2758. package/dist/templates/frontend/application/src/app/domains/admin/bounded-contexts/dashboard/features/dashboard.component.ts +0 -13
  2759. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-projects.ts +0 -106
  2760. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.detail-config.ts +0 -13
  2761. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.graphql.ts +0 -291
  2762. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.list-config.ts +0 -12
  2763. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.resolvers.ts +0 -121
  2764. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/current-account.adapter.ts +0 -34
  2765. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-detail.component.ts +0 -165
  2766. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-form.component.ts +0 -915
  2767. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-list-actions-cell.component.ts +0 -85
  2768. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-list.component.ts +0 -260
  2769. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/index.ts +0 -8
  2770. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.detail-config.ts +0 -18
  2771. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.graphql.ts +0 -158
  2772. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.list-config.ts +0 -12
  2773. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.resolvers.ts +0 -36
  2774. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-detail.component.ts +0 -157
  2775. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-form.component.ts +0 -154
  2776. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-list-actions-cell.component.ts +0 -85
  2777. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-list.component.ts +0 -247
  2778. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/index.ts +0 -7
  2779. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam-icons.providers.ts +0 -23
  2780. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam.navigation.ts +0 -42
  2781. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam.routes.ts +0 -98
  2782. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.detail-config.ts +0 -13
  2783. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.graphql.ts +0 -163
  2784. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.list-config.ts +0 -12
  2785. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.resolvers.ts +0 -72
  2786. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-form-embed.component.ts +0 -99
  2787. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-form.component.ts +0 -141
  2788. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-list-actions-cell.component.ts +0 -85
  2789. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-list.component.ts +0 -404
  2790. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/index.ts +0 -7
  2791. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/permission.columns.ts +0 -56
  2792. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.detail-config.ts +0 -18
  2793. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.graphql.ts +0 -148
  2794. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.list-config.ts +0 -12
  2795. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.resolvers.ts +0 -40
  2796. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/index.ts +0 -7
  2797. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/permission-role.columns.ts +0 -38
  2798. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.detail-config.ts +0 -13
  2799. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.graphql.ts +0 -207
  2800. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.list-config.ts +0 -12
  2801. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.resolvers.ts +0 -68
  2802. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-detail.component.ts +0 -312
  2803. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-form.component.ts +0 -162
  2804. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-list-actions-cell.component.ts +0 -85
  2805. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-list.component.ts +0 -248
  2806. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/index.ts +0 -7
  2807. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/role.columns.ts +0 -85
  2808. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.detail-config.ts +0 -13
  2809. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.graphql.ts +0 -158
  2810. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.list-config.ts +0 -12
  2811. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/shared/validators/unique-email.validator.ts +0 -31
  2812. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/shared/validators/unique-username.validator.ts +0 -29
  2813. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.detail-config.ts +0 -13
  2814. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.graphql.ts +0 -129
  2815. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.list-config.ts +0 -14
  2816. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.resolvers.ts +0 -36
  2817. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-form.component.ts +0 -93
  2818. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-list-actions-cell.component.ts +0 -85
  2819. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-list.component.ts +0 -321
  2820. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/index.ts +0 -7
  2821. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.detail-config.ts +0 -13
  2822. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.graphql.ts +0 -203
  2823. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.list-config.ts +0 -12
  2824. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.resolvers.ts +0 -71
  2825. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-form.component.ts +0 -169
  2826. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-list-actions-cell.component.ts +0 -85
  2827. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-list.component.ts +0 -333
  2828. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/index.ts +0 -7
  2829. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/tenant.columns.ts +0 -86
  2830. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.detail-config.ts +0 -18
  2831. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.graphql.ts +0 -158
  2832. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.list-config.ts +0 -12
  2833. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.resolvers.ts +0 -40
  2834. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/index.ts +0 -7
  2835. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/tenant-account.columns.ts +0 -38
  2836. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.detail-config.ts +0 -13
  2837. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.graphql.ts +0 -152
  2838. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.list-config.ts +0 -12
  2839. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.resolvers.ts +0 -36
  2840. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-detail.component.ts +0 -124
  2841. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-form.component.ts +0 -215
  2842. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-list-actions-cell.component.ts +0 -85
  2843. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-list.component.ts +0 -237
  2844. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/index.ts +0 -7
  2845. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/user.columns.ts +0 -124
  2846. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/access-token.columns.ts +0 -97
  2847. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/data-access/access-token.detail-config.ts +0 -13
  2848. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/data-access/access-token.graphql.ts +0 -155
  2849. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/data-access/access-token.list-config.ts +0 -12
  2850. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/data-access/access-token.resolvers.ts +0 -40
  2851. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/features/access-token-form.component.ts +0 -152
  2852. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/features/access-token-list-actions-cell.component.ts +0 -85
  2853. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/features/access-token-list.component.ts +0 -331
  2854. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/index.ts +0 -7
  2855. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/application.columns.ts +0 -73
  2856. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.detail-config.ts +0 -13
  2857. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.graphql.ts +0 -146
  2858. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.list-config.ts +0 -14
  2859. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.resolvers.ts +0 -36
  2860. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/features/application-form.component.ts +0 -160
  2861. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/features/application-list-actions-cell.component.ts +0 -85
  2862. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/features/application-list.component.ts +0 -326
  2863. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/index.ts +0 -7
  2864. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application-client/data-access/application-client.graphql.ts +0 -155
  2865. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/authorization-code.columns.ts +0 -123
  2866. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/data-access/authorization-code.detail-config.ts +0 -18
  2867. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/data-access/authorization-code.graphql.ts +0 -146
  2868. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/data-access/authorization-code.list-config.ts +0 -19
  2869. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/data-access/authorization-code.resolvers.ts +0 -44
  2870. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/features/authorization-code-form.component.ts +0 -202
  2871. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/features/authorization-code-list-actions-cell.component.ts +0 -86
  2872. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/features/authorization-code-list.component.ts +0 -337
  2873. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/index.ts +0 -7
  2874. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/client.columns.ts +0 -140
  2875. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.detail-config.ts +0 -13
  2876. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.graphql.ts +0 -141
  2877. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.list-config.ts +0 -14
  2878. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.resolvers.ts +0 -97
  2879. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/features/client-form.component.ts +0 -358
  2880. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/features/client-list-actions-cell.component.ts +0 -85
  2881. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/features/client-list.component.ts +0 -359
  2882. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/index.ts +0 -7
  2883. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/o-auth-icons.providers.ts +0 -21
  2884. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/o-auth.navigation.ts +0 -52
  2885. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/o-auth.routes.ts +0 -44
  2886. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/data-access/refresh-token.detail-config.ts +0 -13
  2887. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/data-access/refresh-token.graphql.ts +0 -132
  2888. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/data-access/refresh-token.list-config.ts +0 -12
  2889. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/data-access/refresh-token.resolvers.ts +0 -36
  2890. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/features/refresh-token-form.component.ts +0 -131
  2891. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/features/refresh-token-list-actions-cell.component.ts +0 -85
  2892. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/features/refresh-token-list.component.ts +0 -330
  2893. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/index.ts +0 -7
  2894. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/refresh-token.columns.ts +0 -59
  2895. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.detail-config.ts +0 -13
  2896. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.graphql.ts +0 -131
  2897. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.list-config.ts +0 -14
  2898. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.resolvers.ts +0 -36
  2899. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/features/scope-form.component.ts +0 -119
  2900. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/features/scope-list-actions-cell.component.ts +0 -85
  2901. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/features/scope-list.component.ts +0 -321
  2902. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/index.ts +0 -7
  2903. package/dist/templates/monorepo/.claude/hooks/check-required-plugins.ts +0 -112
  2904. package/dist/templates/monorepo/.claude/hooks/inject-rules-context.ts +0 -267
  2905. package/dist/templates/monorepo/.vscode/settings.json +0 -10
  2906. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/account/account.columns.ts +0 -0
  2907. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/bounded-context/bounded-context.columns.ts +0 -0
  2908. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/iam.types.ts +0 -0
  2909. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/index.ts +0 -0
  2910. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/shared/index.ts +0 -0
  2911. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/tag/tag.columns.ts +0 -0
  2912. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/application-client/data-access/application-client.detail-config.ts +0 -0
  2913. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/application-client/data-access/application-client.list-config.ts +0 -0
  2914. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/index.ts +0 -0
  2915. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/o-auth.types.ts +0 -0
  2916. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/scope/scope.columns.ts +0 -0
@@ -0,0 +1,1483 @@
1
+ /**
2
+ * maintenance.ts — the maintenance pass that runs at the start of every reconciler invocation,
3
+ * before any task is selected for dispatch.
4
+ *
5
+ * Implements `specs/backlog-task-dispatcher/spec.md` — "Maintenance pass precedes task selection"
6
+ * (dead-lock sweep, orphan-slot release, merged-PR-to-Done, recompute every parent, refresh the
7
+ * graph-holder task, commit pending `.backlog/**` changes) and "Manual cancellation kills the
8
+ * worker after saving work"; `specs/backlog-task-lifecycle/spec.md` — "Derived parent state"
9
+ * (reused verbatim from `parent.ts`, never re-derived here); `specs/backlog-dependency-graph/spec.md`
10
+ * — "Graph-holder task mirrors the view" (the write half; `graph.ts` owns the render/decide logic
11
+ * this step only calls).
12
+ *
13
+ * `runMaintenance(ctx)` is a single synchronous function; every side effect (reading/writing
14
+ * `slots.json`, reading/removing lock files, PID liveness, the clock, `gh`, `backlog task edit`,
15
+ * and git) is injected through `MaintenanceContext` so this module is unit-testable without a real
16
+ * filesystem, git repository, or process — see design.md's Component design (`maintenance` row).
17
+ *
18
+ * Order, fixed (design.md's Tramo 7 diagram, plus the manual-cancellation, board-commit and T-8
19
+ * steps this task's brief adds): (0) retry the pushes a previous pass could not complete, freeing
20
+ * the slots they held, bounded by `MAX_RECOVERY_ATTEMPTS` after which the slot is left to a
21
+ * person; (1) sweep dead/expired locks — kill a hung worker first, SAVE its work, then
22
+ * release its slot (or hold the slot when the push failed) and block the task; (2) release orphan
23
+ * slots (occupied but with no lock at all, and not held for recovery); (3) move a merged-PR task to
24
+ * `Done`, deleting its `task/<id>` branch ONLY once it is confirmed to carry no commit beyond its
25
+ * base (T-8 point 5 — never on the `Blocked` path; a branch that fails that check is left alone
26
+ * for a person to rescue, see `MaintenanceGit.branchHasUnmergedCommits`); (3b) revert
27
+ * a hand-written `Done` whose branch exists but whose PR GitHub does not report merged (T-8 point
28
+ * 7 — the mirror of step 3, left alone when the task carries no branch at all); (3c) block an
29
+ * orphan `In Progress` — no lock, no slot, no attempt directory, and an `updated_date` older than
30
+ * `lanes.json`'s `orphanInProgressThresholdHours` (T-8 point 10); (4) manual cancellation — save
31
+ * work, THEN kill the worker, THEN release (never any other order, per design.md decision (k));
32
+ * (5) recompute every parent's derived state via `parent.ts`, writing only on change and deleting
33
+ * the branch of any parent this step itself closes — skipped whole when `boardComplete` is false.
34
+ * T-8's last point: for a Complex parent whose children are all Done, this is also where the ONE
35
+ * automated close attempt gets enqueued (`parent.ts`'s rules 4/5) — the write this step already
36
+ * makes moves the parent straight to `Queued`, and the pass's own selection phase (later in this
37
+ * SAME `runOnce`) may dispatch it before the next pass ever runs;
38
+ * (5b) refresh the graph-holder task (`backlog-dependency-graph` capability) — re-renders the
39
+ * dependency view over the board AS STEP 5 LEFT IT and replaces the holder's description only when
40
+ * the text differs, so the refresh rides in the SAME board commit (step 6) as whatever change
41
+ * caused it. Skipped when `boardComplete` is false (same reason as step 5: a view derived from part
42
+ * of the board would show a waiting task as ready) or when zero tasks carry `board:graph` (reported
43
+ * on `MaintenanceResult`, nothing written). When MORE than one task carries the label, each one
44
+ * that does not already show it gets an ambiguity notice instead of the view (also reported on
45
+ * `MaintenanceResult`) — one holder's write failing never costs the other its notice. A throw from
46
+ * reading or writing a description is caught and recorded on `MaintenanceResult` — this step can
47
+ * never fail the pass it rides along in;
48
+ * (6) commit any pending `.backlog/**` changes with a Conventional Commit message and `--no-verify`
49
+ * (design.md decision (l) — Backlog.md's own `auto_commit` stays `false`). `--no-verify` for the
50
+ * same reason every other dispatcher-authored commit carries it: the hooks a commit would run are
51
+ * files in a working tree a dispatched worker may have just written, and running them here would
52
+ * execute that code as the dispatcher.
53
+ */
54
+ import {
55
+ buildExecutionRecordBlock,
56
+ hasExecutionRecordBlock,
57
+ sanitizeCommentBody,
58
+ } from './close.js';
59
+ import { decideGraphWrite } from './graph.js';
60
+ import { taskBaseBranch } from './guards.js';
61
+ import { deriveParentStatus, effectiveStatus, type ParentDerivationNode } from './parent.js';
62
+ import { isLockAlive, releaseSlotEntries } from './slots.js';
63
+ import {
64
+ TASK_STATUS,
65
+ type Board,
66
+ type DispatchLock,
67
+ type SlotInfo,
68
+ type SlotRegistry,
69
+ type Task,
70
+ type TaskStatus,
71
+ } from './types.js';
72
+
73
+ // ── Injected collaborators ─────────────────────────────────────────────────────
74
+
75
+ export interface MaintenanceFs {
76
+ readSlots(): SlotRegistry;
77
+ /**
78
+ * `slots.ts`'s single mutation primitive, bound to the real registry: re-reads the file under an
79
+ * exclusive lock, applies `mutate` to what it finds THERE, and writes the result. The sweep must
80
+ * never write a whole registry built on the snapshot it read at its start — a second pass
81
+ * legitimately acquires or releases a slot meanwhile, and that write would be reverted.
82
+ */
83
+ updateSlots(mutate: (current: SlotRegistry) => SlotRegistry): SlotRegistry;
84
+ readLocks(): DispatchLock[];
85
+ removeLock(taskId: string): void;
86
+ /**
87
+ * Whether `.backlog/.dispatch/<taskId>/` exists — one of the four T-8 point 10 orphan checks.
88
+ * Its presence means the task WAS dispatched at some point, even if no lock or slot survives
89
+ * today, so it is never an orphan by this definition regardless of `updated_date`.
90
+ *
91
+ * OPTIONAL until `dispatch.ts`'s real `fs` collaborator wires it: `runMaintenance`'s step 3c
92
+ * (the orphan sweep itself) is entirely gated on `MaintenanceContext.orphanInProgressThresholdMs`
93
+ * being set, so a caller that supplies neither runs exactly as it did before T-8 point 10.
94
+ */
95
+ hasAttemptDir?(taskId: string): boolean;
96
+ /**
97
+ * Whether this parent's ONE automated close attempt (T-8 rules 4/5 in `parent.ts`) has ever been
98
+ * ENQUEUED — durable from the moment rule 4 first derives `Queued` for it, not from the moment a
99
+ * worker actually starts (T-8 defect 3, HIGH, 2026-09-08).
100
+ *
101
+ * `own.attempts > 0` (a count of `.backlog/.dispatch/<taskId>/intento-N/` directories) used to be
102
+ * this signal, and it is not a once-only one: `beginAttempt` creates that directory LATE — after
103
+ * every guard, after `provisionSlot`, after `prepareSlot`, after `buildLaunch` — so `attempts`
104
+ * stays `0` forever on any of four reachable paths: (1) a guard blocks the dispatch before a
105
+ * worker ever starts (e.g. no declared `Test command:` — common for a Complex parent from an
106
+ * interactive decomposition, since nobody meant to dispatch it directly); (2) `entry.ts`'s
107
+ * `abortDispatch` fires before `beginAttempt` (a failed `pnpm install`, a `prepareSlot`/
108
+ * `buildLaunch` throw); (3) the reconciler crashes after `writeLock` but before `beginAttempt` —
109
+ * the next pass's dead-lock sweep writes `Blocked`, and step 5 in that SAME pass re-derives
110
+ * `Queued` over it, since `deriveParentStatus` never consults the parent's own current status for
111
+ * rule 4; (4) the narrow window between `entry.ts` releasing the single-flight lock and
112
+ * `beginAttempt` running. In every one of those, the SAME "all children Done, PR unmerged" state
113
+ * re-derives `Queued` on every later pass — a new `Blocked` comment every few minutes, forever.
114
+ *
115
+ * `markCloseAttemptEnqueued` is called exactly once, by `recomputeParent`, the INSTANT rule 4
116
+ * first fires — before any guard, any slot, any lock, any attempt directory exists — which is why
117
+ * it closes all four paths above: the marker is already durable by the time any of them can run.
118
+ */
119
+ hasCloseAttemptBeenEnqueued(taskId: string): boolean;
120
+ /** Marks it. See `hasCloseAttemptBeenEnqueued`'s own JSDoc. */
121
+ markCloseAttemptEnqueued(taskId: string): void;
122
+ /**
123
+ * The classified terminal outcome of one attempt's `stream.jsonl` (`render.ts`'s
124
+ * `classifyStreamOutcome`) — T-68's ONE structurally-detectable environment failure (a budget
125
+ * cutoff, `STREAM_OUTCOME.BUDGET`, feeds the «Registro de ejecución» block's "Fallos de entorno").
126
+ * `null` when the attempt directory or its stream file does not exist — never thrown, since a
127
+ * missing attempt is a legitimate "no data" answer for the close-record composer, not a fault.
128
+ */
129
+ attemptStreamOutcome(taskId: string, attempt: number): string | null;
130
+ /**
131
+ * One attempt's `review.md` verdict (`reviewer.ts`'s `parseReviewerVerdict`, reused rather than
132
+ * reimplemented) — feeds the «Registro de ejecución» block's "Rondas de corrección"/"revisor"
133
+ * (T-68 fix 2: a retry count alone cannot tell a correction round from a quota-cutoff retry, and
134
+ * the lane label cannot tell "the reviewer ran and passed" from "this lane has no reviewer at
135
+ * all"). `null` when the attempt has no `review.md` — never thrown: only the local lane's close
136
+ * ever writes one, so `null` is the ordinary answer for every frontier-lane attempt.
137
+ */
138
+ attemptReviewVerdict(taskId: string, attempt: number): string | null;
139
+ }
140
+
141
+ export interface MaintenanceGh {
142
+ /** True only when the branch has an observed, merged pull request. */
143
+ isPrMerged(branch: string): boolean;
144
+ /**
145
+ * The branch's most recent PR state as GitHub reports it (`OPEN`, `CLOSED`, `MERGED`), or `null`
146
+ * when the branch carries no PR at all. T-8 point 7's revert comment names this so a person does
147
+ * not have to open GitHub before deciding whether to re-merge, reopen, or abandon the work.
148
+ *
149
+ * OPTIONAL until `dispatch.ts`'s real `gh` collaborator wires it — step 3b only ever calls it
150
+ * once `MaintenanceGit.branchExists` has already confirmed a branch exists, so an unwired `gh`
151
+ * never reaches it (see `branchExists`'s own note below).
152
+ */
153
+ prState?(branch: string): string | null;
154
+ /**
155
+ * The tri-state answer step 3b's DESTRUCTIVE revert needs — and the reason it cannot reuse
156
+ * `isPrMerged`'s boolean, or `prState`'s `string | null`, for the decision itself (T-8 defect 1,
157
+ * CRITICAL, 2026-09-08).
158
+ *
159
+ * `isPrMerged` collapses FOUR conditions into one `false`: the PR is open but not merged, no PR
160
+ * was ever opened, the `gh` binary is missing, and the token expired or the network failed. Step
161
+ * 3 (moving a task TOWARD `Done`) can read that `false` safely — failing closed there means doing
162
+ * nothing. Step 3b (reverting a hand-written `Done` back to `In Progress`) reads the SAME `false`
163
+ * as "GitHub confirms this is not merged". Measured failure scenario: the `gh` token expires — a
164
+ * recurring condition in this repo, which is why a `GITHUB_TOKEN= gh …` workaround exists. One
165
+ * reconciler pass runs; `branchExists` answers `true` for every task whose local `task/<id>` ref
166
+ * still exists; `isPrMerged` answers `false` for all of them, indistinguishably from an outage.
167
+ * Every `Done` task with a surviving local branch gets reverted to `In Progress` with a comment,
168
+ * and step 6 commits the lot to `main`.
169
+ *
170
+ * `prState` was considered for this seam and rejected: it returns `null` from the EXACT SAME
171
+ * catch block `isPrMerged` shares (see `realGh` in `dispatch.ts`), so a `null` cannot tell "no PR,
172
+ * confirmed" from "gh is down" any better than `isPrMerged` itself — reusing it would only rename
173
+ * the ambiguity, not close it. `mergedState` needs a genuinely different mechanism: `realGh` asks
174
+ * `gh pr list --head <branch> --state all`, not `gh pr view <branch>` — an EMPTY array is a real,
175
+ * successful answer ("no PR exists for this branch", which IS `not-merged`: a person who pushed a
176
+ * branch and wrote `Done` by hand with no PR at all is still legitimately reverted), while a
177
+ * THROWN error is the only thing that becomes `unknown`.
178
+ *
179
+ * `unknown` must never read as `not-merged`: step 3b skips a task entirely when it gets `unknown`,
180
+ * leaving a stale `Done` to be re-checked on the NEXT pass rather than reverting on a question
181
+ * `gh` could not actually answer.
182
+ *
183
+ * REQUIRED, unlike `prState` — T-20 point 4 (2026-09-11): this answer also gates two pushers
184
+ * (the recovery retry and the dead-worker rescue) that must never land a commit on an
185
+ * already-merged branch. A caller free to omit the collaborator entirely made "cannot confirm"
186
+ * indistinguishable from "confirmed not merged" at those two sites — a missing CAPABILITY
187
+ * silently switching a safety gate off, not a legitimate `unknown` answer. Making it required
188
+ * moves that failure to the type checker: a `MaintenanceGh` built with no `mergedState` no longer
189
+ * compiles, so there is no runtime branch left to fail open. A collaborator that genuinely cannot
190
+ * answer (the `gh` outage this whole tri-state exists for) still returns `PR_MERGE_STATE.UNKNOWN`
191
+ * itself — that is the legitimate use of the third state, not an excuse to omit the function.
192
+ */
193
+ mergedState(branch: string): PrMergeState;
194
+ /**
195
+ * The branch's PR number, or `null` when `gh` reports no PR at all (or is unavailable/
196
+ * unauthenticated — the same fail-closed reading `prState`/`isPrMerged` give). T-68's «Registro de
197
+ * ejecución» block reads this for a task with `attempts === 0` (never dispatched — a supervisada
198
+ * session closed by step 3/`recomputeParent`, whose Worktree Gate forces it onto the same
199
+ * `task/T-nn` branch): with no attempt directory to point `Fuente` at, the merged PR is the only
200
+ * trace left.
201
+ *
202
+ * OPTIONAL, same as `prState` — until `dispatch.ts`'s real `gh` collaborator wires it, an unwired
203
+ * caller here reads exactly like a failed read (see the call site's own handling): the PR is
204
+ * confirmed to exist (both call sites only ever reach this with a CONFIRMED merged PR), only its
205
+ * number could not be obtained.
206
+ */
207
+ prNumber?(branch: string): number | null;
208
+ }
209
+
210
+ /**
211
+ * The three answers step 3b's tri-state `mergedState` can give, and only three: `MERGED` and
212
+ * `NOT_MERGED` are both CONFIRMED answers `gh` actually returned — including "no PR was ever opened
213
+ * for this branch", which is `NOT_MERGED` too, since a hand-written `Done` with a pushed branch and
214
+ * no PR is still a legitimate revert target. `UNKNOWN` is reserved for when the `gh` CALL ITSELF
215
+ * failed to produce an answer — the binary is missing, the token expired, or the network is down —
216
+ * and must never be treated as `NOT_MERGED` (see `MaintenanceGh.mergedState`'s own JSDoc for the
217
+ * incident this distinction exists to prevent).
218
+ */
219
+ export const PR_MERGE_STATE = {
220
+ MERGED: 'merged',
221
+ NOT_MERGED: 'not-merged',
222
+ UNKNOWN: 'unknown',
223
+ } as const;
224
+
225
+ export type PrMergeState = (typeof PR_MERGE_STATE)[keyof typeof PR_MERGE_STATE];
226
+
227
+ /**
228
+ * The three answers `MaintenanceGit.deleteRemoteBranch` can give — defect 7 (2026-09-08). A caller
229
+ * that only knows "did it throw" cannot tell an already-absent ref (GitHub's own "Automatically
230
+ * delete head branches", enabled 2026-09-08, routinely beats this call to it — the NORMAL case) from
231
+ * a REAL failure (bad auth, a protected-branch rule, a network timeout) — both used to be swallowed
232
+ * identically, and `MaintenanceResult.cleanedUpBranches` reported the task either way even though
233
+ * its own JSDoc promises "this pass deleted" the branch. Only `FAILED` must keep a task OUT of that
234
+ * field; `DELETED` and `ALREADY_GONE` both mean the remote ref is confirmed gone.
235
+ */
236
+ export const REMOTE_BRANCH_DELETE_RESULT = {
237
+ DELETED: 'deleted',
238
+ ALREADY_GONE: 'already-gone',
239
+ FAILED: 'failed',
240
+ } as const;
241
+
242
+ export type RemoteBranchDeleteResult =
243
+ (typeof REMOTE_BRANCH_DELETE_RESULT)[keyof typeof REMOTE_BRANCH_DELETE_RESULT];
244
+
245
+ export interface MaintenanceBacklog {
246
+ setStatus(taskId: string, status: TaskStatus, comment?: string): void;
247
+ /** Records a comment WITHOUT moving the task — for news a person needs but that decides nothing. */
248
+ comment(taskId: string, comment: string): void;
249
+ /**
250
+ * Appends to the task's notes (`backlog task edit --append-notes`) — the one field the `Queued`
251
+ * scope freeze (`catalyst-backlog/SKILL.md` §11) leaves open on a `Queued`/`In Progress`/`Done`
252
+ * task. T-68's only writer: the «Registro de ejecución» block (§12), appended once at the `Done`
253
+ * transition step 3 makes.
254
+ */
255
+ appendNotes(taskId: string, notes: string): void;
256
+ /**
257
+ * The task's current notes text, or `null` when it could not be read. T-68's ONLY reader: §12.3's
258
+ * idempotence check, which only needs to know whether `close.ts`'s `EXECUTION_RECORD_HEADING`
259
+ * occurs anywhere in it — the full `backlog task view --plain` output is fine to pass through
260
+ * as-is. `null` reads as "not yet written": a pass that cannot confirm the block is already there
261
+ * appends it rather than silently skipping, so the heading itself stays the durable guard, never
262
+ * this read.
263
+ */
264
+ readNotes(taskId: string): string | null;
265
+ /**
266
+ * Replaces a task's description outright (`backlog task edit --desc`) — the graph-holder
267
+ * refresh's (step 5b) only writer. `graph.ts`'s `pnpm backlog:graph --write` uses the same
268
+ * `decideGraphWrite` decision this step calls, so both paths write through one function.
269
+ */
270
+ setDescription(taskId: string, description: string): void;
271
+ /**
272
+ * The task's current description text (`task-view.ts`'s `parseDescription`, over a fresh
273
+ * `backlog task view --plain`) — step 5b's reader, called for the single holder task it found, or
274
+ * once per holder when more than one carries the label (never for zero holders, which need no
275
+ * comparison at all). `null` when it could not be read.
276
+ */
277
+ readDescription(taskId: string): string | null;
278
+ }
279
+
280
+ export interface SaveWipResult {
281
+ pushSucceeded: boolean;
282
+ }
283
+
284
+ export interface MaintenanceGit {
285
+ /** `git status --porcelain -- .backlog` in the main checkout, collapsed to a boolean. */
286
+ hasPendingBacklogChanges(): boolean;
287
+ /**
288
+ * `git add` of only the `.backlog` paths that belong to Backlog.md's own managed schema
289
+ * (tasks/milestones/archive/completed/config.yml, or an ID-prefixed `docs/` entry), then `git
290
+ * commit` — a dirty path outside that schema is excluded and logged (T-78), never silently
291
+ * swallowed nor blindly included alongside the board's own output.
292
+ */
293
+ commitBacklogChanges(message: string): void;
294
+ /** WIP-commits and pushes the worker's current changes on `branch` (manual-cancellation save). */
295
+ saveWipAndPush(branch: string): SaveWipResult;
296
+ /**
297
+ * Leaves the slot at `slotPath` on a detached HEAD. Every release the sweep performs calls it:
298
+ * git refuses a branch checked out in two worktrees, so a slot released while still on
299
+ * `task/T-nn` makes every later dispatch of that task hit `branch-in-use` — and with one task
300
+ * dispatched per pass, the whole queue starves behind it. Never throws.
301
+ */
302
+ detachSlot(slotPath: string): void;
303
+ /**
304
+ * Whether `branch` exists at all, local or remote. T-8 point 7's ONLY way to tell "a hand-written
305
+ * `Done` with legitimately no PR" apart from "a hand-written `Done` whose PR GitHub has not
306
+ * reported merged": a branch that was never pushed can never have a PR either, so `false` here is
307
+ * what lets that task through untouched.
308
+ *
309
+ * OPTIONAL until `dispatch.ts`'s real `git` collaborator wires it: step 3b treats a missing
310
+ * `branchExists` as "no branch found", which is the same "leave it alone" outcome an unwired
311
+ * caller got before T-8 point 7 existed — never a revert nobody asked for.
312
+ */
313
+ branchExists?(branch: string): boolean;
314
+ /**
315
+ * `git branch -D <branch>` in the main checkout — T-8 point 5, called only once a task reaches
316
+ * `Done` within this pass. By that point the slot that held it has already released and detached
317
+ * (this pass's own step 1/2, or the close that finished it earlier), so the local ref has no
318
+ * worktree holding it and this cannot collide with git's "branch checked out elsewhere" refusal.
319
+ * Tolerant of an absent local ref — the common case for a task never checked out in the main
320
+ * checkout at all — never throws.
321
+ *
322
+ * OPTIONAL until wired: `cleanupBranchOnDone` calls it through optional chaining, so an unwired
323
+ * caller still gets the `Done` transition itself (step 3/5's own job) with no branch cleanup —
324
+ * never a crash on a collaborator method that does not exist yet.
325
+ */
326
+ deleteLocalBranch?(branch: string): void;
327
+ /**
328
+ * `git push origin --delete <branch>` — T-8 point 5's remote half. Returns the OUTCOME rather
329
+ * than swallowing it (defect 7, 2026-09-08): `already-gone` when the remote ref was already
330
+ * absent — GitHub's own "Automatically delete head branches" (enabled 2026-09-08) routinely
331
+ * beats this call to it, so that is the NORMAL case, not a failure — `deleted` when this call
332
+ * removed it, and `failed` for anything else (bad auth, a protected-branch rule, a network
333
+ * timeout): a REAL failure the caller must not silently count as cleanup. Never throws. OPTIONAL
334
+ * for the same reason as `deleteLocalBranch`; an unwired caller reports the same "cleaned up"
335
+ * outcome `cleanupBranchOnDone` gave before this outcome-returning contract existed.
336
+ */
337
+ deleteRemoteBranch?(branch: string): RemoteBranchDeleteResult;
338
+ /**
339
+ * The safety check `cleanupBranchOnDone` runs before EITHER delete — the remaining T-8 point 5
340
+ * data-loss path (2026-09-08). Two T-8 fixes already on this branch interact to open it: the
341
+ * recovery retry (step 0) and the dead-worker rescue (step 1) deliberately still push on a `gh`
342
+ * outage — `unknown` reads as "not confirmed merged" (see `isBranchConfirmedMerged`'s own JSDoc),
343
+ * because refusing to push on mere uncertainty risks losing the only copy of the work. When `gh`
344
+ * recovers and later reports the SAME branch's PR as `merged`, this pass used to delete both refs
345
+ * unconditionally — turning a rescue push that landed AFTER the merge into commits destroyed
346
+ * outright rather than merely stranded (the T-6.3 incident T-8 point 5 already cites, made
347
+ * worse instead of better by the branch-deletion it introduced).
348
+ *
349
+ * `baseRef` is `origin/<base>` from `guards.ts`'s `taskBaseBranch` — the SAME naming a subtask's
350
+ * scope check and PR diff already use. Comparing against a hand-rolled `main` would report every
351
+ * commit a subtask's PARENT branch already carries as this subtask's own extra work and refuse
352
+ * every subtask cleanup.
353
+ *
354
+ * `true` means "confirmed extra commits beyond `baseRef`, OR the comparison itself could not be
355
+ * trusted" — deletion is destructive, so both collapse to the same refusal; only a comparison
356
+ * that POSITIVELY confirms zero extra commits returns `false`. A branch with no surviving remote
357
+ * ref at all (already deleted — GitHub's own auto-delete, or an earlier pass) has nothing left to
358
+ * lose either way, and the real implementation reads that as `false` too: there is nothing to
359
+ * refuse.
360
+ *
361
+ * OPTIONAL until `dispatch.ts` wires a real implementation — but unlike `deleteLocalBranch`/
362
+ * `deleteRemoteBranch`, an unwired caller here must NOT silently fall back to the old
363
+ * unconditional-delete behaviour: `cleanupBranchOnDone` treats an absent method as `true`
364
+ * (refuse), the fail-safe default.
365
+ */
366
+ branchHasUnmergedCommits?(branch: string, baseRef: string): boolean;
367
+ }
368
+
369
+ export interface MaintenanceContext {
370
+ now: number;
371
+ /** Lock TTL in ms — a heartbeat older than this is treated as dead even with a live PID. */
372
+ ttlMs: number;
373
+ /**
374
+ * T-8 point 10's fourth orphan check, in ms — `lanes.json`'s `orphanInProgressThresholdHours`
375
+ * (default 4h) converted by the caller. It is the ONLY thing standing between this sweep and a
376
+ * live interactive session: a person working a task by hand leaves the exact same absence of
377
+ * lock, slot and attempt directory an abandoned task does, and survives only because working the
378
+ * task (writing notes, a plan, a comment) refreshes `updated_date`.
379
+ *
380
+ * `undefined` disables step 3c ENTIRELY rather than falling back to a hidden default: until
381
+ * `dispatch.ts` reads `lanes.json`'s new field and passes it here, no context in the codebase
382
+ * supplies one, and guessing a number would start blocking `In Progress` tasks in every OTHER
383
+ * caller's tests the moment this field shipped — a behaviour change nobody asked those callers
384
+ * to accept. A caller that wants the sweep MUST pass the real value explicitly.
385
+ *
386
+ * `0` is never a legal VALUE of this field (defect 12, 2026-09-08): `launch.ts`'s
387
+ * `resolveOrphanInProgressThresholdMs` is where a configured `0` hours (an operator's explicit
388
+ * "turn the sweep off") turns into `undefined` before it ever reaches this context — a bare `0`
389
+ * here would instead make step 3c the MOST aggressive setting possible (`ageMs <= 0` is false for
390
+ * any real task age), the opposite of what `0` is supposed to mean.
391
+ */
392
+ orphanInProgressThresholdMs?: number;
393
+ isPidAlive: (pid: number) => boolean;
394
+ /** A snapshot of every task on the board, as read for this pass. */
395
+ tasks: Task[];
396
+ /**
397
+ * Whether that snapshot is the WHOLE board. False when `backlog task list` failed outright, or
398
+ * when any single `task view` threw and its id was dropped (`dispatch.ts`'s `loadBoard`).
399
+ *
400
+ * It gates every inference this pass would otherwise draw from a task's ABSENCE. "Not on the
401
+ * board" means "a person deleted it" only when the board was read in full; on a partial read the
402
+ * same absence is a CLI failure, and step 4 reading it as a cancellation killed every live worker
403
+ * at once. Step 5 is skipped for the same reason from the other direction: a parent's state is
404
+ * derived from the full set of its children, and half a set derives a wrong answer confidently.
405
+ */
406
+ boardComplete: boolean;
407
+ fs: MaintenanceFs;
408
+ gh: MaintenanceGh;
409
+ backlog: MaintenanceBacklog;
410
+ git: MaintenanceGit;
411
+ killProcess: (pid: number) => void;
412
+ /** Desktop notification. Used only where the sweep gives up and needs a person to look. */
413
+ notify: (title: string, body: string) => void;
414
+ }
415
+
416
+ // ── Result ──────────────────────────────────────────────────────────────────────
417
+
418
+ export interface RecomputedParent {
419
+ id: string;
420
+ from: TaskStatus;
421
+ to: TaskStatus;
422
+ }
423
+
424
+ export interface MaintenanceResult {
425
+ releasedLocks: string[];
426
+ releasedOrphanSlots: string[];
427
+ movedToDone: string[];
428
+ cancelledWorkers: string[];
429
+ recomputedParents: RecomputedParent[];
430
+ committedBoard: boolean;
431
+ /** Slots whose pending push finally succeeded this pass, and were then released. */
432
+ recoveredPushes: string[];
433
+ /** Slots left held because their work could not be pushed — never reassigned until it is. */
434
+ heldForRecovery: string[];
435
+ /** Tasks whose push retries hit `MAX_RECOVERY_ATTEMPTS` this pass: a person must rescue them. */
436
+ exhaustedRecoveries: string[];
437
+ /**
438
+ * T-8 point 5: tasks whose `task/<id>` branch this pass deleted (local, then remote) on reaching
439
+ * `Done`. Defect 7 (2026-09-08): this now means what it says — a task lands here only when the
440
+ * REMOTE half is confirmed gone (`deleted` or `already-gone`), never on a `failed` outcome from
441
+ * `MaintenanceGit.deleteRemoteBranch`. See `cleanupBranchOnDone`'s own JSDoc.
442
+ */
443
+ cleanedUpBranches: string[];
444
+ /**
445
+ * Tasks whose `task/<id>` branch this pass reached `Done` on but did NOT delete because it
446
+ * carries at least one commit not reachable from its base (or the check could not confirm
447
+ * otherwise) — the fourth outcome `MaintenanceGit.branchHasUnmergedCommits` exists for, distinct
448
+ * from both `cleanedUpBranches` (deleted, or already gone) and a genuine remote-delete FAILURE
449
+ * (logged via `console.error`, absent from every result array, same as before this check
450
+ * existed). A task lands here with a comment on the board naming the branch and its base, so a
451
+ * person can rescue the commits by hand.
452
+ */
453
+ branchCleanupRefused: string[];
454
+ /** T-8 point 7: hand-written `Done` tasks this pass reverted to `In Progress` because GitHub does not report their PR merged. */
455
+ revertedHandwrittenDone: string[];
456
+ /** T-8 point 10: orphan `In Progress` tasks this pass moved to `Blocked`. */
457
+ orphanInProgressBlocked: string[];
458
+ /**
459
+ * Defect 8 (2026-09-08): task ids whose recovery retry (step 0) or dead-worker rescue (step 1)
460
+ * this pass refused to push AT ALL because the branch's PR already reads `merged` — the SAME
461
+ * push gate `close.ts`'s `checkBranchNotMerged` (T-8 point 4) already applies before the
462
+ * close's own pushes, extended here to maintenance's two pushers. Pushing anyway would have
463
+ * landed commits nobody would ever look at (the branch's own PR already merged without them),
464
+ * and T-8 point 5 now deletes that branch once the task reaches `Done` — so a commit landed
465
+ * there is not merely stranded, it is destroyed (the T-6.3 incident this task cites). See
466
+ * `isBranchConfirmedMerged`'s own JSDoc for why `unknown` never lands a task here.
467
+ */
468
+ pushRefusedMergedBranches: string[];
469
+ /**
470
+ * The graph-holder task (step 5b) this pass WROTE a fresh dependency view to, or `null` when
471
+ * nothing needed writing: no holder on the board, the rendered view already matched the holder's
472
+ * description, the board read was incomplete, more than one task carries the label (see
473
+ * `graphHolderAmbiguous`), or the step itself threw (see `graphHolderRefreshError` to tell that
474
+ * last case apart from the rest).
475
+ */
476
+ graphHolderRefreshed: string | null;
477
+ /**
478
+ * Step 5b: ids of every task carrying `board:graph` when more than one did. Each one that does
479
+ * not already show the ambiguity notice gets it written — see `graph.ts`'s
480
+ * `ambiguousHolderNotice` — so this is populated even though `graphHolderRefreshed` stays `null`.
481
+ */
482
+ graphHolderAmbiguous: string[];
483
+ /**
484
+ * Set when step 5b's read or write collaborator threw. The pass still closes merged tasks,
485
+ * recomputes parents, commits pending board changes and selects a task regardless — a
486
+ * dependency-view refresh is never allowed to block the pass it rides along in.
487
+ */
488
+ graphHolderRefreshError: string | null;
489
+ /**
490
+ * The registry AFTER every release this pass performed. The caller must use THIS for slot
491
+ * acquisition: reading `slots.json` again before maintenance ran (or using the snapshot it was
492
+ * given) sees a slot as busy that this very pass just freed, so the task waits a whole interval
493
+ * for a slot that is already available.
494
+ */
495
+ slots: SlotRegistry;
496
+ }
497
+
498
+ const branchFor = (taskId: string): string => `task/${taskId}`;
499
+
500
+ /**
501
+ * How many times a pending push is retried before the sweep stops and hands the slot to a person.
502
+ * Three, matching the dispatch attempt cap: a push that failed three times is failing for a reason
503
+ * no further retry addresses, and retrying forever keeps one of three slots permanently out of the
504
+ * pool while saying nothing about it.
505
+ */
506
+ export const MAX_RECOVERY_ATTEMPTS = 3;
507
+
508
+ /**
509
+ * Builds the derivation tree `deriveParentStatus` expects, recursing into grandchildren.
510
+ *
511
+ * T-8: `tier` and `closeAttempted` are only meaningful for a node that IS a parent (non-empty
512
+ * `children`), so a leaf gets neither — `deriveParentStatus` never looks at them for a leaf either.
513
+ * `closeAttempted` is read from `fs.hasCloseAttemptBeenEnqueued` — the durable ENQUEUE-time marker
514
+ * (T-8 defect 3, 2026-09-08), not from `task.attempts > 0` (a count of `intento-N` directories
515
+ * `beginAttempt` creates LATE — after every guard, after `provisionSlot`, after `prepareSlot`,
516
+ * after `buildLaunch` — see `MaintenanceFs.hasCloseAttemptBeenEnqueued`'s own JSDoc for the four
517
+ * paths that left `attempts` at `0` forever under the old signal).
518
+ *
519
+ * Exported (defect 11, 2026-09-08): `dispatch.ts` builds the SAME tree, with the SAME `gh`/`fs`, to
520
+ * answer `prompt.ts`'s `isParentCloseAttempt` — see `parent.ts`'s `effectiveStatus` for why that
521
+ * question must go through this recursion rather than a child's literal board status.
522
+ */
523
+ export function toDerivationNode(
524
+ taskId: string,
525
+ tasksById: Record<string, Task>,
526
+ gh: Pick<MaintenanceGh, 'isPrMerged'>,
527
+ fs: Pick<MaintenanceFs, 'hasCloseAttemptBeenEnqueued'>,
528
+ ): ParentDerivationNode {
529
+ const children = Object.values(tasksById).filter((task) => task.parentId === taskId);
530
+ const own = tasksById[taskId];
531
+ if (children.length === 0) {
532
+ return { status: own.status };
533
+ }
534
+ return {
535
+ status: own.status,
536
+ children: children.map((child) => toDerivationNode(child.id, tasksById, gh, fs)),
537
+ ownPrMerged: gh.isPrMerged(branchFor(taskId)),
538
+ tier: own.tier,
539
+ closeAttempted: fs.hasCloseAttemptBeenEnqueued(taskId),
540
+ };
541
+ }
542
+
543
+ export interface RecomputeParentInput {
544
+ parentId: string;
545
+ /** The board snapshot, keyed by id — children are found by their `parentId`. */
546
+ tasksById: Record<string, Task>;
547
+ /**
548
+ * `isPrMerged` feeds `toDerivationNode`'s recursive tree (nested parents, unaffected by F1
549
+ * below); `mergedState` is what THIS parent's own merge state is decided from when every child is
550
+ * Done (F1, 2026-09-08). The two-line claim this JSDoc used to make — "only `isPrMerged` is used,
551
+ * the derivation never needs the branch's PR state text" — was wrong: `isPrMerged` collapses a
552
+ * genuine "not merged" and a `gh` outage (missing binary, expired token, network down) into the
553
+ * SAME `false` (see `MaintenanceGh.mergedState`'s own JSDoc for the identical trap step 3b was
554
+ * built to avoid), and when every child is Done, THIS parent's own merge state is the one thing
555
+ * standing between `Done` and a derived `In Progress`/`Queued` that differs from the board and
556
+ * therefore gets WRITTEN. `mergedState` is REQUIRED on `MaintenanceGh` (T-20 point 4): a caller
557
+ * with no way to answer it no longer type-checks, so the only `unknown` this function can ever
558
+ * see is a WIRED collaborator's honest answer to a real `gh` outage, never an omitted function.
559
+ */
560
+ /** `prNumber` (optional, like on `MaintenanceGh` itself) is T-68's addition — see `backlog`'s own JSDoc just below for why. */
561
+ gh: Pick<MaintenanceGh, 'isPrMerged' | 'mergedState' | 'prNumber'>;
562
+ /**
563
+ * `setStatus` moves the parent; `appendNotes`/`readNotes` are T-68's addition — a parent that
564
+ * reaches `Done` THROUGH this derivation (every child Done, own PR merged) carries the «Registro
565
+ * de ejecución» block exactly like a leaf task does (§12: "every task"), and this is the only
566
+ * place that transition is written, so it is the only place that can write it. `comment` is what
567
+ * a FAILED write falls back to (`writeExecutionRecordOnce` never blocks the transition) — the
568
+ * same port every other Blocked cause already posts through.
569
+ */
570
+ backlog: Pick<MaintenanceBacklog, 'setStatus' | 'appendNotes' | 'readNotes' | 'comment'>;
571
+ /**
572
+ * The durable "has rule 4 already fired for this parent, ever" signal (T-8 defect 3) — see
573
+ * `MaintenanceFs.hasCloseAttemptBeenEnqueued`'s own JSDoc. Required for the same reason
574
+ * `mergedState` now is: there is no safe "unwired" default here — defaulting to `false` would
575
+ * silently resurrect the bug this signal exists to close (every caller re-deriving `Queued`
576
+ * forever for a parent that already ran once).
577
+ *
578
+ * `attemptStreamOutcome`/`attemptReviewVerdict` are T-68 fix 3's addition, read only when this
579
+ * derivation is about to write `Done` — see `backlog`'s own JSDoc just above.
580
+ */
581
+ fs: Pick<
582
+ MaintenanceFs,
583
+ | 'hasCloseAttemptBeenEnqueued'
584
+ | 'markCloseAttemptEnqueued'
585
+ | 'attemptStreamOutcome'
586
+ | 'attemptReviewVerdict'
587
+ >;
588
+ }
589
+
590
+ /**
591
+ * Recomputes ONE parent's derived state and writes it only if it changed. Exported because the
592
+ * dispatch close's `recompute-parent` step needs it synchronously — a subtask that just finished
593
+ * must move its parent before anyone looks at the board, not on whatever pass comes next (spec:
594
+ * "Dispatch close ordering"). `runMaintenance`'s own step 5 is this same function over every
595
+ * parent, so the derivation has one implementation and one set of tests.
596
+ *
597
+ * F1 [BLOCKER], 2026-09-08: when every child is Done, `deriveParentStatus`'s rules 3/4/6 all key
598
+ * off whether THIS parent's own PR merged — the one case `toDerivationNode`'s `isPrMerged`-sourced
599
+ * `ownPrMerged` is unsafe for (see `RecomputeParentInput.gh`'s own JSDoc). So this function asks
600
+ * `mergedState` for THAT one branch, exactly once, only when it would actually be consulted, and
601
+ * bails entirely — `return null`, deriving nothing this pass, same as step 3b's own `unknown` skip
602
+ * — rather than let a two-state `false` read as "GitHub confirms not merged" and write a derived
603
+ * `In Progress` (or, worse, a Complex parent's `Queued`, burning the irreversible one-shot close-
604
+ * attempt marker) on top of a `Done` board is actually correct about.
605
+ */
606
+ export function recomputeParent(input: RecomputeParentInput): RecomputedParent | null {
607
+ const parentTask = input.tasksById[input.parentId];
608
+ if (!parentTask) {
609
+ return null; // a declared --parent id absent from this board snapshot: nothing to recompute.
610
+ }
611
+
612
+ const node = toDerivationNode(input.parentId, input.tasksById, input.gh, input.fs);
613
+ const children = node.children ?? [];
614
+
615
+ // Only the all-Done branch of `deriveParentStatus` (rules 3/4/6) ever reads `ownPrMerged` — every
616
+ // other outcome (Blocked, active, a Done/To-Do mix, all To Do) is decided by the children's
617
+ // statuses alone. So the merge-state question is asked, and can bail the WHOLE derivation, only
618
+ // when it would actually matter.
619
+ const allChildrenDone =
620
+ children.length > 0 && children.every((child) => effectiveStatus(child) === TASK_STATUS.DONE);
621
+ let ownPrMerged = node.ownPrMerged ?? false;
622
+ if (allChildrenDone) {
623
+ const mergeState = input.gh.mergedState(branchFor(input.parentId));
624
+ if (mergeState === PR_MERGE_STATE.UNKNOWN) {
625
+ return null; // gh outage: cannot tell "merged" from "not yet" — say nothing this pass.
626
+ }
627
+ ownPrMerged = mergeState === PR_MERGE_STATE.MERGED;
628
+ }
629
+
630
+ const newStatus = deriveParentStatus(
631
+ children,
632
+ ownPrMerged,
633
+ node.tier,
634
+ node.closeAttempted ?? false,
635
+ );
636
+
637
+ // F2 [MEDIUM], 2026-09-08: `TASK_STATUS.QUEUED` is returned by `deriveParentStatus` ONLY when
638
+ // rule 4 fires (the tri-state `closeAttempted` false-branch — rule 5 answers `null` instead when
639
+ // it is true), so this condition alone is rule 4 firing, independent of whether the board already
640
+ // reads `Queued`. The marker must be set THEN, not only when the write below actually happens: a
641
+ // person can set a Complex parent to `Queued` by hand while children are still running (the
642
+ // release flow, section 10 of the skill); once the last one finishes, rule 4 derives `Queued`
643
+ // again — same as the board — and skipping the marker here would leave it `false` even though the
644
+ // one automated close attempt this pass is ABOUT to consume just started. The next pass, reading
645
+ // that stale `false`, would then re-derive `Queued` on top of whatever the close attempt left
646
+ // behind (a live retry, or worse, a human-facing `Blocked` review), clobbering it.
647
+ if (newStatus === TASK_STATUS.QUEUED) {
648
+ input.fs.markCloseAttemptEnqueued(input.parentId);
649
+ }
650
+
651
+ if (newStatus === null || newStatus === parentTask.status) {
652
+ return null;
653
+ }
654
+
655
+ // T-68: a parent that reaches `Done` through THIS derivation gets the same «Registro de
656
+ // ejecución» block a leaf task gets from step 3 — before the transition, same as there. Also same
657
+ // as there: a failed write never blocks it (`writeExecutionRecordOnce`'s own JSDoc) — a parent
658
+ // withheld from `Done` here would re-derive the SAME "all children Done, PR merged" state every
659
+ // later pass with no way to fix it (this function's own no-op-on-no-change guard just above means
660
+ // a genuine retry never even reaches this line again), so the write is best-effort and the
661
+ // transition proceeds regardless.
662
+ if (newStatus === TASK_STATUS.DONE) {
663
+ writeExecutionRecordOnce(input, parentTask);
664
+ }
665
+
666
+ input.backlog.setStatus(input.parentId, newStatus);
667
+ return { id: input.parentId, from: parentTask.status, to: newStatus };
668
+ }
669
+
670
+ /**
671
+ * The `Blocked` comment a swept dead worker leaves behind: what happened, where the work is, and
672
+ * whether it survived — the three things a person needs before deciding to re-queue.
673
+ */
674
+ function deadWorkerComment(lock: DispatchLock, workSaved: boolean): string {
675
+ const pid = lock.workerPid ?? lock.pid;
676
+ return `el worker murió sin cerrar (pid ${pid}); rama ${lock.branch}; trabajo guardado: ${workSaved ? 'sí' : 'no'}`;
677
+ }
678
+
679
+ /**
680
+ * Defect 8 (2026-09-08): the SAME push gate `close.ts`'s `checkBranchNotMerged` (T-8 point 4)
681
+ * already applies before the close's own pushes, extended to maintenance's two other pushers — the
682
+ * recovery retry (step 0) and the dead-worker rescue (step 1). Neither consulted it before, so
683
+ * either could still land commits on a branch whose PR already merged; T-8 point 5 now deletes
684
+ * that branch once the task reaches `Done`, turning a stranded commit into a destroyed one (the
685
+ * T-6.3 incident this task cites).
686
+ *
687
+ * Reuses the SAME tri-state `mergedState` step 3b relies on (T-8 defect 1) rather than
688
+ * `isPrMerged`'s boolean, specifically so `unknown` (a `gh` outage — missing binary, expired
689
+ * token, network down) gets a DELIBERATE answer instead of collapsing into the same `false` a
690
+ * confirmed "not merged" gets. The answer for `unknown` is still "not confirmed merged" — i.e.
691
+ * this returns `false`, and the push proceeds — because both callers exist to RESCUE work that
692
+ * might otherwise be the only copy left: a dead worker's slot about to be released, or a WIP push
693
+ * that has already failed once. Refusing to push on a mere `gh` hiccup sacrifices that whole
694
+ * purpose for a maybe; the worst case of pushing under genuine uncertainty is a few commits that
695
+ * land on an already-merged branch and go unused (recoverable — they still exist, on the remote),
696
+ * while the worst case of refusing is the ONLY copy of the work never reaching the remote at all.
697
+ * Only a CONFIRMED `merged` answer blocks the push. `mergedState` is REQUIRED on `MaintenanceGh`
698
+ * (T-20 point 4, 2026-09-11): a caller with no way to answer this question no longer type-checks,
699
+ * so the only `unknown` this function can ever see is a WIRED collaborator's honest answer to a
700
+ * real outage — never an omitted function silently read as "not merged".
701
+ */
702
+ function isBranchConfirmedMerged(gh: Pick<MaintenanceGh, 'mergedState'>, branch: string): boolean {
703
+ return gh.mergedState(branch) === PR_MERGE_STATE.MERGED;
704
+ }
705
+
706
+ /**
707
+ * Defect 8's `Blocked` comment for the dead-worker rescue (step 1): unlike `deadWorkerComment`,
708
+ * the push was never attempted — pushing would have landed commits on a branch whose PR already
709
+ * merged, silently lost the moment T-8 point 5 deletes that branch. Names the branch and the slot
710
+ * so a person can decide by hand whether the unpushed work still matters.
711
+ */
712
+ function deadWorkerBranchAlreadyMergedComment(lock: DispatchLock): string {
713
+ const pid = lock.workerPid ?? lock.pid;
714
+ return (
715
+ `el worker murió sin cerrar (pid ${pid}); la PR de ${lock.branch} ya consta como mergeada, así ` +
716
+ 'que el trabajo pendiente en el slot NO se empujó (habría llegado después de la mergeada y se ' +
717
+ 'habría perdido en silencio al borrarse la rama — T-6.3). Revísalo a mano en el slot antes de liberarlo.'
718
+ );
719
+ }
720
+
721
+ /**
722
+ * Defect 8's comment for the recovery retry (step 0) when it stops for the same reason: the held
723
+ * WIP was never pushed because the branch's PR already merged, so retrying it again next pass would
724
+ * only repeat the same refusal. Names the branch and the slot path, same as the exhausted-retries
725
+ * comment just below.
726
+ */
727
+ function recoveryBranchAlreadyMergedComment(branch: string, slotPath: string): string {
728
+ return (
729
+ `recuperación del push detenida: la PR de ${branch} ya consta como mergeada, así que el WIP ` +
730
+ `pendiente en ${slotPath} no se empujó (habría llegado después de la mergeada y se habría ` +
731
+ 'perdido en silencio al borrarse la rama — T-6.3). Revísalo a mano.'
732
+ );
733
+ }
734
+
735
+ /**
736
+ * The three outcomes `cleanupBranchOnDone` can report — the safety check adds a genuine THIRD
737
+ * outcome, distinct from both success and a delete failure (see `MaintenanceResult
738
+ * .branchCleanupRefused`'s own JSDoc for what tells each apart in the result).
739
+ */
740
+ export const BRANCH_CLEANUP_OUTCOME = {
741
+ /** Both refs confirmed gone this pass, or already absent — `MaintenanceResult#cleanedUpBranches`. */
742
+ CLEANED: 'cleaned',
743
+ /**
744
+ * The branch carries commits beyond its base (or the check could not confirm otherwise): NEITHER
745
+ * ref was touched. `MaintenanceResult#branchCleanupRefused`.
746
+ */
747
+ REFUSED_UNMERGED_COMMITS: 'refused-unmerged-commits',
748
+ /**
749
+ * The safety check passed (the branch is confirmed clean) but the remote delete itself genuinely
750
+ * failed (bad auth, a protected-branch rule, a network timeout) — logged via `console.error`,
751
+ * absent from BOTH result arrays, exactly as an unconditional failure read before this check
752
+ * existed (defect 7, 2026-09-08).
753
+ */
754
+ DELETE_FAILED: 'delete-failed',
755
+ } as const;
756
+
757
+ export type BranchCleanupOutcome =
758
+ (typeof BRANCH_CLEANUP_OUTCOME)[keyof typeof BRANCH_CLEANUP_OUTCOME];
759
+
760
+ /**
761
+ * T-8 point 5: deletes the `task/<id>` branch once a task reaches `Done` WITHIN THIS PASS — local
762
+ * first, then the remote copy if GitHub's own "Automatically delete head branches" has not already
763
+ * removed it. Called from exactly two places, both a task's own transition TO `Done` (step 3's
764
+ * generic merged-PR check, and step 5's parent recomputation): never from a transition to
765
+ * `Blocked`, which is the whole point — a blocked task's branch is the only copy of the work a
766
+ * person will come back to.
767
+ *
768
+ * BEFORE touching either ref, verifies the branch carries nothing beyond `baseRef` (the remaining
769
+ * data-loss path this same point still had: a `gh`-outage rescue push landing WIP commits on a
770
+ * branch whose PR turns out already merged — see `MaintenanceGit.branchHasUnmergedCommits`'s own
771
+ * JSDoc for the full incident shape). A branch that fails that check is left ENTIRELY alone —
772
+ * neither `deleteLocalBranch` nor `deleteRemoteBranch` runs — and the caller reports
773
+ * `REFUSED_UNMERGED_COMMITS` rather than attempting a delete that would destroy the very commits a
774
+ * person needs to rescue.
775
+ *
776
+ * Only once the branch is confirmed clean does this call `deleteLocalBranch`/`deleteRemoteBranch`,
777
+ * returning whether the remote branch is CONFIRMED gone — `deleted` this pass, or already absent —
778
+ * so the caller can decide whether this task truly belongs in `cleanedUpBranches` (defect 7,
779
+ * 2026-09-08). A refused delete (bad auth, a protected-branch rule, a network timeout) used to be
780
+ * swallowed identically to the harmless "already gone" case and still counted as cleanup — leaving
781
+ * the remote ref alive with no log line and no way to tell from `MaintenanceResult` alone. An
782
+ * unwired `deleteRemoteBranch` (or a `deleteLocalBranch`-only collaborator) reports success here,
783
+ * matching this function's behavior before the outcome-returning contract existed.
784
+ */
785
+ function cleanupBranchOnDone(
786
+ taskId: string,
787
+ git: Pick<
788
+ MaintenanceGit,
789
+ 'deleteLocalBranch' | 'deleteRemoteBranch' | 'branchHasUnmergedCommits'
790
+ >,
791
+ baseRef: string,
792
+ ): BranchCleanupOutcome {
793
+ const branch = branchFor(taskId);
794
+ // Fail-safe default when unwired (see the method's own JSDoc): `true`, never the old
795
+ // unconditional-delete behaviour this check exists to replace.
796
+ const hasUnmergedCommits = git.branchHasUnmergedCommits?.(branch, baseRef) ?? true;
797
+ if (hasUnmergedCommits) {
798
+ console.error(
799
+ `maintenance.ts: task/${taskId} carries commits not reachable from ${baseRef}; leaving both ` +
800
+ 'refs alone for a person to rescue.',
801
+ );
802
+ return BRANCH_CLEANUP_OUTCOME.REFUSED_UNMERGED_COMMITS;
803
+ }
804
+ // Both methods are optional (see their own JSDoc): an unwired `git` collaborator still gets the
805
+ // `Done` transition itself, just no branch cleanup, rather than a crash on a missing method.
806
+ git.deleteLocalBranch?.(branch);
807
+ const remoteResult = git.deleteRemoteBranch?.(branch);
808
+ if (remoteResult === REMOTE_BRANCH_DELETE_RESULT.FAILED) {
809
+ console.error(
810
+ `maintenance.ts: git push origin --delete task/${taskId} failed; the remote branch is still alive.`,
811
+ );
812
+ return BRANCH_CLEANUP_OUTCOME.DELETE_FAILED;
813
+ }
814
+ return BRANCH_CLEANUP_OUTCOME.CLEANED;
815
+ }
816
+
817
+ /**
818
+ * `branchCleanupRefused`'s board comment: names the branch and the base it was compared against, so
819
+ * a person can rescue the commits without first working out where the dispatcher measured from.
820
+ */
821
+ function branchCleanupRefusedComment(branch: string, baseRef: string): string {
822
+ return (
823
+ `rama ${branch} NO borrada: conserva commits que no están en ${baseRef} (posible push de ` +
824
+ 'rescate sobre una PR ya mergeada — T-6.3). Revísala a mano antes de borrarla.'
825
+ );
826
+ }
827
+
828
+ /**
829
+ * T-8 point 7's revert comment: names the branch and the PR state GitHub reported, so a person can
830
+ * decide whether to re-merge, reopen, or abandon the work without opening GitHub first.
831
+ */
832
+ function revertedHandwrittenDoneComment(branch: string, prState: string | null): string {
833
+ const state = prState ?? 'sin PR';
834
+ return `Done escrito a mano revertido a In Progress: la rama ${branch} existe pero GitHub no reporta su PR como mergeada (estado: ${state}).`;
835
+ }
836
+
837
+ /**
838
+ * T-8 point 10's `Blocked` comment: names all four checks and their result, so the person releasing
839
+ * the task can act without investigating — the same reason `deadWorkerComment` above states what it
840
+ * found rather than just "dead worker".
841
+ */
842
+ function orphanInProgressComment(taskId: string, ageMs: number, thresholdMs: number): string {
843
+ const ageHours = (ageMs / 3_600_000).toFixed(1);
844
+ const thresholdHours = (thresholdMs / 3_600_000).toFixed(1);
845
+ return (
846
+ `In Progress huérfano: sin lock en .backlog/.dispatch/locks/, sin slot en slots.json, ` +
847
+ `sin carpeta de intento .backlog/.dispatch/${taskId}/, y con updated_date de hace ${ageHours}h ` +
848
+ `(umbral ${thresholdHours}h). Si era una sesión interactiva viva, corrígelo a mano y refresca la tarea.`
849
+ );
850
+ }
851
+
852
+ /** Header + body for the board commit. One line per transition in the body, header stays short. */
853
+ export function buildBoardCommitMessage(transitions: readonly string[]): string {
854
+ if (transitions.length === 0) {
855
+ return 'chore(backlog): sync board state (housekeeping)';
856
+ }
857
+ if (transitions.length === 1) {
858
+ return `chore(backlog): sync board state (${transitions[0]})`;
859
+ }
860
+ // commitlint caps the HEADER at 100 characters, and a pass that moved eight tasks would blow past
861
+ // it with a comma list — so the header counts, and the body enumerates.
862
+ return [
863
+ `chore(backlog): sync board state (${transitions.length} transitions)`,
864
+ '',
865
+ ...transitions,
866
+ ].join('\n');
867
+ }
868
+
869
+ /** The narrow slice `writeExecutionRecordOnce` needs — satisfied by a full `MaintenanceContext`, and by `RecomputeParentInput`'s own narrowed `backlog`/`fs`/`gh` once widened below. */
870
+ interface ExecutionRecordDeps {
871
+ backlog: Pick<MaintenanceBacklog, 'appendNotes' | 'readNotes' | 'comment'>;
872
+ fs: Pick<MaintenanceFs, 'attemptStreamOutcome' | 'attemptReviewVerdict'>;
873
+ gh: Pick<MaintenanceGh, 'prNumber'>;
874
+ }
875
+
876
+ /**
877
+ * The `Blocked`-comment-style message a person reads on the task when the record itself could not
878
+ * be written — the ONE signal a failed write leaves on the board. Names the skill's
879
+ * own manual template (§12) so the person filling it in by hand does not have to go hunting for it.
880
+ */
881
+ const executionRecordWriteFailureComment = (message: string): string =>
882
+ `No se pudo escribir el «Registro de ejecución» al pasar a Done: ${message}. Añádelo a mano con ` +
883
+ 'la plantilla de la sección 12 de .claude/skills/catalyst-backlog/SKILL.md.';
884
+
885
+ /**
886
+ * Writes the «Registro de ejecución» block (`close.ts`'s `buildExecutionRecordBlock`) once, BEFORE
887
+ * the caller's `setStatus(..., DONE, ...)` — so a SUCCESSFUL write lands on the board before the
888
+ * transition does. But this function NEVER throws, and a failed write never blocks the transition.
889
+ * Skipping the transition to retry later is a silent, permanent stall: `appendNotes` already retries
890
+ * through `withBoardWriteRetry` (6 tries, backoff), so a throw here is not transient, and a task kept
891
+ * out of `Done` keeps its attempt directory (the orphan sweep ignores it) and never reaches
892
+ * `cleanupBranchOnDone`. A confirmed merge is never held hostage to bookkeeping.
893
+ *
894
+ * On failure: logs, then posts EXACTLY ONE board comment through the same `comment`
895
+ * port every other Blocked cause already uses — sanitized through `close.ts`'s
896
+ * `sanitizeCommentBody` so a long error cannot blow the comment up — naming the gap and pointing at
897
+ * the skill's own manual template. If `comment` ITSELF throws, that is caught and logged too: this
898
+ * function's whole contract is "never throw", not "never fail".
899
+ *
900
+ * Reads the task's current notes first (§12.3's sentinel, enforced here via
901
+ * `hasExecutionRecordBlock` over `task-view.ts`'s `notesRegion`-scoped text) so a task an earlier
902
+ * pass already recorded — or this same task, were this ever called twice — is left untouched:
903
+ * idempotence lives in the heading itself, not in a second, parallel marker file. A task the write
904
+ * failed for is never revisited either, but for a DIFFERENT reason: it already left `In Progress`
905
+ * in the SAME pass (the caller proceeds to `setStatus` regardless), so step 3's own `status ===
906
+ * IN_PROGRESS` guard is what keeps the next pass from trying again — not anything in here.
907
+ */
908
+ function writeExecutionRecordOnce(deps: ExecutionRecordDeps, task: Task): void {
909
+ try {
910
+ if (hasExecutionRecordBlock(deps.backlog.readNotes(task.id))) {
911
+ return;
912
+ }
913
+ const attemptOutcomes: Array<string | null> = [];
914
+ const reviewVerdicts: Array<string | null> = [];
915
+ for (let attempt = 1; attempt <= task.attempts; attempt += 1) {
916
+ attemptOutcomes.push(deps.fs.attemptStreamOutcome(task.id, attempt));
917
+ reviewVerdicts.push(deps.fs.attemptReviewVerdict(task.id, attempt));
918
+ }
919
+ const sourcePath =
920
+ task.attempts > 0 ? `.backlog/.dispatch/${task.id}/intento-${task.attempts}` : null;
921
+ // Only asked when `attempts === 0` (never dispatched — a supervisada task closed by the SAME
922
+ // merged-PR path a headless one is) — an ordinary dispatched close has no use for it, so this
923
+ // skips the extra `gh` round-trip entirely for the common case. Both real call sites (step 3,
924
+ // `recomputeParent`) only ever reach this with a CONFIRMED merged PR, so a non-number answer
925
+ // here means "exists, but its number could not be read" — `'read-failed'`, never `null`
926
+ // (`close.ts`'s own `sourceLine` reads that as `desconocido`, not `sin evidencia`).
927
+ let prNumber: number | 'read-failed' | undefined;
928
+ if (task.attempts === 0) {
929
+ const prNumberResult = deps.gh.prNumber?.(branchFor(task.id)) ?? null;
930
+ prNumber = typeof prNumberResult === 'number' ? prNumberResult : 'read-failed';
931
+ }
932
+ deps.backlog.appendNotes(
933
+ task.id,
934
+ buildExecutionRecordBlock({
935
+ lane: task.lane,
936
+ attempts: task.attempts,
937
+ attemptOutcomes,
938
+ reviewVerdicts,
939
+ sourcePath,
940
+ prNumber,
941
+ }),
942
+ );
943
+ } catch (error) {
944
+ console.error(
945
+ `maintenance.ts: could not write the «Registro de ejecución» block for ${task.id}; the transition proceeds anyway, and a board comment records the gap:`,
946
+ error,
947
+ );
948
+ try {
949
+ deps.backlog.comment(
950
+ task.id,
951
+ sanitizeCommentBody(executionRecordWriteFailureComment(String(error))),
952
+ );
953
+ } catch (commentError) {
954
+ console.error(
955
+ `maintenance.ts: could not even POST the «Registro de ejecución» failure comment for ${task.id}:`,
956
+ commentError,
957
+ );
958
+ }
959
+ }
960
+ }
961
+
962
+ /**
963
+ * Runs the maintenance pass. Pure orchestration over injected collaborators — every mutation
964
+ * (removing a lock, releasing a slot, editing a task's status, committing the board) goes through
965
+ * `ctx`, so a caller building the real context wires real fs/git/gh/backlog, and a test wires
966
+ * recording fakes.
967
+ */
968
+ export function runMaintenance(ctx: MaintenanceContext): MaintenanceResult {
969
+ const registry = ctx.fs.readSlots();
970
+ let slots: SlotInfo[] = registry.slots;
971
+
972
+ // Every slot change is recorded as a TRANSFORM as well as applied to the local snapshot the rest
973
+ // of the pass decides on. The snapshot answers "what does this pass still have to do"; the
974
+ // transforms are replayed against the registry as it is at write time (see the single
975
+ // `updateSlots` call at the end), so a slot another pass touched meanwhile keeps its change.
976
+ const pendingTransforms: Array<(slots: SlotInfo[]) => SlotInfo[]> = [];
977
+ const applySlotChange = (transform: (slots: SlotInfo[]) => SlotInfo[]): void => {
978
+ pendingTransforms.push(transform);
979
+ slots = transform(slots);
980
+ };
981
+
982
+ const releaseSlotFor = (taskId: string): void => {
983
+ // Detach FIRST and eagerly, against the snapshot that still names the slot: the registry write
984
+ // is replayed at the end of the pass, and by then this entry no longer says where the work is.
985
+ const slotPath = slots.find((slot) => slot.taskId === taskId)?.path;
986
+ if (slotPath) {
987
+ ctx.git.detachSlot(slotPath);
988
+ }
989
+ applySlotChange((entries) => releaseSlotEntries(entries, taskId));
990
+ };
991
+ const holdForRecovery = (taskId: string): void => {
992
+ applySlotChange((entries) =>
993
+ entries.map((slot) => (slot.taskId === taskId ? { ...slot, heldForRecovery: true } : slot)),
994
+ );
995
+ };
996
+ const clearRecoveryHold = (slotName: string): void => {
997
+ applySlotChange((entries) =>
998
+ entries.map((slot) =>
999
+ slot.name === slotName ? { ...slot, heldForRecovery: false, recoveryAttempts: 0 } : slot,
1000
+ ),
1001
+ );
1002
+ };
1003
+ const countRecoveryAttempt = (slotName: string, attempts: number): void => {
1004
+ applySlotChange((entries) =>
1005
+ entries.map((slot) =>
1006
+ slot.name === slotName ? { ...slot, recoveryAttempts: attempts } : slot,
1007
+ ),
1008
+ );
1009
+ };
1010
+
1011
+ // `gh pr view`/`gh pr list` is a network round-trip per branch, and the same branch is asked
1012
+ // about by step 3, step 3b (point 7's revert check) and every parent derivation below. One answer
1013
+ // per branch per pass, for each of the two questions asked here — `prState` is asked at most once
1014
+ // per hand-written `Done`, so it is never worth caching and step 3b calls `ctx.gh.prState`
1015
+ // directly. `mergedState` joined this cache alongside `isPrMerged` for F1 (2026-09-08):
1016
+ // `recomputeParent` (step 5) now asks it for every all-Done parent, on top of whatever step 3/3b
1017
+ // already asked it for the SAME branch this same pass.
1018
+ const prMergedCache = new Map<string, boolean>();
1019
+ const mergeStateCache = new Map<string, PrMergeState>();
1020
+ const gh: Pick<MaintenanceGh, 'isPrMerged' | 'mergedState' | 'prNumber'> = {
1021
+ isPrMerged: (branch) => {
1022
+ const cached = prMergedCache.get(branch);
1023
+ if (cached !== undefined) {
1024
+ return cached;
1025
+ }
1026
+ const merged = ctx.gh.isPrMerged(branch);
1027
+ prMergedCache.set(branch, merged);
1028
+ return merged;
1029
+ },
1030
+ mergedState: (branch) => {
1031
+ const cached = mergeStateCache.get(branch);
1032
+ if (cached !== undefined) {
1033
+ return cached;
1034
+ }
1035
+ const state = ctx.gh.mergedState(branch);
1036
+ mergeStateCache.set(branch, state);
1037
+ return state;
1038
+ },
1039
+ // Uncached, unlike the two above: `writeExecutionRecordOnce` is the ONLY caller, at most once
1040
+ // per parent per pass (a supervisada parent, `attempts === 0`), so memoizing it would add a map
1041
+ // this pass almost never fills.
1042
+ prNumber: (branch) => ctx.gh.prNumber?.(branch) ?? null,
1043
+ };
1044
+
1045
+ const tasksById: Record<string, Task> = Object.fromEntries(
1046
+ ctx.tasks.map((task) => [task.id, task]),
1047
+ );
1048
+ const transitions: string[] = [];
1049
+
1050
+ // ── Step 0: retry the pushes a previous pass could not complete ──
1051
+ // Runs FIRST so a slot whose work finally reached the remote is available to this same pass's
1052
+ // task selection. A slot marked in THIS pass is not retried here — it just failed.
1053
+ const recoveredPushes: string[] = [];
1054
+ const exhaustedRecoveries: string[] = [];
1055
+ const pushRefusedMergedBranches: string[] = [];
1056
+ for (const slot of slots) {
1057
+ if (!slot.heldForRecovery || !slot.taskId) {
1058
+ continue;
1059
+ }
1060
+ const taskId = slot.taskId;
1061
+ const priorAttempts = slot.recoveryAttempts ?? 0;
1062
+ // Already given up on: a person owns this slot now, and retrying would only re-notify them.
1063
+ if (priorAttempts >= MAX_RECOVERY_ATTEMPTS) {
1064
+ continue;
1065
+ }
1066
+ // Defect 8: a branch whose PR already merged never gets retried — see `isBranchConfirmedMerged`
1067
+ // for why `unknown` does not land here, only a CONFIRMED merge. Marked exhausted immediately
1068
+ // (not incremented one attempt at a time) because a merge does not un-merge on the next pass —
1069
+ // reusing the SAME cap the comment/notify above it already guards against renotifying forever.
1070
+ if (isBranchConfirmedMerged(ctx.gh, branchFor(taskId))) {
1071
+ countRecoveryAttempt(slot.name, MAX_RECOVERY_ATTEMPTS);
1072
+ const comment = recoveryBranchAlreadyMergedComment(branchFor(taskId), slot.path);
1073
+ ctx.backlog.comment(taskId, comment);
1074
+ ctx.notify(`${taskId}: rama ya mergeada`, comment);
1075
+ pushRefusedMergedBranches.push(taskId);
1076
+ continue;
1077
+ }
1078
+ if (!ctx.git.saveWipAndPush(branchFor(taskId)).pushSucceeded) {
1079
+ const attempts = priorAttempts + 1;
1080
+ countRecoveryAttempt(slot.name, attempts);
1081
+ if (attempts >= MAX_RECOVERY_ATTEMPTS) {
1082
+ // The comment names the EXACT manual step, because nothing automatic will take this slot
1083
+ // back: the hold is what keeps the only copy of the work safe, and only a person clears it.
1084
+ const rescue =
1085
+ `recuperación del push agotada: rescata a mano la rama ${branchFor(taskId)} en ${slot.path}. ` +
1086
+ `Cuando la rama esté en el remoto, ejecuta \`pnpm backlog:dispatch -- --release-slot ${slot.name}\` ` +
1087
+ '(o borra `heldForRecovery` y `recoveryAttempts` de ese slot en `.backlog/.dispatch/slots.json`).';
1088
+ ctx.backlog.comment(taskId, rescue);
1089
+ ctx.notify(`${taskId}: rescate manual`, rescue);
1090
+ exhaustedRecoveries.push(taskId);
1091
+ }
1092
+ continue;
1093
+ }
1094
+ clearRecoveryHold(slot.name);
1095
+ releaseSlotFor(taskId);
1096
+
1097
+ // The recovered push is NEWS, not a decision. Re-asserting `Blocked` here would drag a task a
1098
+ // person already released (to `Queued`, or to `To Do` to work it by hand) straight back out of
1099
+ // the column they moved it to. Only a task still sitting in `Blocked` gets the status write —
1100
+ // and even then it is the same status, kept so the comment lands the same way it always has.
1101
+ const status = tasksById[taskId]?.status;
1102
+ const recovered = `push recuperado: ${branchFor(taskId)} ya está en el remoto.`;
1103
+ if (status === TASK_STATUS.BLOCKED) {
1104
+ ctx.backlog.setStatus(taskId, TASK_STATUS.BLOCKED, recovered);
1105
+ } else {
1106
+ ctx.backlog.comment(taskId, recovered);
1107
+ }
1108
+ recoveredPushes.push(taskId);
1109
+ }
1110
+
1111
+ // ── Step 1: sweep dead/expired locks, SAVING their work before releasing anything ──
1112
+ const releasedLocks: string[] = [];
1113
+ const heldForRecovery: string[] = [];
1114
+ const aliveLocksByTaskId = new Map<string, DispatchLock>();
1115
+ for (const lock of ctx.fs.readLocks()) {
1116
+ if (isLockAlive(lock, ctx.now, ctx.ttlMs, ctx.isPidAlive)) {
1117
+ aliveLocksByTaskId.set(lock.taskId, lock);
1118
+ continue;
1119
+ }
1120
+
1121
+ // An EXPIRED heartbeat whose worker is still running is a hung worker, not a dead one: kill it
1122
+ // first, or the sweep releases the slot out from under a process that keeps writing to it.
1123
+ const workerPid = lock.workerPid ?? lock.pid;
1124
+ if (ctx.isPidAlive(workerPid)) {
1125
+ ctx.killProcess(workerPid);
1126
+ }
1127
+
1128
+ // Defect 8: never push a dead worker's WIP onto a branch whose PR already merged — those
1129
+ // commits would land after the merge and be lost the moment T-8 point 5 deletes the branch.
1130
+ // The slot still holds the ONLY copy of the unpushed work, so it is held for recovery exactly
1131
+ // like a failed push, just without ever attempting one — see `isBranchConfirmedMerged` for why
1132
+ // `unknown` does not take this branch.
1133
+ if (isBranchConfirmedMerged(ctx.gh, lock.branch)) {
1134
+ ctx.fs.removeLock(lock.taskId);
1135
+ holdForRecovery(lock.taskId);
1136
+ heldForRecovery.push(lock.taskId);
1137
+ ctx.backlog.setStatus(
1138
+ lock.taskId,
1139
+ TASK_STATUS.BLOCKED,
1140
+ deadWorkerBranchAlreadyMergedComment(lock),
1141
+ );
1142
+ transitions.push(`${lock.taskId} -> ${TASK_STATUS.BLOCKED}`);
1143
+ if (tasksById[lock.taskId]) {
1144
+ tasksById[lock.taskId] = { ...tasksById[lock.taskId], status: TASK_STATUS.BLOCKED };
1145
+ }
1146
+ releasedLocks.push(lock.taskId);
1147
+ pushRefusedMergedBranches.push(lock.taskId);
1148
+ continue;
1149
+ }
1150
+
1151
+ // Save BEFORE releasing (design.md decision (k)): the slot is the only copy of this work.
1152
+ const { pushSucceeded } = ctx.git.saveWipAndPush(lock.branch);
1153
+ ctx.fs.removeLock(lock.taskId);
1154
+ if (pushSucceeded) {
1155
+ releaseSlotFor(lock.taskId);
1156
+ } else {
1157
+ holdForRecovery(lock.taskId);
1158
+ heldForRecovery.push(lock.taskId);
1159
+ }
1160
+ ctx.backlog.setStatus(lock.taskId, TASK_STATUS.BLOCKED, deadWorkerComment(lock, pushSucceeded));
1161
+ transitions.push(`${lock.taskId} -> ${TASK_STATUS.BLOCKED}`);
1162
+ if (tasksById[lock.taskId]) {
1163
+ tasksById[lock.taskId] = { ...tasksById[lock.taskId], status: TASK_STATUS.BLOCKED };
1164
+ }
1165
+ releasedLocks.push(lock.taskId);
1166
+ }
1167
+
1168
+ // ── Step 2: release orphan slots (occupied, but no lock survived step 1) ──
1169
+ const releasedOrphanSlots: string[] = [];
1170
+ for (const slot of slots) {
1171
+ // A `heldForRecovery` slot LOOKS orphaned (its lock is gone) but holds the only copy of work
1172
+ // that never reached the remote. Releasing it here would hand it to the next task, whose
1173
+ // `reset --hard` deletes that work.
1174
+ if (slot.taskId !== null && !slot.heldForRecovery && !aliveLocksByTaskId.has(slot.taskId)) {
1175
+ releasedOrphanSlots.push(slot.taskId);
1176
+ releaseSlotFor(slot.taskId);
1177
+ }
1178
+ }
1179
+
1180
+ // ── Step 3: merged PR -> Done ──
1181
+ // A task with an ALIVE lock is a live attempt, and this step is not its judge: a retry runs on the
1182
+ // same branch, so the PREVIOUS attempt's merged PR would declare the task Done mid-run — and step
1183
+ // 4 then reads `Done` as "not cancelled" and leaves the worker running against a closed task. Its
1184
+ // own close decides; the next pass sees the task once the lock is gone.
1185
+ // A partial board needs no guard here: this step iterates the tasks it READ, and each decision
1186
+ // rests on that task's own status plus its own PR — never on another task's absence.
1187
+ const movedToDone: string[] = [];
1188
+ const cleanedUpBranches: string[] = [];
1189
+ const branchCleanupRefused: string[] = [];
1190
+ for (const task of ctx.tasks) {
1191
+ if (aliveLocksByTaskId.has(task.id)) {
1192
+ continue;
1193
+ }
1194
+ if (task.status === TASK_STATUS.IN_PROGRESS && gh.isPrMerged(branchFor(task.id))) {
1195
+ // T-68: the record is written BEFORE the transition, so a successful block is on the board
1196
+ // before `Done` is — but the write NEVER blocks the transition itself (see
1197
+ // `writeExecutionRecordOnce`'s own JSDoc): a merged PR is a confirmed fact, and a task
1198
+ // withheld here would leave `In Progress` forever, invisible to the orphan sweep and to
1199
+ // `cleanupBranchOnDone` below. A failed write instead leaves ONE board comment and the pass
1200
+ // proceeds exactly as it would on a clean write.
1201
+ writeExecutionRecordOnce(ctx, task);
1202
+ ctx.backlog.setStatus(task.id, TASK_STATUS.DONE, 'PR mergeado: tarea completada.');
1203
+ movedToDone.push(task.id);
1204
+ transitions.push(`${task.id} -> ${TASK_STATUS.DONE}`);
1205
+ tasksById[task.id] = { ...task, status: TASK_STATUS.DONE };
1206
+ // T-8 point 5 — never reached on the Blocked path. Defect 7: only push it when the remote
1207
+ // half is CONFIRMED gone, not merely attempted. `taskBaseBranch` is the subtask's OWN base —
1208
+ // `task/<parentId>`, never `main` — the same naming `close.ts`'s PR diff already uses (T-14,
1209
+ // T-52).
1210
+ const baseRef = `origin/${taskBaseBranch(task)}`;
1211
+ const outcome = cleanupBranchOnDone(task.id, ctx.git, baseRef);
1212
+ if (outcome === BRANCH_CLEANUP_OUTCOME.CLEANED) {
1213
+ cleanedUpBranches.push(task.id);
1214
+ } else if (outcome === BRANCH_CLEANUP_OUTCOME.REFUSED_UNMERGED_COMMITS) {
1215
+ branchCleanupRefused.push(task.id);
1216
+ ctx.backlog.comment(task.id, branchCleanupRefusedComment(branchFor(task.id), baseRef));
1217
+ }
1218
+ }
1219
+ }
1220
+
1221
+ // ── Step 3b: a hand-written Done GitHub does not report merged is reverted ──
1222
+ // T-8 point 7, the mirror of step 3 in the opposite direction: step 3 moves `In Progress` to
1223
+ // `Done` on a merged PR; this catches a `Done` that arrived on the board ALREADY set — a person
1224
+ // wrote it by hand — and whose branch exists but whose PR GitHub does not (yet, or ever) report
1225
+ // merged. A task step 3 itself just moved to `Done` above skips here for free: `gh.isPrMerged`
1226
+ // is what put it there, so it reads `true` again and this loop leaves it alone.
1227
+ // A `Done` with NO branch at all is left untouched — that is a task finished by hand with nothing
1228
+ // for GitHub to report on, the legitimate case this step must never disturb.
1229
+ //
1230
+ // `ctx.git.branchExists` is OPTIONAL until `dispatch.ts` wires a real implementation — treated as
1231
+ // "no branch found" when absent, which is the exact same "leave it alone" outcome an unwired
1232
+ // caller got before this step existed (see the method's own JSDoc on `MaintenanceGit`).
1233
+ //
1234
+ // DESTRUCTIVE, unlike step 3: this is the ONLY place `gh.isPrMerged`'s boolean is unsafe to use
1235
+ // (T-8 defect 1, CRITICAL, 2026-09-08). `mergedState` — the tri-state `merged`/`not-merged`/
1236
+ // `unknown` — is what decides the revert; `unknown` (a `gh` outage: missing binary, expired
1237
+ // token, network failure) SKIPS rather than reverts, because reading it as `not-merged` used to
1238
+ // mass-revert every `Done` task with a surviving local branch on a single bad `gh` call. See
1239
+ // `MaintenanceGh.mergedState`'s own JSDoc for the full incident.
1240
+ const revertedHandwrittenDone: string[] = [];
1241
+ for (const task of Object.values(tasksById)) {
1242
+ if (task.status !== TASK_STATUS.DONE || aliveLocksByTaskId.has(task.id)) {
1243
+ continue;
1244
+ }
1245
+ const branch = branchFor(task.id);
1246
+ if (!(ctx.git.branchExists?.(branch) ?? false)) {
1247
+ continue; // no branch, no PR: legitimately done by hand (or `branchExists` is not wired yet).
1248
+ }
1249
+ const mergeState = ctx.gh.mergedState(branch);
1250
+ if (mergeState === PR_MERGE_STATE.UNKNOWN) {
1251
+ // `gh` could not actually answer (outage, missing binary, expired token) — the worst case of
1252
+ // skipping here is a stale `Done` re-checked on the NEXT pass, never a revert this pass cannot
1253
+ // actually justify.
1254
+ continue;
1255
+ }
1256
+ if (mergeState === PR_MERGE_STATE.MERGED) {
1257
+ continue; // the branch's PR IS merged — a person wrote Done ahead of step 3, correctly.
1258
+ }
1259
+ const comment = revertedHandwrittenDoneComment(branch, ctx.gh.prState?.(branch) ?? null);
1260
+ ctx.backlog.setStatus(task.id, TASK_STATUS.IN_PROGRESS, comment);
1261
+ transitions.push(`${task.id} -> ${TASK_STATUS.IN_PROGRESS}`);
1262
+ tasksById[task.id] = { ...task, status: TASK_STATUS.IN_PROGRESS };
1263
+ revertedHandwrittenDone.push(task.id);
1264
+ }
1265
+ // Read by step 3c immediately below (T-8 defect 2, HIGH, 2026-09-08): a task this SAME pass just
1266
+ // reverted here is not an orphan by any honest reading of "orphan", but its `updated_date` still
1267
+ // holds whatever value it had BEFORE the revert (Backlog.md stamps that on the NEXT edit, not
1268
+ // retroactively), so step 3c's age check would see it as stale and re-block it in the same pass —
1269
+ // two contradictory comments and a task that ends the pass in the wrong column. See the `Set`'s
1270
+ // one use below for the failure scenario this closes.
1271
+ const revertedThisPass = new Set(revertedHandwrittenDone);
1272
+
1273
+ // ── Step 3c: an orphan In Progress — no dispatch footprint at all — is blocked ──
1274
+ // T-8 point 10, measured against T-8 itself: a task set to `In Progress` BY HAND in an
1275
+ // interactive session that then ended leaves no lock, no slot, and no attempt directory behind —
1276
+ // today's sweep (step 1) iterates LOCKS, so a task like that is invisible to it. The age check
1277
+ // against `updated_date` is the ONLY defence against killing a LIVE interactive session, which
1278
+ // leaves the exact same absence of lock/slot/attempt-dir; it survives this sweep by refreshing
1279
+ // `updated_date` whenever it writes notes, a plan or a comment. All FOUR conditions must hold —
1280
+ // a live lock or a slot still claiming the task (even one held for recovery, whose lock step 1
1281
+ // already removed) is the dead-worker sweep's territory above, not this one's.
1282
+ //
1283
+ // The WHOLE step is gated on `orphanInProgressThresholdMs` being set, rather than falling back to
1284
+ // a hidden default: until `dispatch.ts` reads `lanes.json`'s new field and passes it through, this
1285
+ // sweep must behave EXACTLY as it did before T-8 point 10 existed for every caller that has not
1286
+ // wired it — see that field's own JSDoc on `MaintenanceContext`.
1287
+ const orphanInProgressBlocked: string[] = [];
1288
+ const orphanInProgressThresholdMs = ctx.orphanInProgressThresholdMs;
1289
+ if (orphanInProgressThresholdMs !== undefined) {
1290
+ for (const task of Object.values(tasksById)) {
1291
+ if (task.status !== TASK_STATUS.IN_PROGRESS || aliveLocksByTaskId.has(task.id)) {
1292
+ continue;
1293
+ }
1294
+ // A parent's status is DERIVED from its children (parent.ts), never written by hand, so it
1295
+ // can never be an orphan by this step's own definition — it will never carry a lock, a slot
1296
+ // or an attempt directory of its own. Without this guard, a Complex parent sitting `In
1297
+ // Progress` with a Done/To Do child mix (correct per parent.ts) gets blocked here on every
1298
+ // pass once its `updated_date` goes stale, since nothing about it ever refreshes that field.
1299
+ const hasChildren = Object.values(tasksById).some((candidate) => candidate.parentId === task.id);
1300
+ if (hasChildren) {
1301
+ continue;
1302
+ }
1303
+ if (revertedThisPass.has(task.id)) {
1304
+ // T-8 defect 2: measured failure scenario — a person pushes `task/T-20`, opens a PR, and
1305
+ // marks the task `Done` by hand at 09:00. A pass runs at 14:00. Step 3b reverts it to
1306
+ // `In Progress` (correct — AC7). Without this guard, step 3c then sees no lock, no slot, no
1307
+ // attempt directory and a 5-hour-old `updated_date` against a 4-hour threshold, and moves it
1308
+ // to `Blocked` in the SAME pass — the task ends the pass in the wrong column with two
1309
+ // contradictory comments. A task step 3b touched THIS pass gets one more pass to refresh
1310
+ // `updated_date` on its own (a live worker's heartbeat, or a person resuming it) before the
1311
+ // orphan check ever looks at it again.
1312
+ continue;
1313
+ }
1314
+ if (slots.some((slot) => slot.taskId === task.id)) {
1315
+ continue;
1316
+ }
1317
+ if (ctx.fs.hasAttemptDir?.(task.id) ?? false) {
1318
+ continue;
1319
+ }
1320
+ const ageMs = ctx.now - task.updatedAt;
1321
+ if (ageMs <= orphanInProgressThresholdMs) {
1322
+ continue; // could be a live interactive session refreshing updated_date as it works.
1323
+ }
1324
+
1325
+ const comment = orphanInProgressComment(task.id, ageMs, orphanInProgressThresholdMs);
1326
+ ctx.backlog.setStatus(task.id, TASK_STATUS.BLOCKED, comment);
1327
+ transitions.push(`${task.id} -> ${TASK_STATUS.BLOCKED}`);
1328
+ tasksById[task.id] = { ...task, status: TASK_STATUS.BLOCKED };
1329
+ orphanInProgressBlocked.push(task.id);
1330
+ }
1331
+ }
1332
+
1333
+ // ── Step 4: manual cancellation — save, THEN kill, THEN release ──
1334
+ const cancelledWorkers: string[] = [];
1335
+ for (const [taskId, lock] of aliveLocksByTaskId) {
1336
+ const task = tasksById[taskId];
1337
+ // Cancellation is an EXPLICIT human act: moving the task to `Blocked` or back to `To Do`, or
1338
+ // deleting it outright. Anything else — `Done` written by the merged-PR step above, a `Queued`
1339
+ // this pass has not dispatched yet, an `Unknown` the parser could not read — is not a request
1340
+ // to kill, and treating "not In Progress" as one killed healthy workers on a parse failure.
1341
+ // An ABSENT task is a deletion only on a board that was read in full — see `boardComplete`.
1342
+ const cancelled = task
1343
+ ? task.status === TASK_STATUS.BLOCKED || task.status === TASK_STATUS.TO_DO
1344
+ : ctx.boardComplete;
1345
+ if (!cancelled) {
1346
+ continue;
1347
+ }
1348
+ const { pushSucceeded } = ctx.git.saveWipAndPush(lock.branch);
1349
+ if (!pushSucceeded) {
1350
+ // Leave the worker running and the slot held: the next pass retries the push (design.md
1351
+ // decision (k) — never kill/release before the work is safely saved).
1352
+ continue;
1353
+ }
1354
+ ctx.killProcess(lock.workerPid ?? lock.pid);
1355
+ ctx.fs.removeLock(taskId);
1356
+ releaseSlotFor(taskId);
1357
+ cancelledWorkers.push(taskId);
1358
+ }
1359
+
1360
+ // ── Step 5: recompute every parent ──
1361
+ const recomputedParents: RecomputedParent[] = [];
1362
+ // Skipped WHOLE on a partial board: a derivation over an incomplete child set is not a smaller
1363
+ // answer, it is a wrong one (two children read `Done`, the third dropped and still running →
1364
+ // the parent moves to `Done`). The next pass, with a readable board, derives it correctly.
1365
+ const parentIds = ctx.boardComplete
1366
+ ? Array.from(
1367
+ new Set(ctx.tasks.filter((task) => task.parentId).map((task) => task.parentId as string)),
1368
+ ).sort()
1369
+ : [];
1370
+ if (!ctx.boardComplete) {
1371
+ console.warn(
1372
+ 'maintenance.ts: the board came back incomplete; skipping parent derivation and absence-based cancellation.',
1373
+ );
1374
+ }
1375
+ for (const parentId of parentIds) {
1376
+ const recomputed = recomputeParent({
1377
+ parentId,
1378
+ tasksById,
1379
+ gh,
1380
+ backlog: ctx.backlog,
1381
+ fs: ctx.fs,
1382
+ });
1383
+ if (recomputed) {
1384
+ recomputedParents.push(recomputed);
1385
+ transitions.push(`${parentId} -> ${recomputed.to}`);
1386
+ tasksById[parentId] = { ...tasksById[parentId], status: recomputed.to };
1387
+ if (recomputed.to === TASK_STATUS.DONE) {
1388
+ // T-8 point 5 applies here too: a parent that reaches Done because every child did, and
1389
+ // its own PR merged, gets the same branch cleanup a leaf task gets from step 3. Defect 7:
1390
+ // same "confirmed gone" condition as the leaf path above. The base is THIS parent's own
1391
+ // `parentId` (`task/<grandparentId>`, or `main`) — a parent can itself be a subtask.
1392
+ const baseRef = `origin/${taskBaseBranch(tasksById[parentId])}`;
1393
+ const outcome = cleanupBranchOnDone(parentId, ctx.git, baseRef);
1394
+ if (outcome === BRANCH_CLEANUP_OUTCOME.CLEANED) {
1395
+ cleanedUpBranches.push(parentId);
1396
+ } else if (outcome === BRANCH_CLEANUP_OUTCOME.REFUSED_UNMERGED_COMMITS) {
1397
+ branchCleanupRefused.push(parentId);
1398
+ ctx.backlog.comment(parentId, branchCleanupRefusedComment(branchFor(parentId), baseRef));
1399
+ }
1400
+ }
1401
+ }
1402
+ }
1403
+
1404
+ // ── Step 5b: refresh the graph-holder task ──
1405
+ // Placed AFTER step 5 (parent recompute) and BEFORE step 6 (board commit): rendering over
1406
+ // `tasksById` as step 5 left it means a parent that just became Done stops being an open
1407
+ // dependency in the SAME pass that closed it, and writing before the commit means the refresh
1408
+ // rides in the SAME `chore(backlog): sync board state` commit as whatever change caused it.
1409
+ let graphHolderRefreshed: string | null = null;
1410
+ let graphHolderAmbiguous: string[] = [];
1411
+ let graphHolderRefreshError: string | null = null;
1412
+ try {
1413
+ const board: Board = { tasksById, complete: ctx.boardComplete };
1414
+ const decision = decideGraphWrite(board, (id) => ctx.backlog.readDescription(id) ?? '');
1415
+ if (decision.kind === 'write') {
1416
+ ctx.backlog.setDescription(decision.id, decision.description);
1417
+ graphHolderRefreshed = decision.id;
1418
+ } else if (decision.kind === 'ambiguous') {
1419
+ graphHolderAmbiguous = decision.ids;
1420
+ // Each holder's write is independent: one throwing must not cost the other its notice, and
1421
+ // must not fail the whole step (`graphHolderRefreshError` stays reserved for a failure that
1422
+ // aborts step 5b entirely, not a single holder's write).
1423
+ for (const holderWrite of decision.writes) {
1424
+ try {
1425
+ ctx.backlog.setDescription(holderWrite.id, holderWrite.description);
1426
+ } catch (error) {
1427
+ console.error(
1428
+ `maintenance.ts: could not write the ambiguity notice to ${holderWrite.id}; continuing the pass:`,
1429
+ error,
1430
+ );
1431
+ }
1432
+ }
1433
+ console.warn(
1434
+ `maintenance.ts: more than one board:graph holder (${decision.ids.join(', ')}); the dependency view was not refreshed.`,
1435
+ );
1436
+ }
1437
+ // 'no-holder', 'unchanged' and 'incomplete' all mean nothing to write — the board that did
1438
+ // not change (design.md decision 5's own framing) costs nothing: no edit, no commit.
1439
+ } catch (error) {
1440
+ graphHolderRefreshError = error instanceof Error ? error.message : String(error);
1441
+ console.error('maintenance.ts: the graph-holder refresh failed; continuing the pass:', error);
1442
+ }
1443
+
1444
+ // ── Step 6: commit pending .backlog/** changes ──
1445
+ let committedBoard = false;
1446
+ if (ctx.git.hasPendingBacklogChanges()) {
1447
+ try {
1448
+ ctx.git.commitBacklogChanges(buildBoardCommitMessage(transitions));
1449
+ committedBoard = true;
1450
+ } catch (error) {
1451
+ // A rejected or conflicted board commit is a bookkeeping problem, not a reason to abandon the
1452
+ // sweep that already released slots and saved work: the next pass retries it.
1453
+ console.error('maintenance.ts: the board commit failed; continuing the pass:', error);
1454
+ }
1455
+ }
1456
+
1457
+ // One write for the whole pass, replaying this pass's own transforms onto the registry as it is
1458
+ // NOW rather than onto the snapshot read at the start.
1459
+ const finalRegistry = ctx.fs.updateSlots((current) => ({
1460
+ slots: pendingTransforms.reduce((entries, transform) => transform(entries), current.slots),
1461
+ }));
1462
+
1463
+ return {
1464
+ releasedLocks,
1465
+ releasedOrphanSlots,
1466
+ movedToDone,
1467
+ cancelledWorkers,
1468
+ recomputedParents,
1469
+ committedBoard,
1470
+ recoveredPushes,
1471
+ heldForRecovery,
1472
+ exhaustedRecoveries,
1473
+ cleanedUpBranches,
1474
+ branchCleanupRefused,
1475
+ revertedHandwrittenDone,
1476
+ orphanInProgressBlocked,
1477
+ pushRefusedMergedBranches,
1478
+ graphHolderRefreshed,
1479
+ graphHolderAmbiguous,
1480
+ graphHolderRefreshError,
1481
+ slots: finalRegistry,
1482
+ };
1483
+ }