@aurorajs.dev/catalyst-cli 1.0.2 → 1.1.3

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 (2655) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/generate/index.js +31 -0
  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 +4 -3
  24. package/dist/generator/domain/display-field.js +11 -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 +44 -16
  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 +68 -5
  39. package/dist/generator/domain/property-filters.js +97 -12
  40. package/dist/generator/domain/property-mappers.d.ts +67 -5
  41. package/dist/generator/domain/property-mappers.js +143 -59
  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 +55 -16
  45. package/dist/generator/domain/property-predicates.js +56 -17
  46. package/dist/generator/domain/property-validators.d.ts +20 -0
  47. package/dist/generator/domain/property-validators.js +66 -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 +103 -0
  54. package/dist/generator/domain/relations-builder.js +413 -0
  55. package/dist/generator/domain/schema-loader.js +65 -2
  56. package/dist/generator/domain/widget-type.d.ts +1 -0
  57. package/dist/generator/domain/widget-type.js +1 -0
  58. package/dist/generator/engine/code-writer/code-writer.d.ts +330 -23
  59. package/dist/generator/engine/code-writer/code-writer.js +959 -141
  60. package/dist/generator/engine/code-writer/drivers/import.driver.d.ts +22 -0
  61. package/dist/generator/engine/code-writer/drivers/import.driver.js +64 -0
  62. package/dist/generator/engine/code-writer/drivers/object.driver.d.ts +30 -0
  63. package/dist/generator/engine/code-writer/drivers/object.driver.js +58 -0
  64. package/dist/generator/engine/file-manager.d.ts +29 -2
  65. package/dist/generator/engine/file-manager.js +8 -2
  66. package/dist/generator/engine/file-writer.d.ts +3 -3
  67. package/dist/generator/engine/file-writer.js +58 -58
  68. package/dist/generator/engine/ignored-file.d.ts +6 -0
  69. package/dist/generator/engine/ignored-file.js +31 -0
  70. package/dist/generator/engine/lock-file.d.ts +36 -54
  71. package/dist/generator/engine/lock-file.js +74 -168
  72. package/dist/generator/engine/template-engine.js +9 -1
  73. package/dist/generator/handlers/back.handler.d.ts +45 -0
  74. package/dist/generator/handlers/back.handler.js +252 -59
  75. package/dist/generator/handlers/front.handler.d.ts +54 -0
  76. package/dist/generator/handlers/front.handler.js +247 -29
  77. package/dist/generator/handlers/handler-utils.js +2 -1
  78. package/dist/generator/packages/front-package-helpers.d.ts +8 -1
  79. package/dist/generator/packages/front-package-helpers.js +26 -5
  80. package/dist/generator/packages/installers/front/identity.js +8 -17
  81. package/dist/generator/packages/installers/front/queue-manager.d.ts +23 -0
  82. package/dist/generator/packages/installers/front/queue-manager.js +35 -0
  83. package/dist/generator/packages/installers/identity.js +4 -0
  84. package/dist/generator/packages/installers/queue-manager.js +2 -3
  85. package/dist/generator/utils/code-gen.d.ts +9 -2
  86. package/dist/generator/utils/code-gen.js +72 -26
  87. package/dist/generator/utils/mocker.js +19 -10
  88. package/dist/generator/utils/path-allowed.js +23 -2
  89. package/dist/generator/utils/relations-file.d.ts +127 -0
  90. package/dist/generator/utils/relations-file.js +248 -0
  91. package/dist/generator/utils/string-utils.d.ts +7 -0
  92. package/dist/generator/utils/string-utils.js +13 -0
  93. package/dist/origin/domain/actions.d.ts +13 -0
  94. package/dist/origin/domain/actions.js +13 -1
  95. package/dist/origin/domain/diff.js +9 -1
  96. package/dist/sheets/domain/auth.d.ts +15 -1
  97. package/dist/sheets/domain/auth.js +25 -2
  98. package/dist/sheets/domain/retry.d.ts +61 -0
  99. package/dist/sheets/domain/retry.js +76 -0
  100. package/dist/sheets/domain/types.d.ts +144 -2
  101. package/dist/sheets/domain/types.js +249 -12
  102. package/dist/sheets/sync/diff-engine.js +62 -5
  103. package/dist/sheets/sync/sheet-to-yaml.d.ts +20 -0
  104. package/dist/sheets/sync/sheet-to-yaml.js +139 -51
  105. package/dist/sheets/sync/yaml-to-sheet.d.ts +62 -0
  106. package/dist/sheets/sync/yaml-to-sheet.js +271 -29
  107. package/dist/sheets/transformers/property-transformer.js +60 -23
  108. package/dist/sheets/validators/schema-validator.js +54 -38
  109. package/dist/templates/ai/claude/.claude/settings.json +1 -4
  110. package/dist/templates/backend/application/.claude/skills/catalyst-backend-testing/SKILL.md +15 -6
  111. package/dist/templates/backend/application/.claude/skills/catalyst-cross-bounded-context-ports/SKILL.md +39 -9
  112. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/SKILL.md +68 -48
  113. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/references/field-schema-and-decorators.md +38 -20
  114. package/dist/templates/backend/application/.claude/skills/catalyst-field-schema/references/query-statement.md +194 -201
  115. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/SKILL.md +62 -60
  116. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/additional-apis-workflow.md +4 -4
  117. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/cli-first-workflow.md +17 -17
  118. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/create-handler.md +3 -3
  119. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/delete-handler.md +7 -7
  120. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/read-handler.md +27 -17
  121. package/dist/templates/backend/application/.claude/skills/catalyst-handler-composer/references/update-handler.md +34 -19
  122. package/dist/templates/backend/application/.claude/skills/catalyst-nestjs-primitives/SKILL.md +6 -4
  123. package/dist/templates/backend/application/.claude/skills/catalyst-nestjs-primitives/references/minimum-templates.md +1 -1
  124. package/dist/templates/backend/application/.claude/skills/catalyst-project-structure/SKILL.md +167 -246
  125. package/dist/templates/backend/application/.claude/skills/catalyst-provider-composition/SKILL.md +260 -0
  126. package/dist/templates/backend/application/.claude/skills/catalyst-schema-migrations/SKILL.md +215 -0
  127. package/dist/templates/backend/application/.claude/skills/catalyst-tools/SKILL.md +266 -0
  128. package/dist/templates/backend/application/CLAUDE.md +5 -1
  129. package/dist/templates/backend/application/README.md +6 -4
  130. package/dist/templates/backend/application/drizzle.config.ts +46 -0
  131. package/dist/templates/backend/application/eslint.config.mjs +54 -0
  132. package/dist/templates/backend/application/nest-cli.json +5 -0
  133. package/dist/templates/backend/application/package.json +25 -10
  134. package/dist/templates/backend/application/scripts/db/check.ts +80 -0
  135. package/dist/templates/backend/application/scripts/db/generate.ts +55 -0
  136. package/dist/templates/backend/application/scripts/db/migrate.ts +101 -0
  137. package/dist/templates/backend/application/scripts/iam/permissions-without-role.ts +177 -0
  138. package/dist/templates/backend/application/src/@aurora/core.module.ts +50 -30
  139. package/dist/templates/backend/application/src/@aurora/decorators/auth.decorator.ts +1 -4
  140. package/dist/templates/backend/application/src/@aurora/modules/authentication/authentication.module.ts +7 -2
  141. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/anonymous-account.ts +1 -0
  142. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/errors/index.ts +1 -0
  143. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/errors/token-issuance-disabled.error.ts +20 -0
  144. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/index.ts +1 -0
  145. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-cache-invalidator.port.ts +17 -0
  146. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-cache-invalidator.token.ts +1 -0
  147. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/account-loader.port.ts +29 -1
  148. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/authentication-strategy.port.ts +10 -1
  149. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/index.ts +2 -0
  150. package/dist/templates/backend/application/src/@aurora/modules/authentication/domain/ports/jwt-signer.port.ts +10 -1
  151. package/dist/templates/backend/application/src/@aurora/modules/authentication/index.ts +1 -0
  152. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/factory/authentication-strategy.factory.ts +6 -2
  153. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/guards/authorization-permissions.guard.ts +1 -2
  154. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/aurora-hub/aurora-hub-consumer.adapter.ts +17 -5
  155. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/authentication-cache-invalidator.adapter.spec.ts +56 -0
  156. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/authentication-cache-invalidator.adapter.ts +28 -0
  157. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/cache-key.ts +9 -0
  158. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/index.ts +11 -0
  159. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/anonymous-account-loader.adapter.spec.ts +1 -1
  160. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/jwt-signer.adapter.spec.ts +219 -22
  161. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/jwt-signer.adapter.ts +60 -10
  162. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/local-provider.adapter.spec.ts +156 -0
  163. package/dist/templates/backend/application/src/@aurora/modules/authentication/infrastructure/strategies/local-provider/local-provider.adapter.ts +28 -3
  164. package/dist/templates/backend/application/src/@aurora/modules/criteria/criteria-config.module.ts +15 -8
  165. package/dist/templates/backend/application/src/@aurora/modules/graphql/core.graphql +197 -252
  166. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/event-dispatcher.spec.ts +175 -0
  167. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/event-dispatcher.ts +37 -0
  168. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/handler-registry.module.ts +24 -0
  169. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/handler.decorator.ts +21 -0
  170. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/index.ts +4 -0
  171. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/keyed-handler-registry.spec.ts +171 -0
  172. package/dist/templates/backend/application/src/@aurora/modules/handler-registry/keyed-handler-registry.ts +46 -0
  173. package/dist/templates/backend/application/src/@aurora/modules/health/app-version.provider.spec.ts +65 -0
  174. package/dist/templates/backend/application/src/@aurora/modules/health/app-version.provider.ts +112 -0
  175. package/dist/templates/backend/application/src/@aurora/modules/health/health.controller.spec.ts +50 -0
  176. package/dist/templates/backend/application/src/@aurora/modules/health/health.controller.ts +33 -0
  177. package/dist/templates/backend/application/src/@aurora/modules/health/health.module.ts +20 -0
  178. package/dist/templates/backend/application/src/@aurora/modules/health/index.ts +3 -0
  179. package/dist/templates/backend/application/src/@aurora/modules/index.ts +4 -0
  180. package/dist/templates/backend/application/src/@aurora/modules/mailer/index.ts +1 -0
  181. package/dist/templates/backend/application/src/@aurora/modules/mailer/mailer-client.module.ts +2 -2
  182. package/dist/templates/backend/application/src/@aurora/modules/mailer/mailer-smtp-transport.service.ts +4 -2
  183. package/dist/templates/backend/application/src/@aurora/modules/report-engine/aurora-report.token.ts +11 -0
  184. package/dist/templates/backend/application/src/@aurora/modules/report-engine/execute-report.service.spec.ts +154 -0
  185. package/dist/templates/backend/application/src/@aurora/modules/report-engine/execute-report.service.ts +112 -0
  186. package/dist/templates/backend/application/src/@aurora/modules/report-engine/index.ts +82 -0
  187. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cardinality.guard.spec.ts +297 -0
  188. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cardinality.guard.ts +180 -0
  189. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.types.ts +409 -0
  190. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.validator.spec.ts +289 -0
  191. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-cube.validator.ts +98 -0
  192. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.preflight.spec.ts +241 -0
  193. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.provider.spec.ts +95 -0
  194. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.provider.ts +74 -0
  195. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-db-pool.token.ts +17 -0
  196. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-engine.module.spec.ts +120 -0
  197. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-engine.module.ts +106 -0
  198. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-preflight.service.ts +152 -0
  199. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-query.builder.spec.ts +448 -0
  200. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-query.builder.ts +319 -0
  201. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-registry.spec.ts +179 -0
  202. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-registry.ts +47 -0
  203. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-selection.validator.spec.ts +104 -0
  204. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-selection.validator.ts +64 -0
  205. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-tenant.scoper.spec.ts +232 -0
  206. package/dist/templates/backend/application/src/@aurora/modules/report-engine/report-tenant.scoper.ts +132 -0
  207. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/client-mode.spec.ts +156 -0
  208. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/client-mode.ts +93 -0
  209. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/server-mode.spec.ts +288 -0
  210. package/dist/templates/backend/application/src/@aurora/modules/report-engine/result-modes/server-mode.ts +254 -0
  211. package/dist/templates/backend/application/src/@aurora/services/index.ts +0 -1
  212. package/dist/templates/backend/application/src/@aurora/shared.module.ts +11 -9
  213. package/dist/templates/backend/application/src/@bridges/bridges.module.ts +39 -4
  214. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/index.ts +1 -0
  215. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/index.ts +2 -0
  216. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/production-planning-operator-account-reader.port.ts +29 -0
  217. package/dist/templates/backend/application/src/@bridges/production-planning/operator-account/ports/production-planning-operator-account-reader.token.ts +3 -0
  218. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/index.ts +1 -0
  219. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/storage-account-file-manager.adapter.spec.ts +89 -0
  220. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/adapters/storage-account-file-manager.adapter.ts +36 -0
  221. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/index.ts +1 -0
  222. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/index.ts +2 -0
  223. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/storage-account-file-manager.port.ts +47 -0
  224. package/dist/templates/backend/application/src/@bridges/storage-account/file-manager/ports/storage-account-file-manager.token.ts +1 -0
  225. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/index.ts +1 -0
  226. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/storage-account-signed-url.adapter.spec.ts +68 -0
  227. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/adapters/storage-account-signed-url.adapter.ts +37 -0
  228. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/index.ts +1 -0
  229. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/index.ts +2 -0
  230. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/storage-account-signed-url.port.ts +21 -0
  231. package/dist/templates/backend/application/src/@bridges/storage-account/signed-url/ports/storage-account-signed-url.token.ts +1 -0
  232. package/dist/templates/backend/application/src/@config/bullmq/index.ts +1 -0
  233. package/dist/templates/backend/application/src/@config/drizzle/aurora-drizzle-schema.spec.ts +251 -0
  234. package/dist/templates/backend/application/src/@config/drizzle/aurora-drizzle-schema.ts +353 -0
  235. package/dist/templates/backend/application/src/@config/drizzle/aurora-field-schemas.spec.ts +94 -0
  236. package/dist/templates/backend/application/src/@config/drizzle/aurora-field-schemas.ts +182 -0
  237. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations-journal.config.ts +31 -0
  238. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations.module.spec.ts +152 -0
  239. package/dist/templates/backend/application/src/@config/drizzle/drizzle-migrations.module.ts +84 -0
  240. package/dist/templates/backend/application/src/@config/drizzle/index.ts +3 -0
  241. package/dist/templates/backend/application/src/@config/index.ts +4 -0
  242. package/dist/templates/backend/application/src/@config/lang/index.ts +1 -0
  243. package/dist/templates/backend/application/src/@config/lang/lang.providers.ts +26 -0
  244. package/dist/templates/backend/application/src/@config/mailer/mailer-transport.module.ts +4 -0
  245. package/dist/templates/backend/application/src/@config/storage-account/index.ts +1 -0
  246. package/dist/templates/backend/application/src/@config/storage-account/storage-account.providers.spec.ts +48 -0
  247. package/dist/templates/backend/application/src/@config/storage-account/storage-account.providers.ts +34 -0
  248. package/dist/templates/backend/application/src/app.module.ts +35 -3
  249. package/dist/templates/backend/application/src/database/migrations/0001_create_example_demo_table.sql +9 -0
  250. package/dist/templates/backend/application/src/database/migrations/0002_backfill_custom_field_group_entity_types.sql +19 -0
  251. package/dist/templates/backend/application/src/database/migrations/0003_create_production_order_header_code_sequence.sql +22 -0
  252. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705093120_baseline/migration.sql +503 -0
  253. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705093120_baseline/snapshot.json +6287 -0
  254. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705095048_gap-finder/migration.sql +482 -0
  255. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705095048_gap-finder/snapshot.json +12646 -0
  256. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705144001_gap-finder-fixes/migration.sql +38 -0
  257. package/dist/templates/backend/application/src/database/migrations/drizzle/20260705144001_gap-finder-fixes/snapshot.json +12853 -0
  258. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706090131_gap-finder-fx-normalization/migration.sql +17 -0
  259. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706090131_gap-finder-fx-normalization/snapshot.json +13090 -0
  260. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706102144_gap-finder-reported-currency/migration.sql +1 -0
  261. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706102144_gap-finder-reported-currency/snapshot.json +13103 -0
  262. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706104434_gap-finder-market-share-engine-version/migration.sql +4 -0
  263. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706104434_gap-finder-market-share-engine-version/snapshot.json +13123 -0
  264. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706121044_gap-finder-historical-price/migration.sql +17 -0
  265. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706121044_gap-finder-historical-price/snapshot.json +13357 -0
  266. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706143916_gap-finder-backtest-run-state-block/migration.sql +7 -0
  267. package/dist/templates/backend/application/src/database/migrations/drizzle/20260706143916_gap-finder-backtest-run-state-block/snapshot.json +13443 -0
  268. package/dist/templates/backend/application/src/database/migrations/drizzle/20260707080202_business-partner-portal/migration.sql +266 -0
  269. package/dist/templates/backend/application/src/database/migrations/drizzle/20260707080202_business-partner-portal/snapshot.json +17183 -0
  270. package/dist/templates/backend/application/src/database/migrations/drizzle/20260710072059_bpp-supplier-document-invoice-unique/migration.sql +18 -0
  271. package/dist/templates/backend/application/src/database/migrations/drizzle/20260710072059_bpp-supplier-document-invoice-unique/snapshot.json +17183 -0
  272. package/dist/templates/backend/application/src/database/migrations/drizzle/20260712072603_busy_mystique/migration.sql +177 -0
  273. package/dist/templates/backend/application/src/database/migrations/drizzle/20260712072603_busy_mystique/snapshot.json +19569 -0
  274. package/dist/templates/backend/application/src/database/migrations/drizzle/20260714215357_custom-fields/migration.sql +85 -0
  275. package/dist/templates/backend/application/src/database/migrations/drizzle/20260714215357_custom-fields/snapshot.json +20741 -0
  276. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715072820_gap-finder-source-registry-latency/migration.sql +1 -0
  277. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715072820_gap-finder-source-registry-latency/snapshot.json +20754 -0
  278. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715110357_gap-finder-peer-group-curation-reason/migration.sql +1 -0
  279. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715110357_gap-finder-peer-group-curation-reason/snapshot.json +20767 -0
  280. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715151843_add-common-lang/migration.sql +22 -0
  281. package/dist/templates/backend/application/src/database/migrations/drizzle/20260715151843_add-common-lang/snapshot.json +21066 -0
  282. package/dist/templates/backend/application/src/database/migrations/drizzle/20260716165704_add_pivot_table_equipment_process/migration.sql +8 -0
  283. package/dist/templates/backend/application/src/database/migrations/drizzle/20260716165704_add_pivot_table_equipment_process/snapshot.json +21089 -0
  284. package/dist/templates/backend/application/src/database/migrations/drizzle/20260717132829_common-country/migration.sql +42 -0
  285. package/dist/templates/backend/application/src/database/migrations/drizzle/20260717132829_common-country/snapshot.json +21661 -0
  286. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719084905_custom-field-group-label-i18n-embedded/migration.sql +5 -0
  287. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719084905_custom-field-group-label-i18n-embedded/snapshot.json +21661 -0
  288. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719175835_add-custom-field-group-entity-types/migration.sql +2 -0
  289. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719175835_add-custom-field-group-entity-types/snapshot.json +21695 -0
  290. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719235605_add-custom-field-entity-registry/migration.sql +13 -0
  291. package/dist/templates/backend/application/src/database/migrations/drizzle/20260719235605_add-custom-field-entity-registry/snapshot.json +21866 -0
  292. package/dist/templates/backend/application/src/database/migrations/drizzle/20260720094932_drop-custom-field-group-entity-pivot/migration.sql +1 -0
  293. package/dist/templates/backend/application/src/database/migrations/drizzle/20260720094932_drop-custom-field-group-entity-pivot/snapshot.json +21701 -0
  294. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722150640_close-labeli18n-rename-and-tag-index-drift/migration.sql +12 -0
  295. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722150640_close-labeli18n-rename-and-tag-index-drift/snapshot.json +21706 -0
  296. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722165358_normalize-legacy-index-names/migration.sql +470 -0
  297. package/dist/templates/backend/application/src/database/migrations/drizzle/20260722165358_normalize-legacy-index-names/snapshot.json +21767 -0
  298. package/dist/templates/backend/application/src/database/migrations/drizzle/20260728173835_drop-iam-tag-custom-field-value/migration.sql +1 -0
  299. package/dist/templates/backend/application/src/database/migrations/drizzle/20260728173835_drop-iam-tag-custom-field-value/snapshot.json +21391 -0
  300. package/dist/templates/backend/application/src/database/migrations/drizzle/20260804193217_align-custom-field-option-i18n/migration.sql +3 -0
  301. package/dist/templates/backend/application/src/database/migrations/drizzle/20260804193217_align-custom-field-option-i18n/snapshot.json +21394 -0
  302. package/dist/templates/backend/application/src/database/migrations/drizzle/20260818175624_drop-gap-finder-tables/migration.sql +46 -0
  303. package/dist/templates/backend/application/src/database/migrations/drizzle/20260818175624_drop-gap-finder-tables/snapshot.json +14170 -0
  304. package/dist/templates/backend/application/src/database/migrations/drizzle/20260822160309_rename-position-total-processed-weight/migration.sql +1 -0
  305. package/dist/templates/backend/application/src/database/migrations/drizzle/20260822160309_rename-position-total-processed-weight/snapshot.json +14172 -0
  306. package/dist/templates/backend/application/src/database/migrations/drizzle/20260830220002_add-impersonation-credential/migration.sql +32 -0
  307. package/dist/templates/backend/application/src/database/migrations/drizzle/20260830220002_add-impersonation-credential/snapshot.json +14204 -0
  308. package/dist/templates/backend/application/src/database/migrations/drizzle/20260902105452_mask-oauth-token-columns/migration.sql +2 -0
  309. package/dist/templates/backend/application/src/database/migrations/drizzle/20260902105452_mask-oauth-token-columns/snapshot.json +14204 -0
  310. package/dist/templates/backend/application/src/database/migrations/drizzle/20260903214717_add-biller-master-data-tables/migration.sql +145 -0
  311. package/dist/templates/backend/application/src/database/migrations/drizzle/20260903214717_add-biller-master-data-tables/snapshot.json +16167 -0
  312. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904195613_simplify-biller-tariff-model/migration.sql +42 -0
  313. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904195613_simplify-biller-tariff-model/snapshot.json +15944 -0
  314. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235448_add-biller-billing-run-pipeline/migration.sql +144 -0
  315. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235448_add-biller-billing-run-pipeline/snapshot.json +17910 -0
  316. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235725_add-biller-invoice-number-sequence/migration.sql +1 -0
  317. package/dist/templates/backend/application/src/database/migrations/drizzle/20260904235725_add-biller-invoice-number-sequence/snapshot.json +17921 -0
  318. package/dist/templates/backend/application/src/database/migrations/drizzle/20260905090449_make-remittance-run-index-non-unique/migration.sql +2 -0
  319. package/dist/templates/backend/application/src/database/migrations/drizzle/20260905090449_make-remittance-run-index-non-unique/snapshot.json +17921 -0
  320. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907223122_normalize-tools-native-enums/migration.sql +37 -0
  321. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907223122_normalize-tools-native-enums/snapshot.json +17921 -0
  322. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907224811_normalize-lacrem-native-enums/migration.sql +19 -0
  323. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907224811_normalize-lacrem-native-enums/snapshot.json +17921 -0
  324. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907225915_normalize-sap-integration-native-enums/migration.sql +58 -0
  325. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907225915_normalize-sap-integration-native-enums/snapshot.json +17921 -0
  326. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907231830_normalize-iam-native-enums/migration.sql +19 -0
  327. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907231830_normalize-iam-native-enums/snapshot.json +17921 -0
  328. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907232903_normalize-o-auth-native-enums/migration.sql +37 -0
  329. package/dist/templates/backend/application/src/database/migrations/drizzle/20260907232903_normalize-o-auth-native-enums/snapshot.json +17921 -0
  330. package/dist/templates/backend/application/src/database/migrations/drizzle/README.md +199 -0
  331. package/dist/templates/backend/application/src/database/procedures/calculate_order_total/1.sql +18 -0
  332. package/dist/templates/backend/application/src/database/procedures/production_planning_set_production_order_header_code/1.sql +38 -0
  333. package/dist/templates/backend/application/src/database/procedures/production_planning_set_production_order_position_code/1.sql +33 -0
  334. package/dist/templates/backend/application/src/database/procedures/production_planning_trg_set_production_order_header_code/1.sql +8 -0
  335. package/dist/templates/backend/application/src/database/procedures/production_planning_trg_set_production_order_position_code/1.sql +8 -0
  336. package/dist/templates/backend/application/src/main.ts +13 -6
  337. package/dist/templates/backend/application/test/app.e2e-spec.ts +18 -0
  338. package/dist/templates/backend/application/test/jest-e2e.json +3 -0
  339. package/dist/templates/backend/application/test/jest-global-setup.ts +15 -0
  340. package/dist/templates/backend/application/test/mocks/uuid.mock.ts +4 -1
  341. package/dist/templates/backend/application/tsconfig.json +7 -17
  342. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/authorization-code.module.ts +2 -2
  343. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/auth.controller.spec.ts +6 -8
  344. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/auth.controller.ts +1 -2
  345. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/controllers/index.ts +1 -0
  346. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/pkce/index.ts +2 -0
  347. package/dist/templates/backend/packages/authorization-code/src/@api/authorization-code/pkce/pkce-helpers.spec.ts +1 -3
  348. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-create-app.controller.ts +31 -0
  349. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-delete-app-by-id.controller.ts +32 -0
  350. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-find-app-by-id.controller.ts +31 -0
  351. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-find-app.controller.ts +33 -0
  352. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-get-apps.controller.ts +41 -0
  353. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-my-preferences-app.controller.ts +31 -0
  354. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-paginate-apps.controller.ts +32 -0
  355. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-save-my-launchpad-layout-app.controller.ts +41 -0
  356. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-toggle-favorite-app.controller.ts +34 -0
  357. package/dist/templates/backend/packages/hub/src/@api/hub/app/controllers/hub-update-app-by-id.controller.ts +32 -0
  358. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-app.dto.ts +114 -0
  359. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-create-app.dto.ts +85 -0
  360. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-update-app-by-id.dto.ts +78 -0
  361. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/hub-update-apps.dto.ts +78 -0
  362. package/dist/templates/backend/packages/hub/src/@api/hub/app/dto/index.ts +8 -0
  363. package/dist/templates/backend/packages/hub/src/@api/hub/app/graphql/hub-app.graphql +256 -0
  364. package/dist/templates/backend/packages/hub/src/@api/hub/app/index.ts +87 -0
  365. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-create-app.resolver.ts +27 -0
  366. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-delete-app-by-id.resolver.ts +28 -0
  367. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-find-app-by-id.resolver.ts +26 -0
  368. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-find-app.resolver.ts +26 -0
  369. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-get-apps.resolver.ts +33 -0
  370. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-my-preferences-app.resolver.ts +27 -0
  371. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-paginate-apps.resolver.ts +26 -0
  372. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-save-my-launchpad-layout-app.resolver.ts +34 -0
  373. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-toggle-favorite-app.resolver.ts +30 -0
  374. package/dist/templates/backend/packages/hub/src/@api/hub/app/resolvers/hub-update-app-by-id.resolver.ts +28 -0
  375. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-create-app-account.controller.ts +29 -0
  376. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-create-apps-accounts.controller.ts +30 -0
  377. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-delete-app-account-by-id.controller.ts +34 -0
  378. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-delete-apps-accounts.controller.ts +35 -0
  379. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-find-app-account-by-id.controller.ts +35 -0
  380. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-find-app-account.controller.ts +36 -0
  381. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-get-apps-accounts.controller.ts +36 -0
  382. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-paginate-apps-accounts.controller.ts +32 -0
  383. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/controllers/hub-update-app-account-by-id.controller.ts +33 -0
  384. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-app-account.dto.ts +58 -0
  385. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-create-app-account.dto.ts +44 -0
  386. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-update-app-account-by-id.dto.ts +44 -0
  387. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/hub-update-apps-accounts.dto.ts +44 -0
  388. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/dto/index.ts +8 -0
  389. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/graphql/hub-app-account.graphql +75 -0
  390. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/index.ts +81 -0
  391. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-create-app-account.resolver.ts +25 -0
  392. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-create-apps-accounts.resolver.ts +25 -0
  393. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-delete-app-account-by-id.resolver.ts +27 -0
  394. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-delete-apps-accounts.resolver.ts +26 -0
  395. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-find-app-account-by-id.resolver.ts +27 -0
  396. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-find-app-account.resolver.ts +26 -0
  397. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-get-apps-accounts.resolver.ts +26 -0
  398. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-paginate-apps-accounts.resolver.ts +26 -0
  399. package/dist/templates/backend/packages/hub/src/@api/hub/app-account/resolvers/hub-update-app-account-by-id.resolver.ts +26 -0
  400. package/dist/templates/backend/packages/hub/src/@api/hub/hub-per-app-permission.seeder.spec.ts +222 -0
  401. package/dist/templates/backend/packages/hub/src/@api/hub/hub-per-app-permission.seeder.ts +131 -0
  402. package/dist/templates/backend/packages/hub/src/@api/hub/hub.module.ts +34 -0
  403. package/dist/templates/backend/packages/hub/src/@api/hub/hub.seeder.ts +33 -0
  404. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.handler.spec.ts +504 -0
  405. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.handler.ts +234 -0
  406. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/create/hub-create-app.service.ts +19 -0
  407. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.handler.spec.ts +390 -0
  408. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.handler.ts +159 -0
  409. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/delete/hub-delete-app-by-id.service.ts +24 -0
  410. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.handler.spec.ts +99 -0
  411. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.handler.ts +32 -0
  412. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app-by-id.service.ts +20 -0
  413. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.handler.spec.ts +110 -0
  414. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.handler.ts +39 -0
  415. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/find/hub-find-app.service.ts +25 -0
  416. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.handler.spec.ts +275 -0
  417. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.handler.ts +80 -0
  418. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/get/hub-get-apps.service.ts +25 -0
  419. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/my-preferences/hub-my-preferences-app.handler.spec.ts +146 -0
  420. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/my-preferences/hub-my-preferences-app.handler.ts +38 -0
  421. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.handler.spec.ts +116 -0
  422. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.handler.ts +34 -0
  423. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/paginate/hub-paginate-apps.service.ts +25 -0
  424. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/save-my-launchpad-layout/hub-save-my-launchpad-layout-app.handler.spec.ts +355 -0
  425. 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
  426. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/toggle-favorite/hub-toggle-favorite-app.handler.spec.ts +193 -0
  427. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/toggle-favorite/hub-toggle-favorite-app.handler.ts +60 -0
  428. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.handler.spec.ts +255 -0
  429. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.handler.ts +78 -0
  430. package/dist/templates/backend/packages/hub/src/@app/hub/app/application/update/hub-update-app-by-id.service.ts +25 -0
  431. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/hub-app-permission.ts +18 -0
  432. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/hub-app.field-schema.ts +101 -0
  433. package/dist/templates/backend/packages/hub/src/@app/hub/app/domain/index.ts +2 -0
  434. package/dist/templates/backend/packages/hub/src/@app/hub/app/index.ts +79 -0
  435. package/dist/templates/backend/packages/hub/src/@app/hub/app/infrastructure/drizzle/hub-drizzle-app.repository.ts +43 -0
  436. package/dist/templates/backend/packages/hub/src/@app/hub/app/infrastructure/drizzle/hub-drizzle-app.schema.ts +40 -0
  437. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads-vs-relation-order.spec.ts +226 -0
  438. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads.function.spec.ts +73 -0
  439. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-sanitize-eager-loads.function.ts +27 -0
  440. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-validate-redirect-uri.function.spec.ts +41 -0
  441. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/hub-validate-redirect-uri.function.ts +49 -0
  442. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/functions/index.ts +2 -0
  443. package/dist/templates/backend/packages/hub/src/@app/hub/app/shared/index.ts +1 -0
  444. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-app-account.handler.ts +27 -0
  445. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-app-account.service.ts +25 -0
  446. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-apps-accounts.handler.ts +26 -0
  447. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/create/hub-create-apps-accounts.service.ts +19 -0
  448. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-app-account-by-id.handler.ts +40 -0
  449. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-app-account-by-id.service.ts +37 -0
  450. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-apps-accounts.handler.ts +33 -0
  451. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/delete/hub-delete-apps-accounts.service.ts +33 -0
  452. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account-by-id.handler.ts +32 -0
  453. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account-by-id.service.ts +29 -0
  454. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account.handler.ts +29 -0
  455. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/find/hub-find-app-account.service.ts +25 -0
  456. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/get/hub-get-apps-accounts.handler.ts +23 -0
  457. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/get/hub-get-apps-accounts.service.ts +25 -0
  458. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/paginate/hub-paginate-apps-accounts.handler.ts +23 -0
  459. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/paginate/hub-paginate-apps-accounts.service.ts +25 -0
  460. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/update/hub-update-app-account-by-id.handler.ts +64 -0
  461. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/application/update/hub-update-app-account-by-id.service.ts +33 -0
  462. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/domain/hub-app-account.field-schema.ts +53 -0
  463. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/domain/index.ts +1 -0
  464. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/index.ts +82 -0
  465. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/infrastructure/drizzle/hub-drizzle-app-account.repository.ts +40 -0
  466. package/dist/templates/backend/packages/hub/src/@app/hub/app-account/infrastructure/drizzle/hub-drizzle-app-account.schema.ts +17 -0
  467. package/dist/templates/backend/packages/hub/src/@app/hub/hub.relations.ts +23 -0
  468. package/dist/templates/backend/packages/hub/src/@app/hub/hub.seed.ts +117 -0
  469. package/dist/templates/backend/packages/hub/src/@app/hub/index.ts +21 -0
  470. package/dist/templates/backend/packages/hub/src/@bridges/providers/iam-bounded-context-writer.bridge.ts +8 -0
  471. package/dist/templates/backend/packages/hub/src/@bridges/providers/iam-permission-writer.bridge.ts +8 -0
  472. package/dist/templates/backend/packages/hub/src/@bridges/providers/o-auth-application-provisioner.bridge.ts +8 -0
  473. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-account-composite-key.e2e-spec.ts +297 -0
  474. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-deprovisioning.e2e-spec.ts +488 -0
  475. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-app-provisioning.e2e-spec.ts +366 -0
  476. package/dist/templates/backend/packages/hub/test/acceptance/hub/hub-per-app-access.e2e-spec.ts +672 -0
  477. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-check-password-me-account.controller.ts +1 -2
  478. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-count-account.controller.ts +32 -0
  479. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-create-account.controller.ts +2 -2
  480. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-delete-account-by-id.controller.ts +1 -2
  481. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-delete-accounts.controller.ts +3 -4
  482. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-find-account-by-id.controller.ts +1 -2
  483. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-find-account.controller.ts +3 -4
  484. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-get-accounts.controller.ts +3 -4
  485. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-me-account.controller.ts +2 -2
  486. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-paginate-accounts.controller.ts +3 -4
  487. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-paginate-with-tenant-constraint-accounts.controller.ts +1 -2
  488. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-account-by-id.controller.ts +9 -4
  489. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-accounts.controller.ts +1 -2
  490. package/dist/templates/backend/packages/iam/src/@api/iam/account/controllers/iam-update-me-account.controller.ts +1 -2
  491. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-account.dto.ts +1 -1
  492. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-create-account.dto.ts +1 -1
  493. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-update-account-by-id.dto.ts +1 -1
  494. package/dist/templates/backend/packages/iam/src/@api/iam/account/dto/iam-update-accounts.dto.ts +1 -1
  495. package/dist/templates/backend/packages/iam/src/@api/iam/account/graphql/iam-account.graphql +41 -39
  496. package/dist/templates/backend/packages/iam/src/@api/iam/account/index.ts +6 -0
  497. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-check-password-me-account.resolver.ts +1 -2
  498. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-count-account.resolver.ts +25 -0
  499. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-create-account.resolver.ts +2 -2
  500. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-delete-account-by-id.resolver.ts +1 -2
  501. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-delete-accounts.resolver.ts +1 -2
  502. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-find-account-by-id.resolver.ts +1 -2
  503. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-find-account.resolver.ts +1 -2
  504. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-get-accounts.resolver.ts +1 -2
  505. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-me-account.resolver.ts +2 -2
  506. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-paginate-accounts.resolver.ts +1 -2
  507. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-paginate-with-tenant-constraint-accounts.resolver.ts +1 -2
  508. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-account-by-id.resolver.ts +9 -4
  509. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-accounts.resolver.ts +1 -2
  510. package/dist/templates/backend/packages/iam/src/@api/iam/account/resolvers/iam-update-me-account.resolver.ts +1 -2
  511. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-delete-bounded-context-by-id.controller.ts +1 -2
  512. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-delete-bounded-contexts.controller.ts +3 -4
  513. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-find-bounded-context-by-id.controller.ts +1 -2
  514. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-find-bounded-context.controller.ts +3 -4
  515. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-get-bounded-contexts.controller.ts +3 -4
  516. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-paginate-bounded-contexts.controller.ts +3 -4
  517. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-update-bounded-context-by-id.controller.ts +1 -2
  518. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/controllers/iam-update-bounded-contexts.controller.ts +1 -2
  519. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/graphql/iam-bounded-context.graphql +24 -12
  520. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-delete-bounded-context-by-id.resolver.ts +1 -2
  521. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-delete-bounded-contexts.resolver.ts +1 -2
  522. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-find-bounded-context-by-id.resolver.ts +1 -2
  523. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-find-bounded-context.resolver.ts +1 -2
  524. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-get-bounded-contexts.resolver.ts +1 -2
  525. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-paginate-bounded-contexts.resolver.ts +1 -2
  526. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-update-bounded-context-by-id.resolver.ts +1 -2
  527. package/dist/templates/backend/packages/iam/src/@api/iam/bounded-context/resolvers/iam-update-bounded-contexts.resolver.ts +1 -2
  528. package/dist/templates/backend/packages/iam/src/@api/iam/iam-bootstrap.seeder.spec.ts +24 -0
  529. package/dist/templates/backend/packages/iam/src/@api/iam/iam-bootstrap.seeder.ts +22 -13
  530. package/dist/templates/backend/packages/iam/src/@api/iam/iam.module.ts +27 -7
  531. package/dist/templates/backend/packages/iam/src/@api/iam/iam.seeder.ts +4 -4
  532. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-delete-permission-by-id.controller.ts +1 -2
  533. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-delete-permissions.controller.ts +3 -4
  534. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-find-permission-by-id.controller.ts +1 -2
  535. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-find-permission.controller.ts +3 -4
  536. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-get-permissions.controller.ts +3 -4
  537. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-paginate-permissions.controller.ts +3 -4
  538. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-update-permission-by-id.controller.ts +1 -2
  539. package/dist/templates/backend/packages/iam/src/@api/iam/permission/controllers/iam-update-permissions.controller.ts +1 -2
  540. package/dist/templates/backend/packages/iam/src/@api/iam/permission/graphql/iam-permission.graphql +27 -15
  541. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-delete-permission-by-id.resolver.ts +1 -2
  542. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-delete-permissions.resolver.ts +1 -2
  543. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-find-permission-by-id.resolver.ts +1 -2
  544. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-find-permission.resolver.ts +1 -2
  545. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-get-permissions.resolver.ts +1 -2
  546. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-paginate-permissions.resolver.ts +1 -2
  547. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-update-permission-by-id.resolver.ts +1 -2
  548. package/dist/templates/backend/packages/iam/src/@api/iam/permission/resolvers/iam-update-permissions.resolver.ts +1 -2
  549. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-delete-permission-role-by-id.controller.ts +1 -2
  550. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-delete-permissions-roles.controller.ts +3 -4
  551. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-find-permission-role-by-id.controller.ts +1 -2
  552. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-find-permission-role.controller.ts +3 -4
  553. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-get-permissions-roles.controller.ts +3 -4
  554. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-paginate-permissions-roles.controller.ts +3 -4
  555. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-update-permission-role-by-id.controller.ts +1 -2
  556. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/controllers/iam-update-permissions-roles.controller.ts +1 -2
  557. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/graphql/iam-permission-role.graphql +21 -9
  558. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-delete-permission-role-by-id.resolver.ts +1 -2
  559. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-delete-permissions-roles.resolver.ts +1 -2
  560. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-find-permission-role-by-id.resolver.ts +1 -2
  561. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-find-permission-role.resolver.ts +1 -2
  562. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-get-permissions-roles.resolver.ts +1 -2
  563. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-paginate-permissions-roles.resolver.ts +1 -2
  564. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-update-permission-role-by-id.resolver.ts +1 -2
  565. package/dist/templates/backend/packages/iam/src/@api/iam/permission-role/resolvers/iam-update-permissions-roles.resolver.ts +1 -2
  566. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-delete-role-by-id.controller.ts +1 -2
  567. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-delete-roles.controller.ts +3 -4
  568. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-find-role-by-id.controller.ts +1 -2
  569. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-find-role.controller.ts +3 -4
  570. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-get-roles.controller.ts +3 -4
  571. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-inherit-permissions-role-role.controller.ts +1 -2
  572. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-paginate-roles.controller.ts +3 -4
  573. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-update-role-by-id.controller.ts +1 -2
  574. package/dist/templates/backend/packages/iam/src/@api/iam/role/controllers/iam-update-roles.controller.ts +1 -2
  575. package/dist/templates/backend/packages/iam/src/@api/iam/role/graphql/iam-role.graphql +28 -19
  576. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-delete-role-by-id.resolver.ts +1 -2
  577. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-delete-roles.resolver.ts +1 -2
  578. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-find-role-by-id.resolver.ts +1 -2
  579. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-find-role.resolver.ts +1 -2
  580. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-get-roles.resolver.ts +1 -2
  581. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-inherit-permissions-role-role.resolver.ts +1 -2
  582. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-paginate-roles.resolver.ts +1 -2
  583. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-update-role-by-id.resolver.ts +1 -2
  584. package/dist/templates/backend/packages/iam/src/@api/iam/role/resolvers/iam-update-roles.resolver.ts +1 -2
  585. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-delete-role-account-by-id.controller.ts +1 -2
  586. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-delete-roles-accounts.controller.ts +3 -4
  587. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-find-role-account-by-id.controller.ts +1 -2
  588. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-find-role-account.controller.ts +3 -4
  589. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-get-roles-accounts.controller.ts +3 -4
  590. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-paginate-roles-accounts.controller.ts +3 -4
  591. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-update-role-account-by-id.controller.ts +1 -2
  592. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/controllers/iam-update-roles-accounts.controller.ts +1 -2
  593. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/graphql/iam-role-account.graphql +29 -9
  594. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-delete-role-account-by-id.resolver.ts +1 -2
  595. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-delete-roles-accounts.resolver.ts +1 -2
  596. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-find-role-account-by-id.resolver.ts +1 -2
  597. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-find-role-account.resolver.ts +1 -2
  598. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-get-roles-accounts.resolver.ts +1 -2
  599. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-paginate-roles-accounts.resolver.ts +1 -2
  600. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-update-role-account-by-id.resolver.ts +1 -2
  601. package/dist/templates/backend/packages/iam/src/@api/iam/role-account/resolvers/iam-update-roles-accounts.resolver.ts +1 -2
  602. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-delete-tag-by-id.controller.ts +1 -2
  603. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-find-tag-by-id.controller.ts +1 -2
  604. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-find-tag.controller.ts +3 -4
  605. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-get-tags.controller.ts +3 -4
  606. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-paginate-tags.controller.ts +3 -4
  607. package/dist/templates/backend/packages/iam/src/@api/iam/tag/controllers/iam-update-tag-by-id.controller.ts +1 -2
  608. package/dist/templates/backend/packages/iam/src/@api/iam/tag/graphql/iam-tag.graphql +9 -9
  609. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-delete-tag-by-id.resolver.ts +1 -2
  610. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-find-tag-by-id.resolver.ts +1 -2
  611. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-find-tag.resolver.ts +1 -2
  612. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-get-tags.resolver.ts +1 -2
  613. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-paginate-tags.resolver.ts +1 -2
  614. package/dist/templates/backend/packages/iam/src/@api/iam/tag/resolvers/iam-update-tag-by-id.resolver.ts +1 -2
  615. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-delete-tenant-by-id.controller.ts +1 -2
  616. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-delete-tenants.controller.ts +3 -4
  617. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-find-tenant-by-id.controller.ts +1 -2
  618. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-find-tenant.controller.ts +3 -4
  619. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-get-tenants.controller.ts +3 -4
  620. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-get-with-tenant-constraint-tenants.controller.ts +1 -2
  621. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-paginate-tenants.controller.ts +3 -4
  622. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-paginate-with-tenant-constraint-tenants.controller.ts +1 -2
  623. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-update-tenant-by-id.controller.ts +1 -2
  624. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/controllers/iam-update-tenants.controller.ts +1 -2
  625. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/graphql/iam-tenant.graphql +33 -18
  626. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-delete-tenant-by-id.resolver.ts +1 -2
  627. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-delete-tenants.resolver.ts +1 -2
  628. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-find-tenant-by-id.resolver.ts +1 -2
  629. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-find-tenant.resolver.ts +1 -2
  630. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-get-tenants.resolver.ts +1 -2
  631. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-get-with-tenant-constraint-tenants.resolver.ts +1 -2
  632. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-paginate-tenants.resolver.ts +1 -2
  633. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-paginate-with-tenant-constraint-tenants.resolver.ts +1 -2
  634. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-update-tenant-by-id.resolver.ts +1 -2
  635. package/dist/templates/backend/packages/iam/src/@api/iam/tenant/resolvers/iam-update-tenants.resolver.ts +1 -2
  636. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-delete-tenant-account-by-id.controller.ts +1 -2
  637. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-delete-tenants-accounts.controller.ts +3 -4
  638. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-find-tenant-account-by-id.controller.ts +1 -2
  639. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-find-tenant-account.controller.ts +3 -4
  640. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-get-tenants-accounts.controller.ts +3 -4
  641. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-paginate-tenants-accounts.controller.ts +3 -4
  642. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-update-tenant-account-by-id.controller.ts +1 -2
  643. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/controllers/iam-update-tenants-accounts.controller.ts +1 -2
  644. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/graphql/iam-tenant-account.graphql +21 -9
  645. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-delete-tenant-account-by-id.resolver.ts +1 -2
  646. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-delete-tenants-accounts.resolver.ts +1 -2
  647. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-find-tenant-account-by-id.resolver.ts +1 -2
  648. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-find-tenant-account.resolver.ts +1 -2
  649. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-get-tenants-accounts.resolver.ts +1 -2
  650. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-paginate-tenants-accounts.resolver.ts +1 -2
  651. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-update-tenant-account-by-id.resolver.ts +1 -2
  652. package/dist/templates/backend/packages/iam/src/@api/iam/tenant-account/resolvers/iam-update-tenants-accounts.resolver.ts +1 -2
  653. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-count-user.controller.ts +32 -0
  654. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-delete-user-by-id.controller.ts +1 -2
  655. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-delete-users.controller.ts +3 -4
  656. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-find-user-by-id.controller.ts +1 -2
  657. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-find-user.controller.ts +3 -4
  658. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-forgot-password-user.controller.ts +1 -2
  659. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-get-users.controller.ts +3 -4
  660. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-paginate-users.controller.ts +3 -4
  661. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-reset-password-user.controller.ts +1 -2
  662. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-update-user-by-id.controller.ts +1 -2
  663. package/dist/templates/backend/packages/iam/src/@api/iam/user/controllers/iam-update-users.controller.ts +1 -2
  664. package/dist/templates/backend/packages/iam/src/@api/iam/user/graphql/iam-user.graphql +20 -18
  665. package/dist/templates/backend/packages/iam/src/@api/iam/user/index.ts +6 -0
  666. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-count-user.resolver.ts +25 -0
  667. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-delete-user-by-id.resolver.ts +1 -2
  668. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-delete-users.resolver.ts +1 -2
  669. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-find-user-by-id.resolver.ts +1 -2
  670. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-find-user.resolver.ts +1 -2
  671. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-forgot-password-user.resolver.ts +1 -2
  672. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-get-users.resolver.ts +1 -2
  673. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-paginate-users.resolver.ts +1 -2
  674. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-reset-password-user.resolver.ts +1 -2
  675. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-update-user-by-id.resolver.ts +1 -2
  676. package/dist/templates/backend/packages/iam/src/@api/iam/user/resolvers/iam-update-users.resolver.ts +1 -2
  677. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-password-me/iam-check-password-me-account.handler.ts +3 -5
  678. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-email/iam-check-unique-email-account.handler.spec.ts +75 -0
  679. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-email/iam-check-unique-email-account.handler.ts +4 -1
  680. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-username/iam-check-unique-username-account.handler.spec.ts +75 -0
  681. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/check-unique-username/iam-check-unique-username-account.handler.ts +4 -1
  682. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/count/iam-count-account.handler.ts +1 -2
  683. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/count/iam-count-account.service.ts +3 -4
  684. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.handler.spec.ts +41 -18
  685. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.handler.ts +23 -11
  686. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-account.service.ts +4 -3
  687. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-accounts.service.ts +4 -3
  688. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-account-by-id.handler.ts +1 -2
  689. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-account-by-id.service.ts +3 -4
  690. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-accounts.handler.ts +1 -2
  691. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/delete/iam-delete-accounts.service.ts +3 -4
  692. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account-by-id.handler.ts +1 -2
  693. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account-by-id.service.ts +3 -4
  694. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account.handler.ts +1 -2
  695. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/find/iam-find-account.service.ts +3 -4
  696. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/get/iam-get-accounts.handler.ts +1 -2
  697. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/get/iam-get-accounts.service.ts +3 -4
  698. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/me/iam-me-account.handler.ts +1 -1
  699. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate/iam-paginate-accounts.handler.ts +1 -2
  700. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate/iam-paginate-accounts.service.ts +3 -4
  701. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/paginate-with-tenant-constraint/iam-paginate-with-tenant-constraint-accounts.handler.ts +3 -5
  702. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.handler.spec.ts +94 -13
  703. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.handler.ts +60 -18
  704. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-account-by-id.service.ts +9 -6
  705. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.handler.spec.ts +216 -0
  706. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.handler.ts +87 -4
  707. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update/iam-update-accounts.service.ts +5 -5
  708. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/update-me/iam-update-me-account.handler.ts +3 -5
  709. package/dist/templates/backend/packages/iam/src/@app/iam/account/domain/iam-account.field-schema.ts +3 -3
  710. package/dist/templates/backend/packages/iam/src/@app/iam/account/index.ts +39 -37
  711. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/drizzle/iam-drizzle-account.repository.ts +144 -0
  712. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/drizzle/iam-drizzle-account.schema.ts +45 -0
  713. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/create/iam-create-bounded-context.service.ts +4 -3
  714. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/create/iam-create-bounded-contexts.service.ts +4 -3
  715. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-context-by-id.handler.ts +1 -2
  716. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-context-by-id.service.ts +3 -4
  717. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-contexts.handler.ts +1 -2
  718. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/delete/iam-delete-bounded-contexts.service.ts +3 -4
  719. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context-by-id.handler.ts +1 -2
  720. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context-by-id.service.ts +3 -4
  721. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context.handler.ts +1 -2
  722. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/find/iam-find-bounded-context.service.ts +3 -4
  723. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/get/iam-get-bounded-contexts.handler.ts +1 -2
  724. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/get/iam-get-bounded-contexts.service.ts +3 -4
  725. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/paginate/iam-paginate-bounded-contexts.handler.ts +1 -2
  726. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/paginate/iam-paginate-bounded-contexts.service.ts +3 -4
  727. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-context-by-id.handler.ts +7 -3
  728. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-context-by-id.service.ts +9 -6
  729. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-contexts.handler.ts +1 -2
  730. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/application/update/iam-update-bounded-contexts.service.ts +5 -5
  731. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/domain/iam-bounded-context.field-schema.ts +3 -3
  732. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/index.ts +32 -32
  733. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/drizzle/iam-drizzle-bounded-context.repository.ts +40 -0
  734. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/drizzle/iam-drizzle-bounded-context.schema.ts +30 -0
  735. package/dist/templates/backend/packages/iam/src/@app/iam/iam.relations.ts +116 -0
  736. package/dist/templates/backend/packages/iam/src/@app/iam/iam.seed.ts +45 -45
  737. package/dist/templates/backend/packages/iam/src/@app/iam/index.ts +20 -47
  738. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/create/iam-create-permission.service.ts +4 -3
  739. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/create/iam-create-permissions.service.ts +4 -3
  740. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permission-by-id.handler.ts +1 -2
  741. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permission-by-id.service.ts +3 -4
  742. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permissions.handler.ts +1 -2
  743. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/delete/iam-delete-permissions.service.ts +3 -4
  744. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission-by-id.handler.ts +1 -2
  745. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission-by-id.service.ts +3 -4
  746. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission.handler.ts +1 -2
  747. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/find/iam-find-permission.service.ts +3 -4
  748. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get/iam-get-permissions.handler.ts +1 -2
  749. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get/iam-get-permissions.service.ts +3 -4
  750. 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
  751. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/get-permissions-without-role/iam-get-permissions-without-role.handler.ts +73 -0
  752. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/paginate/iam-paginate-permissions.handler.ts +1 -2
  753. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/paginate/iam-paginate-permissions.service.ts +3 -4
  754. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permission-by-id.handler.ts +7 -3
  755. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permission-by-id.service.ts +9 -6
  756. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permissions.handler.ts +1 -2
  757. package/dist/templates/backend/packages/iam/src/@app/iam/permission/application/update/iam-update-permissions.service.ts +5 -5
  758. package/dist/templates/backend/packages/iam/src/@app/iam/permission/domain/iam-permission.field-schema.ts +3 -3
  759. package/dist/templates/backend/packages/iam/src/@app/iam/permission/index.ts +34 -32
  760. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/drizzle/iam-drizzle-permission.repository.ts +100 -0
  761. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/drizzle/iam-drizzle-permission.schema.ts +23 -0
  762. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/create/iam-create-permission-role.service.ts +6 -6
  763. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/create/iam-create-permissions-roles.service.ts +4 -3
  764. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permission-role-by-id.handler.ts +1 -2
  765. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permission-role-by-id.service.ts +3 -4
  766. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permissions-roles.handler.ts +1 -2
  767. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/delete/iam-delete-permissions-roles.service.ts +3 -4
  768. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role-by-id.handler.ts +1 -2
  769. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role-by-id.service.ts +3 -4
  770. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role.handler.ts +1 -2
  771. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/find/iam-find-permission-role.service.ts +3 -4
  772. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/get/iam-get-permissions-roles.handler.ts +1 -2
  773. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/get/iam-get-permissions-roles.service.ts +3 -4
  774. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/paginate/iam-paginate-permissions-roles.handler.ts +1 -2
  775. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/paginate/iam-paginate-permissions-roles.service.ts +3 -4
  776. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permission-role-by-id.handler.ts +7 -3
  777. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permission-role-by-id.service.ts +9 -6
  778. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permissions-roles.handler.ts +1 -2
  779. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/application/update/iam-update-permissions-roles.service.ts +5 -5
  780. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/index.ts +32 -32
  781. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/drizzle/iam-drizzle-permission-role.repository.ts +40 -0
  782. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/drizzle/iam-drizzle-permission-role.schema.ts +14 -0
  783. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/create/iam-create-role.service.ts +4 -3
  784. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/create/iam-create-roles.service.ts +4 -3
  785. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-role-by-id.handler.ts +1 -2
  786. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-role-by-id.service.ts +3 -4
  787. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-roles.handler.ts +1 -2
  788. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/delete/iam-delete-roles.service.ts +3 -4
  789. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role-by-id.handler.ts +1 -2
  790. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role-by-id.service.ts +3 -4
  791. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role.handler.ts +1 -2
  792. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/find/iam-find-role.service.ts +3 -4
  793. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/get/iam-get-roles.handler.ts +1 -2
  794. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/get/iam-get-roles.service.ts +3 -4
  795. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/inherit-permissions-role/iam-inherit-permissions-role-role.handler.ts +3 -5
  796. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/paginate/iam-paginate-roles.handler.ts +1 -2
  797. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/paginate/iam-paginate-roles.service.ts +3 -4
  798. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-role-by-id.handler.ts +7 -3
  799. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-role-by-id.service.ts +9 -6
  800. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-roles.handler.ts +1 -2
  801. package/dist/templates/backend/packages/iam/src/@app/iam/role/application/update/iam-update-roles.service.ts +5 -5
  802. package/dist/templates/backend/packages/iam/src/@app/iam/role/domain/iam-role.field-schema.ts +3 -3
  803. package/dist/templates/backend/packages/iam/src/@app/iam/role/index.ts +33 -33
  804. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/drizzle/iam-drizzle-role.repository.ts +149 -0
  805. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/drizzle/iam-drizzle-role.schema.ts +30 -0
  806. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/create/iam-create-role-account.service.ts +6 -6
  807. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/create/iam-create-roles-accounts.service.ts +4 -3
  808. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-role-account-by-id.handler.ts +1 -2
  809. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-role-account-by-id.service.ts +3 -4
  810. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-roles-accounts.handler.ts +1 -2
  811. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/delete/iam-delete-roles-accounts.service.ts +3 -4
  812. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account-by-id.handler.ts +1 -2
  813. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account-by-id.service.ts +3 -4
  814. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account.handler.ts +1 -2
  815. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/find/iam-find-role-account.service.ts +3 -4
  816. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/get/iam-get-roles-accounts.handler.ts +1 -2
  817. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/get/iam-get-roles-accounts.service.ts +3 -4
  818. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/paginate/iam-paginate-roles-accounts.handler.ts +1 -2
  819. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/paginate/iam-paginate-roles-accounts.service.ts +3 -4
  820. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-role-account-by-id.handler.ts +7 -3
  821. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-role-account-by-id.service.ts +9 -6
  822. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-roles-accounts.handler.ts +1 -2
  823. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/application/update/iam-update-roles-accounts.service.ts +5 -5
  824. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/index.ts +32 -32
  825. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/drizzle/iam-drizzle-role-account.repository.ts +40 -0
  826. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/drizzle/iam-drizzle-role-account.schema.ts +14 -0
  827. package/dist/templates/backend/packages/iam/src/@app/iam/shared/iam-bootstrap.constants.ts +20 -0
  828. package/dist/templates/backend/packages/iam/src/@app/iam/shared/index.ts +1 -0
  829. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/create/iam-create-tag.service.ts +4 -3
  830. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/delete/iam-delete-tag-by-id.handler.ts +1 -2
  831. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/delete/iam-delete-tag-by-id.service.ts +3 -4
  832. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag-by-id.handler.ts +1 -2
  833. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag-by-id.service.ts +6 -5
  834. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag.handler.ts +1 -2
  835. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/find/iam-find-tag.service.ts +6 -5
  836. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/get/iam-get-tags.handler.ts +1 -2
  837. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/get/iam-get-tags.service.ts +6 -5
  838. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/paginate/iam-paginate-tags.handler.ts +1 -2
  839. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/paginate/iam-paginate-tags.service.ts +6 -5
  840. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/update/iam-update-tag-by-id.handler.ts +7 -4
  841. package/dist/templates/backend/packages/iam/src/@app/iam/tag/application/update/iam-update-tag-by-id.service.ts +9 -6
  842. package/dist/templates/backend/packages/iam/src/@app/iam/tag/domain/iam-tag.field-schema.ts +3 -3
  843. package/dist/templates/backend/packages/iam/src/@app/iam/tag/index.ts +22 -22
  844. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/drizzle/iam-drizzle-tag.repository.ts +35 -0
  845. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/drizzle/iam-drizzle-tag.schema.ts +21 -0
  846. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenant.service.ts +4 -3
  847. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/create/iam-create-tenants.service.ts +4 -3
  848. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenant-by-id.handler.ts +1 -2
  849. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenant-by-id.service.ts +3 -4
  850. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenants.handler.ts +1 -2
  851. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/delete/iam-delete-tenants.service.ts +3 -4
  852. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant-by-id.handler.ts +1 -2
  853. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant-by-id.service.ts +3 -4
  854. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant.handler.ts +1 -2
  855. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/find/iam-find-tenant.service.ts +3 -4
  856. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get/iam-get-tenants.handler.ts +1 -2
  857. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get/iam-get-tenants.service.ts +3 -4
  858. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/get-with-tenant-constraint/iam-get-with-tenant-constraint-tenants.handler.ts +3 -5
  859. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate/iam-paginate-tenants.handler.ts +1 -2
  860. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate/iam-paginate-tenants.service.ts +3 -4
  861. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/paginate-with-tenant-constraint/iam-paginate-with-tenant-constraint-tenants.handler.ts +3 -5
  862. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenant-by-id.handler.ts +7 -3
  863. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenant-by-id.service.ts +9 -6
  864. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenants.handler.ts +1 -2
  865. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/application/update/iam-update-tenants.service.ts +5 -5
  866. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/domain/iam-tenant.field-schema.ts +3 -3
  867. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/index.ts +34 -34
  868. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/drizzle/iam-drizzle-tenant.repository.ts +102 -0
  869. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/drizzle/iam-drizzle-tenant.schema.ts +32 -0
  870. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenant-account.service.ts +6 -6
  871. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/create/iam-create-tenants-accounts.service.ts +4 -3
  872. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenant-account-by-id.handler.ts +1 -2
  873. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenant-account-by-id.service.ts +3 -4
  874. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenants-accounts.handler.ts +1 -2
  875. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/delete/iam-delete-tenants-accounts.service.ts +3 -4
  876. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account-by-id.handler.ts +1 -2
  877. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account-by-id.service.ts +3 -4
  878. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account.handler.ts +1 -2
  879. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/find/iam-find-tenant-account.service.ts +3 -4
  880. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/get/iam-get-tenants-accounts.handler.ts +1 -2
  881. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/get/iam-get-tenants-accounts.service.ts +3 -4
  882. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/paginate/iam-paginate-tenants-accounts.handler.ts +1 -2
  883. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/paginate/iam-paginate-tenants-accounts.service.ts +3 -4
  884. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenant-account-by-id.handler.ts +7 -3
  885. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenant-account-by-id.service.ts +9 -6
  886. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenants-accounts.handler.ts +1 -2
  887. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/application/update/iam-update-tenants-accounts.service.ts +5 -5
  888. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/index.ts +32 -32
  889. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/drizzle/iam-drizzle-tenant-account.repository.ts +40 -0
  890. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/drizzle/iam-drizzle-tenant-account.schema.ts +14 -0
  891. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/count/iam-count-user.handler.ts +2 -3
  892. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/count/iam-count-user.service.ts +3 -4
  893. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/create/iam-create-user.service.ts +4 -3
  894. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/create/iam-create-users.service.ts +4 -3
  895. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-user-by-id.handler.ts +3 -3
  896. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-user-by-id.service.ts +3 -4
  897. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-users.handler.ts +3 -3
  898. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/delete/iam-delete-users.service.ts +3 -4
  899. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-id.handler.ts +2 -3
  900. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-id.service.ts +3 -4
  901. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-username-password.service.spec.ts +20 -11
  902. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user-by-username-password.service.ts +23 -21
  903. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user.handler.ts +2 -3
  904. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/find/iam-find-user.service.ts +3 -4
  905. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/forgot-password/iam-forgot-password-user.handler.ts +3 -5
  906. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/get/iam-get-users.handler.ts +2 -3
  907. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/get/iam-get-users.service.ts +3 -4
  908. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/paginate/iam-paginate-users.handler.ts +2 -3
  909. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/paginate/iam-paginate-users.service.ts +3 -4
  910. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/reset-password/iam-reset-password-user.handler.ts +3 -5
  911. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-user-by-id.handler.ts +7 -3
  912. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-user-by-id.service.ts +9 -6
  913. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-users.handler.ts +3 -3
  914. package/dist/templates/backend/packages/iam/src/@app/iam/user/application/update/iam-update-users.service.ts +5 -5
  915. package/dist/templates/backend/packages/iam/src/@app/iam/user/domain/iam-user.field-schema.spec.ts +45 -0
  916. package/dist/templates/backend/packages/iam/src/@app/iam/user/domain/iam-user.field-schema.ts +5 -5
  917. package/dist/templates/backend/packages/iam/src/@app/iam/user/index.ts +45 -38
  918. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/drizzle/iam-drizzle-user.repository.ts +40 -0
  919. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/drizzle/iam-drizzle-user.schema.ts +42 -0
  920. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-loader.adapter.spec.ts +522 -0
  921. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-loader.adapter.ts +112 -18
  922. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-provisioner.adapter.spec.ts +261 -0
  923. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-account-provisioner.adapter.ts +115 -0
  924. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-operator-account-reader.adapter.spec.ts +63 -0
  925. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/iam-operator-account-reader.adapter.ts +39 -0
  926. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/adapters/index.ts +3 -0
  927. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/index.ts +1 -1
  928. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/iam-account-provisioner.port.ts +81 -0
  929. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/iam-account-provisioner.token.ts +1 -0
  930. package/dist/templates/backend/packages/iam/src/@bridges/iam/account/ports/index.ts +2 -0
  931. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-seeder.adapter.ts +1 -1
  932. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-writer.adapter.spec.ts +155 -0
  933. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/iam-bounded-context-writer.adapter.ts +75 -0
  934. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/adapters/index.ts +2 -0
  935. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/index.ts +1 -1
  936. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/iam-bounded-context-writer.port.ts +49 -0
  937. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/iam-bounded-context-writer.token.ts +1 -0
  938. package/dist/templates/backend/packages/iam/src/@bridges/iam/bounded-context/ports/index.ts +2 -0
  939. package/dist/templates/backend/packages/iam/src/@bridges/iam/client/index.ts +1 -0
  940. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-seeder.adapter.ts +1 -1
  941. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-writer.adapter.spec.ts +315 -0
  942. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/iam-permission-writer.adapter.ts +147 -0
  943. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/adapters/index.ts +2 -0
  944. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/index.ts +1 -1
  945. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/iam-permission-writer.port.ts +70 -0
  946. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/iam-permission-writer.token.ts +1 -0
  947. package/dist/templates/backend/packages/iam/src/@bridges/iam/permission/ports/index.ts +2 -0
  948. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/iam-tenant-writer.adapter.spec.ts +169 -0
  949. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/iam-tenant-writer.adapter.ts +57 -0
  950. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/adapters/index.ts +1 -0
  951. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/index.ts +1 -0
  952. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/iam-tenant-writer.port.ts +54 -0
  953. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/iam-tenant-writer.token.ts +1 -0
  954. package/dist/templates/backend/packages/iam/src/@bridges/iam/tenant/ports/index.ts +2 -0
  955. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/adapters/iam-credential-verifier.adapter.ts +1 -1
  956. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/adapters/index.ts +1 -0
  957. package/dist/templates/backend/packages/iam/src/@bridges/providers/account-loader.bridge.ts +2 -2
  958. package/dist/templates/backend/packages/iam/src/@bridges/providers/credential-verifier.bridge.ts +2 -2
  959. package/dist/templates/backend/packages/iam/src/@bridges/providers/iam-bounded-context-seeder.bridge.ts +2 -2
  960. package/dist/templates/backend/packages/iam/src/@bridges/providers/iam-permission-seeder.bridge.ts +2 -2
  961. package/dist/templates/backend/packages/iam/test/acceptance/iam/core-back-exception-status.e2e-spec.ts +304 -0
  962. package/dist/templates/backend/packages/iam/test/acceptance/iam/user-sensitive-fields-masking.e2e-spec.ts +297 -0
  963. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-count-access-token.controller.ts +32 -0
  964. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-delete-access-token-by-id.controller.ts +1 -2
  965. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-find-access-token-by-id.controller.ts +1 -2
  966. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-find-access-token.controller.ts +3 -4
  967. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-get-access-tokens.controller.ts +3 -4
  968. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/controllers/o-auth-paginate-access-tokens.controller.ts +3 -4
  969. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-access-token.dto.ts +1 -1
  970. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-create-access-token.dto.ts +1 -1
  971. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-update-access-token-by-id.dto.ts +1 -1
  972. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/dto/o-auth-update-access-tokens.dto.ts +1 -1
  973. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/graphql/o-auth-access-token.graphql +28 -14
  974. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/index.ts +6 -0
  975. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-count-access-token.resolver.ts +25 -0
  976. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-delete-access-token-by-id.resolver.ts +1 -2
  977. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-find-access-token-by-id.resolver.ts +1 -2
  978. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-find-access-token.resolver.ts +1 -2
  979. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-get-access-tokens.resolver.ts +1 -2
  980. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/access-token/resolvers/o-auth-paginate-access-tokens.resolver.ts +1 -2
  981. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-delete-application-by-id.controller.ts +1 -2
  982. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-find-application-by-id.controller.ts +1 -2
  983. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-find-application.controller.ts +3 -4
  984. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-get-applications.controller.ts +3 -4
  985. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-paginate-applications.controller.ts +3 -4
  986. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/controllers/o-auth-update-application-by-id.controller.ts +1 -2
  987. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-application.dto.ts +1 -1
  988. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-create-application.dto.ts +1 -1
  989. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-update-application-by-id.dto.ts +1 -1
  990. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/dto/o-auth-update-applications.dto.ts +1 -1
  991. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/graphql/o-auth-application.graphql +14 -14
  992. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-delete-application-by-id.resolver.ts +1 -2
  993. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-find-application-by-id.resolver.ts +1 -2
  994. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-find-application.resolver.ts +1 -2
  995. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-get-applications.resolver.ts +1 -2
  996. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-paginate-applications.resolver.ts +1 -2
  997. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application/resolvers/o-auth-update-application-by-id.resolver.ts +1 -2
  998. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-delete-application-client-by-id.controller.ts +1 -2
  999. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-delete-applications-clients.controller.ts +3 -4
  1000. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-find-application-client-by-id.controller.ts +1 -2
  1001. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-find-application-client.controller.ts +3 -4
  1002. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-get-applications-clients.controller.ts +3 -4
  1003. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-paginate-applications-clients.controller.ts +3 -4
  1004. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/controllers/o-auth-update-application-client-by-id.controller.ts +1 -2
  1005. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/graphql/o-auth-application-client.graphql +13 -10
  1006. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-delete-application-client-by-id.resolver.ts +1 -2
  1007. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-delete-applications-clients.resolver.ts +1 -2
  1008. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-find-application-client-by-id.resolver.ts +1 -2
  1009. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-find-application-client.resolver.ts +1 -2
  1010. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-get-applications-clients.resolver.ts +1 -2
  1011. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-paginate-applications-clients.resolver.ts +1 -2
  1012. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/application-client/resolvers/o-auth-update-application-client-by-id.resolver.ts +1 -2
  1013. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-delete-authorization-code-by-id.controller.ts +1 -2
  1014. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-delete-authorization-codes.controller.ts +3 -4
  1015. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-find-authorization-code-by-id.controller.ts +1 -2
  1016. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-find-authorization-code.controller.ts +3 -4
  1017. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-get-authorization-codes.controller.ts +3 -4
  1018. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-paginate-authorization-codes.controller.ts +3 -4
  1019. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/controllers/o-auth-update-authorization-code-by-id.controller.ts +1 -2
  1020. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/graphql/o-auth-authorization-code.graphql +26 -17
  1021. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-delete-authorization-code-by-id.resolver.ts +1 -2
  1022. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-delete-authorization-codes.resolver.ts +1 -2
  1023. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-find-authorization-code-by-id.resolver.ts +1 -2
  1024. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-find-authorization-code.resolver.ts +1 -2
  1025. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-get-authorization-codes.resolver.ts +1 -2
  1026. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-paginate-authorization-codes.resolver.ts +1 -2
  1027. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/authorization-code/resolvers/o-auth-update-authorization-code-by-id.resolver.ts +1 -2
  1028. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-delete-client-by-id.controller.ts +1 -2
  1029. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-find-client-by-id.controller.ts +1 -2
  1030. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-find-client.controller.ts +3 -4
  1031. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-get-clients.controller.ts +3 -4
  1032. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-paginate-clients.controller.ts +3 -4
  1033. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/controllers/o-auth-update-client-by-id.controller.ts +1 -2
  1034. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-client.dto.ts +0 -7
  1035. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-create-client.dto.ts +0 -7
  1036. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-update-client-by-id.dto.ts +0 -7
  1037. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/dto/o-auth-update-clients.dto.ts +0 -7
  1038. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/graphql/o-auth-client.graphql +25 -23
  1039. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-delete-client-by-id.resolver.ts +1 -2
  1040. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-find-client-by-id.resolver.ts +1 -2
  1041. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-find-client.resolver.ts +1 -2
  1042. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-get-clients.resolver.ts +1 -2
  1043. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-paginate-clients.resolver.ts +1 -2
  1044. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/client/resolvers/o-auth-update-client-by-id.resolver.ts +1 -2
  1045. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-find-credential-by-id.controller.ts +1 -2
  1046. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-find-credential.controller.ts +3 -4
  1047. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-get-credentials.controller.ts +3 -4
  1048. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/controllers/o-auth-paginate-credentials.controller.ts +3 -4
  1049. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/dto/o-auth-credential.dto.ts +16 -2
  1050. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/graphql/o-auth-credential.graphql +31 -6
  1051. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-find-credential-by-id.resolver.ts +1 -2
  1052. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-find-credential.resolver.ts +1 -2
  1053. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-get-credentials.resolver.ts +1 -2
  1054. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/credential/resolvers/o-auth-paginate-credentials.resolver.ts +1 -2
  1055. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-authorize.controller.spec.ts +22 -15
  1056. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-authorize.controller.ts +2 -6
  1057. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-impersonate-token.controller.ts +72 -0
  1058. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-token.controller.spec.ts +1 -1
  1059. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-create-token.controller.ts +2 -5
  1060. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-get-jwks.controller.spec.ts +1 -4
  1061. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-get-jwks.controller.ts +1 -4
  1062. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-logout.controller.spec.ts +38 -12
  1063. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-logout.controller.ts +2 -4
  1064. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-session.controller.spec.ts +1 -1
  1065. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/controllers/o-auth-session.controller.ts +1 -1
  1066. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/graphql/flows.graphql +32 -0
  1067. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/index.ts +10 -2
  1068. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-impersonate-token.resolver.ts +88 -0
  1069. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-token.resolver.spec.ts +3 -1
  1070. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-create-token.resolver.ts +4 -5
  1071. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-revoke-token.resolver.spec.ts +2 -0
  1072. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/flows/resolvers/o-auth-revoke-token.resolver.ts +3 -1
  1073. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth-bootstrap.seeder.spec.ts +98 -29
  1074. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth-bootstrap.seeder.ts +34 -19
  1075. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth.module.ts +6 -6
  1076. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/o-auth.seeder.ts +16 -5
  1077. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-delete-refresh-token-by-id.controller.ts +1 -2
  1078. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-find-refresh-token-by-id.controller.ts +1 -2
  1079. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-find-refresh-token.controller.ts +3 -4
  1080. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-get-refresh-tokens.controller.ts +3 -4
  1081. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/controllers/o-auth-paginate-refresh-tokens.controller.ts +3 -4
  1082. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-create-refresh-token.dto.ts +1 -1
  1083. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-refresh-token.dto.ts +1 -1
  1084. 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
  1085. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/dto/o-auth-update-refresh-tokens.dto.ts +1 -1
  1086. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/graphql/o-auth-refresh-token.graphql +23 -14
  1087. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-delete-refresh-token-by-id.resolver.ts +1 -2
  1088. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-find-refresh-token-by-id.resolver.ts +1 -2
  1089. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-find-refresh-token.resolver.ts +1 -2
  1090. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-get-refresh-tokens.resolver.ts +1 -2
  1091. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/refresh-token/resolvers/o-auth-paginate-refresh-tokens.resolver.ts +1 -2
  1092. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-delete-scope-by-id.controller.ts +1 -2
  1093. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-find-scope-by-id.controller.ts +1 -2
  1094. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-find-scope.controller.ts +3 -4
  1095. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-get-scopes.controller.ts +3 -4
  1096. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-paginate-scopes.controller.ts +3 -4
  1097. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/controllers/o-auth-update-scope-by-id.controller.ts +1 -2
  1098. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/graphql/o-auth-scope.graphql +25 -13
  1099. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-delete-scope-by-id.resolver.ts +1 -2
  1100. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-find-scope-by-id.resolver.ts +1 -2
  1101. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-find-scope.resolver.ts +1 -2
  1102. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-get-scopes.resolver.ts +1 -2
  1103. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-paginate-scopes.resolver.ts +1 -2
  1104. package/dist/templates/backend/packages/o-auth/src/@api/o-auth/scope/resolvers/o-auth-update-scope-by-id.resolver.ts +1 -2
  1105. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/count/o-auth-count-access-token.handler.ts +20 -0
  1106. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/count/o-auth-count-access-token.service.ts +24 -0
  1107. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/create/o-auth-create-access-token.service.ts +4 -3
  1108. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/delete/o-auth-delete-access-token-by-id.handler.ts +3 -6
  1109. 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
  1110. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token-by-id.handler.ts +2 -3
  1111. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token-by-id.service.ts +6 -5
  1112. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token.handler.ts +2 -3
  1113. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/find/o-auth-find-access-token.service.ts +6 -5
  1114. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/get/o-auth-get-access-tokens.handler.ts +2 -3
  1115. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/get/o-auth-get-access-tokens.service.ts +6 -5
  1116. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/paginate/o-auth-paginate-access-tokens.handler.ts +2 -3
  1117. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/application/paginate/o-auth-paginate-access-tokens.service.ts +6 -5
  1118. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/domain/o-auth-access-token.field-schema.ts +6 -5
  1119. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/index.ts +30 -24
  1120. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/drizzle/o-auth-drizzle-access-token.repository.ts +40 -0
  1121. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/drizzle/o-auth-drizzle-access-token.schema.ts +35 -0
  1122. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/create/o-auth-create-application.service.ts +4 -3
  1123. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/delete/o-auth-delete-application-by-id.handler.ts +1 -2
  1124. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/delete/o-auth-delete-application-by-id.service.ts +3 -4
  1125. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application-by-id.handler.ts +1 -2
  1126. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application-by-id.service.ts +3 -4
  1127. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application.handler.ts +1 -2
  1128. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/find/o-auth-find-application.service.ts +3 -4
  1129. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/get/o-auth-get-applications.handler.ts +1 -2
  1130. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/get/o-auth-get-applications.service.ts +3 -4
  1131. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/paginate/o-auth-paginate-applications.handler.ts +1 -2
  1132. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/paginate/o-auth-paginate-applications.service.ts +3 -4
  1133. 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
  1134. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/update/o-auth-update-application-by-id.handler.ts +7 -3
  1135. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/application/update/o-auth-update-application-by-id.service.ts +9 -6
  1136. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/domain/o-auth-application.field-schema.spec.ts +28 -0
  1137. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/domain/o-auth-application.field-schema.ts +5 -6
  1138. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/index.ts +26 -26
  1139. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/drizzle/o-auth-drizzle-application.repository.ts +102 -0
  1140. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/drizzle/o-auth-drizzle-application.schema.ts +29 -0
  1141. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/create/o-auth-create-application-client.service.ts +6 -6
  1142. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/create/o-auth-create-applications-clients.service.ts +7 -3
  1143. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-application-client-by-id.handler.ts +1 -2
  1144. 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
  1145. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-applications-clients.handler.ts +1 -2
  1146. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/delete/o-auth-delete-applications-clients.service.ts +3 -4
  1147. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client-by-id.handler.ts +1 -2
  1148. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client-by-id.service.ts +3 -4
  1149. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client.handler.ts +1 -2
  1150. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/find/o-auth-find-application-client.service.ts +3 -4
  1151. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/get/o-auth-get-applications-clients.handler.ts +1 -2
  1152. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/get/o-auth-get-applications-clients.service.ts +3 -4
  1153. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/paginate/o-auth-paginate-applications-clients.handler.ts +1 -2
  1154. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/paginate/o-auth-paginate-applications-clients.service.ts +3 -4
  1155. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/application/update/o-auth-update-application-client-by-id.handler.ts +7 -3
  1156. 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
  1157. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/index.ts +30 -30
  1158. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/drizzle/o-auth-drizzle-application-client.repository.ts +40 -0
  1159. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/drizzle/o-auth-drizzle-application-client.schema.ts +14 -0
  1160. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/create/o-auth-create-authorization-code.service.ts +4 -3
  1161. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-code-by-id.handler.ts +1 -2
  1162. 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
  1163. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-codes.handler.ts +1 -2
  1164. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/delete/o-auth-delete-authorization-codes.service.ts +3 -4
  1165. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code-by-id.handler.ts +1 -2
  1166. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code-by-id.service.ts +3 -4
  1167. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code.handler.ts +1 -2
  1168. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/find/o-auth-find-authorization-code.service.ts +3 -4
  1169. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/get/o-auth-get-authorization-codes.handler.ts +1 -2
  1170. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/get/o-auth-get-authorization-codes.service.ts +3 -4
  1171. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/paginate/o-auth-paginate-authorization-codes.handler.ts +1 -2
  1172. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/paginate/o-auth-paginate-authorization-codes.service.ts +3 -4
  1173. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/application/update/o-auth-update-authorization-code-by-id.handler.ts +7 -3
  1174. 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
  1175. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/domain/o-auth-authorization-code.field-schema.ts +4 -4
  1176. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/index.ts +28 -28
  1177. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/drizzle/o-auth-drizzle-authorization-code.repository.ts +66 -0
  1178. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/drizzle/o-auth-drizzle-authorization-code.schema.ts +42 -0
  1179. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/create/o-auth-create-client.service.ts +4 -3
  1180. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/delete/o-auth-delete-client-by-id.handler.ts +1 -2
  1181. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/delete/o-auth-delete-client-by-id.service.ts +3 -4
  1182. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client-by-id.handler.ts +1 -2
  1183. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client-by-id.service.ts +3 -4
  1184. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client.handler.ts +1 -2
  1185. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/find/o-auth-find-client.service.ts +3 -4
  1186. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/get/o-auth-get-clients.handler.ts +1 -2
  1187. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/get/o-auth-get-clients.service.ts +3 -4
  1188. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/paginate/o-auth-paginate-clients.handler.ts +1 -2
  1189. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/paginate/o-auth-paginate-clients.service.ts +3 -4
  1190. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/update/o-auth-update-client-by-id.handler.ts +9 -3
  1191. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/application/update/o-auth-update-client-by-id.service.ts +9 -6
  1192. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/domain/o-auth-client.field-schema.ts +3 -10
  1193. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/index.ts +26 -26
  1194. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/drizzle/o-auth-drizzle-client.repository.ts +109 -0
  1195. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/drizzle/o-auth-drizzle-client.schema.ts +35 -0
  1196. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/create/o-auth-create-credential.service.spec.ts +60 -0
  1197. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/create/o-auth-create-credential.service.ts +4 -3
  1198. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential-by-id.handler.ts +2 -3
  1199. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential-by-id.service.ts +6 -5
  1200. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential.handler.ts +2 -3
  1201. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/find/o-auth-find-credential.service.ts +6 -5
  1202. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/get/o-auth-get-credentials.handler.ts +2 -3
  1203. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/get/o-auth-get-credentials.service.ts +6 -5
  1204. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/paginate/o-auth-paginate-credentials.handler.ts +2 -3
  1205. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/application/paginate/o-auth-paginate-credentials.service.ts +6 -5
  1206. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/domain/o-auth-credential.field-schema.ts +16 -4
  1207. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/index.ts +21 -21
  1208. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/drizzle/o-auth-drizzle-credential.repository.ts +38 -0
  1209. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/drizzle/o-auth-drizzle-credential.schema.ts +31 -0
  1210. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/authorize/o-auth-authorize.handler.spec.ts +22 -21
  1211. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/authorize/o-auth-authorize.handler.ts +5 -14
  1212. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/o-auth-create-token.handler.spec.ts +1 -1
  1213. 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 +34 -18
  1214. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-authorization-code.service.ts +18 -10
  1215. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-password.service.spec.ts +22 -4
  1216. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-password.service.ts +13 -6
  1217. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-refresh.service.spec.ts +92 -48
  1218. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/create-token/services/o-auth-create-token-refresh.service.ts +43 -28
  1219. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/get-jwks/o-auth-get-jwks.handler.ts +3 -1
  1220. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/o-auth-create-impersonate-token.handler.spec.ts +350 -0
  1221. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/o-auth-create-impersonate-token.handler.ts +117 -0
  1222. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/services/o-auth-create-impersonate-token.service.spec.ts +228 -0
  1223. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/impersonate-token/services/o-auth-create-impersonate-token.service.ts +153 -0
  1224. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/revoke-token/services/o-auth-revoke-token.service.spec.ts +126 -31
  1225. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/revoke-token/services/o-auth-revoke-token.service.ts +63 -25
  1226. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/session/o-auth-hub-session.service.spec.ts +3 -1
  1227. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/application/session/o-auth-hub-session.service.ts +2 -0
  1228. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-chain.error.ts +26 -0
  1229. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-permission-refresh-failed.error.ts +34 -0
  1230. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-self.error.ts +25 -0
  1231. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-no-client.error.ts +26 -0
  1232. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-not-found.error.ts +27 -0
  1233. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-target-privileged.error.ts +26 -0
  1234. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation-unavailable.error.ts +36 -0
  1235. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/impersonation.errors.spec.ts +132 -0
  1236. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/errors/index.ts +7 -0
  1237. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/flows.types.ts +38 -3
  1238. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/impersonation-privilege-denylist.spec.ts +281 -0
  1239. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/domain/impersonation-privilege-denylist.ts +239 -0
  1240. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/index.ts +26 -18
  1241. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/flows/shared/pkce/o-auth-verify-pkce-s256.ts +1 -1
  1242. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/index.ts +16 -42
  1243. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/o-auth.relations.ts +81 -0
  1244. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/o-auth.seed.ts +80 -46
  1245. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/create/o-auth-create-refresh-token.service.ts +4 -3
  1246. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/delete/o-auth-delete-refresh-token-by-id.handler.ts +3 -6
  1247. 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
  1248. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token-by-id.handler.ts +2 -3
  1249. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token-by-id.service.ts +6 -5
  1250. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token.handler.ts +2 -3
  1251. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/find/o-auth-find-refresh-token.service.ts +6 -5
  1252. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/get/o-auth-get-refresh-tokens.handler.ts +2 -3
  1253. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/get/o-auth-get-refresh-tokens.service.ts +6 -5
  1254. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/paginate/o-auth-paginate-refresh-tokens.handler.ts +2 -3
  1255. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/application/paginate/o-auth-paginate-refresh-tokens.service.ts +6 -5
  1256. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/domain/o-auth-refresh-token.field-schema.ts +6 -5
  1257. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/index.ts +23 -23
  1258. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/drizzle/o-auth-drizzle-refresh-token.repository.ts +40 -0
  1259. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/drizzle/o-auth-drizzle-refresh-token.schema.ts +33 -0
  1260. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/create/o-auth-create-scope.service.ts +4 -3
  1261. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/delete/o-auth-delete-scope-by-id.handler.ts +1 -2
  1262. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/delete/o-auth-delete-scope-by-id.service.ts +3 -4
  1263. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope-by-id.handler.ts +1 -2
  1264. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope-by-id.service.ts +3 -4
  1265. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope.handler.ts +1 -2
  1266. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/find/o-auth-find-scope.service.ts +3 -4
  1267. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/get/o-auth-get-scopes.handler.ts +1 -2
  1268. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/get/o-auth-get-scopes.service.ts +3 -4
  1269. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/paginate/o-auth-paginate-scopes.handler.ts +1 -2
  1270. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/paginate/o-auth-paginate-scopes.service.ts +3 -4
  1271. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/update/o-auth-update-scope-by-id.handler.ts +7 -3
  1272. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/application/update/o-auth-update-scope-by-id.service.ts +9 -6
  1273. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/domain/o-auth-scope.field-schema.ts +3 -3
  1274. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/index.ts +26 -26
  1275. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/drizzle/o-auth-drizzle-scope.repository.ts +40 -0
  1276. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/drizzle/o-auth-drizzle-scope.schema.ts +20 -0
  1277. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-authenticate-application.function.spec.ts +67 -21
  1278. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-authenticate-application.function.ts +29 -14
  1279. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-generate-application-secret.function.spec.ts +30 -0
  1280. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-generate-application-secret.function.ts +20 -0
  1281. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-resolve-application-client.function.spec.ts +24 -14
  1282. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/functions/o-auth-resolve-application-client.function.ts +10 -6
  1283. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/index.ts +1 -0
  1284. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/services/token-retention.service.spec.ts +67 -77
  1285. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/shared/services/token-retention.service.ts +44 -38
  1286. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/index.ts +1 -0
  1287. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/o-auth-application-provisioner.adapter.spec.ts +727 -0
  1288. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/adapters/o-auth-application-provisioner.adapter.ts +274 -0
  1289. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/index.ts +1 -0
  1290. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/index.ts +2 -0
  1291. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/o-auth-application-provisioner.port.ts +79 -0
  1292. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/application/ports/o-auth-application-provisioner.token.ts +1 -0
  1293. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/index.ts +1 -0
  1294. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/o-auth-client-reader.adapter.spec.ts +57 -0
  1295. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/adapters/o-auth-client-reader.adapter.ts +5 -3
  1296. package/dist/templates/backend/packages/o-auth/src/@bridges/providers/iam-client-reader.bridge.ts +2 -2
  1297. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/impersonate-token-guarded-transports.e2e-spec.ts +386 -0
  1298. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/masked-property-query-guard.e2e-spec.ts +950 -0
  1299. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/oauth-bootstrap-seeder-idempotency.e2e-spec.ts +228 -0
  1300. package/dist/templates/backend/packages/o-auth/test/acceptance/o-auth/token-masking.e2e-spec.ts +247 -0
  1301. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/graphql/queue-manager.graphql +149 -0
  1302. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/index.ts +24 -0
  1303. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.auth-metadata.spec.ts +105 -0
  1304. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.spec.ts +220 -0
  1305. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/flows/resolvers/queue-manager.resolver.ts +228 -0
  1306. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/queue-manager.module.ts +84 -0
  1307. package/dist/templates/backend/packages/queue-manager/src/@api/queue-manager/queue-manager.seeder.ts +33 -0
  1308. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/index.ts +20 -0
  1309. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/queue-inspector.port.ts +144 -0
  1310. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/domain/ports/queue-registry.token.ts +30 -0
  1311. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/bull-board-queue-inspector.adapter.spec.ts +172 -0
  1312. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/bull-board-queue-inspector.adapter.ts +352 -0
  1313. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/adapters/index.ts +1 -0
  1314. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/infrastructure/index.ts +1 -0
  1315. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/queue-manager.seed.ts +51 -0
  1316. package/dist/templates/backend/packages/queue-manager/src/@app/queue-manager/queue-registry.providers.ts +37 -0
  1317. package/dist/templates/codegen/backend/@api/__bounded_context_name__.module.ts.eta +0 -2
  1318. package/dist/templates/codegen/backend/@api/__bounded_context_name__.seeder.ts.eta +4 -4
  1319. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-count-__module_name__.controller.ts.eta +69 -0
  1320. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-create-__module_name__.controller.ts.eta +7 -8
  1321. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-create-__module_names__.controller.ts.eta +2 -2
  1322. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-delete-__module_name__-by-id.controller.ts.eta +4 -7
  1323. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-delete-__module_names__.controller.ts.eta +3 -13
  1324. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-find-__module_name__-by-id.controller.ts.eta +4 -7
  1325. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-find-__module_name__.controller.ts.eta +6 -9
  1326. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-get-__module_names__.controller.ts.eta +6 -9
  1327. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-get-raw-__module_names__.controller.ts.eta +0 -9
  1328. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-max-__module_name__.controller.ts.eta +72 -0
  1329. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-min-__module_name__.controller.ts.eta +72 -0
  1330. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-paginate-__module_names__.controller.ts.eta +6 -9
  1331. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-sum-__module_name__.controller.ts.eta +72 -0
  1332. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-update-__module_name__-by-id.controller.ts.eta +6 -9
  1333. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-update-__module_names__.controller.ts.eta +3 -13
  1334. package/dist/templates/codegen/backend/@api/__module_name__/controllers/__bounded_context_name__-upsert-__module_name__.controller.ts.eta +2 -11
  1335. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-__module_name__.dto.ts.eta +18 -2
  1336. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-create-__module_name__.dto.ts.eta +10 -2
  1337. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-update-__module_name__-by-id.dto.ts.eta +10 -2
  1338. package/dist/templates/codegen/backend/@api/__module_name__/dto/__bounded_context_name__-update-__module_names__.dto.ts.eta +10 -2
  1339. package/dist/templates/codegen/backend/@api/__module_name__/graphql/__bounded_context_name__-__module_name__.graphql.eta +139 -38
  1340. package/dist/templates/codegen/backend/@api/__module_name__/index.ts.eta +72 -0
  1341. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-__module_name__-custom-field-value.resolver.ts.eta +32 -0
  1342. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-count-__module_name__.resolver.ts.eta +62 -0
  1343. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-create-__module_name__.resolver.ts.eta +6 -8
  1344. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-create-__module_names__.resolver.ts.eta +2 -2
  1345. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-delete-__module_name__-by-id.resolver.ts.eta +4 -7
  1346. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-delete-__module_names__.resolver.ts.eta +1 -11
  1347. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-find-__module_name__-by-id.resolver.ts.eta +4 -7
  1348. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-find-__module_name__.resolver.ts.eta +4 -7
  1349. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-get-__module_names__.resolver.ts.eta +4 -7
  1350. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-get-raw-__module_names__.resolver.ts.eta +0 -9
  1351. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-max-__module_name__.resolver.ts.eta +64 -0
  1352. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-min-__module_name__.resolver.ts.eta +64 -0
  1353. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-paginate-__module_names__.resolver.ts.eta +4 -7
  1354. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-sum-__module_name__.resolver.ts.eta +64 -0
  1355. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-update-__module_name__-by-id.resolver.ts.eta +6 -9
  1356. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-update-__module_names__.resolver.ts.eta +3 -13
  1357. package/dist/templates/codegen/backend/@api/__module_name__/resolvers/__bounded_context_name__-upsert-__module_name__.resolver.ts.eta +2 -11
  1358. package/dist/templates/codegen/backend/@app/__bounded_context_name__.seed.ts.eta +6 -4
  1359. package/dist/templates/codegen/backend/@app/__module_name__/application/__bounded_context_name__-__module_name__.payload-types.ts.eta +53 -0
  1360. package/dist/templates/codegen/backend/@app/__module_name__/application/count/__bounded_context_name__-count-__module_name__.handler.ts.eta +3 -41
  1361. package/dist/templates/codegen/backend/@app/__module_name__/application/count/__bounded_context_name__-count-__module_name__.service.ts.eta +5 -6
  1362. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_name__.handler.ts.eta +56 -44
  1363. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_name__.service.ts.eta +99 -81
  1364. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_names__.handler.ts.eta +46 -4
  1365. package/dist/templates/codegen/backend/@app/__module_name__/application/create/__bounded_context_name__-create-__module_names__.service.ts.eta +111 -31
  1366. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_name__-by-id.handler.ts.eta +33 -46
  1367. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_name__-by-id.service.ts.eta +100 -80
  1368. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_names__.handler.ts.eta +10 -48
  1369. package/dist/templates/codegen/backend/@app/__module_name__/application/delete/__bounded_context_name__-delete-__module_names__.service.ts.eta +39 -61
  1370. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__-by-id.handler.ts.eta +18 -36
  1371. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__-by-id.service.ts.eta +34 -10
  1372. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__.handler.ts.eta +18 -37
  1373. package/dist/templates/codegen/backend/@app/__module_name__/application/find/__bounded_context_name__-find-__module_name__.service.ts.eta +34 -9
  1374. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-__module_names__.handler.ts.eta +21 -38
  1375. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-__module_names__.service.ts.eta +34 -9
  1376. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-raw-__module_names__.handler.ts.eta +14 -39
  1377. package/dist/templates/codegen/backend/@app/__module_name__/application/get/__bounded_context_name__-get-raw-__module_names__.service.ts.eta +4 -6
  1378. package/dist/templates/codegen/backend/@app/__module_name__/application/max/__bounded_context_name__-max-__module_name__.handler.ts.eta +43 -0
  1379. package/dist/templates/codegen/backend/@app/__module_name__/application/max/__bounded_context_name__-max-__module_name__.service.ts.eta +5 -6
  1380. package/dist/templates/codegen/backend/@app/__module_name__/application/min/__bounded_context_name__-min-__module_name__.handler.ts.eta +43 -0
  1381. package/dist/templates/codegen/backend/@app/__module_name__/application/min/__bounded_context_name__-min-__module_name__.service.ts.eta +5 -6
  1382. package/dist/templates/codegen/backend/@app/__module_name__/application/paginate/__bounded_context_name__-paginate-__module_names__.handler.ts.eta +21 -37
  1383. package/dist/templates/codegen/backend/@app/__module_name__/application/paginate/__bounded_context_name__-paginate-__module_names__.service.ts.eta +37 -9
  1384. package/dist/templates/codegen/backend/@app/__module_name__/application/sum/__bounded_context_name__-sum-__module_name__.handler.ts.eta +43 -0
  1385. package/dist/templates/codegen/backend/@app/__module_name__/application/sum/__bounded_context_name__-sum-__module_name__.service.ts.eta +5 -6
  1386. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_name__-by-id.handler.ts.eta +73 -59
  1387. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_name__-by-id.service.ts.eta +71 -35
  1388. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_names__.handler.ts.eta +31 -47
  1389. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-__module_names__.service.ts.eta +25 -41
  1390. package/dist/templates/codegen/backend/@app/__module_name__/application/update/__bounded_context_name__-update-and-increment-__module_names__.service.ts.eta +24 -41
  1391. package/dist/templates/codegen/backend/@app/__module_name__/application/upsert/__bounded_context_name__-upsert-__module_name__.handler.ts.eta +23 -47
  1392. package/dist/templates/codegen/backend/@app/__module_name__/application/upsert/__bounded_context_name__-upsert-__module_name__.service.ts.eta +23 -83
  1393. package/dist/templates/codegen/backend/@app/__module_name__/domain/__bounded_context_name__-__module_name__.field-schema.ts.eta +38 -2
  1394. package/dist/templates/codegen/backend/@app/__module_name__/index.ts.eta +116 -121
  1395. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-custom-field-value.schema.ts.eta +37 -0
  1396. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-i18n.repository.ts.eta +65 -0
  1397. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__-i18n.schema.ts.eta +47 -0
  1398. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__.repository.ts.eta +180 -0
  1399. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/drizzle/__bounded_context_name__-drizzle-__module_name__.schema.ts.eta +154 -0
  1400. package/dist/templates/codegen/backend/@app/index.ts.eta +0 -1
  1401. package/dist/templates/codegen/backend/additional-@api/__module_name__/controllers/__additional_api_name__.controller.ts.eta +9 -13
  1402. package/dist/templates/codegen/backend/additional-@api/__module_name__/resolvers/__additional_api_name__.resolver.ts.eta +9 -13
  1403. package/dist/templates/codegen/backend/additional-@app/__module_name__/application/__additional_api_action__/__additional_api_name__.handler.ts.eta +7 -6
  1404. package/dist/templates/codegen/frontend/module/__bounded_context_name__.navigation.ts.eta +1 -0
  1405. package/dist/templates/codegen/frontend/module/__module_name__/__module_name__.columns.ts.eta +231 -30
  1406. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.detail-config.ts.eta +18 -2
  1407. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.graphql.ts.eta +223 -71
  1408. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.list-config.ts.eta +11 -2
  1409. package/dist/templates/codegen/frontend/module/__module_name__/data-access/__module_name__.resolvers.ts.eta +159 -52
  1410. package/dist/templates/codegen/frontend/module/__module_name__/data-access/index.ts.eta +8 -0
  1411. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-detail.component.ts.eta +248 -57
  1412. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-form-embed.component.ts.eta +181 -59
  1413. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-form.component.ts.eta +230 -114
  1414. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list-actions-cell.component.ts.eta +35 -12
  1415. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list-translations-cell.component.ts.eta +91 -0
  1416. package/dist/templates/codegen/frontend/module/__module_name__/features/__module_name__-list.component.ts.eta +145 -47
  1417. package/dist/templates/codegen/frontend/module/__module_name__/features/index.ts.eta +19 -0
  1418. package/dist/templates/codegen/frontend/module/__module_name__/index.ts.eta +7 -5
  1419. package/dist/templates/codegen/partials/fields/boolean-field.eta +11 -4
  1420. package/dist/templates/codegen/partials/fields/color-picker-field.eta +8 -0
  1421. package/dist/templates/codegen/partials/fields/date-field.eta +6 -16
  1422. package/dist/templates/codegen/partials/fields/datetime-field.eta +8 -0
  1423. package/dist/templates/codegen/partials/fields/enum-field.eta +14 -10
  1424. package/dist/templates/codegen/partials/fields/number-field.eta +2 -4
  1425. package/dist/templates/codegen/partials/fields/password-field.eta +14 -18
  1426. package/dist/templates/codegen/partials/fields/text-field.eta +2 -7
  1427. package/dist/templates/codegen/partials/fields/varchar-field.eta +2 -7
  1428. package/dist/templates/codegen/partials/form/dialog-frame.eta +14 -11
  1429. package/dist/templates/codegen/partials/form/field-errors.eta +10 -0
  1430. package/dist/templates/codegen/partials/form/field-label.eta +18 -6
  1431. package/dist/templates/codegen/partials/form/form-body.eta +36 -9
  1432. package/dist/templates/codegen/partials/form/view-frame-tabbed.eta +36 -2
  1433. package/dist/templates/codegen/partials/form/view-frame.eta +40 -2
  1434. package/dist/templates/codegen/partials/i18n-recompute.eta +68 -0
  1435. package/dist/templates/codegen/partials/i18n-validate.eta +51 -0
  1436. package/dist/templates/codegen/partials/relationships/async-multiple-search-select.eta +4 -8
  1437. package/dist/templates/codegen/partials/relationships/async-search-select.eta +4 -8
  1438. package/dist/templates/codegen/partials/relationships/grid-elements-manager.eta +1 -0
  1439. package/dist/templates/codegen/partials/relationships/grid-select-element.eta +5 -7
  1440. package/dist/templates/codegen/partials/relationships/multiple-search-select.eta +4 -8
  1441. package/dist/templates/codegen/partials/relationships/multiple-select.eta +5 -7
  1442. package/dist/templates/codegen/partials/relationships/search-select.eta +5 -8
  1443. package/dist/templates/codegen/partials/relationships/select.eta +3 -5
  1444. package/dist/templates/frontend/application/.claude/skills/catalyst-data-layer/SKILL.md +67 -51
  1445. package/dist/templates/frontend/application/.claude/skills/catalyst-data-layer/references/known-patterns.md +24 -20
  1446. package/dist/templates/frontend/application/.claude/skills/catalyst-data-table-management/SKILL.md +38 -33
  1447. package/dist/templates/frontend/application/.claude/skills/catalyst-form-composer-auditor/SKILL.md +133 -73
  1448. package/dist/templates/frontend/application/.claude/skills/catalyst-form-composer-auditor/references/catalyst-detail-form-rules.md +308 -253
  1449. package/dist/templates/frontend/application/.claude/skills/catalyst-project-structure/SKILL.md +281 -173
  1450. package/dist/templates/frontend/application/.claude/skills/catalyst-review-module/SKILL.md +1 -1
  1451. package/dist/templates/frontend/application/.claude/skills/catalyst-widget-creator/SKILL.md +288 -0
  1452. package/dist/templates/frontend/application/.claude/skills/layout-design-system/SKILL.md +69 -10
  1453. package/dist/templates/frontend/application/.claude/skills/transloco-i18n/SKILL.md +21 -0
  1454. package/dist/templates/frontend/application/CLAUDE.md +18 -3
  1455. package/dist/templates/frontend/application/angular.json +6 -4
  1456. package/dist/templates/frontend/application/codegen.ts +2 -1
  1457. package/dist/templates/frontend/application/libs/ui/accordion/src/lib/hlm-accordion-trigger.ts +1 -1
  1458. package/dist/templates/frontend/application/libs/ui/alert/src/lib/hlm-alert.ts +1 -1
  1459. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/index.ts +3 -0
  1460. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-action.ts +1 -3
  1461. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-cancel.ts +3 -4
  1462. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-content.ts +5 -2
  1463. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-description.ts +5 -4
  1464. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-footer.ts +5 -4
  1465. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-header.ts +5 -4
  1466. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-media.ts +15 -0
  1467. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-overlay.ts +1 -1
  1468. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-title.ts +5 -4
  1469. package/dist/templates/frontend/application/libs/ui/alert-dialog/src/lib/hlm-alert-dialog-trigger.ts +1 -3
  1470. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-content.ts +1 -1
  1471. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-empty.ts +1 -3
  1472. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-group.ts +1 -3
  1473. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-input.ts +45 -44
  1474. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-item.ts +3 -5
  1475. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-label.ts +1 -3
  1476. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-list.ts +2 -4
  1477. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-search.ts +8 -18
  1478. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-separator.ts +1 -3
  1479. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete-status.ts +2 -4
  1480. package/dist/templates/frontend/application/libs/ui/autocomplete/src/lib/hlm-autocomplete.ts +8 -18
  1481. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-badge.ts +2 -2
  1482. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-fallback.ts +1 -1
  1483. package/dist/templates/frontend/application/libs/ui/avatar/src/lib/hlm-avatar-image.ts +1 -1
  1484. package/dist/templates/frontend/application/libs/ui/badge/src/lib/hlm-badge.ts +1 -1
  1485. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/index.ts +0 -5
  1486. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/lib/hlm-breadcrumb-ellipsis.ts +12 -25
  1487. package/dist/templates/frontend/application/libs/ui/breadcrumb/src/lib/hlm-breadcrumb-separator.ts +1 -1
  1488. package/dist/templates/frontend/application/libs/ui/button/src/lib/hlm-button.ts +6 -8
  1489. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group-separator.ts +5 -4
  1490. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group-text.ts +4 -1
  1491. package/dist/templates/frontend/application/libs/ui/button-group/src/lib/hlm-button-group.ts +4 -4
  1492. package/dist/templates/frontend/application/libs/ui/calendar/src/index.ts +8 -1
  1493. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar-multi.ts +189 -223
  1494. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar-range.ts +188 -218
  1495. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-calendar.ts +184 -212
  1496. package/dist/templates/frontend/application/libs/ui/calendar/src/lib/hlm-month-year-calendar.ts +139 -0
  1497. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-action.ts +1 -3
  1498. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-content.ts +2 -4
  1499. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-description.ts +1 -3
  1500. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-footer.ts +2 -5
  1501. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-header.ts +2 -4
  1502. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card-title.ts +1 -3
  1503. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card.token.ts +19 -0
  1504. package/dist/templates/frontend/application/libs/ui/card/src/lib/hlm-card.ts +4 -2
  1505. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel-next.ts +5 -7
  1506. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel-previous.ts +5 -7
  1507. package/dist/templates/frontend/application/libs/ui/carousel/src/lib/hlm-carousel.ts +8 -6
  1508. package/dist/templates/frontend/application/libs/ui/checkbox/src/lib/hlm-checkbox.ts +13 -14
  1509. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible-content.ts +1 -3
  1510. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible-trigger.ts +1 -3
  1511. package/dist/templates/frontend/application/libs/ui/collapsible/src/lib/hlm-collapsible.ts +1 -3
  1512. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip-input.ts +1 -3
  1513. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip-remove.ts +2 -4
  1514. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chip.ts +2 -4
  1515. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-chips.ts +12 -12
  1516. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-content.ts +1 -3
  1517. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-empty.ts +1 -3
  1518. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-group.ts +1 -3
  1519. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-input.ts +58 -43
  1520. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-item.ts +3 -5
  1521. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-label.ts +1 -3
  1522. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-list.ts +2 -4
  1523. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-multiple.ts +8 -18
  1524. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-placeholder.ts +1 -1
  1525. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-separator.ts +1 -3
  1526. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-status.ts +2 -4
  1527. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-trigger.ts +17 -2
  1528. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox-value.ts +1 -0
  1529. package/dist/templates/frontend/application/libs/ui/combobox/src/lib/hlm-combobox.ts +8 -18
  1530. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-dialog.ts +2 -2
  1531. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-group-label.ts +1 -1
  1532. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-group.ts +4 -1
  1533. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-input.ts +10 -4
  1534. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-item.ts +1 -1
  1535. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-list.ts +1 -1
  1536. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-separator.ts +1 -1
  1537. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command-shortcut.ts +4 -1
  1538. package/dist/templates/frontend/application/libs/ui/command/src/lib/hlm-command.ts +1 -1
  1539. package/dist/templates/frontend/application/libs/ui/context-menu/src/lib/hlm-context-menu-trigger.ts +25 -14
  1540. package/dist/templates/frontend/application/libs/ui/date-picker/src/index.ts +24 -3
  1541. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-multi-input.ts +104 -0
  1542. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-anchor.ts +23 -0
  1543. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-input.ts +105 -0
  1544. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-multi.token.ts +61 -0
  1545. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-multi.ts +70 -85
  1546. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker-trigger.ts +104 -0
  1547. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker.token.ts +22 -0
  1548. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-picker.ts +83 -97
  1549. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-input.ts +107 -0
  1550. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-picker.token.ts +36 -1
  1551. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-date-range-picker.ts +90 -89
  1552. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-input.ts +105 -0
  1553. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-picker.token.ts +89 -0
  1554. package/dist/templates/frontend/application/libs/ui/date-picker/src/lib/hlm-month-year-picker.ts +199 -0
  1555. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-close.ts +2 -4
  1556. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-content.ts +21 -13
  1557. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-description.ts +5 -4
  1558. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-footer.ts +1 -3
  1559. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-header.ts +2 -4
  1560. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-overlay.ts +4 -3
  1561. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-title.ts +2 -4
  1562. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog-trigger.ts +1 -3
  1563. package/dist/templates/frontend/application/libs/ui/dialog/src/lib/hlm-dialog.service.ts +7 -4
  1564. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/index.ts +4 -0
  1565. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox-indicator.ts +3 -5
  1566. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox.ts +30 -12
  1567. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-focus-on-hover.ts +35 -0
  1568. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-group.ts +1 -3
  1569. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-item-sub-indicator.ts +2 -2
  1570. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-item.ts +4 -2
  1571. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-label.ts +4 -4
  1572. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-radio-indicator.ts +5 -7
  1573. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-radio.ts +26 -13
  1574. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-separator.ts +2 -4
  1575. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-shortcut.ts +5 -4
  1576. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-sub-trigger.ts +52 -0
  1577. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-sub.ts +21 -26
  1578. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu-trigger.ts +14 -17
  1579. package/dist/templates/frontend/application/libs/ui/dropdown-menu/src/lib/hlm-dropdown-menu.ts +21 -26
  1580. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-content.ts +2 -4
  1581. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-description.ts +2 -4
  1582. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-header.ts +2 -4
  1583. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-media.ts +4 -3
  1584. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty-title.ts +1 -3
  1585. package/dist/templates/frontend/application/libs/ui/empty/src/lib/hlm-empty.ts +2 -4
  1586. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-content.ts +2 -4
  1587. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-description.ts +2 -5
  1588. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-error.ts +2 -6
  1589. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-group.ts +2 -4
  1590. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-label.ts +3 -7
  1591. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-separator.ts +3 -5
  1592. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-set.ts +5 -7
  1593. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field-title.ts +2 -4
  1594. package/dist/templates/frontend/application/libs/ui/field/src/lib/hlm-field.ts +1 -1
  1595. package/dist/templates/frontend/application/libs/ui/hover-card/src/lib/hlm-hover-card-content.ts +1 -1
  1596. package/dist/templates/frontend/application/libs/ui/input/src/lib/hlm-input.ts +10 -27
  1597. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-addon.ts +6 -6
  1598. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-button.ts +3 -3
  1599. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-input.ts +2 -4
  1600. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-text.ts +2 -2
  1601. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group-textarea.ts +2 -4
  1602. package/dist/templates/frontend/application/libs/ui/input-group/src/lib/hlm-input-group.ts +5 -24
  1603. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-fake-caret.ts +7 -4
  1604. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-group.ts +6 -5
  1605. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-separator.ts +3 -7
  1606. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp-slot.ts +22 -10
  1607. package/dist/templates/frontend/application/libs/ui/input-otp/src/lib/hlm-input-otp.ts +2 -4
  1608. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-actions.ts +2 -4
  1609. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-content.ts +5 -4
  1610. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-description.ts +6 -8
  1611. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-footer.ts +2 -4
  1612. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-group.ts +4 -1
  1613. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-header.ts +2 -4
  1614. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-media.ts +4 -3
  1615. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-separator.ts +3 -2
  1616. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item-title.ts +5 -4
  1617. package/dist/templates/frontend/application/libs/ui/item/src/lib/hlm-item.ts +7 -6
  1618. package/dist/templates/frontend/application/libs/ui/kbd/src/lib/hlm-kbd-group.ts +1 -1
  1619. package/dist/templates/frontend/application/libs/ui/kbd/src/lib/hlm-kbd.ts +4 -5
  1620. package/dist/templates/frontend/application/libs/ui/label/src/lib/hlm-label.ts +3 -10
  1621. package/dist/templates/frontend/application/libs/ui/menubar/src/lib/hlm-menubar-trigger.ts +23 -15
  1622. package/dist/templates/frontend/application/libs/ui/menubar/src/lib/hlm-menubar.ts +1 -1
  1623. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select-opt-group.ts +8 -5
  1624. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select-option.ts +8 -5
  1625. package/dist/templates/frontend/application/libs/ui/native-select/src/lib/hlm-native-select.ts +17 -11
  1626. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-content.ts +10 -3
  1627. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-item.ts +4 -1
  1628. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-link.ts +7 -4
  1629. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-list.ts +4 -1
  1630. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu-trigger.ts +18 -4
  1631. package/dist/templates/frontend/application/libs/ui/navigation-menu/src/lib/hlm-navigation-menu.ts +3 -0
  1632. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-numbered-pagination-query-params.ts +68 -67
  1633. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-numbered-pagination.ts +1 -3
  1634. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-content.ts +2 -4
  1635. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-ellipsis.ts +12 -18
  1636. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-item.ts +2 -9
  1637. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-link.ts +2 -1
  1638. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-next.ts +10 -9
  1639. package/dist/templates/frontend/application/libs/ui/pagination/src/lib/hlm-pagination-previous.ts +11 -9
  1640. package/dist/templates/frontend/application/libs/ui/popover/src/index.ts +9 -0
  1641. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-content.ts +2 -1
  1642. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-description.ts +12 -0
  1643. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-header.ts +12 -0
  1644. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-title.ts +12 -0
  1645. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover-trigger.ts +1 -3
  1646. package/dist/templates/frontend/application/libs/ui/popover/src/lib/hlm-popover.ts +2 -3
  1647. package/dist/templates/frontend/application/libs/ui/progress/src/lib/hlm-progress-indicator.ts +10 -4
  1648. package/dist/templates/frontend/application/libs/ui/progress/src/lib/hlm-progress.ts +2 -1
  1649. package/dist/templates/frontend/application/libs/ui/radio-group/src/lib/hlm-radio.ts +3 -4
  1650. package/dist/templates/frontend/application/libs/ui/resizable/src/lib/hlm-resizable-handle.ts +1 -1
  1651. package/dist/templates/frontend/application/libs/ui/scroll-area/src/lib/hlm-scroll-area.ts +6 -4
  1652. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-content.ts +1 -1
  1653. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-group.ts +1 -3
  1654. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-item.ts +3 -5
  1655. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-label.ts +2 -4
  1656. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-multiple.ts +8 -18
  1657. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-placeholder.ts +1 -1
  1658. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-scroll-down.ts +1 -1
  1659. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-scroll-up.ts +1 -1
  1660. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-separator.ts +2 -4
  1661. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-trigger.ts +16 -4
  1662. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select-values-content.ts +4 -1
  1663. package/dist/templates/frontend/application/libs/ui/select/src/lib/hlm-select.ts +8 -18
  1664. package/dist/templates/frontend/application/libs/ui/separator/src/lib/hlm-separator.ts +4 -1
  1665. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-close.ts +2 -4
  1666. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-content.ts +14 -30
  1667. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-description.ts +1 -3
  1668. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-footer.ts +2 -4
  1669. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-header.ts +2 -4
  1670. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-overlay.ts +1 -4
  1671. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-title.ts +2 -4
  1672. package/dist/templates/frontend/application/libs/ui/sheet/src/lib/hlm-sheet-trigger.ts +1 -3
  1673. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-content.ts +1 -1
  1674. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-footer.ts +1 -1
  1675. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-action.ts +4 -6
  1676. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-content.ts +1 -1
  1677. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group-label.ts +4 -4
  1678. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-group.ts +1 -1
  1679. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-header.ts +1 -1
  1680. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-input.ts +4 -7
  1681. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-inset.ts +5 -7
  1682. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-action.ts +2 -8
  1683. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-badge.ts +4 -8
  1684. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-button.ts +3 -3
  1685. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-skeleton.ts +3 -3
  1686. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-sub-button.ts +8 -6
  1687. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu-sub.ts +8 -4
  1688. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-menu.ts +1 -1
  1689. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-rail.ts +2 -2
  1690. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-separator.ts +1 -1
  1691. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-trigger.ts +8 -19
  1692. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar-wrapper.ts +1 -1
  1693. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.service.ts +28 -11
  1694. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.token.ts +2 -0
  1695. package/dist/templates/frontend/application/libs/ui/sidebar/src/lib/hlm-sidebar.ts +11 -15
  1696. package/dist/templates/frontend/application/libs/ui/slider/src/lib/hlm-slider.ts +3 -3
  1697. package/dist/templates/frontend/application/libs/ui/sonner/src/lib/hlm-toaster.ts +12 -1
  1698. package/dist/templates/frontend/application/libs/ui/spinner/src/lib/hlm-spinner.ts +2 -1
  1699. package/dist/templates/frontend/application/libs/ui/switch/src/lib/hlm-switch-thumb.ts +2 -1
  1700. package/dist/templates/frontend/application/libs/ui/switch/src/lib/hlm-switch.ts +15 -9
  1701. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-list.ts +1 -1
  1702. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-paginated-list.ts +8 -20
  1703. package/dist/templates/frontend/application/libs/ui/tabs/src/lib/hlm-tabs-trigger.ts +1 -1
  1704. package/dist/templates/frontend/application/libs/ui/textarea/src/lib/hlm-textarea.ts +10 -28
  1705. package/dist/templates/frontend/application/libs/ui/toggle/src/lib/hlm-toggle.ts +1 -1
  1706. package/dist/templates/frontend/application/libs/ui/tooltip/src/lib/hlm-tooltip.ts +3 -2
  1707. package/dist/templates/frontend/application/libs/ui/utils/src/index.ts +1 -0
  1708. package/dist/templates/frontend/application/libs/ui/utils/src/lib/provide-spartan-hlm.ts +34 -0
  1709. package/dist/templates/frontend/application/package.json +38 -29
  1710. package/dist/templates/frontend/application/public/i18n/en.json +17 -2
  1711. package/dist/templates/frontend/application/public/i18n/es.json +17 -2
  1712. package/dist/templates/frontend/application/public/i18n/navigation/en.json +22 -29
  1713. package/dist/templates/frontend/application/public/i18n/navigation/es.json +22 -29
  1714. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.component.spec.ts +11 -10
  1715. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.component.ts +12 -15
  1716. package/dist/templates/frontend/application/src/@aurora/components/async-multiple-search-select/async-multiple-search-select.stories.ts +0 -2
  1717. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.component.spec.ts +19 -11
  1718. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.component.ts +12 -15
  1719. package/dist/templates/frontend/application/src/@aurora/components/async-search-select/async-search-select.stories.ts +0 -22
  1720. package/dist/templates/frontend/application/src/@aurora/components/breadcrumb/breadcrumb.service.ts +2 -2
  1721. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.component.spec.ts +663 -0
  1722. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.component.ts +334 -0
  1723. package/dist/templates/frontend/application/src/@aurora/components/chart/chart.stories.ts +103 -0
  1724. package/dist/templates/frontend/application/src/@aurora/components/chart/index.ts +1 -0
  1725. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.component.spec.ts +671 -0
  1726. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.component.ts +802 -0
  1727. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-picker.stories.ts +180 -0
  1728. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-utils.spec.ts +270 -0
  1729. package/dist/templates/frontend/application/src/@aurora/components/color-picker/color-utils.ts +177 -0
  1730. package/dist/templates/frontend/application/src/@aurora/components/color-picker/index.ts +2 -0
  1731. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/custom-field-capture-form.component.spec.ts +344 -0
  1732. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/custom-field-capture-form.component.ts +366 -0
  1733. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/index.ts +4 -0
  1734. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/build-custom-field-capture-model.spec.ts +82 -0
  1735. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/build-custom-field-capture-model.ts +49 -0
  1736. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-form.types.ts +57 -0
  1737. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-value-equality.spec.ts +28 -0
  1738. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/custom-field-capture-value-equality.ts +24 -0
  1739. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/validate-custom-field-capture-value.spec.ts +50 -0
  1740. package/dist/templates/frontend/application/src/@aurora/components/custom-field-capture-form/lib/validate-custom-field-capture-value.ts +30 -0
  1741. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/boolean-cell.component.ts +3 -6
  1742. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/date-cell.component.ts +62 -0
  1743. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/date-cell.stories.ts +117 -0
  1744. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/enum-cell.component.ts +23 -0
  1745. package/dist/templates/frontend/application/src/@aurora/components/data-table/cells/index.ts +2 -0
  1746. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/column-toggle.component.ts +7 -29
  1747. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/data-table.component.spec.ts +460 -0
  1748. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/data-table.component.ts +17 -3
  1749. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/head-selection.component.ts +2 -1
  1750. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/row-selection.component.ts +2 -1
  1751. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/sort-button.component.ts +44 -14
  1752. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-export.component.ts +5 -9
  1753. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-filters.component.ts +2 -11
  1754. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-pagination.component.ts +16 -26
  1755. package/dist/templates/frontend/application/src/@aurora/components/data-table/components/table-search.component.ts +1 -11
  1756. package/dist/templates/frontend/application/src/@aurora/components/data-table/index.ts +4 -1
  1757. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-filter-where.spec.ts +123 -8
  1758. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-filter-where.ts +55 -33
  1759. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-search-where.spec.ts +141 -17
  1760. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-search-where.ts +50 -21
  1761. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-sort-order.spec.ts +22 -11
  1762. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/build-sort-order.ts +25 -19
  1763. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/column-helpers.spec.ts +72 -0
  1764. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/column-helpers.ts +8 -1
  1765. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/custom-field-column.ts +141 -0
  1766. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relations-node.spec.ts +157 -0
  1767. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relations-node.ts +69 -0
  1768. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/merge-custom-field-columns.spec.ts +217 -0
  1769. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/merge-custom-field-columns.ts +146 -0
  1770. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/nested-column.ts +24 -23
  1771. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/resolve-custom-field-filter.spec.ts +140 -0
  1772. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/resolve-custom-field-filter.ts +119 -0
  1773. package/dist/templates/frontend/application/src/@aurora/components/data-table/services/in-memory-column-config-storage.ts +2 -2
  1774. package/dist/templates/frontend/application/src/@aurora/components/data-table/types.ts +57 -8
  1775. package/dist/templates/frontend/application/src/@aurora/components/date-picker/date-picker.component.spec.ts +189 -0
  1776. package/dist/templates/frontend/application/src/@aurora/components/date-picker/date-picker.component.ts +133 -0
  1777. package/dist/templates/frontend/application/src/@aurora/components/date-picker/index.ts +1 -0
  1778. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.component.spec.ts +274 -0
  1779. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.component.ts +208 -0
  1780. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/datetime-picker.stories.ts +121 -0
  1781. package/dist/templates/frontend/application/src/@aurora/components/datetime-picker/index.ts +1 -0
  1782. package/dist/templates/frontend/application/src/@aurora/components/grid-pick-dialog/grid-pick-dialog.component.ts +22 -26
  1783. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.component.spec.ts +98 -10
  1784. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.component.ts +41 -10
  1785. package/dist/templates/frontend/application/src/@aurora/components/grid-select-element/grid-select-element.stories.ts +6 -0
  1786. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.component.spec.ts +80 -0
  1787. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.component.ts +10 -26
  1788. package/dist/templates/frontend/application/src/@aurora/components/grid-select-multiple-elements/grid-select-multiple-elements.stories.ts +2 -2
  1789. package/dist/templates/frontend/application/src/@aurora/components/hlm-badge-icon-cell/hlm-badge-icon-cell.component.ts +4 -7
  1790. package/dist/templates/frontend/application/src/@aurora/components/hlm-password-strength/hlm-password-strength.component.ts +1 -2
  1791. package/dist/templates/frontend/application/src/@aurora/components/index.ts +11 -0
  1792. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.component.spec.ts +14 -15
  1793. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.component.ts +12 -15
  1794. package/dist/templates/frontend/application/src/@aurora/components/multiple-search-select/multiple-search-select.stories.ts +0 -9
  1795. package/dist/templates/frontend/application/src/@aurora/components/password-input/index.ts +1 -0
  1796. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.component.spec.ts +271 -0
  1797. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.component.ts +181 -0
  1798. package/dist/templates/frontend/application/src/@aurora/components/password-input/password-input.stories.ts +189 -0
  1799. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/index.ts +2 -0
  1800. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/progress-uploader.component.ts +76 -0
  1801. package/dist/templates/frontend/application/src/@aurora/components/progress-uploader/progress-uploader.service.ts +105 -0
  1802. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.component.spec.ts +14 -15
  1803. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.component.ts +17 -18
  1804. package/dist/templates/frontend/application/src/@aurora/components/search-select/search-select.stories.ts +0 -14
  1805. package/dist/templates/frontend/application/src/@aurora/components/status-badge/index.ts +3 -0
  1806. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge-cell.component.ts +37 -0
  1807. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge-cell.stories.ts +74 -0
  1808. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.component.ts +63 -0
  1809. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.spec.ts +93 -0
  1810. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.stories.ts +107 -0
  1811. package/dist/templates/frontend/application/src/@aurora/components/status-badge/status-badge.types.ts +43 -0
  1812. package/dist/templates/frontend/application/src/@aurora/composables/atoms/data-table/use-table-data.ts +3 -2
  1813. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-find-by-id.ts +12 -2
  1814. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-find.ts +14 -2
  1815. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-get.ts +11 -2
  1816. package/dist/templates/frontend/application/src/@aurora/composables/atoms/graphql/use-graphql-paginate.ts +9 -2
  1817. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-aggregate-shell.spec.ts +191 -0
  1818. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-aggregate-shell.ts +24 -4
  1819. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-graphql-detail.ts +23 -14
  1820. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-graphql-list.ts +14 -10
  1821. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-paginated-data-table.spec.ts +251 -0
  1822. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-paginated-data-table.ts +64 -19
  1823. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-pivot-membership.spec.ts +142 -0
  1824. package/dist/templates/frontend/application/src/@aurora/composables/presets/use-pivot-membership.ts +7 -9
  1825. package/dist/templates/frontend/application/src/@aurora/directives/index.ts +1 -0
  1826. package/dist/templates/frontend/application/src/@aurora/directives/scroll-fade.directive.ts +150 -0
  1827. package/dist/templates/frontend/application/src/@aurora/index.ts +1 -0
  1828. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-date.spec.ts +50 -0
  1829. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-date.ts +42 -0
  1830. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-datetime.spec.ts +42 -0
  1831. package/dist/templates/frontend/application/src/@aurora/lib/format-iso-datetime.ts +34 -0
  1832. package/dist/templates/frontend/application/src/@aurora/lib/format-local-date.spec.ts +28 -0
  1833. package/dist/templates/frontend/application/src/@aurora/lib/format-local-date.ts +23 -0
  1834. package/dist/templates/frontend/application/src/@aurora/lib/format-utc-date.spec.ts +47 -0
  1835. package/dist/templates/frontend/application/src/@aurora/lib/format-utc-date.ts +25 -0
  1836. package/dist/templates/frontend/application/src/@aurora/lib/index.ts +11 -0
  1837. package/dist/templates/frontend/application/src/@aurora/lib/local-time.spec.ts +54 -0
  1838. package/dist/templates/frontend/application/src/@aurora/lib/local-time.ts +40 -0
  1839. package/dist/templates/frontend/application/src/@aurora/lib/resolve-enum-label.spec.ts +130 -0
  1840. package/dist/templates/frontend/application/src/@aurora/lib/resolve-enum-label.ts +61 -0
  1841. package/dist/templates/frontend/application/src/@aurora/lib/resolve-i18n-value.spec.ts +101 -0
  1842. package/dist/templates/frontend/application/src/@aurora/lib/resolve-i18n-value.ts +30 -0
  1843. package/dist/templates/frontend/application/src/@aurora/lib/resolve-storage-file-url.spec.ts +39 -0
  1844. package/dist/templates/frontend/application/src/@aurora/lib/resolve-storage-file-url.ts +38 -0
  1845. package/dist/templates/frontend/application/src/@aurora/lib/scroll-fade.spec.ts +94 -0
  1846. package/dist/templates/frontend/application/src/@aurora/lib/scroll-fade.ts +51 -0
  1847. package/dist/templates/frontend/application/src/@aurora/lib/to-wire-date.spec.ts +63 -0
  1848. package/dist/templates/frontend/application/src/@aurora/lib/to-wire-date.ts +70 -0
  1849. package/dist/templates/frontend/application/src/@aurora/lib/use-async-search-list.spec.ts +133 -0
  1850. package/dist/templates/frontend/application/src/@aurora/lib/use-async-search-list.ts +1 -6
  1851. package/dist/templates/frontend/application/src/@aurora/lib/utc-date-prefix.ts +24 -0
  1852. package/dist/templates/frontend/application/src/@aurora/modules/authentication/README.md +59 -2
  1853. package/dist/templates/frontend/application/src/@aurora/modules/authentication/data-access/authentication.graphql.ts +15 -15
  1854. package/dist/templates/frontend/application/src/@aurora/modules/authentication/guards/permission.guard.spec.ts +195 -0
  1855. package/dist/templates/frontend/application/src/@aurora/modules/authentication/guards/permission.guard.ts +65 -0
  1856. package/dist/templates/frontend/application/src/@aurora/modules/authentication/index.ts +7 -2
  1857. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/anonymous-current-account.adapter.spec.ts +92 -0
  1858. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/anonymous-current-account.adapter.ts +36 -2
  1859. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-aurora-adapter.service.spec.ts +494 -0
  1860. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-aurora-adapter.service.ts +99 -50
  1861. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/adapters/authentication-disabled.service.ts +8 -4
  1862. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authenticated-initializer.ts +8 -7
  1863. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.provider.ts +2 -0
  1864. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.service.ts +27 -1
  1865. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.spec.ts +113 -0
  1866. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.ts +56 -3
  1867. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/authentication.types.ts +6 -2
  1868. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/current-account.service.ts +68 -0
  1869. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver-permission-bounce.spec.ts +80 -0
  1870. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver.service.spec.ts +440 -0
  1871. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/landing-resolver.service.ts +156 -0
  1872. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/resolve-landing-route.spec.ts +75 -0
  1873. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/resolve-landing-route.ts +27 -0
  1874. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/safe-redirect-path.spec.ts +41 -0
  1875. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/safe-redirect-path.ts +21 -0
  1876. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/session-recovery-coordinator.service.spec.ts +759 -0
  1877. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/session-recovery-coordinator.service.ts +310 -0
  1878. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/token-store.service.spec.ts +293 -0
  1879. package/dist/templates/frontend/application/src/@aurora/modules/authentication/shared/token-store.service.ts +116 -1
  1880. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.css +150 -0
  1881. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.spec.ts +288 -0
  1882. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.component.ts +776 -0
  1883. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.gridstack.css +15 -0
  1884. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/dashboard-grid.helpers.ts +174 -0
  1885. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-grid/index.ts +2 -0
  1886. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/dashboard-tile.component.spec.ts +261 -0
  1887. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/dashboard-tile.component.ts +306 -0
  1888. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/dashboard-tile/index.ts +1 -0
  1889. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/components/index.ts +2 -0
  1890. package/dist/templates/frontend/application/src/@aurora/modules/dashboard/index.ts +1 -0
  1891. package/dist/templates/frontend/application/src/@aurora/modules/graphql/apollo.factory.spec.ts +1001 -530
  1892. package/dist/templates/frontend/application/src/@aurora/modules/graphql/apollo.factory.ts +108 -34
  1893. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-create.ts +17 -8
  1894. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete-by-id.ts +14 -8
  1895. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete-by-keys.ts +15 -7
  1896. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-delete.ts +18 -9
  1897. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-insert.ts +14 -8
  1898. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/mutate-update.ts +14 -8
  1899. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find-by-id.spec.ts +6 -4
  1900. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find-by-id.ts +12 -11
  1901. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find.spec.ts +7 -5
  1902. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-find.ts +16 -13
  1903. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-get.spec.ts +6 -4
  1904. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-get.ts +13 -14
  1905. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-paginate.spec.ts +8 -5
  1906. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/query-paginate.ts +11 -9
  1907. package/dist/templates/frontend/application/src/@aurora/modules/graphql/fetchers/types.ts +5 -3
  1908. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.spec.ts +170 -0
  1909. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.ts +36 -6
  1910. package/dist/templates/frontend/application/src/@aurora/modules/graphql/graphql.types.ts +24 -12
  1911. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-auth.handler.spec.ts +30 -108
  1912. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-auth.handler.ts +9 -76
  1913. package/dist/templates/frontend/application/src/@aurora/modules/graphql/handlers/aurora-graphql-error.handler.spec.ts +12 -3
  1914. package/dist/templates/frontend/application/src/@aurora/modules/graphql/index.ts +5 -0
  1915. package/dist/templates/frontend/application/src/@aurora/modules/health/health.service.spec.ts +138 -0
  1916. package/dist/templates/frontend/application/src/@aurora/modules/health/health.service.ts +60 -0
  1917. package/dist/templates/frontend/application/src/@aurora/modules/health/index.ts +1 -0
  1918. package/dist/templates/frontend/application/src/@aurora/modules/index.ts +5 -0
  1919. package/dist/templates/frontend/application/src/@aurora/modules/lang/index.ts +1 -0
  1920. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang-flag-icons.ts +34 -0
  1921. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang.service.spec.ts +129 -0
  1922. package/dist/templates/frontend/application/src/@aurora/modules/lang/lang.service.ts +37 -3
  1923. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/build-report-columns.spec.ts +367 -0
  1924. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/build-report-columns.ts +186 -0
  1925. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/index.ts +24 -0
  1926. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-cell-renderer.registry.ts +52 -0
  1927. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-fetch-adapter.spec.ts +148 -0
  1928. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-fetch-adapter.ts +68 -0
  1929. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-filter-form.component.ts +154 -0
  1930. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-filter-form.spec.ts +181 -0
  1931. package/dist/templates/frontend/application/src/@aurora/modules/report-viewer/report-viewer.types.ts +230 -0
  1932. package/dist/templates/frontend/application/src/@aurora/modules/session/session.service.ts +2 -2
  1933. package/dist/templates/frontend/application/src/@aurora/modules/theme/index.ts +2 -0
  1934. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.service.spec.ts +240 -0
  1935. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.service.ts +128 -0
  1936. package/dist/templates/frontend/application/src/@aurora/modules/theme/theme-palette.type.ts +4 -0
  1937. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget-component-i18n.spec.ts +217 -0
  1938. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget-i18n.spec.ts +221 -0
  1939. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.component.ts +318 -0
  1940. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.spec.ts +274 -0
  1941. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/chart-widget.ts +89 -0
  1942. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.component.ts +200 -0
  1943. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.spec.ts +373 -0
  1944. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/stat-widget.ts +80 -0
  1945. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget-i18n.spec.ts +176 -0
  1946. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.component.ts +230 -0
  1947. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.spec.ts +332 -0
  1948. package/dist/templates/frontend/application/src/@aurora/modules/widget/archetypes/table-widget.ts +67 -0
  1949. package/dist/templates/frontend/application/src/@aurora/modules/widget/aurora-widget-def.ts +101 -0
  1950. package/dist/templates/frontend/application/src/@aurora/modules/widget/index.ts +17 -0
  1951. package/dist/templates/frontend/application/src/@aurora/modules/widget/refreshable-widget.spec.ts +75 -0
  1952. package/dist/templates/frontend/application/src/@aurora/modules/widget/refreshable-widget.ts +32 -0
  1953. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-category.ts +16 -0
  1954. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source-runner.spec.ts +298 -0
  1955. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source-runner.ts +103 -0
  1956. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-data-source.ts +68 -0
  1957. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-permission-filter.spec.ts +195 -0
  1958. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-permission-filter.ts +84 -0
  1959. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-registry.spec.ts +91 -0
  1960. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-registry.ts +38 -0
  1961. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-scope-deriver.spec.ts +85 -0
  1962. package/dist/templates/frontend/application/src/@aurora/modules/widget/widget-scope-deriver.ts +41 -0
  1963. package/dist/templates/frontend/application/src/@aurora/pipes/index.ts +1 -0
  1964. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message-legacy.pipe.spec.ts +81 -0
  1965. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message-legacy.pipe.ts +50 -0
  1966. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message.pipe.spec.ts +197 -0
  1967. package/dist/templates/frontend/application/src/@aurora/pipes/validation-message.pipe.ts +97 -21
  1968. package/dist/templates/frontend/application/src/@aurora/query-dsl/index.ts +32 -0
  1969. package/dist/templates/frontend/application/src/@aurora/query-dsl/query-statement.spec.ts +94 -0
  1970. package/dist/templates/frontend/application/src/@aurora/query-dsl/query-statement.type-contract.ts +38 -0
  1971. package/dist/templates/frontend/application/src/app/app.config.ts +16 -6
  1972. package/dist/templates/frontend/application/src/app/app.routes.ts +1 -1
  1973. package/dist/templates/frontend/application/src/app/app.ts +1 -2
  1974. package/dist/templates/frontend/application/src/app/aurora-widget.providers.ts +21 -0
  1975. package/dist/templates/frontend/application/src/app/aurora.provider.spec.ts +1 -2
  1976. package/dist/templates/frontend/application/src/app/aurora.provider.ts +12 -5
  1977. package/dist/templates/frontend/application/src/app/domains/admin/home/home.component.ts +15 -0
  1978. package/dist/templates/frontend/application/src/app/domains/admin/layout/layout.component.ts +2 -3
  1979. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/app-sidebar.spec.ts +111 -0
  1980. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/app-sidebar.ts +74 -21
  1981. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-active.spec.ts +124 -0
  1982. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-active.ts +48 -0
  1983. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-filter.spec.ts +203 -0
  1984. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-filter.ts +122 -0
  1985. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-main.ts +19 -28
  1986. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-secondary.ts +1 -2
  1987. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-sub-items.ts +10 -23
  1988. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-user.ts +1 -2
  1989. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/types.ts +4 -0
  1990. package/dist/templates/frontend/application/src/app/domains/admin/layout/site-header.spec.ts +153 -0
  1991. package/dist/templates/frontend/application/src/app/domains/admin/layout/site-header.ts +109 -31
  1992. package/dist/templates/frontend/application/src/app/domains/admin/navigation-data.ts +4 -20
  1993. package/dist/templates/frontend/application/src/app/domains/admin/routes.ts +4 -3
  1994. package/dist/templates/frontend/application/src/app/domains/auth/callback-error/callback-error.component.ts +1 -2
  1995. package/dist/templates/frontend/application/src/app/domains/auth/layout.ts +1 -2
  1996. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/login-form.spec.ts +32 -31
  1997. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/login-form.ts +23 -33
  1998. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/oauth-session.service.ts +2 -4
  1999. package/dist/templates/frontend/application/src/app/domains/auth/sign-in/sign-in.component.ts +1 -2
  2000. package/dist/templates/frontend/application/src/app/domains/auth/sign-out/sign-out.component.spec.ts +13 -11
  2001. package/dist/templates/frontend/application/src/app/domains/auth/sign-out/sign-out.component.ts +6 -9
  2002. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/sign-up.component.ts +1 -2
  2003. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/signup-form.spec.ts +60 -0
  2004. package/dist/templates/frontend/application/src/app/domains/auth/sign-up/signup-form.ts +25 -16
  2005. package/dist/templates/frontend/application/src/app/domains/auth/signed-out/signed-out.component.ts +1 -2
  2006. package/dist/templates/frontend/application/src/app/transloco-lang.factory.spec.ts +40 -0
  2007. package/dist/templates/frontend/application/src/app/transloco-lang.factory.ts +28 -0
  2008. package/dist/templates/frontend/application/src/app/transloco-loader.ts +2 -2
  2009. package/dist/templates/frontend/application/src/environments/environment.dev.ts +43 -3
  2010. package/dist/templates/frontend/application/src/environments/environment.local.ts +44 -4
  2011. package/dist/templates/frontend/application/src/environments/environment.prod.ts +43 -3
  2012. package/dist/templates/frontend/application/src/environments/environment.qa.ts +43 -3
  2013. package/dist/templates/frontend/application/src/environments/environment.ts +43 -3
  2014. package/dist/templates/frontend/application/src/environments/environment.type.ts +48 -0
  2015. package/dist/templates/frontend/application/src/index.html +21 -1
  2016. package/dist/templates/frontend/application/src/styles.css +772 -8
  2017. package/dist/templates/frontend/application/tsconfig.app.json +3 -9
  2018. package/dist/templates/frontend/application/tsconfig.json +17 -1
  2019. package/dist/templates/frontend/packages/dashboard/public/i18n/dashboard/en.json +41 -0
  2020. package/dist/templates/frontend/packages/dashboard/public/i18n/dashboard/es.json +41 -0
  2021. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/dashboard.routes.ts +8 -0
  2022. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard-i18n.spec.ts +342 -0
  2023. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.component.spec.ts +349 -0
  2024. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.component.ts +622 -0
  2025. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.helpers.spec.ts +152 -0
  2026. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.helpers.ts +79 -0
  2027. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/dashboard.orchestration.ts +159 -0
  2028. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/index.ts +1 -0
  2029. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog-dialog.component.ts +295 -0
  2030. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog.helpers.spec.ts +202 -0
  2031. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/features/widget-catalog.helpers.ts +58 -0
  2032. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/index.ts +3 -0
  2033. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.graphql.spec.ts +142 -0
  2034. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.graphql.ts +48 -0
  2035. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.service.ts +71 -0
  2036. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/data-access/layout.types.ts +44 -0
  2037. package/dist/templates/frontend/packages/dashboard/src/app/domains/admin/apps/dashboard/layout/index.ts +1 -0
  2038. package/dist/templates/frontend/packages/hub/public/i18n/hub/en.json +50 -0
  2039. package/dist/templates/frontend/packages/hub/public/i18n/hub/es.json +50 -0
  2040. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/app.columns.ts +124 -0
  2041. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.detail-config.ts +12 -0
  2042. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.graphql.ts +162 -0
  2043. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.list-config.ts +13 -0
  2044. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/app.resolvers.ts +39 -0
  2045. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/data-access/index.ts +8 -0
  2046. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-form.component.ts +305 -0
  2047. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-list-actions-cell.component.ts +75 -0
  2048. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/app-list.component.ts +433 -0
  2049. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/features/index.ts +7 -0
  2050. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app/index.ts +7 -0
  2051. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.detail-config.ts +13 -0
  2052. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.graphql.ts +156 -0
  2053. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/app-account/data-access/app-account.list-config.ts +14 -0
  2054. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub-icons.providers.ts +11 -0
  2055. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.navigation.ts +39 -0
  2056. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.routes.ts +35 -0
  2057. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/hub.types.ts +5 -0
  2058. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/index.ts +6 -0
  2059. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/data-access/launchpad.graphql.ts +48 -0
  2060. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.component.spec.ts +259 -0
  2061. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.component.ts +228 -0
  2062. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-app-card.helpers.ts +21 -0
  2063. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad-keyboard.helpers.ts +148 -0
  2064. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.component.spec.ts +493 -0
  2065. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.component.ts +612 -0
  2066. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.helpers.spec.ts +328 -0
  2067. package/dist/templates/frontend/packages/hub/src/app/domains/admin/apps/hub/launchpad/features/hub-launchpad.helpers.ts +167 -0
  2068. package/dist/templates/frontend/packages/iam/public/i18n/iam/en.json +6 -1
  2069. package/dist/templates/frontend/packages/iam/public/i18n/iam/es.json +6 -1
  2070. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/current-account.adapter.spec.ts +459 -0
  2071. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/current-account.adapter.ts +140 -0
  2072. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/adapters/index.ts +1 -0
  2073. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.derive.spec.ts +63 -0
  2074. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.derive.ts +32 -0
  2075. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.detail-config.ts +12 -0
  2076. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.graphql.ts +287 -0
  2077. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.list-config.ts +13 -0
  2078. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.resolvers.spec.ts +72 -0
  2079. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/account.resolvers.ts +123 -0
  2080. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/data-access/index.ts +12 -0
  2081. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-detail.component.spec.ts +78 -0
  2082. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-detail.component.ts +170 -0
  2083. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-form.component.spec.ts +886 -0
  2084. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-form.component.ts +904 -0
  2085. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-list-actions-cell.component.ts +113 -0
  2086. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/account-list.component.ts +261 -0
  2087. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/features/index.ts +6 -0
  2088. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/account/index.ts +11 -0
  2089. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.detail-config.ts +12 -0
  2090. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.graphql.ts +171 -0
  2091. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.list-config.ts +13 -0
  2092. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/bounded-context.resolvers.ts +39 -0
  2093. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/data-access/index.ts +8 -0
  2094. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-detail.component.ts +160 -0
  2095. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-form.component.ts +150 -0
  2096. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-list-actions-cell.component.ts +75 -0
  2097. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/bounded-context-list.component.ts +242 -0
  2098. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/features/index.ts +8 -0
  2099. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/bounded-context/index.ts +7 -0
  2100. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam-icons.providers.ts +23 -0
  2101. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam.navigation.ts +59 -0
  2102. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/iam.routes.ts +96 -0
  2103. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/index.ts +8 -0
  2104. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.detail-config.ts +12 -0
  2105. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.graphql.ts +181 -0
  2106. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.list-config.ts +13 -0
  2107. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/data-access/permission.resolvers.ts +72 -0
  2108. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/index.ts +8 -0
  2109. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-form-embed.component.ts +96 -0
  2110. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-form.component.ts +118 -0
  2111. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-list-actions-cell.component.ts +75 -0
  2112. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/features/permission-list.component.ts +398 -0
  2113. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/index.ts +7 -0
  2114. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission/permission.columns.ts +73 -0
  2115. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.detail-config.ts +12 -0
  2116. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.graphql.ts +200 -0
  2117. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/permission-role/data-access/permission-role.list-config.ts +13 -0
  2118. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/index.ts +8 -0
  2119. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.detail-config.ts +12 -0
  2120. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.graphql.ts +194 -0
  2121. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.list-config.ts +13 -0
  2122. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/data-access/role.resolvers.ts +39 -0
  2123. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/index.ts +8 -0
  2124. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-detail.component.ts +295 -0
  2125. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-form.component.ts +157 -0
  2126. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-list-actions-cell.component.ts +75 -0
  2127. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/features/role-list.component.ts +236 -0
  2128. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/index.ts +7 -0
  2129. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role/role.columns.ts +119 -0
  2130. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.detail-config.ts +12 -0
  2131. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.graphql.ts +198 -0
  2132. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/role-account/data-access/role-account.list-config.ts +13 -0
  2133. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/shared/validators/unique-email.validator.ts +31 -0
  2134. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/shared/validators/unique-username.validator.ts +29 -0
  2135. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/index.ts +8 -0
  2136. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.detail-config.ts +12 -0
  2137. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.graphql.ts +113 -0
  2138. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.list-config.ts +13 -0
  2139. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/data-access/tag.resolvers.ts +39 -0
  2140. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/index.ts +7 -0
  2141. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-form.component.ts +88 -0
  2142. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-list-actions-cell.component.ts +75 -0
  2143. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/features/tag-list.component.ts +318 -0
  2144. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tag/index.ts +7 -0
  2145. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/index.ts +8 -0
  2146. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.detail-config.ts +12 -0
  2147. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.graphql.ts +223 -0
  2148. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.list-config.ts +13 -0
  2149. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/data-access/tenant.resolvers.ts +65 -0
  2150. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/index.ts +7 -0
  2151. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-form.component.ts +149 -0
  2152. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-list-actions-cell.component.ts +75 -0
  2153. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/features/tenant-list.component.ts +330 -0
  2154. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/index.ts +7 -0
  2155. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant/tenant.columns.ts +103 -0
  2156. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.detail-config.ts +12 -0
  2157. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.graphql.ts +203 -0
  2158. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/tenant-account/data-access/tenant-account.list-config.ts +13 -0
  2159. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/index.ts +8 -0
  2160. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.detail-config.ts +11 -0
  2161. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.graphql.ts +180 -0
  2162. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.list-config.ts +13 -0
  2163. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/data-access/user.resolvers.ts +39 -0
  2164. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/features/index.ts +5 -0
  2165. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/user/index.ts +6 -0
  2166. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/widgets/iam.widgets.spec.ts +262 -0
  2167. package/dist/templates/frontend/packages/iam/src/app/domains/admin/apps/iam/widgets/iam.widgets.ts +156 -0
  2168. package/dist/templates/frontend/packages/o-auth/public/i18n/o-auth/en.json +6 -4
  2169. package/dist/templates/frontend/packages/o-auth/public/i18n/o-auth/es.json +7 -5
  2170. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/access-token.columns.ts +86 -0
  2171. 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
  2172. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.graphql.ts +117 -0
  2173. 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
  2174. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/access-token.resolvers.ts +43 -0
  2175. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/data-access/index.ts +8 -0
  2176. 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
  2177. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/features/access-token-list.component.ts +224 -0
  2178. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/features/index.ts +6 -0
  2179. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/access-token/index.ts +7 -0
  2180. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/application.columns.ts +78 -0
  2181. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.detail-config.ts +12 -0
  2182. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.graphql.ts +140 -0
  2183. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.list-config.ts +13 -0
  2184. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/application.resolvers.ts +39 -0
  2185. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/data-access/index.ts +8 -0
  2186. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-form.component.ts +162 -0
  2187. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-list-actions-cell.component.ts +75 -0
  2188. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/application-list.component.ts +323 -0
  2189. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/features/index.ts +7 -0
  2190. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application/index.ts +7 -0
  2191. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/application-client/data-access/application-client.graphql.ts +158 -0
  2192. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/authorization-code.columns.ts +123 -0
  2193. 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
  2194. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.graphql.ts +168 -0
  2195. 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
  2196. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/authorization-code.resolvers.ts +47 -0
  2197. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/data-access/index.ts +8 -0
  2198. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/authorization-code-form.component.ts +199 -0
  2199. 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
  2200. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/authorization-code-list.component.ts +334 -0
  2201. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/features/index.ts +7 -0
  2202. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/authorization-code/index.ts +7 -0
  2203. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/client.columns.ts +145 -0
  2204. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.detail-config.ts +12 -0
  2205. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.graphql.ts +134 -0
  2206. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.list-config.ts +13 -0
  2207. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/client.resolvers.ts +69 -0
  2208. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/data-access/index.ts +8 -0
  2209. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-form.component.ts +291 -0
  2210. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-list-actions-cell.component.ts +75 -0
  2211. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/client-list.component.ts +335 -0
  2212. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/features/index.ts +7 -0
  2213. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/client/index.ts +7 -0
  2214. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/o-auth-icons.providers.ts +21 -0
  2215. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/o-auth.navigation.ts +59 -0
  2216. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/index.ts +8 -0
  2217. 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
  2218. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.graphql.ts +104 -0
  2219. 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
  2220. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/data-access/refresh-token.resolvers.ts +39 -0
  2221. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/features/index.ts +6 -0
  2222. 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
  2223. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/features/refresh-token-list.component.ts +221 -0
  2224. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/index.ts +7 -0
  2225. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/refresh-token/refresh-token.columns.ts +60 -0
  2226. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/index.ts +8 -0
  2227. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.detail-config.ts +12 -0
  2228. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.graphql.ts +120 -0
  2229. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.list-config.ts +13 -0
  2230. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/data-access/scope.resolvers.ts +39 -0
  2231. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/index.ts +7 -0
  2232. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-form.component.spec.ts +75 -0
  2233. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-form.component.ts +116 -0
  2234. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-list-actions-cell.component.ts +75 -0
  2235. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/features/scope-list.component.ts +318 -0
  2236. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/scope/index.ts +7 -0
  2237. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/widgets/o-auth.widgets.spec.ts +338 -0
  2238. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/apps/o-auth/widgets/o-auth.widgets.ts +230 -0
  2239. package/dist/templates/frontend/packages/queue-manager/public/i18n/queue-manager/en.json +92 -0
  2240. package/dist/templates/frontend/packages/queue-manager/public/i18n/queue-manager/es.json +92 -0
  2241. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/index.ts +1 -0
  2242. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/queue.graphql.ts +214 -0
  2243. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/queue.service.ts +301 -0
  2244. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/use-queue-polling.spec.ts +281 -0
  2245. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/data-access/use-queue-polling.ts +87 -0
  2246. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-data-dialog.component.spec.ts +345 -0
  2247. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-data-dialog.component.ts +246 -0
  2248. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/job-drawer.component.ts +492 -0
  2249. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/queue-detail.component.ts +666 -0
  2250. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/features/queue-list.component.ts +547 -0
  2251. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue/index.ts +6 -0
  2252. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager-icons.providers.ts +5 -0
  2253. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.navigation.ts +11 -0
  2254. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.routes.ts +15 -0
  2255. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.types.spec.ts +154 -0
  2256. package/dist/templates/frontend/packages/queue-manager/src/app/domains/admin/apps/queue-manager/queue-manager.types.ts +192 -0
  2257. package/dist/templates/monorepo/.backlog/config.yml +38 -0
  2258. package/dist/templates/monorepo/.claude/agents/jd-fix-agent.md +32 -0
  2259. package/dist/templates/monorepo/.claude/agents/jd-judge-a.md +36 -0
  2260. package/dist/templates/monorepo/.claude/agents/jd-judge-b.md +36 -0
  2261. package/dist/templates/monorepo/.claude/commands/business-rules/audit.md +2 -0
  2262. package/dist/templates/monorepo/.claude/commands/business-rules/check.md +2 -0
  2263. package/dist/templates/monorepo/.claude/commands/business-rules/document.md +4 -1
  2264. package/dist/templates/monorepo/.claude/commands/business-rules/promote.md +2 -0
  2265. package/dist/templates/monorepo/.claude/commands/opsx/apply.md +36 -7
  2266. package/dist/templates/monorepo/.claude/commands/opsx/archive.md +91 -26
  2267. package/dist/templates/monorepo/.claude/commands/opsx/explore.md +51 -27
  2268. package/dist/templates/monorepo/.claude/commands/opsx/propose.md +64 -26
  2269. package/dist/templates/monorepo/.claude/commands/opsx/sync.md +258 -0
  2270. package/dist/templates/monorepo/.claude/hooks/__fixtures__/br-hr-regression-baseline.txt +251 -0
  2271. package/dist/templates/monorepo/.claude/hooks/architecture-checkpoint.test.ts +470 -0
  2272. package/dist/templates/monorepo/.claude/hooks/architecture-checkpoint.ts +395 -43
  2273. package/dist/templates/monorepo/.claude/hooks/auto-allow-readonly-bash.test.ts +158 -0
  2274. package/dist/templates/monorepo/.claude/hooks/auto-allow-readonly-bash.ts +314 -0
  2275. package/dist/templates/monorepo/.claude/hooks/business-rules-injector.test.ts +387 -0
  2276. package/dist/templates/monorepo/.claude/hooks/business-rules-injector.ts +231 -0
  2277. package/dist/templates/monorepo/.claude/hooks/catalyst-regen-review.test.ts +114 -0
  2278. package/dist/templates/monorepo/.claude/hooks/catalyst-regen-review.ts +260 -0
  2279. package/dist/templates/monorepo/.claude/hooks/check-required-setup.test.ts +183 -0
  2280. package/dist/templates/monorepo/.claude/hooks/check-required-setup.ts +304 -0
  2281. package/dist/templates/monorepo/.claude/hooks/format-with-prettier.ts +98 -0
  2282. package/dist/templates/monorepo/.claude/hooks/harness-rules-content-guard.ts +12 -7
  2283. package/dist/templates/monorepo/.claude/hooks/inject-prompt-context.test.ts +453 -0
  2284. package/dist/templates/monorepo/.claude/hooks/inject-prompt-context.ts +526 -0
  2285. package/dist/templates/monorepo/.claude/hooks/instructions-loaded-log.test.ts +131 -0
  2286. package/dist/templates/monorepo/.claude/hooks/instructions-loaded-log.ts +132 -0
  2287. package/dist/templates/monorepo/.claude/hooks/lint-barrels.test.ts +232 -0
  2288. package/dist/templates/monorepo/.claude/hooks/lint-barrels.ts +317 -0
  2289. package/dist/templates/monorepo/.claude/rules/route-aurora-components.md +24 -0
  2290. package/dist/templates/monorepo/.claude/rules/route-aurora-yaml.md +29 -0
  2291. package/dist/templates/monorepo/.claude/rules/route-backend-test.md +31 -0
  2292. package/dist/templates/monorepo/.claude/rules/route-drizzle-schema.md +35 -0
  2293. package/dist/templates/monorepo/.claude/rules/route-eta.md +17 -0
  2294. package/dist/templates/monorepo/.claude/rules/route-skill-md.md +28 -0
  2295. package/dist/templates/monorepo/.claude/rules/scope-backend.md +39 -0
  2296. package/dist/templates/monorepo/.claude/rules/scope-cli.md +28 -0
  2297. package/dist/templates/monorepo/.claude/rules/scope-frontend.md +34 -0
  2298. package/dist/templates/monorepo/.claude/scheduled_tasks.lock +1 -0
  2299. package/dist/templates/monorepo/.claude/scripts/catalyst-dev-mode.sh +2 -2
  2300. package/dist/templates/monorepo/.claude/scripts/daily-tips.txt +1 -0
  2301. package/dist/templates/monorepo/.claude/scripts/generate-skills-index.test.ts +397 -0
  2302. package/dist/templates/monorepo/.claude/scripts/generate-skills-index.ts +196 -23
  2303. package/dist/templates/monorepo/.claude/scripts/status-line.sh +13 -2
  2304. package/dist/templates/monorepo/.claude/settings.json +103 -16
  2305. package/dist/templates/monorepo/.claude/skills/REGISTRY.md +59 -26
  2306. package/dist/templates/monorepo/.claude/skills/business-rules-guard/SKILL.md +15 -2
  2307. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/audit.md +9 -7
  2308. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/format.md +70 -2
  2309. package/dist/templates/monorepo/.claude/skills/business-rules-guard/references/workflow.md +2 -1
  2310. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/SKILL.md +604 -0
  2311. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/frontier-worker-addendum.md +137 -0
  2312. package/dist/templates/monorepo/.claude/skills/catalyst-backlog/worker-system-prompt.md +88 -0
  2313. package/dist/templates/monorepo/.claude/skills/catalyst-cli/SKILL.md +117 -38
  2314. package/dist/templates/monorepo/.claude/skills/catalyst-cli/references/origin-conciliation.md +116 -20
  2315. package/dist/templates/monorepo/.claude/skills/catalyst-cli/references/schema-versioning.md +1 -1
  2316. package/dist/templates/monorepo/.claude/skills/catalyst-delegation/SKILL.md +180 -0
  2317. package/dist/templates/monorepo/.claude/skills/catalyst-langs/SKILL.md +241 -0
  2318. package/dist/templates/monorepo/.claude/skills/catalyst-query-dsl/SKILL.md +236 -0
  2319. package/dist/templates/monorepo/.claude/skills/catalyst-query-dsl/references/query-language.md +265 -0
  2320. package/dist/templates/monorepo/.claude/skills/catalyst-report-creator/SKILL.md +232 -0
  2321. package/dist/templates/monorepo/.claude/skills/catalyst-report-creator/references/cube-authoring.md +155 -0
  2322. package/dist/templates/monorepo/.claude/skills/catalyst-schema/SKILL.md +93 -5
  2323. package/dist/templates/monorepo/.claude/skills/catalyst-schema/patterns-workflow.md +24 -0
  2324. package/dist/templates/monorepo/.claude/skills/catalyst-schema/types-reference.md +2 -1
  2325. package/dist/templates/monorepo/.claude/skills/catalyst-skill-creator/SKILL.md +10 -2
  2326. package/dist/templates/monorepo/.claude/skills/catalyst-update-skill-registry/SKILL.md +54 -16
  2327. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/SKILL.md +16 -12
  2328. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/references/enforcement.md +7 -6
  2329. package/dist/templates/monorepo/.claude/skills/harness-rules-guard/references/format.md +140 -6
  2330. package/dist/templates/monorepo/.claude/skills/judgment-day/SKILL.md +8 -0
  2331. package/dist/templates/monorepo/.claude/skills/openspec-apply-change/SKILL.md +35 -6
  2332. package/dist/templates/monorepo/.claude/skills/openspec-archive-change/SKILL.md +87 -22
  2333. package/dist/templates/monorepo/.claude/skills/openspec-explore/SKILL.md +89 -65
  2334. package/dist/templates/monorepo/.claude/skills/openspec-propose/SKILL.md +62 -24
  2335. package/dist/templates/monorepo/.claude/skills/openspec-sync-specs/SKILL.md +262 -0
  2336. package/dist/templates/monorepo/.claude/skills/typescript/SKILL.md +5 -0
  2337. package/dist/templates/monorepo/.claude/skills-triggers-index.json +128 -0
  2338. package/dist/templates/monorepo/.husky/pre-commit +26 -0
  2339. package/dist/templates/monorepo/.mcp.json +7 -0
  2340. package/dist/templates/monorepo/CLAUDE.md +204 -303
  2341. package/dist/templates/monorepo/cliter/business-rules-index.json +11044 -259
  2342. package/dist/templates/monorepo/cliter/harness-rules/barrels.md +294 -0
  2343. package/dist/templates/monorepo/cliter/harness-rules/bridges.md +88 -0
  2344. package/dist/templates/monorepo/cliter/harness-rules/dev-modes.md +85 -0
  2345. package/dist/templates/monorepo/cliter/harness-rules/docs-location.md +67 -0
  2346. package/dist/templates/monorepo/cliter/harness-rules/generated-code.md +77 -0
  2347. package/dist/templates/monorepo/cliter/harness-rules/module-graph.md +89 -0
  2348. package/dist/templates/monorepo/cliter/harness-rules/modules.md +78 -0
  2349. package/dist/templates/monorepo/cliter/harness-rules/persistence-integrity.md +92 -0
  2350. package/dist/templates/monorepo/cliter/harness-rules/ports-adapters.md +82 -0
  2351. package/dist/templates/monorepo/cliter/harness-rules/protocol-flows.md +88 -0
  2352. package/dist/templates/monorepo/cliter/harness-rules/types-acl.md +93 -0
  2353. package/dist/templates/monorepo/cliter/harness-rules-index.json +857 -0
  2354. package/dist/templates/monorepo/docs/AURORA-CATALYST-BRIEF.md +253 -0
  2355. package/dist/templates/monorepo/docs/_catalog-schema-base.json +1 -1
  2356. package/dist/templates/monorepo/docs/business-rules/ARCHITECTURE.md +14 -11
  2357. package/dist/templates/monorepo/docs/business-rules/INDEX.md +108 -5
  2358. package/dist/templates/monorepo/docs/business-rules/MIGRATION.md +11 -52
  2359. package/dist/templates/monorepo/docs/business-rules/README.md +42 -925
  2360. package/dist/templates/monorepo/docs/harness-rules/INDEX.md +11 -7
  2361. package/dist/templates/monorepo/docs/harness-rules/README.md +37 -393
  2362. package/dist/templates/monorepo/docs/langs/README.md +260 -0
  2363. package/dist/templates/monorepo/docs/superpowers/specs/2026-07-02-report-creator-skill-design.md +176 -0
  2364. package/dist/templates/monorepo/openspec/config.yaml +31 -7
  2365. package/dist/templates/monorepo/package.json +14 -3
  2366. package/dist/templates/monorepo/pnpm-workspace.yaml +10 -2
  2367. package/dist/templates/monorepo/scripts/_catalog-runtime/README.md +30 -0
  2368. package/dist/templates/monorepo/scripts/_catalog-runtime/build-index.determinism.test.ts +81 -0
  2369. package/dist/templates/monorepo/scripts/_catalog-runtime/build-index.ts +214 -0
  2370. package/dist/templates/monorepo/scripts/_catalog-runtime/catalog-index.test.ts +146 -0
  2371. package/dist/templates/monorepo/scripts/_catalog-runtime/catalog-index.ts +120 -0
  2372. package/dist/templates/monorepo/scripts/_catalog-runtime/check-core.ts +280 -0
  2373. package/dist/templates/monorepo/scripts/_catalog-runtime/cli.ts +26 -0
  2374. package/dist/templates/monorepo/scripts/_catalog-runtime/frontmatter.ts +15 -0
  2375. package/dist/templates/monorepo/scripts/_catalog-runtime/glob.ts +86 -0
  2376. package/dist/templates/monorepo/scripts/_catalog-runtime/index.ts +74 -0
  2377. package/dist/templates/monorepo/scripts/_catalog-runtime/parse.ts +159 -0
  2378. package/dist/templates/monorepo/scripts/_catalog-runtime/repo-root.ts +36 -0
  2379. package/dist/templates/monorepo/scripts/_catalog-runtime/types.ts +154 -0
  2380. package/dist/templates/monorepo/scripts/_catalog-runtime/validate.ts +254 -0
  2381. package/dist/templates/monorepo/scripts/backlog/README.md +1601 -0
  2382. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-budget.jsonl +10 -0
  2383. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-crash.jsonl +9 -0
  2384. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-max-turns.jsonl +10 -0
  2385. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-needs-guidance-prose.jsonl +5 -0
  2386. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-needs-guidance.jsonl +10 -0
  2387. package/dist/templates/monorepo/scripts/backlog/__fixtures__/stream-success.jsonl +10 -0
  2388. package/dist/templates/monorepo/scripts/backlog/attempt.test.ts +290 -0
  2389. package/dist/templates/monorepo/scripts/backlog/attempt.ts +179 -0
  2390. package/dist/templates/monorepo/scripts/backlog/close.test.ts +3358 -0
  2391. package/dist/templates/monorepo/scripts/backlog/close.ts +2066 -0
  2392. package/dist/templates/monorepo/scripts/backlog/contract.test.ts +174 -0
  2393. package/dist/templates/monorepo/scripts/backlog/dev.aurora.backlog-dispatch.plist +76 -0
  2394. package/dist/templates/monorepo/scripts/backlog/dispatch.test.ts +2607 -0
  2395. package/dist/templates/monorepo/scripts/backlog/dispatch.ts +2304 -0
  2396. package/dist/templates/monorepo/scripts/backlog/entry.test.ts +1545 -0
  2397. package/dist/templates/monorepo/scripts/backlog/entry.ts +734 -0
  2398. package/dist/templates/monorepo/scripts/backlog/guards.test.ts +1766 -0
  2399. package/dist/templates/monorepo/scripts/backlog/guards.ts +1234 -0
  2400. package/dist/templates/monorepo/scripts/backlog/lanes/frontier.settings.json +104 -0
  2401. package/dist/templates/monorepo/scripts/backlog/lanes/local.settings.json +44 -0
  2402. package/dist/templates/monorepo/scripts/backlog/lanes.json +28 -0
  2403. package/dist/templates/monorepo/scripts/backlog/launch.test.ts +2750 -0
  2404. package/dist/templates/monorepo/scripts/backlog/launch.ts +1125 -0
  2405. package/dist/templates/monorepo/scripts/backlog/maintenance.test.ts +1965 -0
  2406. package/dist/templates/monorepo/scripts/backlog/maintenance.ts +1185 -0
  2407. package/dist/templates/monorepo/scripts/backlog/notify.test.ts +60 -0
  2408. package/dist/templates/monorepo/scripts/backlog/notify.ts +47 -0
  2409. package/dist/templates/monorepo/scripts/backlog/parent.test.ts +221 -0
  2410. package/dist/templates/monorepo/scripts/backlog/parent.ts +174 -0
  2411. package/dist/templates/monorepo/scripts/backlog/prompt.test.ts +928 -0
  2412. package/dist/templates/monorepo/scripts/backlog/prompt.ts +622 -0
  2413. package/dist/templates/monorepo/scripts/backlog/render.test.ts +247 -0
  2414. package/dist/templates/monorepo/scripts/backlog/render.ts +289 -0
  2415. package/dist/templates/monorepo/scripts/backlog/reviewer.test.ts +354 -0
  2416. package/dist/templates/monorepo/scripts/backlog/reviewer.ts +308 -0
  2417. package/dist/templates/monorepo/scripts/backlog/slots.test.ts +991 -0
  2418. package/dist/templates/monorepo/scripts/backlog/slots.ts +641 -0
  2419. package/dist/templates/monorepo/scripts/backlog/task-view.test.ts +763 -0
  2420. package/dist/templates/monorepo/scripts/backlog/task-view.ts +444 -0
  2421. package/dist/templates/monorepo/scripts/backlog/types.ts +256 -0
  2422. package/dist/templates/monorepo/scripts/backlog/watch.test.ts +360 -0
  2423. package/dist/templates/monorepo/scripts/backlog/watch.ts +333 -0
  2424. package/dist/templates/monorepo/scripts/backlog/worker-edit.test.ts +469 -0
  2425. package/dist/templates/monorepo/scripts/backlog/worker-edit.ts +464 -0
  2426. package/dist/templates/monorepo/scripts/business-rules/document.ts +2 -1
  2427. package/dist/templates/monorepo/scripts/business-rules/parse-catalog.ts +2 -1
  2428. package/dist/templates/monorepo/scripts/catalyst/regen-review.test.ts +313 -0
  2429. package/dist/templates/monorepo/scripts/catalyst/regen-review.ts +287 -0
  2430. package/dist/templates/monorepo/scripts/harness-rules/audit.ts +620 -0
  2431. package/dist/templates/monorepo/scripts/harness-rules/check.ts +37 -0
  2432. package/dist/templates/monorepo/scripts/harness-rules/generate-index.ts +215 -0
  2433. package/dist/templates/monorepo/scripts/harness-rules/lint-barrels.test.ts +872 -0
  2434. package/dist/templates/monorepo/scripts/harness-rules/lint-barrels.ts +1016 -0
  2435. package/dist/templates/monorepo/scripts/harness-rules/types.ts +62 -0
  2436. package/dist/templates/monorepo/scripts/harness-rules/validate-catalog.ts +121 -0
  2437. package/oclif.manifest.json +224 -224
  2438. package/package.json +14 -10
  2439. package/dist/generator/engine/code-writer/export-references.d.ts +0 -10
  2440. package/dist/generator/engine/code-writer/export-references.js +0 -69
  2441. package/dist/templates/backend/application/src/@aurora/services/bootstrap.service.ts +0 -20
  2442. package/dist/templates/backend/application/src/i18n/en/iam.json +0 -18
  2443. package/dist/templates/backend/application/src/i18n/es/iam.json +0 -18
  2444. package/dist/templates/backend/application/test/authentication-none-mode.e2e-spec.ts +0 -138
  2445. package/dist/templates/backend/packages/iam/src/@app/iam/account/application/create/iam-create-accounts.handler.ts +0 -26
  2446. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/sequelize/iam-sequelize-account.model.ts +0 -197
  2447. package/dist/templates/backend/packages/iam/src/@app/iam/account/infrastructure/sequelize/iam-sequelize-account.repository.ts +0 -71
  2448. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/sequelize/iam-sequelize-bounded-context.model.ts +0 -94
  2449. package/dist/templates/backend/packages/iam/src/@app/iam/bounded-context/infrastructure/sequelize/iam-sequelize-bounded-context.repository.ts +0 -24
  2450. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/sequelize/iam-sequelize-permission.model.ts +0 -93
  2451. package/dist/templates/backend/packages/iam/src/@app/iam/permission/infrastructure/sequelize/iam-sequelize-permission.repository.ts +0 -61
  2452. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/sequelize/iam-sequelize-permission-role.model.ts +0 -48
  2453. package/dist/templates/backend/packages/iam/src/@app/iam/permission-role/infrastructure/sequelize/iam-sequelize-permission-role.repository.ts +0 -24
  2454. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/sequelize/iam-sequelize-role.model.ts +0 -116
  2455. package/dist/templates/backend/packages/iam/src/@app/iam/role/infrastructure/sequelize/iam-sequelize-role.repository.ts +0 -68
  2456. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/sequelize/iam-sequelize-role-account.model.ts +0 -48
  2457. package/dist/templates/backend/packages/iam/src/@app/iam/role-account/infrastructure/sequelize/iam-sequelize-role-account.repository.ts +0 -24
  2458. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/sequelize/iam-sequelize-tag.model.ts +0 -70
  2459. package/dist/templates/backend/packages/iam/src/@app/iam/tag/infrastructure/sequelize/iam-sequelize-tag.repository.ts +0 -21
  2460. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/sequelize/iam-sequelize-tenant.model.ts +0 -121
  2461. package/dist/templates/backend/packages/iam/src/@app/iam/tenant/infrastructure/sequelize/iam-sequelize-tenant.repository.ts +0 -57
  2462. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/sequelize/iam-sequelize-tenant-account.model.ts +0 -48
  2463. package/dist/templates/backend/packages/iam/src/@app/iam/tenant-account/infrastructure/sequelize/iam-sequelize-tenant-account.repository.ts +0 -24
  2464. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/sequelize/iam-sequelize-user.model.ts +0 -144
  2465. package/dist/templates/backend/packages/iam/src/@app/iam/user/infrastructure/sequelize/iam-sequelize-user.repository.ts +0 -21
  2466. package/dist/templates/backend/packages/iam/src/@bridges/iam/index.ts +0 -3
  2467. package/dist/templates/backend/packages/iam/src/@bridges/iam/user/index.ts +0 -1
  2468. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/sequelize/o-auth-sequelize-access-token.model.ts +0 -118
  2469. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/access-token/infrastructure/sequelize/o-auth-sequelize-access-token.repository.ts +0 -24
  2470. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/sequelize/o-auth-sequelize-application.model.ts +0 -101
  2471. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application/infrastructure/sequelize/o-auth-sequelize-application.repository.ts +0 -61
  2472. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/sequelize/o-auth-sequelize-application-client.model.ts +0 -48
  2473. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/application-client/infrastructure/sequelize/o-auth-sequelize-application-client.repository.ts +0 -24
  2474. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/sequelize/o-auth-sequelize-authorization-code.model.ts +0 -146
  2475. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/authorization-code/infrastructure/sequelize/o-auth-sequelize-authorization-code.repository.ts +0 -44
  2476. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/sequelize/o-auth-sequelize-client.model.ts +0 -146
  2477. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/client/infrastructure/sequelize/o-auth-sequelize-client.repository.ts +0 -57
  2478. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/sequelize/o-auth-sequelize-credential.model.ts +0 -139
  2479. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/credential/infrastructure/sequelize/o-auth-sequelize-credential.repository.ts +0 -24
  2480. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/sequelize/o-auth-sequelize-refresh-token.model.ts +0 -98
  2481. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/refresh-token/infrastructure/sequelize/o-auth-sequelize-refresh-token.repository.ts +0 -24
  2482. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/sequelize/o-auth-sequelize-scope.model.ts +0 -84
  2483. package/dist/templates/backend/packages/o-auth/src/@app/o-auth/scope/infrastructure/sequelize/o-auth-sequelize-scope.repository.ts +0 -24
  2484. package/dist/templates/backend/packages/o-auth/src/@bridges/o-auth/client/index.ts +0 -1
  2485. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/sequelize/__bounded_context_name__-sequelize-__module_name__.model.ts.eta +0 -213
  2486. package/dist/templates/codegen/backend/@app/__module_name__/infrastructure/sequelize/__bounded_context_name__-sequelize-__module_name__.repository.ts.eta +0 -94
  2487. package/dist/templates/codegen/partials/declare-i18n-repository.eta +0 -3
  2488. package/dist/templates/codegen/partials/import-i18n-repository.eta +0 -3
  2489. package/dist/templates/frontend/application/libs/ui/icon/src/index.ts +0 -7
  2490. package/dist/templates/frontend/application/libs/ui/icon/src/lib/hlm-icon.token.ts +0 -20
  2491. package/dist/templates/frontend/application/libs/ui/icon/src/lib/hlm-icon.ts +0 -42
  2492. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relation-includes.spec.ts +0 -141
  2493. package/dist/templates/frontend/application/src/@aurora/components/data-table/lib/get-relation-includes.ts +0 -47
  2494. package/dist/templates/frontend/application/src/@aurora/modules/graphql/parse-gql-fields.ts +0 -32
  2495. package/dist/templates/frontend/application/src/app/aurora.types.ts +0 -2671
  2496. package/dist/templates/frontend/application/src/app/domains/admin/bounded-contexts/dashboard/dashboard.routes.ts +0 -8
  2497. package/dist/templates/frontend/application/src/app/domains/admin/bounded-contexts/dashboard/features/dashboard.component.ts +0 -13
  2498. package/dist/templates/frontend/application/src/app/domains/admin/layout/sidebar/nav-projects.ts +0 -106
  2499. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.detail-config.ts +0 -13
  2500. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.graphql.ts +0 -291
  2501. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.list-config.ts +0 -12
  2502. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/account.resolvers.ts +0 -121
  2503. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/data-access/current-account.adapter.ts +0 -34
  2504. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-detail.component.ts +0 -165
  2505. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-form.component.ts +0 -915
  2506. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-list-actions-cell.component.ts +0 -85
  2507. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/features/account-list.component.ts +0 -260
  2508. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/account/index.ts +0 -8
  2509. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.detail-config.ts +0 -18
  2510. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.graphql.ts +0 -158
  2511. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.list-config.ts +0 -12
  2512. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/data-access/bounded-context.resolvers.ts +0 -36
  2513. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-detail.component.ts +0 -157
  2514. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-form.component.ts +0 -154
  2515. 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
  2516. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/features/bounded-context-list.component.ts +0 -247
  2517. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/bounded-context/index.ts +0 -7
  2518. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam-icons.providers.ts +0 -23
  2519. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam.navigation.ts +0 -42
  2520. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/iam.routes.ts +0 -98
  2521. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.detail-config.ts +0 -13
  2522. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.graphql.ts +0 -163
  2523. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.list-config.ts +0 -12
  2524. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/data-access/permission.resolvers.ts +0 -72
  2525. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-form-embed.component.ts +0 -99
  2526. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-form.component.ts +0 -141
  2527. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-list-actions-cell.component.ts +0 -85
  2528. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/features/permission-list.component.ts +0 -404
  2529. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/index.ts +0 -7
  2530. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission/permission.columns.ts +0 -56
  2531. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.detail-config.ts +0 -18
  2532. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.graphql.ts +0 -148
  2533. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.list-config.ts +0 -12
  2534. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/data-access/permission-role.resolvers.ts +0 -40
  2535. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/index.ts +0 -7
  2536. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/permission-role/permission-role.columns.ts +0 -38
  2537. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.detail-config.ts +0 -13
  2538. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.graphql.ts +0 -207
  2539. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.list-config.ts +0 -12
  2540. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/data-access/role.resolvers.ts +0 -68
  2541. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-detail.component.ts +0 -312
  2542. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-form.component.ts +0 -162
  2543. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-list-actions-cell.component.ts +0 -85
  2544. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/features/role-list.component.ts +0 -248
  2545. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/index.ts +0 -7
  2546. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role/role.columns.ts +0 -85
  2547. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.detail-config.ts +0 -13
  2548. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.graphql.ts +0 -158
  2549. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/role-account/data-access/role-account.list-config.ts +0 -12
  2550. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/shared/validators/unique-email.validator.ts +0 -31
  2551. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/shared/validators/unique-username.validator.ts +0 -29
  2552. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.detail-config.ts +0 -13
  2553. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.graphql.ts +0 -129
  2554. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.list-config.ts +0 -14
  2555. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/data-access/tag.resolvers.ts +0 -36
  2556. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-form.component.ts +0 -93
  2557. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-list-actions-cell.component.ts +0 -85
  2558. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/features/tag-list.component.ts +0 -321
  2559. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tag/index.ts +0 -7
  2560. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.detail-config.ts +0 -13
  2561. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.graphql.ts +0 -203
  2562. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.list-config.ts +0 -12
  2563. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/data-access/tenant.resolvers.ts +0 -71
  2564. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-form.component.ts +0 -169
  2565. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-list-actions-cell.component.ts +0 -85
  2566. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/features/tenant-list.component.ts +0 -333
  2567. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/index.ts +0 -7
  2568. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant/tenant.columns.ts +0 -86
  2569. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.detail-config.ts +0 -18
  2570. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.graphql.ts +0 -158
  2571. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.list-config.ts +0 -12
  2572. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/data-access/tenant-account.resolvers.ts +0 -40
  2573. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/index.ts +0 -7
  2574. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/tenant-account/tenant-account.columns.ts +0 -38
  2575. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.detail-config.ts +0 -13
  2576. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.graphql.ts +0 -152
  2577. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.list-config.ts +0 -12
  2578. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/data-access/user.resolvers.ts +0 -36
  2579. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-detail.component.ts +0 -124
  2580. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-form.component.ts +0 -215
  2581. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-list-actions-cell.component.ts +0 -85
  2582. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/features/user-list.component.ts +0 -237
  2583. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/index.ts +0 -7
  2584. package/dist/templates/frontend/packages/iam/src/app/domains/admin/bounded-contexts/iam/user/user.columns.ts +0 -124
  2585. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/access-token.columns.ts +0 -97
  2586. 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
  2587. 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
  2588. 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
  2589. 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
  2590. 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
  2591. 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
  2592. 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
  2593. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/access-token/index.ts +0 -7
  2594. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/application.columns.ts +0 -73
  2595. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.detail-config.ts +0 -13
  2596. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.graphql.ts +0 -146
  2597. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.list-config.ts +0 -14
  2598. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/data-access/application.resolvers.ts +0 -36
  2599. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/features/application-form.component.ts +0 -160
  2600. 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
  2601. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/features/application-list.component.ts +0 -326
  2602. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/application/index.ts +0 -7
  2603. 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
  2604. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/authorization-code.columns.ts +0 -123
  2605. 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
  2606. 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
  2607. 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
  2608. 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
  2609. 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
  2610. 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
  2611. 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
  2612. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/authorization-code/index.ts +0 -7
  2613. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/client.columns.ts +0 -140
  2614. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.detail-config.ts +0 -13
  2615. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.graphql.ts +0 -141
  2616. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.list-config.ts +0 -14
  2617. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/data-access/client.resolvers.ts +0 -97
  2618. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/features/client-form.component.ts +0 -358
  2619. 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
  2620. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/features/client-list.component.ts +0 -359
  2621. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/client/index.ts +0 -7
  2622. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/o-auth-icons.providers.ts +0 -21
  2623. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/o-auth.navigation.ts +0 -52
  2624. 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
  2625. 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
  2626. 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
  2627. 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
  2628. 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
  2629. 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
  2630. 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
  2631. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/index.ts +0 -7
  2632. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/refresh-token/refresh-token.columns.ts +0 -59
  2633. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.detail-config.ts +0 -13
  2634. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.graphql.ts +0 -131
  2635. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.list-config.ts +0 -14
  2636. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/data-access/scope.resolvers.ts +0 -36
  2637. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/features/scope-form.component.ts +0 -119
  2638. 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
  2639. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/features/scope-list.component.ts +0 -321
  2640. package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/bounded-contexts/o-auth/scope/index.ts +0 -7
  2641. package/dist/templates/monorepo/.claude/hooks/check-required-plugins.ts +0 -112
  2642. package/dist/templates/monorepo/.claude/hooks/inject-rules-context.ts +0 -267
  2643. package/dist/templates/monorepo/.vscode/settings.json +0 -10
  2644. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/account/account.columns.ts +0 -0
  2645. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/bounded-context/bounded-context.columns.ts +0 -0
  2646. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/iam.types.ts +0 -0
  2647. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/index.ts +0 -0
  2648. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/shared/index.ts +0 -0
  2649. /package/dist/templates/frontend/packages/iam/src/app/domains/admin/{bounded-contexts → apps}/iam/tag/tag.columns.ts +0 -0
  2650. /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
  2651. /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
  2652. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/index.ts +0 -0
  2653. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/o-auth.routes.ts +0 -0
  2654. /package/dist/templates/frontend/packages/o-auth/src/app/domains/admin/{bounded-contexts → apps}/o-auth/o-auth.types.ts +0 -0
  2655. /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,2304 @@
1
+ /**
2
+ * dispatch.ts — the reconciler's executable entry point. Every trigger (`onStatusChange`, the
3
+ * launchd timer, a `gh`-poll) invokes exactly this script (spec: "Three dispatch triggers").
4
+ *
5
+ * Builds the REAL collaborators (real fs under `.backlog/.dispatch/`, real `git`/`gh`/`backlog`
6
+ * CLI shell-outs, a real `claude` spawn) and calls `runOnce` from `entry.ts` — every actual
7
+ * decision (maintenance order, the anti-loop guard, task selection, the six guards, the model
8
+ * readiness gate, the close ordering, the scope diff, the reviewer verdict, the AC/DoD gate) lives
9
+ * in the pure/injectable modules this file only wires together. See those modules' own tests for
10
+ * the decisions themselves; this file has no test of its own beyond the manual smoke run recorded
11
+ * in tasks.md 9.
12
+ *
13
+ * Process model (design.md's Tramo 7, README's "process model"): the pass holds the single-flight
14
+ * lock only until the slot is taken and the task is `In Progress` — `entry.ts` then calls
15
+ * `releaseSingleFlight`, and this process lives on, detached by the callback's `nohup`, until its
16
+ * worker exits. `launch.ts`'s `spawnWorker` runs the worker ASYNCHRONOUSLY and streams its stdout
17
+ * line by line into the attempt's `stream.jsonl`, which is also what refreshes the task lock's
18
+ * heartbeat. A concurrent invocation can therefore run its own maintenance pass and dispatch a
19
+ * second frontier task while this one is still streaming.
20
+ *
21
+ * Remaining simplification, deliberate: `ctx.tasks` is fetched once per pass, before maintenance's
22
+ * edits, so a maintenance-driven status change is only visible to task selection on the NEXT pass.
23
+ * Every trigger re-invokes this script, so it self-heals within one interval — never permanent
24
+ * staleness.
25
+ */
26
+ import { execFileSync } from 'node:child_process';
27
+ import fs from 'node:fs';
28
+ import os from 'node:os';
29
+ import path from 'node:path';
30
+ import { fileURLToPath } from 'node:url';
31
+ import { isSkillTriggerIndex, loadJsonIndex } from '../_catalog-runtime/index.js';
32
+ import { findRepoRoot } from '../_catalog-runtime/repo-root.js';
33
+ import {
34
+ countAttempts,
35
+ createAttemptDir,
36
+ createAttemptSink,
37
+ hasCloseAttemptBeenEnqueued,
38
+ markCloseAttemptEnqueued,
39
+ } from './attempt.js';
40
+ import {
41
+ buildAttemptCommitMessage,
42
+ buildPrBodyArgs,
43
+ buildPrCreateArgs,
44
+ buildPrLabelArgs,
45
+ buildPrReviewerArgs,
46
+ buildPrTitle,
47
+ buildWipCommitMessage,
48
+ checkBoardIntegrity,
49
+ collectAttemptDiff,
50
+ collectChangedFiles,
51
+ collectLeftoverFiles,
52
+ DOD_SCOPED_TESTS,
53
+ evaluateAcceptanceGate,
54
+ findOpenPrUrl,
55
+ formatBlockComment,
56
+ HARNESS_REVIEW_LABEL,
57
+ planMechanicalChecks,
58
+ readPrBody,
59
+ resolveBaseRef,
60
+ runMirrorRegen,
61
+ runScopeCheck,
62
+ upsertHumanReviewSection,
63
+ type CloseRunners,
64
+ } from './close.js';
65
+ import {
66
+ acquireSingleFlight,
67
+ formatOutcome,
68
+ isDispatcherOwnedCallback,
69
+ releaseSingleFlight,
70
+ resolveContext,
71
+ runOnce,
72
+ shouldDispatchFromCallback,
73
+ type RunOnceContext,
74
+ type SingleFlightFs,
75
+ type SingleFlightResult,
76
+ } from './entry.js';
77
+ import { SECURITY_PATH_PATTERNS } from './guards.js';
78
+ import {
79
+ checkLocalModelLoaded,
80
+ killProcessTree,
81
+ loadLaneConfig,
82
+ loadSettingsAllowRules,
83
+ resetInjectorCache,
84
+ resolveOrphanInProgressThresholdMs,
85
+ settingsSourcePaths,
86
+ spawnWorker,
87
+ type FrontierLaneSettings,
88
+ type LocalLaneSettings,
89
+ } from './launch.js';
90
+ import {
91
+ PR_MERGE_STATE,
92
+ recomputeParent,
93
+ REMOTE_BRANCH_DELETE_RESULT,
94
+ toDerivationNode,
95
+ type MaintenanceContext,
96
+ type MaintenanceGit,
97
+ type PrMergeState,
98
+ type RemoteBranchDeleteResult,
99
+ } from './maintenance.js';
100
+ import { notify, type OsascriptRunner } from './notify.js';
101
+ import { effectiveStatus } from './parent.js';
102
+ import {
103
+ assembleExecutorPrompt,
104
+ buildFrontierAddendum,
105
+ buildFrontierPrompt,
106
+ buildParentCloseAttemptPrompt,
107
+ computeHookOutputs,
108
+ extractDelegationContract,
109
+ isParentCloseAttempt,
110
+ matchSkillPaths,
111
+ parseAcceptanceCriteria,
112
+ parseDefinitionOfDone,
113
+ parseIndexedAcceptanceCriteria,
114
+ parseLastComment,
115
+ type HookRunners,
116
+ type OperatingEnvelope,
117
+ } from './prompt.js';
118
+ import { reviewerEnv, runReviewer } from './reviewer.js';
119
+ import {
120
+ computeLockfileHash,
121
+ createRegistryLock,
122
+ detachSlot,
123
+ isLockAlive,
124
+ isProcessAlive,
125
+ needsInstall,
126
+ provisionSlot,
127
+ readLock,
128
+ refreshHeartbeat,
129
+ releaseHeldSlotEntries,
130
+ releaseLock,
131
+ releaseSlotAndDetach,
132
+ slotPathForTask,
133
+ updateSlots,
134
+ type SlotRegistryStore,
135
+ } from './slots.js';
136
+ import {
137
+ findOwnedDefinitionOfDone,
138
+ parseBoardTaskIds,
139
+ parseTaskStatus,
140
+ parseTaskTitle,
141
+ parseTaskView,
142
+ } from './task-view.js';
143
+ import {
144
+ LANE,
145
+ TASK_STATUS,
146
+ type BoardLoad,
147
+ type DispatchLock,
148
+ type SlotRegistry,
149
+ type Task,
150
+ type TaskStatus,
151
+ } from './types.js';
152
+ import { workerEditCommand } from './worker-edit.js';
153
+
154
+ const DISPATCH_SUBDIR = '.backlog/.dispatch';
155
+ const SKILL_TRIGGERS_INDEX_FILE = '.claude/skills-triggers-index.json';
156
+ const DELEGATION_CONTRACT_FILE = '.claude/skills/catalyst-delegation/SKILL.md';
157
+ const WORKER_SYSTEM_PROMPT_FILE = '.claude/skills/catalyst-backlog/worker-system-prompt.md';
158
+ /**
159
+ * The local lane's `--append-system-prompt-file`, resolved ABSOLUTELY against the repository root
160
+ * the dispatcher itself runs from — never left relative (T-31 round 3).
161
+ *
162
+ * `launch.ts` spawns the executor with `cwd` = the SLOT, so a relative path made the worker's own
163
+ * system prompt a file read FROM the slot: an instruction channel the attempt can write to, and one
164
+ * `--bare` does not close, because the flag is explicit on the command line. The frontier lane
165
+ * already does it this way (`writeFrontierAddendum` hands back an absolute path under the main
166
+ * checkout), and this is the same class of asset as the lane settings files and the addendum
167
+ * template — code, not board data, so it hangs off `repoRoot`.
168
+ *
169
+ * Two other mechanisms bound the same hole today (the local lane denies `.claude/**` outright, and
170
+ * `.claude/` is in `LOCAL_FORBIDDEN_PATHS`), which is exactly the "one mechanism is not enough"
171
+ * situation the hard list exists for: resolving the path closes the channel instead of watching it.
172
+ */
173
+ export function resolveWorkerSystemPromptPath(repoRoot: string): string {
174
+ return path.join(repoRoot, WORKER_SYSTEM_PROMPT_FILE);
175
+ }
176
+
177
+ /** The frontier addendum's TEMPLATE — rendered per attempt by `prompt.ts`'s `buildFrontierAddendum`. */
178
+ const FRONTIER_ADDENDUM_TEMPLATE_PATH =
179
+ '.claude/skills/catalyst-backlog/frontier-worker-addendum.md';
180
+ const LINT_BARRELS_SCRIPT = 'hr:lint-barrels';
181
+ /**
182
+ * How long a lock may go without a heartbeat before it counts as dead. Read by the maintenance
183
+ * sweep AND by the manual `--release-slot` guard: two different answers to "is this worker alive"
184
+ * is how a rescue releases a slot the sweep still considers busy.
185
+ */
186
+ const LOCK_TTL_MS = 10 * 60_000;
187
+
188
+ /**
189
+ * The dispatcher-owned Definition-of-Done items, and the close step that PROVES each one. The close
190
+ * ticks them itself once that step passed — see `task-view.ts`'s `DISPATCHER_OWNED_DOD_PATTERNS`.
191
+ * `DOD_SCOPED_TESTS` comes from `close.ts` instead of being redeclared here: the pre-PR gate FAILS
192
+ * on that item still being unticked, so the tick and the check must read one pattern.
193
+ */
194
+ const DOD_PRETTIER_BARRELS = /prettier and barrels lint/i;
195
+ const DOD_EVERY_AC = /every acceptance criterion is checked/i;
196
+ const DOD_PR_OPENED = /pr opened to main/i;
197
+
198
+ // ── Board loader: `backlog task list/view --plain` → `Task[]` ─────────────────
199
+
200
+ function viewTask(mainCheckoutPath: string, taskId: string): string {
201
+ return execFileSync('backlog', ['task', 'view', taskId, '--plain'], {
202
+ cwd: mainCheckoutPath,
203
+ encoding: 'utf8',
204
+ });
205
+ }
206
+
207
+ /** The board reads `loadBoard` needs, injected so the loader is testable without a real CLI. */
208
+ export interface BoardReader {
209
+ /** `backlog task list --plain`. */
210
+ list: () => string;
211
+ /** `backlog task view <id> --plain`. */
212
+ view: (taskId: string) => string;
213
+ /** How many attempt directories this task already has. */
214
+ attempts: (taskId: string) => number;
215
+ }
216
+
217
+ /**
218
+ * The board, plus whether reading it succeeded in full. Pure over the injected reader.
219
+ *
220
+ * An id whose `task view` fails is DROPPED, never stubbed: a stub carries `To Do`, no labels and no
221
+ * declared files, which reads on the board as a real untriaged task and makes every dependency on it
222
+ * look unmet. What the drop must NOT do is stay silent — hence `complete`.
223
+ */
224
+ export function loadBoard(reader: BoardReader): BoardLoad {
225
+ let listOutput: string;
226
+ try {
227
+ listOutput = reader.list();
228
+ } catch (error) {
229
+ console.error(
230
+ 'dispatch.ts: backlog task list failed; reporting an INCOMPLETE empty board:',
231
+ error,
232
+ );
233
+ return { tasks: [], complete: false };
234
+ }
235
+
236
+ let complete = true;
237
+ const tasks = parseBoardTaskIds(listOutput).flatMap((id) => {
238
+ try {
239
+ return [parseTaskView({ id, output: reader.view(id), attempts: reader.attempts(id) })];
240
+ } catch (error) {
241
+ console.error(
242
+ `dispatch.ts: backlog task view ${id} failed; dropping it from this pass:`,
243
+ error,
244
+ );
245
+ complete = false;
246
+ return [];
247
+ }
248
+ });
249
+ return { tasks, complete };
250
+ }
251
+
252
+ function loadAllTasks(mainCheckoutPath: string): BoardLoad {
253
+ const dispatchRoot = path.join(mainCheckoutPath, DISPATCH_SUBDIR);
254
+ return loadBoard({
255
+ list: () =>
256
+ execFileSync('backlog', ['task', 'list', '--plain'], {
257
+ cwd: mainCheckoutPath,
258
+ encoding: 'utf8',
259
+ }),
260
+ view: (taskId) => viewTask(mainCheckoutPath, taskId),
261
+ attempts: (taskId) => countAttempts(dispatchRoot, taskId),
262
+ });
263
+ }
264
+
265
+ // ── Real collaborators ─────────────────────────────────────────────────────────
266
+
267
+ /**
268
+ * `mainCheckoutPath` (possibly `BACKLOG_CWD`-overridden) is where BOARD DATA lives — `backlog` CLI
269
+ * calls, dispatch locks, `slots.json`. `repoRoot` (never overridden — always this machine's
270
+ * aurora-catalyst checkout, via `findRepoRoot`) is where the CODE assets `lanes.json` describes
271
+ * live: `scripts/backlog/lanes.json` itself, the lane settings files, and every worktree slot
272
+ * (`.claude/worktrees/dispatch-*`) is a checkout of THIS repo, not of whatever `BACKLOG_CWD`
273
+ * points at. These two axes coincide in real production (the reconciler always runs from the main
274
+ * checkout with no `BACKLOG_CWD` override) and only diverge for an isolated test run.
275
+ */
276
+ export function realMaintenanceFs(mainCheckoutPath: string, repoRoot: string) {
277
+ const dispatchDir = path.join(mainCheckoutPath, DISPATCH_SUBDIR);
278
+ const slotsPath = path.join(dispatchDir, 'slots.json');
279
+ const locksDir = path.join(dispatchDir, 'locks');
280
+
281
+ const readSlots = (): SlotRegistry => {
282
+ if (!fs.existsSync(slotsPath)) {
283
+ const laneConfig = loadLaneConfig(path.join(repoRoot, 'scripts/backlog/lanes.json'));
284
+ return {
285
+ slots: laneConfig.slots.map((name) => ({
286
+ name,
287
+ path: path.join(repoRoot, laneConfig.slotsRoot, name),
288
+ lane: null,
289
+ taskId: null,
290
+ pid: null,
291
+ lockfileHash: null,
292
+ })),
293
+ };
294
+ }
295
+ return JSON.parse(fs.readFileSync(slotsPath, 'utf8')) as SlotRegistry;
296
+ };
297
+
298
+ // ONE store, so every writer in this process goes through the same lock file. The lock lives
299
+ // beside the registry it guards; `updateSlots` re-reads inside it, so two concurrent passes can
300
+ // never overwrite each other's slot.
301
+ const store: SlotRegistryStore = {
302
+ readSlots,
303
+ writeSlots: (registry) => {
304
+ fs.mkdirSync(dispatchDir, { recursive: true });
305
+ fs.writeFileSync(slotsPath, JSON.stringify(registry, null, 2));
306
+ },
307
+ withLock: createRegistryLock(path.join(dispatchDir, 'slots.lock')),
308
+ };
309
+
310
+ return {
311
+ readSlots,
312
+ updateSlots: (mutate: (current: SlotRegistry) => SlotRegistry): SlotRegistry =>
313
+ updateSlots(store, mutate),
314
+ readLocks: (): DispatchLock[] => {
315
+ if (!fs.existsSync(locksDir)) {
316
+ return [];
317
+ }
318
+ return fs
319
+ .readdirSync(locksDir)
320
+ .filter((name) => name.endsWith('.json'))
321
+ .map(
322
+ (name) => JSON.parse(fs.readFileSync(path.join(locksDir, name), 'utf8')) as DispatchLock,
323
+ );
324
+ },
325
+ removeLock: (taskId: string): void => releaseLock(dispatchDir, taskId),
326
+ /**
327
+ * T-8 point 10's fourth orphan check: whether `.backlog/.dispatch/<taskId>/` exists at all —
328
+ * the same directory `createAttemptDir` opens BEFORE a worker starts. A task the dispatcher has
329
+ * ever touched keeps this directory forever (it is gitignored, not cleaned up), so its presence
330
+ * means "this task WAS dispatched", independent of whether any lock or slot survives today.
331
+ */
332
+ hasAttemptDir: (taskId: string): boolean => fs.existsSync(path.join(dispatchDir, taskId)),
333
+ // T-8 defect 3: the durable enqueue-time marker, filesystem-backed like everything else under
334
+ // `.backlog/.dispatch/` — see `attempt.ts`'s own JSDoc on both functions.
335
+ hasCloseAttemptBeenEnqueued: (taskId: string): boolean =>
336
+ hasCloseAttemptBeenEnqueued(dispatchDir, taskId),
337
+ markCloseAttemptEnqueued: (taskId: string): void =>
338
+ markCloseAttemptEnqueued(dispatchDir, taskId),
339
+ };
340
+ }
341
+
342
+ /** The `gh` runner shape, injected so `realGh` is testable without a real `gh` or a real repo. */
343
+ type GhRunner = (
344
+ command: string,
345
+ args: string[],
346
+ options: { cwd: string; env?: Record<string, string> },
347
+ ) => string;
348
+
349
+ const defaultGhRunner: GhRunner = (command, args, options) =>
350
+ execFileSync(command, args, {
351
+ cwd: options.cwd,
352
+ env: options.env,
353
+ encoding: 'utf8',
354
+ stdio: ['ignore', 'pipe', 'ignore'],
355
+ });
356
+
357
+ /** The four env keys `gh` itself prefers over its own keyring login, in that order of precedence
358
+ * (measured against `gh`'s own auth resolution: an enterprise token wins for an enterprise host,
359
+ * `GH_TOKEN`/`GITHUB_TOKEN` otherwise). `ghEnv` does not need to reproduce that order — it only
360
+ * needs every one of them gone. */
361
+ const GH_ENV_DENY = new Set([
362
+ 'GITHUB_TOKEN',
363
+ 'GH_TOKEN',
364
+ 'GH_ENTERPRISE_TOKEN',
365
+ 'GITHUB_ENTERPRISE_TOKEN',
366
+ ]);
367
+
368
+ /**
369
+ * The parent environment minus the four keys `gh` prefers over its own keyring login.
370
+ *
371
+ * Measured defect (T-5, 2026-09-07, real e2e, close attempt 2): the dispatcher's own `gh pr view
372
+ * task/T-5` failed with `HTTP 401: Bad credentials`. The reconciler process inherits the developer
373
+ * shell's `GITHUB_TOKEN`, which is stale on this machine, and `gh` prefers an env token over its
374
+ * keyring login even when that login is valid (`GITHUB_TOKEN= gh auth status` on the same machine
375
+ * showed "Logged in to github.com account … (keyring)" throughout). Workers already run with every
376
+ * credential stripped (`launch.ts`'s `sanitizeInheritedEnv`); this is the same fix for the
377
+ * dispatcher's OWN `gh` calls, deliberately narrower: unlike `reviewerEnv` — which the reviewer
378
+ * subprocess can afford, since it never touches `gh` — this keeps every OTHER key (HOME, for `gh`'s
379
+ * own config; any unrelated token another tool in the same shell happens to export) so a dispatcher
380
+ * `gh` call loses nothing it did not need to lose.
381
+ */
382
+ export function ghEnv(parentEnv: NodeJS.ProcessEnv = process.env): Record<string, string> {
383
+ const env: Record<string, string> = {};
384
+ for (const [key, value] of Object.entries(parentEnv)) {
385
+ if (value === undefined || GH_ENV_DENY.has(key)) {
386
+ continue;
387
+ }
388
+ env[key] = value;
389
+ }
390
+ return env;
391
+ }
392
+
393
+ /**
394
+ * `gh` resolves the repository from the CWD it runs in, so `cwd` is not optional here: without it
395
+ * the call inherited whatever directory launched the reconciler — under launchd, `/` — and `gh pr
396
+ * view` then answered about no repository at all (or, from a nested checkout, about the wrong one).
397
+ * `false` is the answer either way, so the failure is silent: a merged subtask never moves to `Done`
398
+ * and its parent never derives.
399
+ */
400
+ export function realGh(repoRoot: string, run: GhRunner = defaultGhRunner) {
401
+ return {
402
+ isPrMerged: (branch: string): boolean => {
403
+ try {
404
+ const output = run('gh', ['pr', 'view', branch, '--json', 'state,mergedAt'], {
405
+ cwd: repoRoot,
406
+ env: ghEnv(),
407
+ });
408
+ const parsed = JSON.parse(output) as { state?: string; mergedAt?: string | null };
409
+ return parsed.state === 'MERGED' && Boolean(parsed.mergedAt);
410
+ } catch {
411
+ return false; // no PR yet, gh unavailable, or not authenticated — fail closed.
412
+ }
413
+ },
414
+ /**
415
+ * T-8 point 3: the branch's most recent PR state (`OPEN`, `CLOSED`, `MERGED`), or `null` when
416
+ * `gh` reports no PR at all (or is unavailable/unauthenticated — the same fail-closed reading
417
+ * `isPrMerged` gives). Feeds `maintenance.ts`'s step 3b revert comment, so a person can tell a
418
+ * merged PR the sweep has not yet caught up to apart from one GitHub genuinely never merged.
419
+ */
420
+ prState: (branch: string): string | null => {
421
+ try {
422
+ const output = run('gh', ['pr', 'view', branch, '--json', 'state'], {
423
+ cwd: repoRoot,
424
+ env: ghEnv(),
425
+ });
426
+ const parsed = JSON.parse(output) as { state?: string };
427
+ return parsed.state ?? null;
428
+ } catch {
429
+ return null;
430
+ }
431
+ },
432
+ /**
433
+ * T-8 defect 1's tri-state answer — see `MaintenanceGh.mergedState`'s own JSDoc for why this
434
+ * cannot reuse `isPrMerged`'s boolean or `prState`'s `string | null` for the decision.
435
+ *
436
+ * Deliberately asks `gh pr list --head <branch> --state all`, NOT `gh pr view <branch>`: `pr
437
+ * view` throws identically whether there is no PR for the branch, the `gh` binary is missing,
438
+ * the token expired, or the network is down — the exact ambiguity `isPrMerged` inherits. `pr
439
+ * list` instead SUCCEEDS with an empty array when a branch genuinely has no PR — a real,
440
+ * confirmed answer (`not-merged`) — and only THROWS when the call itself could not run to
441
+ * completion, which is the only thing that becomes `unknown`.
442
+ */
443
+ mergedState: (branch: string): PrMergeState => {
444
+ try {
445
+ const output = run(
446
+ 'gh',
447
+ [
448
+ 'pr',
449
+ 'list',
450
+ '--head',
451
+ branch,
452
+ '--state',
453
+ 'all',
454
+ '--json',
455
+ 'state,mergedAt',
456
+ '--limit',
457
+ '1',
458
+ ],
459
+ { cwd: repoRoot, env: ghEnv() },
460
+ );
461
+ const pulls = JSON.parse(output) as Array<{ state?: string; mergedAt?: string | null }>;
462
+ if (pulls.length === 0) {
463
+ return PR_MERGE_STATE.NOT_MERGED; // confirmed: no PR was ever opened for this branch.
464
+ }
465
+ const [pr] = pulls;
466
+ return pr.state === 'MERGED' && Boolean(pr.mergedAt)
467
+ ? PR_MERGE_STATE.MERGED
468
+ : PR_MERGE_STATE.NOT_MERGED;
469
+ } catch {
470
+ // gh binary missing, auth expired, network down — an unanswerable question, never "not merged".
471
+ return PR_MERGE_STATE.UNKNOWN;
472
+ }
473
+ },
474
+ };
475
+ }
476
+
477
+ /**
478
+ * Renders a failed `execFileSync` into a message that carries the child's actual stderr, not just
479
+ * the generic "Command failed: <cmd>" `error.message` gives on its own.
480
+ *
481
+ * Measured defect (T-5, 2026-09-07): every dispatcher-owned `backlog`/`git` write ran with stderr
482
+ * explicitly silenced (`stdio: 'ignore'`, or `['ignore', 'pipe', 'ignore']`), so a failed
483
+ * `-s In Progress` edit surfaced as exit 1 with `stderr: null` — the one piece of text that would
484
+ * have named the real cause (a second reconciler pass already touching the same task) was thrown
485
+ * away before it ever reached a `Blocked` comment or a log line. Capped at 500 chars: a comment or
486
+ * a log line is not the place for a multi-KB stack dump.
487
+ */
488
+ export function describeExecFailure(error: unknown): string {
489
+ const failure = error as { message?: string; stderr?: Buffer | string | null } | null;
490
+ const message = failure?.message ?? String(error);
491
+ const stderrText = Buffer.isBuffer(failure?.stderr)
492
+ ? failure.stderr.toString('utf8')
493
+ : typeof failure?.stderr === 'string'
494
+ ? failure.stderr
495
+ : '';
496
+ const trimmed = stderrText.trim();
497
+ return trimmed ? `${message} — stderr: ${trimmed.slice(0, 500)}` : message;
498
+ }
499
+
500
+ /**
501
+ * Backlog.md's own wording for "another process holds this task's lock right now" (verified
502
+ * against the real CLI's stderr, T-5's measured e2e run). Matched case-insensitively against the
503
+ * FULL failure message — `describeExecFailure` folds stderr into it — never against a raw
504
+ * `error.message` alone, which for a silenced `execFileSync` carries only "Command failed: …".
505
+ */
506
+ const BOARD_BUSY_PATTERN = /being modified by another process/i;
507
+
508
+ /**
509
+ * Git's own wording for "the remote ref this push tried to delete does not exist" (verified against
510
+ * the real CLI's stderr — the existing `realGit — deleteRemoteBranch` test fixture below). Matched
511
+ * against the failure's `.message` — real `execFileSync` failures fold stderr into that string via
512
+ * `describeExecFailure`'s wrapping `run`, and an injected test `run` throws the raw string directly,
513
+ * so one pattern covers both.
514
+ */
515
+ const REMOTE_REF_ALREADY_GONE_PATTERN = /remote ref does not exist/i;
516
+
517
+ /**
518
+ * Git's own FIXED wording for "this ref does not resolve to anything" (`git rev-parse --verify
519
+ * <ref>`, deliberately without `--quiet` — see `branchHasUnmergedCommits`'s own comment for why).
520
+ * Measured directly (2026-09-08): a genuinely absent ref fails with exactly this text, exit 128; a
521
+ * missing `git` binary fails with `spawnSync git ENOENT` (no such text, no `Command failed:`
522
+ * prefix at all); a broken checkout (`fatal: not a git repository…`) fails with DIFFERENT text.
523
+ * Matched so `branchHasUnmergedCommits`'s first check can tell a confirmed-absent remote-tracking
524
+ * ref (safe: nothing survives on the remote to lose) apart from any OTHER failure of the same
525
+ * call (S2, 2026-09-08: the previous version read every failure of this call the same way,
526
+ * silently authorising a delete on a question it never actually answered).
527
+ */
528
+ const BRANCH_REF_NOT_FOUND_PATTERN = /needed a single revision/i;
529
+
530
+ export interface BoardWriteRetryOptions {
531
+ /** Total tries, including the first one. Real callers pass 6. */
532
+ attempts: number;
533
+ /** Linear backoff step: the Nth failed attempt sleeps `baseDelayMs * N` before the next try. */
534
+ baseDelayMs: number;
535
+ /** Injected by tests so a retry never blocks on a real timer. Defaults to a blocking real sleep. */
536
+ sleep?: (ms: number) => void;
537
+ }
538
+
539
+ export const BOARD_WRITE_RETRY_DEFAULTS: BoardWriteRetryOptions = { attempts: 6, baseDelayMs: 250 };
540
+
541
+ /** Blocks the calling thread — the same pattern `slots.ts`'s registry lock retry uses, and for the
542
+ * same reason: the reconciler has nothing useful to do while Backlog.md's own lock is held, and the
543
+ * alternative is making every dispatcher-owned write asynchronous. */
544
+ function defaultBlockingSleep(ms: number): void {
545
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
546
+ }
547
+
548
+ /**
549
+ * Retries a dispatcher-owned `backlog` WRITE when Backlog.md's per-task lock is held by someone
550
+ * else at that exact instant — a person editing the same task, or a second reconciler pass.
551
+ *
552
+ * Measured defect (T-5, 2026-09-07, real e2e): the dispatcher's own `task edit T-5 -s In Progress`
553
+ * collided with the lock `onStatusChange` holds for the length of its callback and failed outright
554
+ * with `T-5 is being modified by another process; retry if appropriate.` The callback line is now
555
+ * fixed to detach its stdio so the hold is brief, but the dispatcher must still tolerate the
556
+ * instant a person or a second reconciler holds it — hence this bounded, linear-backoff retry.
557
+ *
558
+ * `command` names the call for the retry log line ONLY; it never reaches a shell. Any failure whose
559
+ * message does NOT match Backlog.md's own busy wording is not a contention symptom and rethrows at
560
+ * once — retrying it would only delay the real error behind a fixed backoff. After the last attempt
561
+ * the ORIGINAL error is rethrown untouched, so a caller (or a human reading the comment/log it
562
+ * produced) still sees the real cause, not a synthetic "gave up" wrapper.
563
+ */
564
+ export function withBoardWriteRetry<T>(
565
+ command: string,
566
+ run: () => T,
567
+ options: BoardWriteRetryOptions = BOARD_WRITE_RETRY_DEFAULTS,
568
+ ): T {
569
+ const sleep = options.sleep ?? defaultBlockingSleep;
570
+ // A non-positive `attempts` made the loop condition false on iteration 1: `run()` never executed,
571
+ // `lastError` stayed `undefined`, and `throw lastError` threw `undefined` instead of a real error —
572
+ // hiding whatever misconfiguration produced the bad count behind a useless stack trace. Guaranteed
573
+ // at least one real attempt runs, the same way every other bounded-retry helper in this file does.
574
+ const attempts = Math.max(1, options.attempts);
575
+ let lastError: unknown;
576
+ for (let attempt = 1; attempt <= attempts; attempt += 1) {
577
+ try {
578
+ return run();
579
+ } catch (error) {
580
+ const message = error instanceof Error ? error.message : String(error);
581
+ if (!BOARD_BUSY_PATTERN.test(message)) {
582
+ throw error;
583
+ }
584
+ lastError = error;
585
+ if (attempt === attempts) {
586
+ break;
587
+ }
588
+ console.error(`dispatch.ts: board busy, retry ${attempt}/${attempts} for ${command}`);
589
+ sleep(options.baseDelayMs * attempt);
590
+ }
591
+ }
592
+ throw lastError;
593
+ }
594
+
595
+ export interface RealBacklogDeps {
596
+ /**
597
+ * Injected by tests so no `backlog` CLI ever runs; the default wraps a real, stderr-capturing
598
+ * `execFileSync` and is what tests assert `env.BACKLOG_DISPATCH_ACTIVE` against.
599
+ */
600
+ run?: (args: string[], options: { cwd: string; env: NodeJS.ProcessEnv }) => void;
601
+ /** Overrides `withBoardWriteRetry`'s defaults — tests inject a synchronous, instant `sleep`. */
602
+ retry?: Partial<BoardWriteRetryOptions>;
603
+ }
604
+
605
+ const defaultBacklogRun: NonNullable<RealBacklogDeps['run']> = (args, options) => {
606
+ try {
607
+ execFileSync('backlog', args, {
608
+ cwd: options.cwd,
609
+ env: options.env,
610
+ stdio: ['ignore', 'pipe', 'pipe'],
611
+ });
612
+ } catch (error) {
613
+ throw new Error(`dispatch.ts: backlog ${args.join(' ')} failed: ${describeExecFailure(error)}`);
614
+ }
615
+ };
616
+
617
+ /**
618
+ * Every write here is a DISPATCHER-OWNED status/comment edit, and every one of them now runs with
619
+ * `BACKLOG_DISPATCH_ACTIVE='1'` in its env — not because this process itself must recognize its own
620
+ * writes (it already tracks that via the per-task lock and the single-flight lock), but because the
621
+ * `onStatusChange` callback THIS EDIT FIRES inherits whatever env the `backlog` CLI child ran with.
622
+ * Without the sentinel, that nested invocation had no way to tell a dispatcher-owned write apart
623
+ * from a genuine human one — see `entry.ts`'s `isDispatcherOwnedCallback`, and the measured T-5
624
+ * defect in `dispatch.test.ts`'s "the dispatcher-owned write sentinel" suite.
625
+ *
626
+ * Every write also goes through `withBoardWriteRetry`: Backlog.md holds the SAME per-task lock a
627
+ * person or a second reconciler pass can be holding at this exact instant — see that function's own
628
+ * header for the measured T-5 defect this closes.
629
+ */
630
+ export function realBacklog(mainCheckoutPath: string, deps: RealBacklogDeps = {}) {
631
+ const run = deps.run ?? defaultBacklogRun;
632
+ const retryOptions: BoardWriteRetryOptions = { ...BOARD_WRITE_RETRY_DEFAULTS, ...deps.retry };
633
+ const ownedWrite = (args: string[]): void =>
634
+ withBoardWriteRetry(
635
+ `backlog ${args.join(' ')}`,
636
+ () =>
637
+ run(args, { cwd: mainCheckoutPath, env: { ...process.env, BACKLOG_DISPATCH_ACTIVE: '1' } }),
638
+ retryOptions,
639
+ );
640
+
641
+ return {
642
+ setStatus: (taskId: string, status: TaskStatus, comment?: string): void => {
643
+ const args = ['task', 'edit', taskId, '-s', status];
644
+ if (comment) {
645
+ args.push('--comment', comment);
646
+ }
647
+ ownedWrite(args);
648
+ },
649
+ comment: (taskId: string, comment: string): void => {
650
+ ownedWrite(['task', 'edit', taskId, '--comment', comment]);
651
+ },
652
+ };
653
+ }
654
+
655
+ /**
656
+ * The worktree slot currently assigned to `taskId`, or `null` when no slot holds it.
657
+ *
658
+ * `null` is a real answer the caller MUST handle, never a directory to fall back to. Falling back
659
+ * to the main checkout pointed every close runner at the developer's own working tree: a `git add
660
+ * -A` + WIP commit over whatever was in progress there, a scope diff of somebody else's changes,
661
+ * and a `gh pr create` off the main checkout's branch.
662
+ */
663
+ export function findSlotPathForTask(mainCheckoutPath: string, taskId: string): string | null {
664
+ const slotsPath = path.join(mainCheckoutPath, DISPATCH_SUBDIR, 'slots.json');
665
+ if (!fs.existsSync(slotsPath)) {
666
+ return null;
667
+ }
668
+ return slotPathForTask(JSON.parse(fs.readFileSync(slotsPath, 'utf8')) as SlotRegistry, taskId);
669
+ }
670
+
671
+ export interface RealGitDeps {
672
+ /** Injected by tests so no lookup ever reaches the real `slots.json` of a live checkout. */
673
+ slotPathFor?: (taskId: string) => string | null;
674
+ /** Injected by tests so no `git` ever runs; the default is a real, output-silenced `execFileSync`. */
675
+ run?: (command: string, args: string[], cwd: string) => void;
676
+ }
677
+
678
+ /**
679
+ * The dispatcher's own git side effects. Every `git commit` here runs `--no-verify`, and that is a
680
+ * safety property, not a convenience: a slot's `.husky/` hooks are FILES IN THE WORKING TREE the
681
+ * worker just wrote in, so committing its work through them would execute code the model under
682
+ * dispatch authored — with the dispatcher's own privileges. The board commit takes the same flag
683
+ * because it runs unattended in the main checkout, where a hook that stashes (lint-staged does)
684
+ * would reach into whatever a person has in progress there. Nothing is lost by it: both messages
685
+ * are machine-built and `close.test.ts` runs them through the repo's real commitlint.
686
+ */
687
+ export function realGit(mainCheckoutPath: string, deps: RealGitDeps = {}): MaintenanceGit {
688
+ const slotPathFor =
689
+ deps.slotPathFor ??
690
+ ((taskId: string): string | null => findSlotPathForTask(mainCheckoutPath, taskId));
691
+ const resolveSlotPath = (branch: string): string | null =>
692
+ slotPathFor(branch.replace(/^task\//, ''));
693
+ const run =
694
+ deps.run ??
695
+ ((command, args, cwd) => {
696
+ try {
697
+ execFileSync(command, args, { cwd, stdio: ['ignore', 'pipe', 'pipe'] });
698
+ } catch (error) {
699
+ throw new Error(
700
+ `dispatch.ts: ${command} ${args.join(' ')} failed: ${describeExecFailure(error)}`,
701
+ );
702
+ }
703
+ });
704
+
705
+ return {
706
+ hasPendingBacklogChanges: (): boolean => {
707
+ try {
708
+ const output = execFileSync('git', ['status', '--porcelain', '--', '.backlog'], {
709
+ cwd: mainCheckoutPath,
710
+ encoding: 'utf8',
711
+ stdio: ['ignore', 'pipe', 'ignore'], // a non-git BACKLOG_CWD (e.g. an isolated test project) fails loudly on stderr otherwise, even though the catch below already handles it silently.
712
+ });
713
+ return output.trim().length > 0;
714
+ } catch {
715
+ return false; // not a git repo (e.g. a scratch smoke-test project) — nothing to commit.
716
+ }
717
+ },
718
+ commitBacklogChanges: (message: string): void => {
719
+ run('git', ['add', '.backlog'], mainCheckoutPath);
720
+ // The trailing pathspec, not the `add`, is what bounds this commit: staging adds to the index
721
+ // but does not narrow what a commit takes, so a person's own already-staged work in the main
722
+ // checkout would otherwise ride along inside an unattended machine commit.
723
+ run('git', ['commit', '-m', message, '--no-verify', '--', '.backlog'], mainCheckoutPath);
724
+ },
725
+ saveWipAndPush: (branch: string) => {
726
+ const cwd = resolveSlotPath(branch);
727
+ if (cwd === null) {
728
+ // No slot holds this task, so there is no work to save — and running `git add -A` in the
729
+ // main checkout would commit whatever a person has in progress there.
730
+ console.error(`dispatch.ts: no slot holds ${branch}; nothing to save.`);
731
+ return { pushSucceeded: false };
732
+ }
733
+ const taskId = branch.replace(/^task\//, '');
734
+ try {
735
+ run('git', ['add', '-A'], cwd);
736
+ run(
737
+ 'git',
738
+ ['commit', '-m', buildWipCommitMessage(taskId), '--allow-empty', '--no-verify'],
739
+ cwd,
740
+ );
741
+ run('git', ['push', 'origin', branch], cwd);
742
+ return { pushSucceeded: true };
743
+ } catch {
744
+ return { pushSucceeded: false };
745
+ }
746
+ },
747
+ detachSlot: (slotPath: string): void =>
748
+ detachSlot(slotPath, (args, at) => run('git', args, at)),
749
+ branchExists: (branch: string): boolean => {
750
+ // The local ref first — cheap, no network. `--quiet` suppresses the "not a valid ref" noise
751
+ // `run`'s error wrapper would otherwise carry, and a throw here means only "no such local
752
+ // ref", never a reason to stop looking: the remote is checked next.
753
+ try {
754
+ run('git', ['rev-parse', '--verify', '--quiet', `refs/heads/${branch}`], mainCheckoutPath);
755
+ return true;
756
+ } catch {
757
+ // fall through to the remote check below.
758
+ }
759
+ try {
760
+ run('git', ['ls-remote', '--exit-code', '--heads', 'origin', branch], mainCheckoutPath);
761
+ return true;
762
+ } catch {
763
+ return false; // absent on both — the legitimate "never pushed" case T-8 point 7 relies on.
764
+ }
765
+ },
766
+ deleteLocalBranch: (branch: string): void => {
767
+ try {
768
+ run('git', ['branch', '-D', branch], mainCheckoutPath);
769
+ } catch {
770
+ // Tolerant by design (see this method's JSDoc on `MaintenanceGit`): the common case is a
771
+ // task never checked out in the main checkout at all, and this cleanup step must never
772
+ // fail the `Done` transition it runs alongside.
773
+ }
774
+ },
775
+ deleteRemoteBranch: (branch: string): RemoteBranchDeleteResult => {
776
+ try {
777
+ run('git', ['push', 'origin', '--delete', branch], mainCheckoutPath);
778
+ return REMOTE_BRANCH_DELETE_RESULT.DELETED;
779
+ } catch (error) {
780
+ const message = error instanceof Error ? error.message : String(error);
781
+ if (REMOTE_REF_ALREADY_GONE_PATTERN.test(message)) {
782
+ // GitHub's own "Automatically delete head branches" (enabled 2026-09-08) routinely beats
783
+ // this call to it — the NORMAL outcome, not a failure to report.
784
+ return REMOTE_BRANCH_DELETE_RESULT.ALREADY_GONE;
785
+ }
786
+ // A REAL failure (bad auth, a protected-branch rule, a network timeout) — defect 7,
787
+ // 2026-09-08: this used to be swallowed identically to the "already gone" case above, so
788
+ // the remote ref stayed alive with no log line and no honest signal in the result. See
789
+ // `maintenance.ts`'s `cleanupBranchOnDone` for what this outcome now does with it.
790
+ console.error(`dispatch.ts: git push origin --delete ${branch} failed:`, message);
791
+ return REMOTE_BRANCH_DELETE_RESULT.FAILED;
792
+ }
793
+ },
794
+ branchHasUnmergedCommits: (branch: string, baseRef: string): boolean => {
795
+ // The remote-tracking ref, not the local one: the rescue push (`saveWipAndPush`) lands its
796
+ // commits on `origin/<branch>` from inside a SLOT, and this runs in the main checkout, which
797
+ // never checks the branch out itself. `entry.ts` runs `git fetch origin --prune` at the top
798
+ // of every pass, before maintenance ever executes, so this remote-tracking ref is fresh for
799
+ // the SAME pass that is about to compare it — no extra fetch needed here.
800
+ //
801
+ // Deliberately WITHOUT `--quiet`: that flag suppresses git's own diagnostic on the exact
802
+ // failure this check needs to recognise, collapsing it into the SAME silent, empty-stderr
803
+ // failure a missing `git` binary or a broken checkout also produces through this `run` seam
804
+ // (which only ever surfaces a thrown Error's `.message`, never the raw exit code). Keeping
805
+ // the diagnostic is what lets `BRANCH_REF_NOT_FOUND_PATTERN` tell them apart.
806
+ try {
807
+ run('git', ['rev-parse', '--verify', `refs/remotes/origin/${branch}`], mainCheckoutPath);
808
+ } catch (error) {
809
+ const message = error instanceof Error ? error.message : String(error);
810
+ if (BRANCH_REF_NOT_FOUND_PATTERN.test(message)) {
811
+ // No remote-tracking ref at all (already deleted — GitHub's own auto-delete, or an
812
+ // earlier pass — or never pushed): nothing survives on the remote to lose, so there is
813
+ // nothing to refuse either.
814
+ return false;
815
+ }
816
+ // S2 [LOW], 2026-09-08: any OTHER failure of this call (the `git` binary missing, a
817
+ // corrupted checkout, a permissions error) is NOT a confirmed-absent answer — it is an
818
+ // unanswerable question, and `deleteLocalBranch` runs right after this on a `true` result,
819
+ // so misreading it as "nothing to lose" destroys the only copy of the branch on a mere
820
+ // inability to check. Fail in the SAME safe direction as the merge-base check below.
821
+ return true;
822
+ }
823
+ // `git merge-base --is-ancestor A B` exits 0 iff A is reachable from B — i.e. the branch's
824
+ // tip is fully contained in the base, so it carries nothing beyond it. Reuses the SAME `run`
825
+ // seam every other method here does (no new collaborator, no stdout to capture): any other
826
+ // outcome — genuinely not an ancestor, or an unreachable/unresolvable ref — throws through
827
+ // `run`'s wrapper, and both collapse to the SAME fail-safe refusal, since deletion is
828
+ // destructive and only a CONFIRMED-clean answer authorises it.
829
+ //
830
+ // S1 (2026-09-08): this check has an UNDECLARED dependency on the GitHub merge strategy. It
831
+ // is correct as shipped because this repo merges PRs with merge commits, so the branch tip
832
+ // stays a real ancestor of `baseRef` once merged. A squash or a rebase merge REWRITES the
833
+ // commits onto the base under a new SHA, so the original branch tip is no longer reachable
834
+ // from it — `--is-ancestor` would then answer "false" for EVERY genuinely-merged branch, and
835
+ // this refuses every delete, leaving `branchCleanupRefused` (and its PR comment) fire on
836
+ // every single `Done` task. Flipping the repo's merge strategy is what would break this, not
837
+ // a code change here — the next reader who considers that flip must re-derive this check.
838
+ try {
839
+ run('git', ['merge-base', '--is-ancestor', `origin/${branch}`, baseRef], mainCheckoutPath);
840
+ return false;
841
+ } catch {
842
+ return true;
843
+ }
844
+ },
845
+ };
846
+ }
847
+
848
+ function runOsascript(args: string[]): void {
849
+ try {
850
+ execFileSync('osascript', args, { stdio: 'ignore' });
851
+ } catch {
852
+ // Best-effort: a missing osascript (non-Mac, sandboxed CI) must never fail the pass.
853
+ }
854
+ }
855
+
856
+ // ── Close runners ──────────────────────────────────────────────────────────────
857
+
858
+ export interface BuildCloseRunnersInput {
859
+ mainCheckoutPath: string;
860
+ repoRoot: string;
861
+ task: Task;
862
+ attempt: number;
863
+ branch: string;
864
+ reviewerModel: string;
865
+ /** Wall-clock bound on the reviewer subprocess (`lanes.json`'s `reviewerTimeoutMinutes`). */
866
+ reviewerTimeoutMs: number;
867
+ /** Set by the close's `drain` step: main runs one more pass when the slot frees up. */
868
+ requestDrain: () => void;
869
+ /** The board snapshot this pass read, for the parent recomputation. */
870
+ tasksById: Record<string, Task>;
871
+ /**
872
+ * Whether that snapshot is the WHOLE board (`BoardLoad.complete` of the post-sweep re-read). The
873
+ * parent recomputation is SKIPPED when it is false: a derivation over some of the children
874
+ * produces a confident wrong answer — the same reason the maintenance sweep refuses it — and
875
+ * `reloadTasks` used to drop the flag, so the close derived from a partial board unaware.
876
+ */
877
+ boardComplete: boolean;
878
+ /**
879
+ * `lanes.json`'s `attempts` cap (T-8 point 6) — threaded into `openPr`'s composed PR body
880
+ * alongside the attempt number, so a reviewer reading the PR sees "intento 2 de 3" rather than a
881
+ * bare count with no ceiling to judge it against. Optional so a caller with no lane config in
882
+ * hand (every existing test fixture) still gets `buildPrCreateArgs`'s own fallback.
883
+ */
884
+ maxAttempts?: number;
885
+ /**
886
+ * `lanes.json`'s optional top-level `harnessReviewer` handle (T-31, design.md decision 8). Ships
887
+ * UNSET: `gh pr create --reviewer <self>` (and the equivalent edit) fails when the reviewer is the
888
+ * pull request's own author, and the dispatcher opens every PR as the same account. When absent,
889
+ * `openPr` records that once rather than attempting a call doomed to fail.
890
+ */
891
+ harnessReviewer?: string;
892
+ /** Injected by tests; defaults to the real `slots.json` lookup. `null` = no slot holds the task. */
893
+ slotPathFor?: (taskId: string) => string | null;
894
+ /** Injected by tests; defaults to a real `execFileSync` returning stdout. */
895
+ run?: RunInSlot;
896
+ /** Injected by tests; defaults to `spawnCapture` — never throws, reports the exit status. */
897
+ runCapturing?: (
898
+ command: string,
899
+ args: string[],
900
+ cwd: string,
901
+ ) => { status: number; output: string };
902
+ /**
903
+ * Reads `backlog task view <id> --plain`. Injected so the board reads every runner makes — the
904
+ * integrity gate, the pre-PR gate, the PR title, the DoD ticks, the parent recomputation — are
905
+ * driven in tests without spawning `backlog`, which is what lets the "no runner ever operates on
906
+ * the main checkout" suite actually exercise them instead of stopping at the four that shell out.
907
+ */
908
+ viewTask?: (taskId: string) => string;
909
+ /** Injected by tests; defaults to the real `osascript` call, which would pop a real notification. */
910
+ runOsascript?: OsascriptRunner;
911
+ }
912
+
913
+ type RunInSlot = (
914
+ command: string,
915
+ args: string[],
916
+ options: { cwd: string; env?: Record<string, string>; timeout?: number },
917
+ ) => string;
918
+
919
+ /**
920
+ * A whole attempt diff routinely runs into megabytes, and `execFileSync`'s 1 MB default turns that
921
+ * into a THROWN ENOBUFS rather than a big string — silently, on exactly the large changes most
922
+ * worth reviewing. Same reason on the reviewer: its transcript carries the diff back.
923
+ */
924
+ const LARGE_OUTPUT_MAX_BUFFER = 50 * 1024 * 1024;
925
+
926
+ /** Why every runner fails when no slot holds the task — see `findSlotPathForTask`. */
927
+ const NO_SLOT_QUESTION =
928
+ 'la tarea no tiene slot asignado en slots.json: no hay directorio donde verificar ni guardar su trabajo.';
929
+
930
+ export function buildCloseRunners(input: BuildCloseRunnersInput): CloseRunners {
931
+ const { mainCheckoutPath, repoRoot, task, attempt, branch, tasksById } = input;
932
+ const slotPath =
933
+ input.slotPathFor ??
934
+ ((taskId: string): string | null => findSlotPathForTask(mainCheckoutPath, taskId));
935
+ const runIn: RunInSlot =
936
+ input.run ??
937
+ ((command, args, options) =>
938
+ execFileSync(command, args, {
939
+ cwd: options.cwd,
940
+ encoding: 'utf8',
941
+ env: options.env,
942
+ timeout: options.timeout,
943
+ maxBuffer: LARGE_OUTPUT_MAX_BUFFER,
944
+ }));
945
+ const runCapturing = input.runCapturing ?? spawnCapture;
946
+ const osascript = input.runOsascript ?? runOsascript;
947
+ const readTask = (): string => {
948
+ try {
949
+ return (input.viewTask ?? ((taskId: string) => viewTask(mainCheckoutPath, taskId)))(task.id);
950
+ } catch (error) {
951
+ console.error(`dispatch.ts: backlog task view ${task.id} failed:`, error);
952
+ return '';
953
+ }
954
+ };
955
+ const attemptDir = path.join(mainCheckoutPath, DISPATCH_SUBDIR, task.id, `intento-${attempt}`);
956
+ const base = resolveBaseRef(task, tasksById);
957
+ // Set by `scopeCheck` below, read by `openPr`'s human-review mark — never recomputed at PR time
958
+ // (design.md decision 8, T-31): by then `mirrorRegen` has written into
959
+ // `packages/cli/src/templates/`, and a recomputation would match `packages/cli/` and mark EVERY
960
+ // attempt that touched any mirrored root, which is a mark that fires always and says nothing.
961
+ let humanReviewFiles: readonly string[] = [];
962
+
963
+ return {
964
+ // Re-read the board and compare it against the launch snapshot BEFORE any step trusts it. The
965
+ // worker held a `backlog task edit` grant on this task for its whole run.
966
+ boardCheck: () => checkBoardIntegrity({ taskText: readTask(), task }),
967
+ // An absent lane is unreachable here (guard 1 blocks it), so the fallback only decides which
968
+ // way to be wrong: LOCAL is the stricter check of the two.
969
+ scopeCheck: () => {
970
+ const cwd = slotPath(task.id);
971
+ if (cwd === null) {
972
+ return {
973
+ ok: false,
974
+ reason: 'scope-check-failed',
975
+ question: NO_SLOT_QUESTION,
976
+ humanReviewFiles: [],
977
+ };
978
+ }
979
+ const result = runScopeCheck({
980
+ lane: task.lane ?? LANE.LOCAL,
981
+ declaredFiles: task.filesToTouch,
982
+ base,
983
+ runGit: (args) => runIn('git', args, { cwd }),
984
+ });
985
+ if (result.ok) {
986
+ humanReviewFiles = result.humanReviewFiles;
987
+ }
988
+ return result;
989
+ },
990
+ formatLintTest: () => {
991
+ const cwd = slotPath(task.id);
992
+ if (cwd === null) {
993
+ return { ok: false, reason: 'format-lint-test-failed', question: NO_SLOT_QUESTION };
994
+ }
995
+ // The command SNAPSHOTTED at launch, never re-read here: the worker had `backlog task edit`
996
+ // on its own task all run, so a close that re-reads the board runs whatever the thing under
997
+ // test decided it should be verified with.
998
+ //
999
+ // `task.testCommand` is non-null on every REAL dispatch: guard 1 blocks a task that declares
1000
+ // no `Test command:` line before a worker ever starts, so this close only ever sees one that
1001
+ // passed that guard. `planMechanicalChecks` still handles the null (it is a pure planner with
1002
+ // its own tests) — there is simply no branch to take here.
1003
+
1004
+ let changedFiles: string[];
1005
+ try {
1006
+ changedFiles = collectChangedFiles({ base, runGit: (args) => runIn('git', args, { cwd }) });
1007
+ } catch (error) {
1008
+ return {
1009
+ ok: false,
1010
+ reason: 'format-lint-test-failed',
1011
+ question: `git no se pudo ejecutar: ${describeExecFailure(error)}`,
1012
+ };
1013
+ }
1014
+
1015
+ const plan = planMechanicalChecks({
1016
+ testCommand: task.testCommand,
1017
+ lintBarrels: hasLintBarrelsScript(repoRoot),
1018
+ changedFiles,
1019
+ exists: (file) => fs.existsSync(path.join(cwd, file)),
1020
+ });
1021
+ if (plan.skippedPrettierFiles.length > 0) {
1022
+ // Prettier is not a root dependency, so a file outside `backend/`, `frontier/` or the two
1023
+ // core packages has no formatter to run — reported, not silently treated as formatted.
1024
+ console.warn(
1025
+ `dispatch.ts: ${task.id} — no prettier workspace covers: ${plan.skippedPrettierFiles.join(', ')}`,
1026
+ );
1027
+ }
1028
+ if (plan.refusal) {
1029
+ return { ok: false, reason: 'format-lint-test-failed', question: plan.refusal };
1030
+ }
1031
+
1032
+ for (const check of plan.checks) {
1033
+ const result = runCapturing(check.command, check.args, cwd);
1034
+ fs.appendFileSync(
1035
+ path.join(attemptDir, 'test.log'),
1036
+ `$ ${check.command} ${check.args.join(' ')}\n${result.output}\n`,
1037
+ );
1038
+ if (result.status !== 0) {
1039
+ return {
1040
+ ok: false,
1041
+ reason: 'format-lint-test-failed',
1042
+ question: `Falló "${check.label}"; mira test.log.`,
1043
+ };
1044
+ }
1045
+ }
1046
+
1047
+ // The triad just proved these; ticking them here is what keeps the pre-PR gate from failing
1048
+ // a green attempt on bookkeeping the worker was never asked to do. "Scoped tests pass" is
1049
+ // ticked ONLY when a test check actually ran: ticking it because the step as a whole returned
1050
+ // green would assert a test that never existed, and the gate that follows is what turns that
1051
+ // silence into a failed attempt rather than into a PR.
1052
+ const taskText = readTask();
1053
+ if (plan.checks.some((check) => check.label === 'test')) {
1054
+ tickOwnedDod(mainCheckoutPath, task.id, taskText, DOD_SCOPED_TESTS);
1055
+ }
1056
+ tickOwnedDod(mainCheckoutPath, task.id, taskText, DOD_PRETTIER_BARRELS);
1057
+ return { ok: true };
1058
+ },
1059
+ // Regenerates the CLI scaffold mirror when the attempt touched a root the packager reads, so the
1060
+ // PR passes CI's `Check mirror <-> source drift`. It runs AFTER the triad on purpose: that step
1061
+ // rewrites the attempt's own files with `prettier --write`, and a mirror copied before it would
1062
+ // be stale the moment it did. See `runMirrorRegen` for the rest of the reasoning.
1063
+ mirrorRegen: () => {
1064
+ const cwd = slotPath(task.id);
1065
+ if (cwd === null) {
1066
+ return { ok: false, reason: 'mirror-regen-failed', question: NO_SLOT_QUESTION };
1067
+ }
1068
+
1069
+ // Both callbacks re-throw through `describeExecFailure`: an `execFileSync` throw carries only
1070
+ // "Command failed: node scripts/packager/publish.mjs" in its `message`, and the packager's
1071
+ // real complaint (a missing source directory, an fs-extra error) is in the stderr nobody
1072
+ // prints. The `Blocked` comment is the only channel telling a person why the attempt stopped.
1073
+ const result = runMirrorRegen({
1074
+ base,
1075
+ runGit: (args) => {
1076
+ try {
1077
+ return runIn('git', args, { cwd });
1078
+ } catch (error) {
1079
+ throw new Error(describeExecFailure(error));
1080
+ }
1081
+ },
1082
+ driftCheckWorkflow: readDriftCheckWorkflow(cwd),
1083
+ runPackager: () => {
1084
+ try {
1085
+ runIn('node', [MIRROR_PACKAGER_SCRIPT], { cwd });
1086
+ } catch (error) {
1087
+ throw new Error(describeExecFailure(error));
1088
+ }
1089
+ },
1090
+ });
1091
+
1092
+ if (result.regenerated) {
1093
+ console.error(
1094
+ `dispatch.ts: ${task.id} — espejo del scaffold regenerado (${result.mirrorFiles.length} ficheros bajo ` +
1095
+ 'packages/cli/src/templates/); viajan en el commit del intento.',
1096
+ );
1097
+ }
1098
+ return result;
1099
+ },
1100
+ reviewer: () => {
1101
+ const cwd = slotPath(task.id);
1102
+ if (cwd === null) {
1103
+ return { ok: false, reason: 'reviewer-failed', question: NO_SLOT_QUESTION };
1104
+ }
1105
+
1106
+ // An uncollectable diff FAILS the step. Handing the reviewer a note saying git blew up reads
1107
+ // to it as an empty change set, and it duly approves code it never saw.
1108
+ let diff: string;
1109
+ try {
1110
+ diff = collectAttemptDiff({ base, runGit: (args) => runIn('git', args, { cwd }) });
1111
+ } catch (error) {
1112
+ return {
1113
+ ok: false,
1114
+ reason: 'reviewer-failed',
1115
+ question: `no se pudo obtener el diff: ${describeExecFailure(error)}`,
1116
+ };
1117
+ }
1118
+
1119
+ return runReviewer({
1120
+ taskId: task.id,
1121
+ model: input.reviewerModel,
1122
+ diff,
1123
+ acceptanceCriteria: parseAcceptanceCriteria(readTask()),
1124
+ // The reviewer runs on the ACCOUNT, never on LM Studio. `reviewerEnv` drops every
1125
+ // `ANTHROPIC_*` key — the lane's LM Studio overlay so a weak local executor can never end up
1126
+ // reviewing itself (design.md's close diagram, `SR`), and the API key with it, because a
1127
+ // stale one in the dispatcher's shell takes precedence over the account's claude.ai login
1128
+ // and left the reviewer unable to start at all. Bounded, because it runs while this process
1129
+ // still owns the slot.
1130
+ //
1131
+ // The failure is rendered with the child's stderr: `execFileSync`'s own `error.message` is
1132
+ // "Command failed: claude -p …", and the T-5 run's `review.md` said exactly that and
1133
+ // nothing more — the auth error that explained it was in the stderr nobody printed.
1134
+ run: (command, args) => {
1135
+ try {
1136
+ return runIn(command, args, {
1137
+ cwd,
1138
+ env: reviewerEnv(),
1139
+ timeout: input.reviewerTimeoutMs,
1140
+ });
1141
+ } catch (error) {
1142
+ throw new Error(describeExecFailure(error));
1143
+ }
1144
+ },
1145
+ writeReview: (content) => fs.writeFileSync(path.join(attemptDir, 'review.md'), content),
1146
+ });
1147
+ },
1148
+ acCheck: () => {
1149
+ // Re-read the task: the worker ticked its acceptance criteria through the `backlog` CLI while
1150
+ // it worked, so the snapshot this pass started with is stale by definition here.
1151
+ const result = evaluateAcceptanceGate(readTask());
1152
+ if (result.ok) {
1153
+ tickOwnedDod(mainCheckoutPath, task.id, readTask(), DOD_EVERY_AC);
1154
+ }
1155
+ return result;
1156
+ },
1157
+ openPr: () => {
1158
+ const cwd = slotPath(task.id);
1159
+ if (cwd === null) {
1160
+ return { ok: false, reason: 'open-pr-failed', question: NO_SLOT_QUESTION };
1161
+ }
1162
+ // Applies the human-review mark's two best-effort halves — a SEPARATE `gh pr edit` call each
1163
+ // (design.md decision 8, T-31): a rejected reviewer must not take the label down with it, and
1164
+ // a label the repository does not have must not fail the close at all. Each failure is
1165
+ // RECORDED (never propagated) with `describeExecFailure`, same as every other best-effort gh
1166
+ // call in this runner. No-op when the scope check reported no soft-list file.
1167
+ // The mark's BODY half, for the REUSE branch only: a newly created pull request already
1168
+ // carries it inside `gh pr create --body` (`buildPrCreateArgs`), which is what makes that half
1169
+ // unfailable. A retry has no create call at all, so without this the reused pull request names
1170
+ // no soft-list file and the whole mark rests on the two `gh pr edit` calls the design allows to
1171
+ // fail.
1172
+ //
1173
+ // It READS the body first and edits only its own delimited section
1174
+ // (`upsertHumanReviewSection`). `gh pr edit --body` is a full replacement, and these are by
1175
+ // construction the pull requests a person was asked to read and annotate — recomposing the
1176
+ // body from the board erased every word that person had added (T-31 round 2). A body that
1177
+ // cannot be read is not overwritten at all: with no idea what is there, the mark is skipped
1178
+ // and recorded, like every other best-effort half.
1179
+ const applyHumanReviewBody = (): void => {
1180
+ if (humanReviewFiles.length === 0) {
1181
+ return;
1182
+ }
1183
+ let currentBody: string;
1184
+ try {
1185
+ currentBody = readPrBody(branch, (args) => runIn('gh', args, { cwd, env: ghEnv() }));
1186
+ } catch (error) {
1187
+ console.error(
1188
+ `dispatch.ts: ${task.id} — no se pudo leer el cuerpo de la PR reutilizada, así que no se reescribe (se perdería el texto humano): ${describeExecFailure(error)}`,
1189
+ );
1190
+ return;
1191
+ }
1192
+ try {
1193
+ runIn(
1194
+ 'gh',
1195
+ buildPrBodyArgs(branch, upsertHumanReviewSection(currentBody, humanReviewFiles)),
1196
+ { cwd, env: ghEnv() },
1197
+ );
1198
+ } catch (error) {
1199
+ console.error(
1200
+ `dispatch.ts: ${task.id} — no se pudo reescribir el cuerpo de la PR reutilizada con la sección de revisión humana: ${describeExecFailure(error)}`,
1201
+ );
1202
+ }
1203
+ };
1204
+
1205
+ const markForHumanReview = (): void => {
1206
+ if (humanReviewFiles.length === 0) {
1207
+ return;
1208
+ }
1209
+ try {
1210
+ runIn('gh', buildPrLabelArgs(branch), { cwd, env: ghEnv() });
1211
+ } catch (error) {
1212
+ console.error(
1213
+ `dispatch.ts: ${task.id} — no se pudo aplicar la etiqueta ${HARNESS_REVIEW_LABEL}: ${describeExecFailure(error)}`,
1214
+ );
1215
+ }
1216
+ if (input.harnessReviewer) {
1217
+ try {
1218
+ runIn('gh', buildPrReviewerArgs(branch, input.harnessReviewer), { cwd, env: ghEnv() });
1219
+ } catch (error) {
1220
+ console.error(
1221
+ `dispatch.ts: ${task.id} — no se pudo asignar el revisor ${input.harnessReviewer}: ${describeExecFailure(error)}`,
1222
+ );
1223
+ }
1224
+ } else {
1225
+ console.error(
1226
+ `dispatch.ts: ${task.id} — PR marcada con ${HARNESS_REVIEW_LABEL}; sin revisor configurado.`,
1227
+ );
1228
+ }
1229
+ };
1230
+
1231
+ try {
1232
+ // Commit and push FIRST: `gh pr create --head <branch>` needs the branch on the remote, and
1233
+ // the executor is forbidden from running `git` itself, so on a green attempt everything it
1234
+ // wrote is still an uncommitted working tree at this point (design.md's close diagram:
1235
+ // "commit on task branch, push, PR to main or to the parent branch" is ONE step).
1236
+ runIn('git', ['add', '-A'], { cwd });
1237
+ // `--no-verify` for the same reason the WIP auto-save carries it: the hooks that would run
1238
+ // here live in the slot's working tree, which is where the worker has been writing.
1239
+ runIn(
1240
+ 'git',
1241
+ [
1242
+ 'commit',
1243
+ '-m',
1244
+ buildAttemptCommitMessage(task.id, attempt),
1245
+ '--allow-empty',
1246
+ '--no-verify',
1247
+ ],
1248
+ {
1249
+ cwd,
1250
+ },
1251
+ );
1252
+ runIn('git', ['push', '-u', 'origin', branch], { cwd });
1253
+
1254
+ // A retry pushes to the same branch, so the PR from the previous attempt is still open and
1255
+ // the push above already updated it. Creating a second one is impossible (`gh` refuses) —
1256
+ // asking first is what turns that refusal into the reuse it should always have been.
1257
+ // `env: ghEnv()` on every gh call below: see `ghEnv`'s own header for the measured 401 this
1258
+ // closes (T-5, 2026-09-07) — without it, a stale `GITHUB_TOKEN` in the dispatcher's shell
1259
+ // outranks `gh`'s own keyring login.
1260
+ const existing = findOpenPrUrl({
1261
+ branch,
1262
+ runGh: (args) => runIn('gh', args, { cwd, env: ghEnv() }),
1263
+ });
1264
+ if (existing !== null) {
1265
+ console.error(`dispatch.ts: PR existente reutilizada para ${branch}: ${existing}`);
1266
+ notify(`${task.id}: PR existente reutilizada`, existing, osascript);
1267
+ tickOwnedDod(mainCheckoutPath, task.id, readTask(), DOD_PR_OPENED);
1268
+ applyHumanReviewBody();
1269
+ markForHumanReview();
1270
+ return { ok: true, compareUrl: existing };
1271
+ }
1272
+
1273
+ const title = buildPrTitle(task.id, parseTaskTitle(readTask()));
1274
+ // T-8 point 6: the board text re-read right here (never the launch-time snapshot, which a
1275
+ // worker's own notes/plan have moved past) becomes the PR's composed body via
1276
+ // `buildPrCreateArgs`'s `taskText` — omitting it falls back to the legacy one-line body,
1277
+ // which is exactly the gap this call site is closing.
1278
+ const output = runIn(
1279
+ 'gh',
1280
+ buildPrCreateArgs({
1281
+ task,
1282
+ branch,
1283
+ attempt,
1284
+ title,
1285
+ taskText: readTask(),
1286
+ tasksById,
1287
+ maxAttempts: input.maxAttempts,
1288
+ humanReviewFiles,
1289
+ }),
1290
+ { cwd, env: ghEnv() },
1291
+ );
1292
+ notify(`${task.id}: PR abierta`, output.trim(), osascript);
1293
+ tickOwnedDod(mainCheckoutPath, task.id, readTask(), DOD_PR_OPENED);
1294
+ markForHumanReview();
1295
+ return { ok: true, compareUrl: output.trim() };
1296
+ } catch (error) {
1297
+ return { ok: false, reason: 'open-pr-failed', question: describeExecFailure(error) };
1298
+ }
1299
+ },
1300
+ releaseSlot: () => {
1301
+ // The one release procedure every path shares (`slots.ts`): detach, then clear the entry.
1302
+ releaseSlotAndDetach({
1303
+ taskId: task.id,
1304
+ slotPath: slotPath(task.id),
1305
+ runGit: (args, at) => runIn('git', args, { cwd: at }),
1306
+ updateSlots: realMaintenanceFs(mainCheckoutPath, repoRoot).updateSlots,
1307
+ });
1308
+ releaseLock(path.join(mainCheckoutPath, DISPATCH_SUBDIR), task.id);
1309
+ },
1310
+ recomputeParent: () => {
1311
+ if (!task.parentId) {
1312
+ return;
1313
+ }
1314
+ if (!input.boardComplete) {
1315
+ console.error(
1316
+ `dispatch.ts: the post-sweep board read was incomplete; skipping ${task.parentId}'s recomputation. ` +
1317
+ 'A parent derived from half its children is a confident wrong answer — the next pass, with a readable board, does it.',
1318
+ );
1319
+ return;
1320
+ }
1321
+ const recomputed = recomputeParent({
1322
+ parentId: task.parentId,
1323
+ // The child just finished, so its snapshot status (`In Progress`) is stale; the parent's
1324
+ // derivation must see what the board now says, not what this pass read at its start.
1325
+ tasksById: {
1326
+ ...input.tasksById,
1327
+ [task.id]: { ...task, status: parseTaskStatus(readTask()) },
1328
+ },
1329
+ gh: realGh(repoRoot),
1330
+ backlog: realBacklog(mainCheckoutPath),
1331
+ fs: realMaintenanceFs(mainCheckoutPath, repoRoot),
1332
+ });
1333
+ if (recomputed) {
1334
+ console.log(
1335
+ `dispatch.ts: parent ${recomputed.id} recomputed ${recomputed.from} -> ${recomputed.to}`,
1336
+ );
1337
+ }
1338
+ },
1339
+ drain: () => input.requestDrain(),
1340
+ saveWork: () =>
1341
+ realGit(mainCheckoutPath, {
1342
+ slotPathFor: slotPath,
1343
+ run: (command, args, cwd) => void runIn(command, args, { cwd }),
1344
+ }).saveWipAndPush(branch),
1345
+ // The record for a failure that no `scope-check` preceded (T-31 rounds 3 and 4): a session-level
1346
+ // failure, or a `board-check` that diverted before it. Classified by LANE, from the same function
1347
+ // the scope check reads, so the record and the verdict cannot disagree about a path. `base` is
1348
+ // this task's own base ref — `origin/task/<parentId>` for a subtask, where diffing against
1349
+ // `origin/main` would report the parent's whole accumulated diff as this attempt's leftovers.
1350
+ // `executeClose` treats a throw as "none found": a close that already failed must not fail harder
1351
+ // over a marking concern.
1352
+ leftoverFiles: () => {
1353
+ const cwd = slotPath(task.id);
1354
+ if (cwd === null) {
1355
+ return { forbiddenFiles: [], humanReviewFiles: [] };
1356
+ }
1357
+ return collectLeftoverFiles({
1358
+ lane: task.lane ?? LANE.LOCAL,
1359
+ base,
1360
+ runGit: (args) => runIn('git', args, { cwd }),
1361
+ });
1362
+ },
1363
+ block: (details) => {
1364
+ // Blocked FIRST, released after: a task whose slot is already free but whose status still
1365
+ // says `In Progress` looks to the maintenance sweep like a worker that vanished. The reverse
1366
+ // window is the accepted one — for the few milliseconds between these two lines the task is
1367
+ // `Blocked` while its slot still names it, and step 4's manual-cancellation branch could act
1368
+ // on it. All that branch does is save work already saved and release a slot about to be
1369
+ // released, so the cost of the race is a redundant no-op, not a lost attempt.
1370
+ realBacklog(mainCheckoutPath).setStatus(
1371
+ task.id,
1372
+ TASK_STATUS.BLOCKED,
1373
+ formatBlockComment(details),
1374
+ );
1375
+ notify(`${task.id} blocked: ${details.reason}`, details.logPath, osascript);
1376
+ },
1377
+ blockKeepSlot: (details) => {
1378
+ // The push failed, so this slot holds the ONLY copy of the work: mark it so the next
1379
+ // maintenance pass retries the push, and so no acquisition ever reuses it meanwhile. The lock
1380
+ // goes, though — this reconciler process is about to exit, and its pid would be swept anyway.
1381
+ // Only the `heldForRecovery` flag is touched, so a concurrent pass's own slot survives.
1382
+ realMaintenanceFs(mainCheckoutPath, repoRoot).updateSlots((current) => ({
1383
+ slots: current.slots.map((slot) =>
1384
+ slot.taskId === task.id ? { ...slot, heldForRecovery: true } : slot,
1385
+ ),
1386
+ }));
1387
+ releaseLock(path.join(mainCheckoutPath, DISPATCH_SUBDIR), task.id);
1388
+ realBacklog(mainCheckoutPath).setStatus(
1389
+ task.id,
1390
+ TASK_STATUS.BLOCKED,
1391
+ formatBlockComment(details),
1392
+ );
1393
+ notify(`${task.id} blocked: ${details.reason}`, details.logPath, osascript);
1394
+ },
1395
+ };
1396
+ }
1397
+
1398
+ function spawnCapture(
1399
+ command: string,
1400
+ args: string[],
1401
+ cwd: string,
1402
+ ): { status: number; output: string } {
1403
+ try {
1404
+ const output = execFileSync(command, args, {
1405
+ cwd,
1406
+ encoding: 'utf8',
1407
+ stdio: ['ignore', 'pipe', 'pipe'],
1408
+ });
1409
+ return { status: 0, output };
1410
+ } catch (error) {
1411
+ const failure = error as { status?: number; stdout?: string; stderr?: string };
1412
+ return {
1413
+ status: failure.status ?? 1,
1414
+ output: `${failure.stdout ?? ''}${failure.stderr ?? ''}`,
1415
+ };
1416
+ }
1417
+ }
1418
+
1419
+ /** What `mirrorRegen` spawns, relative to the slot it runs in. */
1420
+ const MIRROR_PACKAGER_SCRIPT = 'scripts/packager/publish.mjs';
1421
+
1422
+ /** The CI gate whose `paths:` filter IS the mirrored-root list `runMirrorRegen` reads. */
1423
+ const DRIFT_CHECK_WORKFLOW_PATH = path.join('.github', 'workflows', 'cli-template-drift-check.yml');
1424
+
1425
+ /**
1426
+ * The drift-check workflow as it stands IN THE SLOT, or `null` when the repo has none — a generated
1427
+ * project, where `copyMonorepo()` ships `scripts/backlog/**` but neither `.github/**` nor
1428
+ * `scripts/packager/**`. Read from the slot rather than from the main checkout for the same reason
1429
+ * every other close read is: the attempt may legitimately have changed that file, and the roots the
1430
+ * mirror needs are the ones the PR will be judged against.
1431
+ */
1432
+ function readDriftCheckWorkflow(slotPath: string): string | null {
1433
+ try {
1434
+ return fs.readFileSync(path.join(slotPath, DRIFT_CHECK_WORKFLOW_PATH), 'utf8');
1435
+ } catch {
1436
+ return null;
1437
+ }
1438
+ }
1439
+
1440
+ function hasLintBarrelsScript(repoRoot: string): boolean {
1441
+ try {
1442
+ const pkg = JSON.parse(fs.readFileSync(path.join(repoRoot, 'package.json'), 'utf8')) as {
1443
+ scripts?: Record<string, string>;
1444
+ };
1445
+ return Boolean(pkg.scripts?.[LINT_BARRELS_SCRIPT]);
1446
+ } catch {
1447
+ return false;
1448
+ }
1449
+ }
1450
+
1451
+ function readTaskText(mainCheckoutPath: string, taskId: string): string {
1452
+ try {
1453
+ return viewTask(mainCheckoutPath, taskId);
1454
+ } catch (error) {
1455
+ console.error(`dispatch.ts: backlog task view ${taskId} failed:`, error);
1456
+ return '';
1457
+ }
1458
+ }
1459
+
1460
+ export interface TickOwnedDodDeps {
1461
+ /** Injected by tests so no `backlog` CLI ever runs; the default wraps a real, stderr-capturing `execFileSync`. */
1462
+ run?: (taskId: string, index: number) => void;
1463
+ /** Overrides `withBoardWriteRetry`'s defaults — tests inject a synchronous, instant `sleep`. */
1464
+ retry?: Partial<BoardWriteRetryOptions>;
1465
+ }
1466
+
1467
+ /**
1468
+ * Ticks the dispatcher-owned Definition-of-Done items matching `pattern` in `taskText`, by TEXT
1469
+ * rather than by a guessed index: `--check-dod` takes the `#N` the CLI prints, and that number shifts as soon as a
1470
+ * task adds a DoD item of its own. Best-effort — a failed tick is a bookkeeping loss, never a
1471
+ * reason to fail a close that already proved the thing.
1472
+ *
1473
+ * Goes through `withBoardWriteRetry` like every other dispatcher-owned write: a `--check-dod` tick
1474
+ * can race the SAME per-task lock a status edit or a person's own edit just took (measured T-5
1475
+ * defect, see that function's header). A failure that survives every retry still only logs — this
1476
+ * tick was always best-effort, and that does not change because the failure now took longer to
1477
+ * surface.
1478
+ */
1479
+ export function tickOwnedDod(
1480
+ mainCheckoutPath: string,
1481
+ taskId: string,
1482
+ taskText: string,
1483
+ pattern: RegExp,
1484
+ deps: TickOwnedDodDeps = {},
1485
+ ): void {
1486
+ const run =
1487
+ deps.run ??
1488
+ ((id: string, index: number): void => {
1489
+ try {
1490
+ execFileSync('backlog', ['task', 'edit', id, '--check-dod', String(index)], {
1491
+ cwd: mainCheckoutPath,
1492
+ env: { ...process.env, BACKLOG_DISPATCH_ACTIVE: '1' },
1493
+ stdio: ['ignore', 'pipe', 'pipe'],
1494
+ });
1495
+ } catch (error) {
1496
+ throw new Error(
1497
+ `dispatch.ts: backlog task edit ${id} --check-dod ${index} failed: ${describeExecFailure(error)}`,
1498
+ );
1499
+ }
1500
+ });
1501
+ const retryOptions: BoardWriteRetryOptions = { ...BOARD_WRITE_RETRY_DEFAULTS, ...deps.retry };
1502
+
1503
+ for (const item of findOwnedDefinitionOfDone(taskText, pattern)) {
1504
+ try {
1505
+ // A `task edit`, so it runs with the same dispatcher-owned-write sentinel `realBacklog` uses —
1506
+ // see `isDispatcherOwnedCallback` (entry.ts) and the measured T-5 defect this closes.
1507
+ withBoardWriteRetry(
1508
+ `backlog task edit ${taskId} --check-dod ${item.index}`,
1509
+ () => run(taskId, item.index),
1510
+ retryOptions,
1511
+ );
1512
+ } catch (error) {
1513
+ console.error(
1514
+ `dispatch.ts: could not tick DoD #${item.index} on ${taskId}:`,
1515
+ describeExecFailure(error),
1516
+ );
1517
+ }
1518
+ }
1519
+ }
1520
+
1521
+ function readTaskStatus(mainCheckoutPath: string, taskId: string): TaskStatus {
1522
+ return parseTaskView({ id: taskId, output: readTaskText(mainCheckoutPath, taskId), attempts: 0 })
1523
+ .status;
1524
+ }
1525
+
1526
+ // ── Executor prompt assembly (tasks.md 4.2/4.3) ───────────────────────────────
1527
+ //
1528
+ // Runs the two hooks the SAME way the harness itself does (`npx --loglevel=error tsx <hook>`,
1529
+ // see `.claude/settings.json`), just fed synthetic stdin instead of a live UserPromptSubmit/
1530
+ // PreToolUse event — Phase 1 spike 1.3's confirmed approach. `cwd` is always the task's own
1531
+ // worktree slot, so both hooks resolve their repo root (and, for the BR injector, its per-slot
1532
+ // `.claude/.cache/br-injected.json`) against that checkout, not the main one — while `BACKLOG_CWD`
1533
+ // in their env points the BOARD read at the main checkout, the only place tasks live.
1534
+
1535
+ /**
1536
+ * Injected so `buildHookRunners`'s environment contract is testable without spawning a hook.
1537
+ * `repoRoot` is bound by the caller; `env` is layered over the inherited one.
1538
+ */
1539
+ export type HookScriptRunner = (
1540
+ hookRelativePath: string,
1541
+ cwd: string,
1542
+ env: Record<string, string>,
1543
+ stdinPayload: unknown,
1544
+ ) => string;
1545
+
1546
+ function runHookScript(
1547
+ repoRoot: string,
1548
+ hookRelativePath: string,
1549
+ cwd: string,
1550
+ env: Record<string, string>,
1551
+ stdinPayload: unknown,
1552
+ ): string {
1553
+ try {
1554
+ const result = execFileSync(
1555
+ 'npx',
1556
+ ['--loglevel=error', 'tsx', path.join(repoRoot, hookRelativePath)],
1557
+ {
1558
+ input: JSON.stringify(stdinPayload),
1559
+ cwd,
1560
+ env: { ...process.env, ...env },
1561
+ encoding: 'utf8',
1562
+ stdio: ['pipe', 'pipe', 'ignore'],
1563
+ },
1564
+ );
1565
+ return result;
1566
+ } catch {
1567
+ return ''; // Fail open — an unavailable/erroring hook must never block prompt assembly.
1568
+ }
1569
+ }
1570
+
1571
+ /**
1572
+ * The two hook subprocesses `prompt.ts`'s precompute drives. They run with the SLOT as cwd (so they
1573
+ * resolve rules and the injector cache against the checkout the work happens in), but with
1574
+ * `BACKLOG_CWD` naming the MAIN checkout: the board lives only there, and a slot's own `.backlog/`
1575
+ * copy has no tasks in it. `BACKLOG_DISPATCH_ACTIVE` is what makes the hook state the dispatched
1576
+ * fact ("the dispatcher already set it In Progress") instead of pointing at the interactive Task
1577
+ * Gate.
1578
+ *
1579
+ * Both still travel even though the LOCAL precompute no longer asks the hook for a task block
1580
+ * (`prompt.ts`'s `buildHookPromptText` names no id, since block 1 already carries the task text):
1581
+ * they are the environment the hook is entitled to, and the moment anything here names an id again
1582
+ * the block must resolve against the real board and read as dispatched, not as a Task Gate.
1583
+ */
1584
+ export function buildHookRunners(
1585
+ repoRoot: string,
1586
+ cwd: string,
1587
+ mainCheckoutPath: string,
1588
+ runHook: HookScriptRunner = (hookRelativePath, hookCwd, env, payload) =>
1589
+ runHookScript(repoRoot, hookRelativePath, hookCwd, env, payload),
1590
+ ): HookRunners {
1591
+ const env = { BACKLOG_CWD: mainCheckoutPath, BACKLOG_DISPATCH_ACTIVE: '1' };
1592
+ return {
1593
+ resetInjectorCache: () => resetInjectorCache(cwd),
1594
+ runInjectPromptContext: (prompt) =>
1595
+ runHook('.claude/hooks/inject-prompt-context.ts', cwd, env, { prompt, cwd }),
1596
+ runBusinessRulesInjector: (filePath) => {
1597
+ const raw = runHook('.claude/hooks/business-rules-injector.ts', cwd, env, {
1598
+ tool_name: 'Edit',
1599
+ tool_input: { file_path: filePath },
1600
+ cwd,
1601
+ });
1602
+ try {
1603
+ const parsed = JSON.parse(raw) as { hookSpecificOutput?: { additionalContext?: string } };
1604
+ return parsed.hookSpecificOutput?.additionalContext ?? '';
1605
+ } catch {
1606
+ return ''; // No JSON on stdout — the hook found nothing to inject for this file.
1607
+ }
1608
+ },
1609
+ };
1610
+ }
1611
+
1612
+ /**
1613
+ * Builds the local lane's full six-block executor prompt (design.md's "Executor prompt
1614
+ * contract"; `prompt.ts`'s `assembleExecutorPrompt`). `taskText` is the same
1615
+ * `backlog task view --plain` output the board loader already knows how to fetch; the operating
1616
+ * envelope's acceptance criteria, Definition of Done, and test command are parsed back out of that
1617
+ * same text (there is no structured CLI field for any of the three — see prompt.ts's own header),
1618
+ * and a retry (`attempt > 1`) carries the task's most recent comment plus the prior attempt's
1619
+ * `review.md`, when one was written.
1620
+ */
1621
+ function buildLocalExecutorPrompt(
1622
+ mainCheckoutPath: string,
1623
+ repoRoot: string,
1624
+ task: Task,
1625
+ attempt: number,
1626
+ ): string {
1627
+ const taskText =
1628
+ readTaskText(mainCheckoutPath, task.id) || `Task ${task.id} (backlog task view failed)`;
1629
+
1630
+ const declaredFiles = task.filesToTouch;
1631
+ const slotDir = findSlotPathForTask(mainCheckoutPath, task.id);
1632
+ if (slotDir === null) {
1633
+ // Unreachable in the real flow (`runOnce` writes the registry before it builds the prompt), and
1634
+ // a throw is the right answer anyway: the abort path releases the slot and blocks the task,
1635
+ // rather than running the hooks against the main checkout.
1636
+ throw new Error(
1637
+ `dispatch.ts: ${task.id} has no slot assigned; cannot assemble its executor prompt.`,
1638
+ );
1639
+ }
1640
+ const hookOutputs = computeHookOutputs(
1641
+ buildHookRunners(repoRoot, slotDir, mainCheckoutPath),
1642
+ task,
1643
+ declaredFiles,
1644
+ );
1645
+ const triggersIndex = loadJsonIndex(repoRoot, SKILL_TRIGGERS_INDEX_FILE, isSkillTriggerIndex) ?? {
1646
+ skills: [],
1647
+ };
1648
+ const skillPaths = matchSkillPaths(declaredFiles, triggersIndex);
1649
+ const contract = extractDelegationContract(
1650
+ fs.readFileSync(path.join(repoRoot, DELEGATION_CONTRACT_FILE), 'utf8'),
1651
+ );
1652
+
1653
+ const envelope: OperatingEnvelope = {
1654
+ allowedFiles: declaredFiles,
1655
+ forbiddenPaths: SECURITY_PATH_PATTERNS,
1656
+ testCommand:
1657
+ task.testCommand ?? 'No test command declared on the task — stop and return needs-guidance.',
1658
+ taskId: task.id,
1659
+ // The same string `backlogRulesForTask` turned into the launch's `Bash(...)` rule, so the
1660
+ // command the prompt prints is the command the worker is actually allowed to run.
1661
+ editCommand: workerEditCommand(mainCheckoutPath, task.id),
1662
+ acceptanceCriteria: parseIndexedAcceptanceCriteria(taskText),
1663
+ dod: parseDefinitionOfDone(taskText),
1664
+ };
1665
+
1666
+ return assembleExecutorPrompt({
1667
+ task: taskText,
1668
+ // Named in the prompt because the worker cannot infer it: the task text carries the BOARD
1669
+ // file's path, which lives in the main checkout — and the T-5 executor read that as its
1670
+ // repository root and aimed its first `Edit` there.
1671
+ slotPath: slotDir,
1672
+ mainCheckoutPath,
1673
+ hookOutputs,
1674
+ skillPaths,
1675
+ contract,
1676
+ envelope,
1677
+ retry: readRetryContext(mainCheckoutPath, task.id, attempt),
1678
+ });
1679
+ }
1680
+
1681
+ /**
1682
+ * The prior attempt's `Blocked` comment and reviewer findings, or `undefined` on a first attempt.
1683
+ * Shared by both lanes: the frontier orchestrator gets the same context appended to its
1684
+ * `trabajemos <id>` entry, since nothing on the board tells it a previous attempt failed.
1685
+ */
1686
+ function readRetryContext(
1687
+ mainCheckoutPath: string,
1688
+ taskId: string,
1689
+ attempt: number,
1690
+ ): { blockedComment: string; reviewerFindings?: string } | undefined {
1691
+ if (attempt <= 1) {
1692
+ return undefined;
1693
+ }
1694
+ const blockedComment = parseLastComment(readTaskText(mainCheckoutPath, taskId));
1695
+ if (!blockedComment) {
1696
+ return undefined;
1697
+ }
1698
+ const reviewPath = path.join(
1699
+ mainCheckoutPath,
1700
+ DISPATCH_SUBDIR,
1701
+ taskId,
1702
+ `intento-${attempt - 1}`,
1703
+ 'review.md',
1704
+ );
1705
+ return {
1706
+ blockedComment,
1707
+ reviewerFindings: fs.existsSync(reviewPath) ? fs.readFileSync(reviewPath, 'utf8') : undefined,
1708
+ };
1709
+ }
1710
+
1711
+ /**
1712
+ * Branch names currently checked out in ANY worktree of this repo. git refuses to check the same
1713
+ * branch out twice, so a task whose branch is still held by a slot that has not released yet has to
1714
+ * wait rather than fail.
1715
+ */
1716
+ function readCheckedOutBranches(repoRoot: string): string[] {
1717
+ try {
1718
+ const output = execFileSync('git', ['worktree', 'list', '--porcelain'], {
1719
+ cwd: repoRoot,
1720
+ encoding: 'utf8',
1721
+ });
1722
+ return output
1723
+ .split('\n')
1724
+ .filter((line) => line.startsWith('branch '))
1725
+ .map((line) =>
1726
+ line
1727
+ .slice('branch '.length)
1728
+ .trim()
1729
+ .replace(/^refs\/heads\//, ''),
1730
+ )
1731
+ .filter(Boolean);
1732
+ } catch (error) {
1733
+ console.error(
1734
+ 'dispatch.ts: git worktree list failed; assuming no branch is checked out:',
1735
+ error,
1736
+ );
1737
+ return [];
1738
+ }
1739
+ }
1740
+
1741
+ /** `null` when the lockfile cannot be read — the install check then never fires spuriously. */
1742
+ function readLockfileHash(repoRoot: string): string | null {
1743
+ try {
1744
+ return computeLockfileHash(path.join(repoRoot, 'pnpm-lock.yaml'));
1745
+ } catch (error) {
1746
+ console.error(
1747
+ 'dispatch.ts: could not hash pnpm-lock.yaml; skipping the slot install check:',
1748
+ error,
1749
+ );
1750
+ return null;
1751
+ }
1752
+ }
1753
+
1754
+ // ── main ────────────────────────────────────────────────────────────────────────
1755
+
1756
+ /** A drained pass may itself drain; two is the cap, so one trigger can never loop the queue. */
1757
+ const MAX_PASSES_PER_INVOCATION = 2;
1758
+
1759
+ /** The one flag this script takes: the manual rescue of a slot held for push recovery. */
1760
+ const RELEASE_SLOT_FLAG = '--release-slot';
1761
+ /** The override for a slot the release guard refuses — see `releaseSlotByName`. */
1762
+ const FORCE_FLAG = '--force';
1763
+
1764
+ export interface ReleaseSlotRequest {
1765
+ slot: string;
1766
+ force: boolean;
1767
+ }
1768
+
1769
+ /**
1770
+ * The `--release-slot` request, or `null` when the flag is absent. Refuses a missing or flag-shaped
1771
+ * value rather than releasing something unnamed — which is how a rescue turns into a second
1772
+ * incident. `--force` is read from anywhere in the argv; the slot NAME must follow its own flag.
1773
+ */
1774
+ export function parseReleaseSlotArg(argv: readonly string[]): ReleaseSlotRequest | null {
1775
+ const index = argv.indexOf(RELEASE_SLOT_FLAG);
1776
+ if (index === -1) {
1777
+ return null;
1778
+ }
1779
+ const value = argv[index + 1];
1780
+ if (value === undefined || value.startsWith('-')) {
1781
+ throw new Error(
1782
+ `dispatch.ts: ${RELEASE_SLOT_FLAG} needs a slot name (e.g. ${RELEASE_SLOT_FLAG} dispatch-1).`,
1783
+ );
1784
+ }
1785
+ return { slot: value, force: argv.includes(FORCE_FLAG) };
1786
+ }
1787
+
1788
+ /** Every side effect the manual release performs, injected so the guard below is testable. */
1789
+ export interface ReleaseSlotDeps {
1790
+ readSlots: () => SlotRegistry;
1791
+ readLock: (taskId: string) => DispatchLock | null;
1792
+ isPidAlive: (pid: number) => boolean;
1793
+ now: number;
1794
+ ttlMs: number;
1795
+ detach: (slotPath: string) => void;
1796
+ removeLock: (taskId: string) => void;
1797
+ updateSlots: (mutate: (current: SlotRegistry) => SlotRegistry) => void;
1798
+ log: (message: string) => void;
1799
+ /**
1800
+ * The same single-flight lock a reconciler pass runs its selection under. The rescue is a
1801
+ * read→decide→detach over the very state a pass mutates, so without it the two interleave: a pass
1802
+ * that acquired this slot between the read and the detach loses its worktree under a worker that
1803
+ * is just starting.
1804
+ */
1805
+ acquireSingleFlight: () => SingleFlightResult;
1806
+ releaseSingleFlight: () => void;
1807
+ }
1808
+
1809
+ export type ReleaseSlotOutcome = { kind: 'released' } | { kind: 'refused'; reason: string };
1810
+
1811
+ /**
1812
+ * The manual counterpart to an exhausted push recovery (`maintenance.ts`'s `MAX_RECOVERY_ATTEMPTS`,
1813
+ * README's "Releasing a `Blocked` task"): clears the hold and the task binding, and detaches the
1814
+ * worktree so the branch is free for a later dispatch. A pass does NOT run — this is a person
1815
+ * rescuing a slot, not a trigger.
1816
+ *
1817
+ * It REFUSES a slot that is genuinely busy, because "release this slot" and "kill what is running in
1818
+ * it" are different requests and the flag only ever advertised the first. Detaching a worktree under
1819
+ * a live `claude` loses its uncommitted work, drops the lock the close re-reads before it runs, and
1820
+ * hands the directory to the next dispatch. A slot may be released when it is flagged
1821
+ * `heldForRecovery` (the documented case: the work is already committed, only the push failed) or
1822
+ * when its task lock is absent or dead — no such process, or a heartbeat past the TTL — which is
1823
+ * exactly the liveness question the maintenance sweep asks. `--force` is the override for a person
1824
+ * who has looked and decided.
1825
+ */
1826
+ export function releaseSlotByName(
1827
+ slotName: string,
1828
+ force: boolean,
1829
+ deps: ReleaseSlotDeps,
1830
+ ): ReleaseSlotOutcome {
1831
+ const singleFlight = deps.acquireSingleFlight();
1832
+ if (singleFlight.kind === 'already-running' && !force) {
1833
+ return {
1834
+ kind: 'refused',
1835
+ reason:
1836
+ `a reconciler pass is already running (pid ${singleFlight.pid}); releasing a slot underneath it would ` +
1837
+ `detach a worktree it is about to write in. Wait for the pass, or re-run with ${FORCE_FLAG} if you have ` +
1838
+ 'looked and decided.',
1839
+ };
1840
+ }
1841
+ try {
1842
+ return releaseSlotUnderSingleFlight(slotName, force, deps);
1843
+ } finally {
1844
+ // Only a lock this call actually took: with `--force` past a running pass there is nothing of
1845
+ // ours to release, and removing that pass's lock would let a third one start alongside it.
1846
+ if (singleFlight.kind === 'acquired') {
1847
+ deps.releaseSingleFlight();
1848
+ }
1849
+ }
1850
+ }
1851
+
1852
+ function releaseSlotUnderSingleFlight(
1853
+ slotName: string,
1854
+ force: boolean,
1855
+ deps: ReleaseSlotDeps,
1856
+ ): ReleaseSlotOutcome {
1857
+ const slot = deps.readSlots().slots.find((entry) => entry.name === slotName);
1858
+ if (!slot) {
1859
+ return { kind: 'refused', reason: `no slot named ${slotName} in the registry.` };
1860
+ }
1861
+
1862
+ const lock = slot.taskId ? deps.readLock(slot.taskId) : null;
1863
+ const busy = lock !== null && isLockAlive(lock, deps.now, deps.ttlMs, deps.isPidAlive);
1864
+ if (busy && !slot.heldForRecovery && !force) {
1865
+ return {
1866
+ kind: 'refused',
1867
+ reason:
1868
+ `${slotName} is running ${slot.taskId} (pid ${lock.workerPid ?? lock.pid}) and is not held for push recovery. ` +
1869
+ `Releasing it would detach the worktree under a live worker and lose its uncommitted work. ` +
1870
+ `Wait for the attempt, cancel the task on the board, or re-run with ${FORCE_FLAG} if you have looked and decided.`,
1871
+ };
1872
+ }
1873
+
1874
+ deps.detach(slot.path);
1875
+ if (slot.taskId) {
1876
+ deps.removeLock(slot.taskId);
1877
+ }
1878
+ deps.updateSlots((current) => ({ slots: releaseHeldSlotEntries(current.slots, slotName) }));
1879
+ deps.log(
1880
+ `dispatch.ts: ${slotName} released (was holding ${slot.taskId ?? 'nothing'}); it is back in the pool.`,
1881
+ );
1882
+ return { kind: 'released' };
1883
+ }
1884
+
1885
+ /**
1886
+ * The single-flight lock file, as one PID a process writes and reads back. Built here rather than
1887
+ * inline in `main` because the `--release-slot` rescue serializes on the SAME file: two callers of
1888
+ * one lock must not be two spellings of its path.
1889
+ */
1890
+ function realSingleFlightFs(dispatchDir: string): SingleFlightFs {
1891
+ const singleFlightFile = path.join(dispatchDir, 'dispatch.lock');
1892
+ return {
1893
+ readLockPid: () => {
1894
+ if (!fs.existsSync(singleFlightFile)) {
1895
+ return null;
1896
+ }
1897
+ const raw = fs.readFileSync(singleFlightFile, 'utf8').trim();
1898
+ const pid = Number(raw);
1899
+ return Number.isFinite(pid) ? pid : null;
1900
+ },
1901
+ writeLockPid: (pid) => fs.writeFileSync(singleFlightFile, String(pid)),
1902
+ removeLock: () => {
1903
+ if (fs.existsSync(singleFlightFile)) {
1904
+ fs.rmSync(singleFlightFile);
1905
+ }
1906
+ },
1907
+ };
1908
+ }
1909
+
1910
+ /** The real collaborators for `releaseSlotByName`, wired the way every other real runner is. */
1911
+ function realReleaseSlotDeps(mainCheckoutPath: string, repoRoot: string): ReleaseSlotDeps {
1912
+ const slotsFs = realMaintenanceFs(mainCheckoutPath, repoRoot);
1913
+ const dispatchDir = path.join(mainCheckoutPath, DISPATCH_SUBDIR);
1914
+ const singleFlightFs = realSingleFlightFs(dispatchDir);
1915
+ return {
1916
+ acquireSingleFlight: (): SingleFlightResult =>
1917
+ acquireSingleFlight(singleFlightFs, process.pid, isProcessAlive),
1918
+ releaseSingleFlight: () => releaseSingleFlight(singleFlightFs, process.pid),
1919
+ readSlots: () => slotsFs.readSlots(),
1920
+ readLock: (taskId) => readLock(dispatchDir, taskId),
1921
+ isPidAlive: isProcessAlive,
1922
+ now: Date.now(),
1923
+ ttlMs: LOCK_TTL_MS,
1924
+ detach: (slotPath) =>
1925
+ detachSlot(
1926
+ slotPath,
1927
+ (args, at) => void execFileSync('git', args, { cwd: at, stdio: 'ignore' }),
1928
+ ),
1929
+ removeLock: (taskId) => releaseLock(dispatchDir, taskId),
1930
+ updateSlots: (mutate) => void slotsFs.updateSlots(mutate),
1931
+ log: (message) => console.log(message),
1932
+ };
1933
+ }
1934
+
1935
+ async function main(): Promise<void> {
1936
+ // Checked FIRST, before resolving context or running any maintenance at all: a dispatcher-owned
1937
+ // write (`realBacklog`, `tickOwnedDod`) now runs with `BACKLOG_DISPATCH_ACTIVE='1'` in its env, so
1938
+ // the `onStatusChange` callback it fires inherits the sentinel alongside the `TASK_ID`/`NEW_STATUS`
1939
+ // Backlog.md sets. `shouldDispatchFromCallback` only ever suppressed task SELECTION — maintenance
1940
+ // ran unconditionally underneath it — so this nested invocation used to run its own maintenance
1941
+ // sweep (a `.backlog` git commit among other things) concurrently with the pass that made the
1942
+ // write and was still mid-dispatch in the SAME checkout. That race is the measured T-5 defect:
1943
+ // two passes committing `.backlog` in the same checkout failed with git exit 128, and the
1944
+ // dispatcher-owned edits that followed then failed too, with no visible cause. This exits before
1945
+ // any of that runs — a genuine human callback (no sentinel) and the launchd timer / `gh`-poll
1946
+ // trigger (no `TASK_ID` at all) are unaffected and still run their normal pass.
1947
+ if (
1948
+ isDispatcherOwnedCallback({
1949
+ TASK_ID: process.env.TASK_ID,
1950
+ NEW_STATUS: process.env.NEW_STATUS,
1951
+ BACKLOG_DISPATCH_ACTIVE: process.env.BACKLOG_DISPATCH_ACTIVE,
1952
+ })
1953
+ ) {
1954
+ console.log(
1955
+ `dispatch.ts: callback from a dispatcher-owned write (${process.env.TASK_ID} → ${process.env.NEW_STATUS}); no pass`,
1956
+ );
1957
+ return;
1958
+ }
1959
+
1960
+ const { mainCheckoutPath } = resolveContext({
1961
+ cwd: process.cwd(),
1962
+ env: { BACKLOG_CWD: process.env.BACKLOG_CWD },
1963
+ findRepoRoot,
1964
+ });
1965
+ // Never BACKLOG_CWD-overridden: the code assets lanes.json describes (settings files, worktree
1966
+ // slots) belong to THIS machine's aurora-catalyst checkout, regardless of which backlog project
1967
+ // BACKLOG_CWD points board data at (see realMaintenanceFs's doc comment).
1968
+ const repoRoot = findRepoRoot(process.cwd());
1969
+ const dispatchDir = path.join(mainCheckoutPath, DISPATCH_SUBDIR);
1970
+ fs.mkdirSync(dispatchDir, { recursive: true });
1971
+
1972
+ const releaseRequest = parseReleaseSlotArg(process.argv.slice(2));
1973
+ if (releaseRequest !== null) {
1974
+ const outcome = releaseSlotByName(
1975
+ releaseRequest.slot,
1976
+ releaseRequest.force,
1977
+ realReleaseSlotDeps(mainCheckoutPath, repoRoot),
1978
+ );
1979
+ if (outcome.kind === 'refused') {
1980
+ // Exit 2, not 1: a refusal is this script declining a request, not a run that broke — the
1981
+ // same distinction `worker-edit.ts` draws against the `backlog` CLI's own 1.
1982
+ console.error(`dispatch.ts: ${outcome.reason}`);
1983
+ process.exit(2);
1984
+ }
1985
+ return;
1986
+ }
1987
+
1988
+ const singleFlightFs = realSingleFlightFs(dispatchDir);
1989
+
1990
+ const laneConfig = loadLaneConfig(path.join(repoRoot, 'scripts/backlog/lanes.json'));
1991
+
1992
+ for (let pass = 1; pass <= MAX_PASSES_PER_INVOCATION; pass += 1) {
1993
+ const acquireResult = acquireSingleFlight(singleFlightFs, process.pid, isProcessAlive);
1994
+ if (acquireResult.kind === 'already-running') {
1995
+ console.error(
1996
+ `dispatch.ts: another reconciler pass is already running (pid ${acquireResult.pid}); exiting.`,
1997
+ );
1998
+ return;
1999
+ }
2000
+
2001
+ let drainRequested = false;
2002
+ try {
2003
+ const result = await runPass({
2004
+ mainCheckoutPath,
2005
+ repoRoot,
2006
+ dispatchDir,
2007
+ laneConfig,
2008
+ releaseSingleFlight: () => releaseSingleFlight(singleFlightFs, process.pid),
2009
+ requestDrain: () => {
2010
+ drainRequested = true;
2011
+ },
2012
+ });
2013
+ console.log(`dispatch.ts: pass ${pass} complete — outcome=${formatOutcome(result.outcome)}`);
2014
+ } finally {
2015
+ releaseSingleFlight(singleFlightFs, process.pid);
2016
+ }
2017
+
2018
+ if (!drainRequested) {
2019
+ return;
2020
+ }
2021
+ console.log('dispatch.ts: draining — re-running one pass for the next Queued task.');
2022
+ }
2023
+ }
2024
+
2025
+ interface RunPassInput {
2026
+ mainCheckoutPath: string;
2027
+ repoRoot: string;
2028
+ dispatchDir: string;
2029
+ laneConfig: ReturnType<typeof loadLaneConfig>;
2030
+ releaseSingleFlight: () => void;
2031
+ requestDrain: () => void;
2032
+ }
2033
+
2034
+ async function runPass(input: RunPassInput) {
2035
+ const { mainCheckoutPath, repoRoot, dispatchDir, laneConfig } = input;
2036
+ // The snapshot maintenance sweeps over. `reloadTasks` below re-reads AFTER that sweep and keeps
2037
+ // `tasksById` current, so the close's parent recomputation never derives from a pre-sweep board.
2038
+ const board = loadAllTasks(mainCheckoutPath);
2039
+ let tasksById = Object.fromEntries(board.tasks.map((task) => [task.id, task]));
2040
+ // Tracked alongside `tasksById` and from the SAME read: the close's parent derivation must know
2041
+ // whether the snapshot it derives from is the whole board (see `BuildCloseRunnersInput`).
2042
+ let boardComplete = board.complete;
2043
+ const localSettings = (): LocalLaneSettings =>
2044
+ JSON.parse(
2045
+ fs.readFileSync(path.join(repoRoot, laneConfig.lanes.local.settings), 'utf8'),
2046
+ ) as LocalLaneSettings;
2047
+
2048
+ const maintenance: MaintenanceContext = {
2049
+ now: Date.now(),
2050
+ ttlMs: LOCK_TTL_MS,
2051
+ // T-8 point 5/10: `lanes.json`'s `orphanInProgressThresholdHours` converted to ms — the sweep's
2052
+ // step 3c (an orphan `In Progress` task) is gated on this being SET, so without this line the
2053
+ // step never runs at all (see `MaintenanceContext.orphanInProgressThresholdMs`'s own JSDoc).
2054
+ // Defect 12 (2026-09-08): the conversion goes through `resolveOrphanInProgressThresholdMs`
2055
+ // rather than a bare multiplication, so a configured `0` disables the sweep instead of becoming
2056
+ // the most aggressive possible threshold.
2057
+ orphanInProgressThresholdMs: resolveOrphanInProgressThresholdMs(
2058
+ laneConfig.orphanInProgressThresholdHours,
2059
+ ),
2060
+ isPidAlive: isProcessAlive,
2061
+ tasks: board.tasks,
2062
+ // A partial read must not let the sweep infer a deletion (see `MaintenanceContext`).
2063
+ boardComplete: board.complete,
2064
+ fs: realMaintenanceFs(mainCheckoutPath, repoRoot),
2065
+ gh: realGh(repoRoot),
2066
+ backlog: realBacklog(mainCheckoutPath),
2067
+ git: realGit(mainCheckoutPath),
2068
+ // The whole GROUP, not the pid: a `claude` worker spawns hooks, `pnpm test` and sub-agents, and
2069
+ // killing only its own pid leaves those running in the slot the sweep is about to release.
2070
+ killProcess: (pid) => killProcessTree(pid),
2071
+ notify: (title, body) => notify(title, body, runOsascript),
2072
+ };
2073
+
2074
+ const env = {
2075
+ NEW_STATUS: process.env.NEW_STATUS,
2076
+ OLD_STATUS: process.env.OLD_STATUS,
2077
+ BACKLOG_DISPATCH_ACTIVE: process.env.BACKLOG_DISPATCH_ACTIVE,
2078
+ };
2079
+ const slotsFs = realMaintenanceFs(mainCheckoutPath, repoRoot);
2080
+
2081
+ // Fetch before reading the remote branch list: a stale list makes a retry look like a first
2082
+ // dispatch, which branches fresh off `origin/main` and abandons the previous attempt's work.
2083
+ //
2084
+ // This list now decides more than a base ref (T-14, 2026-09-08): `guards.ts`'s guard 4b reads it
2085
+ // to refuse a subtask whose parent branch is missing, BEFORE anything else runs. A stale list can
2086
+ // therefore produce a false BLOCK (a branch that IS on the remote reads as missing here) as much
2087
+ // as it can a false PASS (a branch pruned on the remote is still present in a stale local
2088
+ // remote-tracking copy — `--prune` above is what is supposed to prevent that, so its own failure
2089
+ // is exactly the case where it cannot). Measured, not hypothetical: this machine's reconciler log
2090
+ // carries `ssh: connect to host github.com port 22: Operation timed out` from a fetch that failed
2091
+ // on 2026-09-08, the same day this guard shipped.
2092
+ try {
2093
+ execFileSync('git', ['fetch', 'origin', '--prune'], {
2094
+ cwd: repoRoot,
2095
+ stdio: ['ignore', 'pipe', 'pipe'],
2096
+ });
2097
+ } catch (error) {
2098
+ console.error(
2099
+ 'dispatch.ts: git fetch failed; the remote branch list may be stale, which can now produce ' +
2100
+ 'a false Blocked (guard 4b) as well as a stale base ref:',
2101
+ describeExecFailure(error),
2102
+ );
2103
+ }
2104
+
2105
+ let remoteBranches: string[] = [];
2106
+ try {
2107
+ const output = execFileSync('git', ['branch', '-r', '--format=%(refname:short)'], {
2108
+ cwd: repoRoot,
2109
+ encoding: 'utf8',
2110
+ });
2111
+ remoteBranches = output
2112
+ .split('\n')
2113
+ .map((line) => line.trim().replace(/^origin\//, ''))
2114
+ .filter(Boolean);
2115
+ } catch (error) {
2116
+ // Silent before T-14: an empty list used to mean "branch off origin/main", a fallback the
2117
+ // pass just ran with. Now it means EVERY subtask on the board is refused by guard 4b with a
2118
+ // cause that names a branch which may well already be on the remote — so a swallowed failure
2119
+ // here left nobody able to tell a genuine missing branch from `git branch -r` itself failing.
2120
+ console.error(
2121
+ 'dispatch.ts: git branch -r failed; treating the remote branch list as empty, which now ' +
2122
+ 'blocks EVERY subtask on the board (guard 4b) with a cause that may not be true:',
2123
+ describeExecFailure(error),
2124
+ );
2125
+ remoteBranches = [];
2126
+ }
2127
+
2128
+ const branchesCheckedOutElsewhere = readCheckedOutBranches(repoRoot);
2129
+ const lockfileHash = readLockfileHash(repoRoot);
2130
+
2131
+ const ctx: RunOnceContext = {
2132
+ shouldSelect: shouldDispatchFromCallback(env),
2133
+ maintenance,
2134
+ reloadTasks: () => {
2135
+ const current = loadAllTasks(mainCheckoutPath);
2136
+ tasksById = Object.fromEntries(current.tasks.map((task) => [task.id, task]));
2137
+ boardComplete = current.complete;
2138
+ return current;
2139
+ },
2140
+ updateSlots: (mutate) => slotsFs.updateSlots(mutate),
2141
+ removeLock: (taskId) => releaseLock(dispatchDir, taskId),
2142
+ onDispatchFailure: (task, error) => {
2143
+ const comment = `Bloqueado: el dispatch falló antes de que el worker terminara: ${String(error)}`;
2144
+ realBacklog(mainCheckoutPath).setStatus(task.id, TASK_STATUS.BLOCKED, comment);
2145
+ notify(`${task.id} blocked: dispatch-failed`, comment, runOsascript);
2146
+ },
2147
+ mainCheckoutPath,
2148
+ currentPid: process.pid,
2149
+ attempt: (task) => task.attempts + 1,
2150
+ onBlock: (task, guardResult) => {
2151
+ realBacklog(mainCheckoutPath).setStatus(task.id, TASK_STATUS.BLOCKED, guardResult.comment);
2152
+ notify(`${task.id} blocked: ${guardResult.reason}`, guardResult.comment, runOsascript);
2153
+ },
2154
+ remoteBranches,
2155
+ branchesCheckedOutElsewhere,
2156
+ provisionSlot: (slot) => {
2157
+ const install = lockfileHash !== null && needsInstall(slot, lockfileHash);
2158
+ provisionSlot({
2159
+ slotPath: slot.path,
2160
+ repoRoot,
2161
+ slotExists: fs.existsSync(slot.path),
2162
+ needsInstall: install,
2163
+ run: (command, args, cwd) => {
2164
+ console.log(`dispatch.ts: provisioning ${slot.name} — ${command} ${args.join(' ')}`);
2165
+ execFileSync(command, args, { cwd, stdio: 'inherit' });
2166
+ },
2167
+ });
2168
+ return install && lockfileHash !== null ? { ...slot, lockfileHash } : slot;
2169
+ },
2170
+ runGit: (args, cwd) => {
2171
+ try {
2172
+ execFileSync('git', args, { cwd, stdio: ['ignore', 'pipe', 'pipe'] });
2173
+ } catch (error) {
2174
+ throw new Error(`dispatch.ts: git ${args.join(' ')} failed: ${describeExecFailure(error)}`);
2175
+ }
2176
+ },
2177
+ writeLock: (lock) => {
2178
+ const file = path.join(dispatchDir, 'locks', `${lock.taskId}.json`);
2179
+ fs.mkdirSync(path.dirname(file), { recursive: true });
2180
+ fs.writeFileSync(file, JSON.stringify(lock, null, 2));
2181
+ },
2182
+ readLock: (taskId) => readLock(dispatchDir, taskId),
2183
+ setInProgress: (taskId) =>
2184
+ realBacklog(mainCheckoutPath).setStatus(taskId, TASK_STATUS.IN_PROGRESS),
2185
+ releaseSingleFlight: input.releaseSingleFlight,
2186
+ resetInjectorCache,
2187
+ isLocalModelLoaded: () =>
2188
+ checkLocalModelLoaded(fetch, laneConfig.lanes.local.healthCheckUrl, localSettings().model),
2189
+ onLocalModelMissing: (task) => {
2190
+ const comment = `Bloqueado: servidor local sin el modelo ${localSettings().model} cargado en ${laneConfig.lanes.local.healthCheckUrl}. Cárgalo en LM Studio y vuelve a poner la tarea en Queued.`;
2191
+ realBacklog(mainCheckoutPath).setStatus(task.id, TASK_STATUS.BLOCKED, comment);
2192
+ notify(`${task.id} blocked: servidor local sin el modelo`, comment, runOsascript);
2193
+ },
2194
+ beginAttempt: (task, attempt) => {
2195
+ const dir = createAttemptDir(dispatchDir, task.id, attempt);
2196
+ return createAttemptSink({
2197
+ appendStreamLine: (line) => fs.appendFileSync(path.join(dir, 'stream.jsonl'), `${line}\n`),
2198
+ writeRunLog: (lines) =>
2199
+ fs.writeFileSync(
2200
+ path.join(dir, 'run.log'),
2201
+ lines.length > 0 ? `${lines.join('\n')}\n` : '',
2202
+ ),
2203
+ refreshHeartbeat: (isoNow) => refreshHeartbeat(dispatchDir, task.id, isoNow),
2204
+ now: () => Date.now(),
2205
+ });
2206
+ },
2207
+ buildPrompt: (task, attempt) => {
2208
+ if (task.lane === LANE.LOCAL) {
2209
+ return buildLocalExecutorPrompt(mainCheckoutPath, repoRoot, task, attempt);
2210
+ }
2211
+ const retry = readRetryContext(mainCheckoutPath, task.id, attempt);
2212
+ // T-8, last point: a Complex parent whose children are all Done gets the FIXED close-attempt
2213
+ // brief instead of the task-derived entry below — read against `tasksById` as it stands at
2214
+ // THIS call (kept current by `reloadTasks` above, never the snapshot `runPass` started with),
2215
+ // since `runOnce` calls `buildPrompt` only after its own post-maintenance reload. See
2216
+ // `prompt.ts`'s `isParentCloseAttempt` for why this is re-derived here rather than threaded
2217
+ // through as a flag from the maintenance pass that enqueued it.
2218
+ //
2219
+ // Defect 11 (2026-09-08): "is this child Done" for a child that is ITSELF a parent must use
2220
+ // the SAME derivation `recomputeParent` used to decide `task` was ready to dispatch —
2221
+ // `parent.ts`'s `effectiveStatus` over `maintenance.ts`'s `toDerivationNode`, with the SAME
2222
+ // `gh`/`fs` this pass's own maintenance context already wires — never that child's literal
2223
+ // board status, which a single pass can leave one write behind for a three-level tree.
2224
+ const isChildDone = (child: Task): boolean =>
2225
+ effectiveStatus(toDerivationNode(child.id, tasksById, maintenance.gh, maintenance.fs)) ===
2226
+ TASK_STATUS.DONE;
2227
+ return isParentCloseAttempt(task, { tasksById }, isChildDone)
2228
+ ? buildParentCloseAttemptPrompt(task.id, retry)
2229
+ : // frontier, ordinary work: the same deterministic entry an interactive session uses, plus
2230
+ // the prior attempt's failure on a retry — the orchestrator reads the task itself, but
2231
+ // nothing on the board tells it that a previous attempt was blocked or why.
2232
+ buildFrontierPrompt(task.id, retry);
2233
+ },
2234
+ workerSystemPromptPath: resolveWorkerSystemPromptPath(repoRoot),
2235
+ // Rendered into the attempt directory rather than handed over as the static skill file: it names
2236
+ // this task's id and the wrapper command bound to it, neither of which a shared file can carry.
2237
+ writeFrontierAddendum: (task, attempt) => {
2238
+ const target = path.join(dispatchDir, task.id, `intento-${attempt}`, 'frontier-addendum.md');
2239
+ const slotDir = findSlotPathForTask(mainCheckoutPath, task.id);
2240
+ if (slotDir === null) {
2241
+ // Unreachable in the real flow (the slot registry is written before the launch is built),
2242
+ // and a throw is the right answer anyway: the abort path releases the slot and blocks the
2243
+ // task, rather than telling a worker its working directory is the main checkout.
2244
+ throw new Error(
2245
+ `dispatch.ts: ${task.id} has no slot assigned; cannot render its frontier addendum.`,
2246
+ );
2247
+ }
2248
+ fs.writeFileSync(
2249
+ target,
2250
+ buildFrontierAddendum({
2251
+ template: fs.readFileSync(path.join(repoRoot, FRONTIER_ADDENDUM_TEMPLATE_PATH), 'utf8'),
2252
+ taskId: task.id,
2253
+ mainCheckoutPath,
2254
+ slotPath: slotDir,
2255
+ }),
2256
+ );
2257
+ return target;
2258
+ },
2259
+ laneConfig,
2260
+ loadLocalSettings: localSettings,
2261
+ loadFrontierSettings: (): FrontierLaneSettings =>
2262
+ JSON.parse(
2263
+ fs.readFileSync(path.join(repoRoot, laneConfig.lanes.frontier.settings), 'utf8'),
2264
+ ) as FrontierLaneSettings,
2265
+ // The settings sources THIS LANE loads — the user file alone on the local lane, the user and
2266
+ // project files on the frontier one — read from `repoRoot`, the DISPATCHER's own checkout (the
2267
+ // one every slot is a worktree of) and never from the slot, for the same reason the lane
2268
+ // settings above come from there: the list that bounds a worker cannot be a file that worker
2269
+ // can edit, and both operands of the subtraction must come from the same source or the
2270
+ // comparison is between two different files.
2271
+ loadSettingsAllowRules: (lane) =>
2272
+ loadSettingsAllowRules(settingsSourcePaths(lane, repoRoot, os.homedir())),
2273
+ spawnWorker,
2274
+ logPathFor: (taskId, attempt) =>
2275
+ path.join(DISPATCH_SUBDIR, taskId, `intento-${attempt}`, 'run.log'),
2276
+ buildCloseRunners: (task, attempt, branch) =>
2277
+ buildCloseRunners({
2278
+ mainCheckoutPath,
2279
+ repoRoot,
2280
+ task,
2281
+ attempt,
2282
+ branch,
2283
+ reviewerModel: laneConfig.lanes.local.reviewerModel,
2284
+ reviewerTimeoutMs: laneConfig.lanes.local.reviewerTimeoutMinutes * 60_000,
2285
+ requestDrain: input.requestDrain,
2286
+ tasksById,
2287
+ boardComplete,
2288
+ maxAttempts: laneConfig.attempts,
2289
+ harnessReviewer: laneConfig.harnessReviewer,
2290
+ }),
2291
+ };
2292
+
2293
+ return runOnce(ctx);
2294
+ }
2295
+
2296
+ // Guarda de entry-point: el fichero se importa desde entry.ts y otros módulos, que no deben
2297
+ // disparar un pase real del reconciliador. `fileURLToPath`, no `new URL(...).pathname` — ver
2298
+ // release-cli.ts para el mismo razonamiento (un espacio en la ruta rompería la comparación).
2299
+ if (process.argv[1] === fileURLToPath(import.meta.url)) {
2300
+ main().catch((error) => {
2301
+ console.error(error instanceof Error ? error.message : String(error));
2302
+ process.exit(1);
2303
+ });
2304
+ }