@wildo-ai/saas-backend-lib 1.1.3 → 1.1.4

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 (1056) hide show
  1. package/dist/esm/__tests__/fixture-deep-partial.d.ts.map +1 -1
  2. package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
  3. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  4. package/dist/esm/__tests__/test-container.d.ts.map +1 -1
  5. package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
  7. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  8. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  9. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  10. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  11. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
  12. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
  13. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
  14. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
  15. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
  16. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -1
  18. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -1
  19. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -1
  20. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +12 -1
  21. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -1
  22. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  23. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  24. package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
  26. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
  27. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  28. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  29. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  30. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  31. package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
  34. package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
  36. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +13 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +17 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -1
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
  55. package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  57. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  58. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +57 -0
  61. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +95 -2
  63. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  66. package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
  68. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +14 -3
  70. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
  72. package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
  74. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
  75. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
  76. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
  77. package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
  78. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
  80. package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
  81. package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
  83. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
  86. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  88. package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
  90. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  91. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  92. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  95. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +44 -6
  96. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
  100. package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -1
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -1
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -1
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -1
  105. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -1
  106. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -1
  107. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
  108. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
  109. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +1 -1
  110. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -1
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +5 -4
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -1
  113. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
  114. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
  115. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
  116. package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  118. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  119. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  121. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -1
  122. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -1
  123. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  124. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  125. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
  126. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  127. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  128. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +32 -0
  129. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  130. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +32 -1
  131. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  133. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  135. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  137. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  139. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +9 -6
  140. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  141. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +9 -6
  142. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  143. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -1
  144. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -1
  145. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
  146. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  148. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +50 -3
  149. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  150. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
  151. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  152. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  153. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
  154. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
  155. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
  156. package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
  157. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
  158. package/dist/esm/companion-exports.d.ts.map +1 -1
  159. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
  160. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
  161. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  162. package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
  163. package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  164. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
  165. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  166. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +107 -4
  168. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +176 -5
  170. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  172. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  174. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  177. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -1
  179. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  180. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +21 -0
  181. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  182. package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
  183. package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
  185. package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
  186. package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
  187. package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
  188. package/dist/esm/compliance/index.d.ts.map +1 -1
  189. package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
  190. package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
  191. package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
  192. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  194. package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
  196. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
  197. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
  198. package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  200. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
  201. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.d.ts +4 -4
  203. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  204. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  205. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
  207. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
  208. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
  209. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
  210. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
  211. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
  212. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  213. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  214. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
  215. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
  216. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration-loader.backend.service.js +3 -0
  218. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  219. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  220. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  221. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  222. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  223. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +12 -0
  224. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  225. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +28 -0
  226. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  227. package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
  228. package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
  229. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
  230. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
  231. package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
  232. package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
  233. package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
  234. package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
  235. package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
  236. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
  237. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
  238. package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
  239. package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
  240. package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
  241. package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
  243. package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
  244. package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
  245. package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
  246. package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
  247. package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
  248. package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
  249. package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
  250. package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
  251. package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
  252. package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
  253. package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
  254. package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
  255. package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
  256. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
  257. package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
  258. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
  259. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
  260. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
  261. package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
  262. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
  263. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
  264. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
  265. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
  266. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
  267. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
  268. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
  269. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  270. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
  271. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
  272. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
  273. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
  274. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
  275. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
  276. package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
  277. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
  278. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
  279. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
  280. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
  281. package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
  282. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
  283. package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
  284. package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
  285. package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
  286. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  287. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  288. package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
  289. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  290. package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
  291. package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
  292. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
  293. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
  294. package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
  295. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
  296. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  297. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  298. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  299. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  300. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  301. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  302. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  303. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  304. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  305. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  306. package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
  307. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
  308. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
  309. package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
  310. package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
  311. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  313. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  314. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  315. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
  316. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  317. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  318. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +102 -52
  319. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -1
  320. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +117 -71
  321. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -1
  322. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -1
  323. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -1
  324. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -1
  325. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +26 -7
  326. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -1
  327. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -1
  328. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -1
  329. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  330. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  331. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -1
  332. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -1
  333. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  334. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  335. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
  336. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  337. package/dist/esm/external-providers/services/document-extraction.backend.service.js +179 -98
  338. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  339. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  340. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  341. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
  342. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +121 -0
  343. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  344. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +151 -0
  345. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  346. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
  347. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  348. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +60 -4
  349. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  350. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
  351. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
  352. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
  353. package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  354. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
  355. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
  356. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
  357. package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  358. package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
  359. package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  360. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
  361. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
  363. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
  364. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
  365. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
  366. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
  367. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  368. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  369. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
  370. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
  371. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
  372. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  373. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +221 -21
  374. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  375. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
  376. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
  377. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
  378. package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
  379. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
  380. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
  381. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
  382. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
  383. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
  384. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  385. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  386. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
  387. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  388. package/dist/esm/files/services/file-scanning.backend.service.js +5 -0
  389. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  390. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  391. package/dist/esm/files/services/file-text-extraction.backend.service.js +8 -5
  392. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  393. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  394. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  395. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  396. package/dist/esm/files/services/files.backend.service.js +3 -1
  397. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  398. package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
  399. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -1
  400. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -1
  401. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
  402. package/dist/esm/files/storage/file-storage-provider.types.d.ts +36 -1
  403. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  404. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  405. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
  406. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
  407. package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
  408. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
  409. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
  410. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
  411. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
  412. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
  413. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  414. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  415. package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
  416. package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  417. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  418. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
  419. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
  420. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  421. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  422. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  423. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  424. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
  425. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  426. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  427. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
  428. package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
  429. package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
  430. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -1
  431. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -1
  432. package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
  433. package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
  437. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  439. package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
  440. package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
  442. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  443. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  444. package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
  445. package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
  446. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  447. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  448. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  449. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  450. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  451. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  452. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  453. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
  455. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  457. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
  458. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
  459. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  461. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
  462. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  464. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +107 -16
  465. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  466. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +118 -18
  467. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  468. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  469. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  470. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -1
  471. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -1
  472. package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
  473. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  474. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  475. package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
  476. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
  477. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +104 -5
  478. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  479. package/dist/esm/flows-actors/services/agents.backend.service.js +263 -31
  480. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  481. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
  482. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +46 -1
  483. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  484. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +193 -6
  485. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  486. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  487. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  488. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  489. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  490. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  491. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  492. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -1
  493. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +3 -0
  494. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -1
  495. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
  496. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
  497. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
  498. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
  499. package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
  500. package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
  501. package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
  502. package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
  503. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  504. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  505. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  506. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +9 -0
  507. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  508. package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
  509. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
  510. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  511. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  512. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  513. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  514. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
  515. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
  516. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
  517. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
  518. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
  519. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
  520. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
  521. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
  522. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
  523. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
  524. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
  525. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
  526. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
  527. package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
  528. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
  529. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
  530. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  531. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  532. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -1
  533. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -1
  534. package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
  535. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  536. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  537. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
  538. package/dist/esm/index.d.ts +0 -1
  539. package/dist/esm/index.d.ts.map +1 -1
  540. package/dist/esm/index.js +0 -1
  541. package/dist/esm/index.js.map +1 -1
  542. package/dist/esm/inject/models/container.d.ts +10 -0
  543. package/dist/esm/inject/models/container.d.ts.map +1 -1
  544. package/dist/esm/inject/models/container.js +49 -1
  545. package/dist/esm/inject/models/container.js.map +1 -1
  546. package/dist/esm/inject/models/service-types.d.ts +3 -0
  547. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  548. package/dist/esm/inject/models/service-types.js +3 -0
  549. package/dist/esm/inject/models/service-types.js.map +1 -1
  550. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  551. package/dist/esm/mcp/controllers/mcp.controller.js +50 -3
  552. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  553. package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
  554. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  555. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  556. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  557. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  558. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  559. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  560. package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
  561. package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
  562. package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
  563. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  564. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  565. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -1
  566. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -1
  567. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  568. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  569. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  570. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  571. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  572. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  573. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
  574. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  575. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  576. package/dist/esm/monitoring/logger/services/logger.service.js +3 -3
  577. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  578. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -1
  579. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -1
  580. package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
  581. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +10 -6
  582. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -1
  583. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +10 -6
  584. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -1
  585. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  586. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  587. package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
  588. package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
  589. package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
  590. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  591. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  592. package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
  593. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
  594. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
  595. package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
  596. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
  597. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  599. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  600. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  601. package/dist/esm/notifications/email/services/email.backend.service.d.ts +47 -6
  602. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  603. package/dist/esm/notifications/email/services/email.backend.service.js +86 -36
  604. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  605. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  606. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  607. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
  608. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
  609. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  610. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  611. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  612. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  613. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
  614. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
  615. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
  616. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
  617. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
  618. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  619. package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
  620. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  621. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  622. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  623. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  624. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  625. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  626. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  627. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  628. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
  629. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
  630. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
  631. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
  632. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  633. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  634. package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
  635. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
  636. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  637. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  638. package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
  639. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
  640. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  641. package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
  642. package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
  643. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
  644. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
  645. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  646. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  647. package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  648. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
  649. package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
  650. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  651. package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
  652. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
  653. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
  654. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
  655. package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
  656. package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
  657. package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
  658. package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
  659. package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
  660. package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
  661. package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
  662. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -1
  663. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -1
  664. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -1
  665. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -1
  666. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -1
  667. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -1
  668. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -1
  669. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -1
  670. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  671. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  672. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
  673. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
  674. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  675. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  676. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
  677. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  678. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  679. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  680. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  681. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
  682. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
  683. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  684. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  685. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  686. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  687. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  688. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  689. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
  690. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  691. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  692. package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
  693. package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
  694. package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
  695. package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
  696. package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
  697. package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
  698. package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
  699. package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
  700. package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
  701. package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
  702. package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
  703. package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
  704. package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
  705. package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
  706. package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
  707. package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
  708. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  709. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  710. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  711. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  712. package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
  713. package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
  714. package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
  715. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
  716. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
  717. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
  718. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
  719. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
  720. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
  721. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  722. package/dist/esm/requests/service/websocket.service.js +49 -1
  723. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  724. package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
  725. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  726. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +2 -0
  727. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  728. package/dist/esm/resources/models/index.d.ts.map +1 -1
  729. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  730. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  731. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  732. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  733. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  734. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  735. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
  736. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
  737. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
  738. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
  739. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
  740. package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
  741. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
  742. package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
  743. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
  744. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +23 -0
  745. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  746. package/dist/esm/resources/services/resources-registry.backend.service.js +31 -0
  747. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  748. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
  749. package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
  750. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  751. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  752. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  753. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  754. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
  755. package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
  756. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
  757. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  758. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  759. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
  760. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  761. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  762. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  763. package/dist/esm/runtime/services/http-server.backend.service.js +10 -0
  764. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  765. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  766. package/dist/esm/runtime/services/start-application.backend.service.js +26 -12
  767. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  768. package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
  769. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
  770. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
  771. package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
  772. package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
  773. package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
  774. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
  775. package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
  776. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  777. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  778. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  780. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
  781. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
  782. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +84 -0
  784. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  786. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  787. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
  788. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
  789. package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
  790. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  792. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
  793. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
  794. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
  795. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
  796. package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
  797. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  798. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  799. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  800. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  801. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
  803. package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
  804. package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
  805. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
  807. package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
  808. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
  809. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  811. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  814. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  815. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  816. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  817. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
  819. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
  820. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
  821. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +9 -2
  822. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  823. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +9 -2
  824. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  825. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
  826. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
  827. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  828. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  829. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  830. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
  831. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
  832. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  833. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  834. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
  835. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  836. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +218 -26
  837. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  838. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
  839. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  840. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +36 -0
  841. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  842. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
  843. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
  844. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
  845. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
  846. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  847. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  848. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
  849. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  850. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  851. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  852. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  853. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  854. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  855. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  856. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  857. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
  859. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -1
  860. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +57 -1
  861. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -1
  862. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  863. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  864. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
  865. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
  866. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
  867. package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
  868. package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
  869. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  870. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  871. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  872. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  873. package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
  874. package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
  875. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
  876. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
  877. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
  878. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  879. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  880. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
  881. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  882. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  883. package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
  884. package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
  885. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  886. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  887. package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
  888. package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
  889. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
  890. package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
  891. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  892. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  893. package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
  894. package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
  895. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
  896. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
  897. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
  898. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
  899. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
  900. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
  901. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
  902. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
  903. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
  904. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
  905. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
  906. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
  907. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
  908. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
  909. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
  910. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
  911. package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
  912. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -1
  913. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -1
  914. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  915. package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
  916. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  917. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  918. package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
  919. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  920. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +20 -181
  921. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  922. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
  923. package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
  924. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  925. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  926. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +40 -0
  927. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -1
  928. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +43 -1
  929. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -1
  930. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +27 -17
  931. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  932. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +27 -17
  933. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  934. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +72 -0
  935. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  936. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +153 -10
  937. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  938. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  939. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  940. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -1
  941. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -1
  942. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +139 -1
  943. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -1
  944. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +474 -33
  945. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -1
  946. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +40 -0
  947. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -1
  948. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -1
  949. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -1
  950. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -1
  951. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +19 -0
  952. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -1
  953. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +38 -0
  954. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -1
  955. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  956. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -1
  957. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -1
  958. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +17 -1
  959. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -1
  960. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +14 -0
  961. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -1
  962. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +16 -0
  963. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -1
  964. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -1
  965. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +1 -1
  966. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -1
  967. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +19 -0
  968. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -1
  969. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +45 -2
  970. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -1
  971. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  972. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -1
  973. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +37 -1
  974. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -1
  975. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -1
  976. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -1
  977. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -1
  978. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -1
  979. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -1
  980. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
  981. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
  982. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
  983. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
  984. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  985. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
  986. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  987. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
  988. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
  989. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
  990. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  991. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  992. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  993. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  994. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
  995. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  996. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
  997. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
  998. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
  999. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
  1000. package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
  1001. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  1002. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  1003. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  1004. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  1005. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
  1006. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
  1007. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
  1008. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
  1009. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
  1010. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
  1011. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
  1012. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
  1013. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  1014. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  1015. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  1016. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  1017. package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
  1018. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
  1019. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
  1020. package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
  1021. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  1022. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  1023. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -1
  1024. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -1
  1025. package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
  1026. package/dist/esm/testing.d.ts.map +1 -1
  1027. package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
  1028. package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  1029. package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
  1030. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -1
  1031. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -1
  1032. package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
  1033. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
  1034. package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
  1035. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1036. package/package.json +9 -9
  1037. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
  1038. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
  1039. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
  1040. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
  1041. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -0
  1042. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -0
  1043. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -0
  1044. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -0
  1045. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -0
  1046. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -0
  1047. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -0
  1048. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -0
  1049. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -0
  1050. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -0
  1051. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -0
  1052. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -0
  1053. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -0
  1054. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -0
  1055. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -0
  1056. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"file.controller.js","sourceRoot":"","sources":["../../../../../src/files/controllers/file.controller.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * File Controller Backend Service\n *\n * Handles file download, metadata retrieval, deletion, and sharing.\n * Provides global file access endpoints independent of resource context.\n *\n * Routes:\n * - GET /files/:fileId - Download file (supports ?consumable_token=... for public access)\n * - GET /files/:fileId/metadata - Get file metadata (supports ?consumable_token=...)\n * - DELETE /files/:fileId - Delete file (unlinked only)\n * - POST /files/:fileId/share - Generate a shareable consumable token\n */\n\nimport { injectable, inject } from 'inversify';\nimport { Request, Response, NextFunction } from 'express';\nimport { z } from 'zod';\nimport {\n CoreConsumableTokenTypes,\n ConsumableToken_ConsumptionMode,\n CoreResourceOperation,\n CoreResourceType,\n ExecutionContext_ExecutionType,\n ErrorType,\n ErrorCustomMessageReference,\n FileStatus,\n FILE_DOWNLOADABLE_STATUSES,\n FILE_METADATA_WITHHELD_STATUSES,\n isWildoBackendError,\n MANUAL_CONTROLLER_ROUTES_URLS,\n ManualControllerRouteKey,\n} from '@wildo-ai/saas-models';\nimport { File } from '@wildo-ai/saas-models';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { AbstractControllerBackendService } from '~wildo-backend-lib/base-classes/services/controllers/abstract-controller.backend.service';\nimport { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport { ExecutionContextCreatorBackendService } from '~wildo-backend-lib/runtime/services/execution-context-creator.backend.service';\nimport { FilesBackendService } from '~wildo-backend-lib/files/services/files.backend.service';\nimport { FileFieldDetectionBackendService } from '~wildo-backend-lib/files/services/file-field-detection.backend.service';\nimport { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport { ConsumableTokenBackendService } from '~wildo-backend-lib/security/consumable-tokens/services/consumable-token.backend.service';\nimport { ExpiresInDurationSchema, DurationUnit, type DurationValue, type ExpiresInDuration } from '@wildo-ai/zod-decorators';\nimport { resolveFileUploaderPrincipal } from '~wildo-backend-lib/files/utils/file-uploader.utils';\nimport { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport { validateFileId } from '~wildo-backend-lib/files/utils/file-validation.utils';\nimport { projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { FileUploadGrantBackendService } from '~wildo-backend-lib/files/services/file-upload-grant.backend.service';\nimport { RateLimitBackendService } from '~wildo-backend-lib/errors/services/rate-limit.backend.service';\n/**\n * Zod schema for POST /files/:fileId/share request body validation.\n * All fields are optional — defaults come from z_file({ sharableDefaults }) or hardcoded fallbacks.\n */\nconst ShareFileRequestBodySchema = z.object({\n expiresIn: ExpiresInDurationSchema.optional(),\n maxUses: z.number().int().min(1).optional(),\n}).strict();\n\n@injectable()\nexport class FileController extends AbstractControllerBackendService {\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) logger: any,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) errorBuilder: any,\n @inject(SAAS_SERVICE_TYPES.ErrorHandlerService) errorHandler: any,\n @inject(SAAS_SERVICE_TYPES.ResourceRegistryService)\n private readonly resourcesRegistry: ResourcesRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.ExecutionContextCreatorBackendService)\n private readonly executionContextCreator: ExecutionContextCreatorBackendService,\n @inject(SAAS_SERVICE_TYPES.FilesBackendService)\n private readonly filesService: FilesBackendService,\n @inject(SAAS_SERVICE_TYPES.ConsumableTokenService)\n private readonly consumableTokenService: ConsumableTokenBackendService,\n @inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService)\n private readonly repositoriesRegistry: RepositoriesRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.FileFieldDetectionService)\n private readonly fileFieldDetection: FileFieldDetectionBackendService,\n @inject(SAAS_SERVICE_TYPES.FileUploadGrantService)\n private readonly fileUploadGrantService: FileUploadGrantBackendService,\n @inject(SAAS_SERVICE_TYPES.RateLimitBackendService)\n private readonly rateLimitService: RateLimitBackendService,\n ) {\n super(logger, errorBuilder, errorHandler, 'FileController');\n }\n\n /**\n * Setup file controller routes\n */\n protected setupRoutes(): void {\n // Download file: GET /files/:fileId\n // File upload grants (issue #312) — registered BEFORE the generic `/files/:fileId` family so that\n // `upload-grants` can never be read as a fileId. The status read is PUBLIC: the token is the\n // credential, and the drop page has no session. Revocation is authenticated and addressed by ID.\n // Paths come from `MANUAL_CONTROLLER_ROUTES_URLS` rather than from literals. They were literals\n // until 2026-09-09, which put them outside every mechanism keyed on `ManualControllerRouteKey` —\n // including the generated API reference, where a file route could therefore never appear.\n const uploadGrantStatusUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_UPLOAD_GRANT_STATUS];\n this.router.get(uploadGrantStatusUrl, this.asyncHandler(this.readUploadGrantStatus.bind(this)));\n this.logRouteRegistration('GET', uploadGrantStatusUrl, 'Read upload grant status (token-authenticated, public)');\n const uploadGrantRevokeUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_UPLOAD_GRANT_REVOKE];\n this.router.delete(uploadGrantRevokeUrl, this.asyncHandler(this.revokeUploadGrant.bind(this)));\n this.logRouteRegistration('DELETE', uploadGrantRevokeUrl, 'Revoke an upload grant (minter or super-admin)');\n\n const fileItemUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_ITEM];\n this.router.get(fileItemUrl, this.asyncHandler(this.downloadFile.bind(this)));\n this.logRouteRegistration('GET', fileItemUrl, 'Download file');\n\n // Get file metadata: GET /files/:fileId/metadata\n const fileMetadataUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_METADATA];\n this.router.get(fileMetadataUrl, this.asyncHandler(this.getFileMetadata.bind(this)));\n this.logRouteRegistration('GET', fileMetadataUrl, 'Get file metadata');\n\n // Delete file: DELETE /files/:fileId\n this.router.delete(fileItemUrl, this.asyncHandler(this.deleteFile.bind(this)));\n this.logRouteRegistration('DELETE', fileItemUrl, 'Delete file');\n\n // Share file: POST /files/:fileId/share\n const fileShareUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_SHARE];\n this.router.post(fileShareUrl, this.asyncHandler(this.shareFile.bind(this)));\n this.logRouteRegistration('POST', fileShareUrl, 'Generate share link');\n }\n\n /**\n * Get the READ operation path for FILES resource.\n * Used to create execution contexts for file operations.\n *\n * FILES declares only `REPOSITORY_ONLY` variants for the core operations\n * (see `files.shared.resources-config.schemas.ts`) — file metadata is\n * managed off the standard HTTP routing surface. This controller exposes\n * its own `/files/...` routes but bootstraps execution contexts against\n * the registered repository-only operations. See\n * `ResourcesRegistryBackendService.getRepositoryOperationPathDefault` for\n * why this is a distinct method from `getOperationPathDefault`.\n */\n /**\n * GET /files/upload-grants/:token — public status read (issue #312, D10).\n *\n * Rate-limited like the other public token endpoints: a token is 64 hex chars of entropy, so this\n * is not an enumeration surface, but a public route with a database read behind it still needs a\n * ceiling. Returns state, target, constraints, the upload URL and header name (what the drop page\n * renders), and after redemption the produced `fileId` + status (what an agent reads back). Never\n * the file's name.\n */\n private async readUploadGrantStatus(req: Request, res: Response, next: NextFunction): Promise<void> {\n try {\n await this.rateLimitService.checkPolicy(req, res, { requestsPerMinute: 30, requestsPerHour: 300 }, 'files:upload-grant:status');\n const token = req.params.token as string;\n const status = await this.fileUploadGrantService.readStatus(token);\n res.status(200).json(status);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * DELETE /files/upload-grants/:grantId — revoke, authenticated, by ID never by value.\n *\n * The context is created against the FILES DELETE operation exactly as `deleteFile` does (the\n * repository-only sibling lookup — see {@link getFileReadOperation}); who may revoke — the minter,\n * or a platform super-administrator — is decided inside the grant service. Idempotent: an already\n * revoked or redeemed grant answers `{ revoked: false }` rather than an error.\n */\n private async revokeUploadGrant(req: Request, res: Response, next: NextFunction): Promise<void> {\n try {\n const grantId = req.params.grantId as string;\n const operationPath = this.getFileDeleteOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, {} as ExecutionContext<any>, {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: { message: 'File DELETE operation not found' },\n });\n }\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n { url: `/files/upload-grants/${grantId}`, parameters: [] },\n );\n const revoked = await this.fileUploadGrantService.revoke(grantId, executionContext);\n res.status(200).json({ grantId, revoked });\n } catch (error) {\n next(error);\n }\n }\n\n private getFileReadOperation() {\n return this.resourcesRegistry.getRepositoryOperationPathDefault(\n CoreResourceType.FILES,\n CoreResourceOperation.READ\n );\n }\n\n /**\n * Get the DELETE operation path for FILES resource.\n *\n * See {@link getFileReadOperation} for the rationale behind using the\n * repository-only sibling lookup rather than the URL-bearing one.\n */\n private getFileDeleteOperation() {\n return this.resourcesRegistry.getRepositoryOperationPathDefault(\n CoreResourceType.FILES,\n CoreResourceOperation.DELETE\n );\n }\n\n /**\n * Withhold the metadata of a file whose status puts it past disclosure (gate **G-FILE**).\n *\n * The download route already gates the BYTES on {@link FILE_DOWNLOADABLE_STATUSES}; the metadata\n * route had no status gate at all, so after a privacy erasure marked a file `DELETED` its\n * `originalFilename` and `uploadedBy` stayed readable by any member of its scope until the cleanup\n * batch physically removed it — weeks later. Erasure has to be complete at T+0, not eventually.\n *\n * Answers NOT_FOUND rather than the download route's \"not available\" validation error: for an\n * ERASED file, confirming that the id still resolves is itself a disclosure. The download route's\n * shape is right for its own cases (an in-flight `SCANNING` file genuinely exists and will become\n * downloadable); this one must behave as deleted, matching the retained parent row it belonged to.\n */\n private assertFileMetadataDisclosable(\n file: File,\n fileId: string,\n executionContext?: ExecutionContext<any>,\n ): void {\n if (FILE_METADATA_WITHHELD_STATUSES.has(file.status)) {\n throw this.buildFileNotFoundError(fileId, executionContext);\n }\n }\n\n private buildFileNotFoundError(fileId: string, executionContext?: ExecutionContext<any>) {\n return this.errorBuilder.buildError(\n ErrorType.NOT_FOUND,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_NOT_FOUND,\n context: {\n fileId, // diagnostic (log-only)\n },\n }\n );\n }\n\n /**\n * Authenticated direct file routes should not disclose whether a probed fileId\n * exists when the caller lacks access. Collapse authorization failures into\n * the same not-found surface used for genuinely missing files.\n */\n private async getReadableFileOrNotFound(\n fileId: string,\n executionContext: ExecutionContext<any>,\n ): Promise<File> {\n try {\n const file = await this.filesService.getFile(fileId, executionContext);\n if (!file) {\n throw this.buildFileNotFoundError(fileId, executionContext);\n }\n return file;\n } catch (error) {\n const errorType = isWildoBackendError(error)\n ? error.type\n : (error instanceof Error && 'errorType' in error ? (error as Error & { errorType?: ErrorType }).errorType : undefined);\n\n if (errorType === ErrorType.AUTHORIZATION) {\n throw this.buildFileNotFoundError(fileId, executionContext);\n }\n\n throw error;\n }\n }\n\n /**\n * Public consumable-token downloads bypass normal user authorization. Build a\n * minimal synthetic execution context that carries only the FILES READ\n * operation identity and a public execution type, without fabricating a user\n * initiator.\n */\n private createSyntheticPublicReadExecutionContext(): ExecutionContext<any> {\n const operationPath = this.getFileReadOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n message: 'File READ operation not found for synthetic public execution context',\n },\n }\n );\n }\n\n return new ExecutionContext(\n operation,\n ExecutionContext_ExecutionType.PUBLIC_EXECUTION,\n new Map(),\n null,\n [],\n [],\n );\n }\n\n /**\n * Validate a consumable token for file access (WITHOUT consuming it).\n * Returns true if a valid token was provided, false if no token is present.\n * Throws if token is present but invalid (expired, revoked, type mismatch, relatedId mismatch).\n *\n * IMPORTANT: Consumption is intentionally NOT done here. Callers must call\n * `consumeFileTokenWithRetry()` AFTER confirming the file exists, to avoid burning\n * SINGLE_USE tokens on 404s.\n */\n private async validateFileToken(\n consumableTokenValue: string | undefined,\n fileId: string,\n ): Promise<boolean> {\n if (!consumableTokenValue) {\n return false;\n }\n\n // Validate the token using the dedicated service\n // Restricts to FILE_PUBLIC_ACCESS type only\n const tokenObject = await this.consumableTokenService.validateToken(\n consumableTokenValue,\n [CoreConsumableTokenTypes.FILE_PUBLIC_ACCESS],\n );\n\n // SECURITY: FILE_PUBLIC_ACCESS tokens MUST have a relatedId matching the requested file.\n // Tokens without relatedId would be wildcard tokens that can access any file — reject them.\n if (!tokenObject.relatedId || tokenObject.relatedId !== fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.AUTHENTICATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONSUMABLE_TOKEN_CONTEXT_MISMATCH,\n context: {\n message: tokenObject.relatedId\n ? 'Token relatedId does not match requested fileId'\n : 'FILE_PUBLIC_ACCESS tokens must have a relatedId bound to a specific file',\n expectedFileId: fileId,\n },\n }\n );\n }\n\n return true;\n }\n\n /**\n * Consume a file access token AFTER the file has been confirmed to exist.\n * This prevents burning SINGLE_USE tokens on 404 responses.\n */\n private async consumeFileToken(consumableTokenValue: string): Promise<void> {\n await this.consumableTokenService.consumeToken(consumableTokenValue);\n }\n\n /**\n * Post-response token consumption still has to happen after a successful HTTP\n * finish event, but we retry transient failures a few times so a short-lived\n * Mongo hiccup does not silently leave file-access tokens reusable.\n */\n private async consumeFileTokenWithRetry(consumableTokenValue: string, fileId: string): Promise<void> {\n const retryDelaysMs = [0, 100, 250, 500];\n\n for (let attempt = 0; attempt < retryDelaysMs.length; attempt += 1) {\n const delayMs = retryDelaysMs[attempt]!;\n\n if (delayMs > 0) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n\n try {\n await this.consumeFileToken(consumableTokenValue);\n return;\n } catch (error) {\n if (attempt === retryDelaysMs.length - 1) {\n throw error;\n }\n\n this.logger.warn('Retrying file token consumption after successful response', {\n fileId,\n attempt: attempt + 1,\n nextRetryDelayMs: retryDelaysMs[attempt + 1],\n ...projectCaughtErrorLogFields(error),\n });\n }\n }\n }\n\n /**\n * Download file endpoint.\n * GET /files/:fileId\n *\n * Supports consumable token access via query parameter: ?consumable_token=...\n */\n private async downloadFile(req: Request, res: Response, next: NextFunction): Promise<void> {\n const fileId = req.params.fileId as string;\n\n // Defense-in-depth: Check for presence before format validation\n // Express routes should ensure params exist, but explicit check improves robustness\n if (!fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ID_VALIDATION_FAILED,\n context: {\n // diagnostic (log-only)\n fieldName: 'fileId',\n reason: 'missing',\n }\n }\n );\n }\n\n const consumableToken = req.query.consumable_token as string | undefined;\n\n this.logDebug('File download requested', { fileId, hasConsumableToken: !!consumableToken });\n\n try {\n // Validate fileId format (CRITICAL: Prevents invalid fileId propagation and database errors)\n // ExecutionContext will be created below, but validation can happen early with undefined context\n validateFileId(fileId, this.errorBuilder, undefined, 'fileId');\n\n // ── Token-based public access path ──\n // If a consumable token is provided, validate it and serve the file directly\n // without going through the normal execution context / authorization flow.\n const isTokenAccess = await this.validateFileToken(consumableToken, fileId);\n\n if (isTokenAccess) {\n const file = await this.getFileDirectly(fileId);\n if (!file) {\n throw this.errorBuilder.buildError(\n ErrorType.NOT_FOUND,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_NOT_FOUND,\n context: { fileId }, // diagnostic (log-only)\n }\n );\n }\n if (!FILE_DOWNLOADABLE_STATUSES.has(file.status)) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: { message: 'File is not available for download', fileId, status: file.status },\n }\n );\n }\n const syntheticExecutionContext = this.createSyntheticPublicReadExecutionContext();\n this.scheduleConsumableTokenConsumptionOnSuccess(res, consumableToken!, fileId);\n await this.streamFileFromStorage(file, res, syntheticExecutionContext, next);\n return;\n }\n\n // ── Normal authenticated access path ──\n // Create execution context for file READ operation\n const operationPath = this.getFileReadOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n {} as ExecutionContext<any>,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n message: 'File READ operation not found',\n },\n }\n );\n }\n\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n {\n url: `/files/${fileId}`,\n parameters: [],\n }\n );\n\n // Authorize file access\n const file = await this.getReadableFileOrNotFound(fileId, executionContext);\n\n if (!FILE_DOWNLOADABLE_STATUSES.has(file.status)) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n message: 'File is not available for download',\n fileId,\n status: file.status,\n },\n }\n );\n }\n\n // Stream file from storage\n await this.streamFileFromStorage(file, res, executionContext, next);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * Stream file from storage to response (global download endpoint).\n *\n * Delegates to the shared `FilesBackendService.streamFileToResponse` seam so the\n * global download route and the resource-integrated serve route share one\n * streaming/lifecycle implementation. The global download endpoint forces\n * `attachment` (browser download); the resource serve route uses `inline`\n * (in-place preview). Authorization is already performed by the caller.\n */\n private async streamFileFromStorage(\n file: File,\n res: Response,\n executionContext: ExecutionContext<any> | undefined,\n next?: NextFunction,\n ): Promise<void> {\n await this.filesService.streamFileToResponse(file, res, executionContext, {\n disposition: 'attachment',\n next,\n });\n }\n\n /**\n * Get file metadata endpoint.\n * GET /files/:fileId/metadata\n *\n * Supports consumable token access via query parameter: ?consumable_token=...\n */\n private async getFileMetadata(req: Request, res: Response, next: NextFunction): Promise<void> {\n const fileId = req.params.fileId as string;\n\n // Defense-in-depth: Check for presence before format validation\n // Express routes should ensure params exist, but explicit check improves robustness\n if (!fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ID_VALIDATION_FAILED,\n context: {\n // diagnostic (log-only)\n fieldName: 'fileId',\n reason: 'missing',\n }\n }\n );\n }\n\n const consumableToken = req.query.consumable_token as string | undefined;\n\n this.logDebug('File metadata requested', { fileId, hasConsumableToken: !!consumableToken });\n\n try {\n // Validate fileId format (CRITICAL: Prevents invalid fileId propagation and database errors)\n // ExecutionContext will be created below, but validation can happen early with undefined context\n validateFileId(fileId, this.errorBuilder, undefined, 'fileId');\n\n // ── Token-based public access path ──\n const isTokenAccess = await this.validateFileToken(consumableToken, fileId);\n\n if (isTokenAccess) {\n const file = await this.getFileDirectly(fileId);\n if (!file) {\n throw this.errorBuilder.buildError(\n ErrorType.NOT_FOUND,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_NOT_FOUND,\n context: { fileId }, // diagnostic (log-only)\n }\n );\n }\n this.assertFileMetadataDisclosable(file, fileId);\n this.scheduleConsumableTokenConsumptionOnSuccess(res, consumableToken!, fileId);\n const fileMetadata = this.filesService.toMetadataResponse(file);\n this.jsonSuccess(res, fileMetadata);\n return;\n }\n\n // ── Normal authenticated access path ──\n // Create execution context for file READ operation\n const operationPath = this.getFileReadOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n {} as ExecutionContext<any>,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n message: 'File READ operation not found',\n },\n }\n );\n }\n\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n {\n url: `/files/${fileId}/metadata`,\n parameters: [],\n }\n );\n\n // Authorize file access and get file\n const file = await this.getReadableFileOrNotFound(fileId, executionContext);\n this.assertFileMetadataDisclosable(file, fileId, executionContext);\n\n // Return file metadata\n const fileMetadata = this.filesService.toMetadataResponse(file);\n this.jsonSuccess(res, fileMetadata);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * Delete file endpoint.\n * DELETE /files/:fileId\n *\n * Only allows deletion of unlinked files (status: UPLOADED or ORPHANED).\n * Rejects deletion of linked files (status: LINKED).\n */\n private async deleteFile(req: Request, res: Response, next: NextFunction): Promise<void> {\n const fileId = req.params.fileId as string;\n\n // Defense-in-depth: Check for presence before format validation\n // Express routes should ensure params exist, but explicit check improves robustness\n if (!fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ID_VALIDATION_FAILED,\n context: {\n // diagnostic (log-only)\n fieldName: 'fileId',\n reason: 'missing',\n }\n }\n );\n }\n\n this.logDebug('File deletion requested', { fileId });\n\n try {\n // Validate fileId format (CRITICAL: Prevents invalid fileId propagation and database errors)\n // ExecutionContext will be created below, but validation can happen early with undefined context\n validateFileId(fileId, this.errorBuilder, undefined, 'fileId');\n\n // Create execution context for file DELETE operation\n const operationPath = this.getFileDeleteOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n {} as ExecutionContext<any>,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n message: 'File DELETE operation not found',\n },\n }\n );\n }\n\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n {\n url: `/files/${fileId}`,\n parameters: [],\n }\n );\n\n // Read file first to verify it exists and check status. Like other\n // authenticated direct file routes, delete should not leak whether a\n // probed fileId exists outside the caller's accessible scope.\n const file = await this.getReadableFileOrNotFound(fileId, executionContext);\n\n // Check if file is already deleted\n if (file.status === FileStatus.DELETED) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ALREADY_DELETED,\n context: {\n // diagnostic (log-only)\n fileId,\n status: file.status,\n },\n }\n );\n }\n\n // AV scanning is the only in-flight processing state left on the FILE lifecycle — text\n // extraction/indexing moved to per-field chunk rows with the resource-native RAG reshape and\n // no longer blocks a delete (their cleanup follows the file through the removal seams).\n if (file.status === FileStatus.SCANNING) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_DELETE_WHILE_PROCESSING,\n context: {\n // diagnostic (log-only)\n fileId,\n status: file.status,\n },\n }\n );\n }\n\n // Reject deletion of linked files\n if (file.status === FileStatus.LINKED) {\n throw this.errorBuilder.buildError(\n ErrorType.AUTHORIZATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_DELETE_LINKED_BLOCKED,\n context: {\n // diagnostic (log-only)\n fileId,\n status: file.status,\n linkedResourceType: file.linkedResourceType,\n linkedResourceId: file.linkedResourceId,\n },\n }\n );\n }\n\n // Detached-file delete is owned by the recorded uploader principal.\n // We compare only the raw id + entity type pair and leave richer display\n // hydration to clients on demand.\n const currentUploaderPrincipal = resolveFileUploaderPrincipal(executionContext);\n if (\n !currentUploaderPrincipal\n || !file.uploadedBy\n || !file.uploadedByEntityType\n || file.uploadedBy !== currentUploaderPrincipal.uploadedBy\n || file.uploadedByEntityType !== currentUploaderPrincipal.uploadedByEntityType\n ) {\n throw this.errorBuilder.buildError(\n ErrorType.AUTHORIZATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_DELETE_UPLOADER_ONLY,\n context: {\n // diagnostic (log-only)\n fileId,\n uploadedBy: file.uploadedBy,\n uploadedByEntityType: file.uploadedByEntityType,\n currentUploaderPrincipal,\n },\n }\n );\n }\n\n // Delete file (soft delete)\n await this.filesService.deleteFile(fileId, executionContext);\n\n // Return success response\n this.jsonSuccess(res, {\n success: true,\n message: 'File deleted successfully',\n fileId,\n }, 200);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * Share file endpoint.\n * POST /files/:fileId/share\n *\n * Generates a shareable consumable token for the specified file.\n * Requires the file's z_file field to have `sharable: true` in its schema metadata.\n *\n * Request body (optional):\n * - expiresIn?: DurationValue (minutes/hours/days, value ≥ 1) — override default expiration\n * - maxUses?: number — override default max uses (only for BOUNDED_REUSE)\n *\n * Returns:\n * - { token: string, expiresAt: string, maxUses?: number }\n */\n private async shareFile(req: Request, res: Response, next: NextFunction): Promise<void> {\n const fileId = req.params.fileId as string;\n\n if (!fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ID_VALIDATION_FAILED,\n context: {\n // diagnostic (log-only)\n fieldName: 'fileId',\n reason: 'missing',\n }\n }\n );\n }\n\n this.logDebug('File share requested', { fileId });\n\n try {\n validateFileId(fileId, this.errorBuilder, undefined, 'fileId');\n\n // ── Validate request body ──\n const bodyParseResult = ShareFileRequestBodySchema.safeParse(req.body || {});\n if (!bodyParseResult.success) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_SHARE_REQUEST_INVALID,\n context: {\n // diagnostic (log-only)\n errors: bodyParseResult.error.issues.map(i => ({ path: i.path.join('.'), message: i.message })),\n },\n }\n );\n }\n const requestBody = bodyParseResult.data;\n\n // Create execution context for file READ operation (share requires at least read access)\n const operationPath = this.getFileReadOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n {} as ExecutionContext<any>,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: { message: 'File READ operation not found' },\n }\n );\n }\n\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n {\n url: `/files/${fileId}/share`,\n parameters: [],\n }\n );\n\n // Authorize and get the file\n const file = await this.getReadableFileOrNotFound(fileId, executionContext);\n\n // ── Check if the file's z_file field is declared as sharable ──\n // The sharable flag is on the schema metadata of the z_file field that owns this file.\n // We need to look up the resource configuration and inspect the field metadata.\n const fileFieldMetadata = this.getFileFieldSharableMetadata(file);\n if (!fileFieldMetadata.sharable) {\n throw this.errorBuilder.buildError(\n ErrorType.AUTHORIZATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.CONSUMABLE_TOKEN_FILE_SHARING_DISABLED,\n context: {\n // diagnostic (log-only)\n fileId,\n linkedResourceType: file.linkedResourceType,\n linkedFieldName: file.linkedFieldName,\n },\n }\n );\n }\n\n // ── Resolve sharing defaults from schema metadata, then override with request body ──\n const defaults = fileFieldMetadata.sharableDefaults || {};\n\n const expiresIn = requestBody.expiresIn ?? defaults.expiresIn ?? { value: 7, unit: DurationUnit.DAYS };\n const consumptionMode = defaults.consumptionMode === 'SINGLE_USE'\n ? ConsumableToken_ConsumptionMode.SINGLE_USE\n : ConsumableToken_ConsumptionMode.BOUNDED_REUSE;\n const maxUses = consumptionMode === ConsumableToken_ConsumptionMode.BOUNDED_REUSE\n ? (requestBody.maxUses || defaults.maxUses || 100)\n : undefined;\n\n // ── Generate consumable token ──\n // NOTE: tokenType in CreateTokenParams is the token type identifier (e.g., FILE_PUBLIC_ACCESS),\n // NOT the Wildo resource type (e.g., FILES). validateToken checks this field against expected types.\n const result = await this.consumableTokenService.createToken({\n tokenType: CoreConsumableTokenTypes.FILE_PUBLIC_ACCESS,\n consumptionMode,\n resourceIdentifier: CoreResourceType.FILES,\n relatedId: fileId,\n organizationId: file.organizationId,\n expiresIn: expiresIn as DurationValue,\n roles: [],\n maxUses,\n metadata: {\n linkedResourceType: file.linkedResourceType,\n linkedFieldName: file.linkedFieldName,\n originalFilename: file.originalFilename,\n },\n });\n\n this.jsonSuccess(res, {\n token: result.token,\n expiresAt: result.expiresAt.toISOString(),\n ...(maxUses != null && { maxUses }),\n }, 201);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * Consume a public access token only after the HTTP response has completed\n * successfully. This avoids burning single-use tokens on downstream stream or\n * response failures that happen after authorization has already succeeded.\n */\n private scheduleConsumableTokenConsumptionOnSuccess(\n res: Response,\n consumableToken: string,\n fileId: string,\n ): void {\n let settled = false;\n\n const cleanup = () => {\n res.off('finish', onFinish);\n res.off('close', onClose);\n res.off('error', onError);\n };\n\n const onFinish = () => {\n if (settled) {\n return;\n }\n\n settled = true;\n cleanup();\n\n void Promise.resolve(this.consumeFileTokenWithRetry(consumableToken, fileId)).catch((error: unknown) => {\n this.logger.error('Failed to consume file token after successful response retries', {\n fileId,\n ...projectCaughtErrorLogFields(error),\n });\n });\n };\n\n const onClose = () => {\n if (settled || res.writableFinished) {\n return;\n }\n\n settled = true;\n cleanup();\n };\n\n const onError = () => {\n if (settled) {\n return;\n }\n\n settled = true;\n cleanup();\n };\n\n res.once('finish', onFinish);\n res.once('close', onClose);\n res.once('error', onError);\n }\n\n /**\n * Fetch a file record directly via repository, bypassing user-level authorization.\n * Used for token-authenticated public access where the consumable token itself provides authorization.\n *\n * Uses an internal system execution context (INTERNALLY_INITIATED_REQUEST with APP_ADMIN_SUPER_ADMIN)\n * to perform the read, ensuring the repository's prefix/postfix hooks have a valid context.\n */\n private async getFileDirectly(fileId: string): Promise<File | null> {\n const internalContext = await this.executionContextCreator.createForInternalSystemOperation();\n const filesRepo = this.repositoriesRegistry.getRepositoryOrThrow(\n CoreResourceType.FILES,\n internalContext,\n );\n const file = await filesRepo.read<File>(\n internalContext,\n { _id: fileId },\n );\n return file || null;\n }\n\n /**\n * Look up the z_file field metadata for a linked file to determine if sharing is enabled.\n *\n * Uses `getFileMetadata()` from `@wildo-ai/zod-decorators` to read the `FileSchemaMetadata`\n * stored by `z_file({ sharable: true })`. The metadata is accessed via the resource registry\n * → resource configuration → mainSchema → field schema.\n *\n * Returns `{ sharable: boolean, sharableDefaults?: ... }` based on the schema metadata\n * of the field that owns this file. If the file is not linked or the field cannot be\n * found, returns `{ sharable: false }`.\n */\n private getFileFieldSharableMetadata(file: File): {\n sharable: boolean;\n sharableDefaults?: { expiresIn?: ExpiresInDuration; maxUses?: number; consumptionMode?: 'SINGLE_USE' | 'BOUNDED_REUSE' };\n } {\n // File must be linked to a resource to have schema metadata\n if (!file.linkedResourceType || !file.linkedFieldName) {\n return { sharable: false };\n }\n\n try {\n const detectedField = this.fileFieldDetection.getFileFieldMetadata(\n file.linkedResourceType as any,\n file.linkedFieldName,\n );\n if (!detectedField) {\n return { sharable: false };\n }\n\n const fileConfig = detectedField.fileMetadata;\n if (!fileConfig) {\n return { sharable: false };\n }\n\n return {\n sharable: !!fileConfig.sharable,\n sharableDefaults: fileConfig.sharableDefaults,\n };\n } catch {\n // If anything fails during schema lookup, sharing is not available\n this.logDebug('Failed to look up file field sharable metadata', {\n fileId: file.fileId,\n linkedResourceType: file.linkedResourceType,\n linkedFieldName: file.linkedFieldName,\n });\n return { sharable: false };\n }\n }\n}\n"]}
1
+ {"version":3,"file":"file.controller.js","sourceRoot":"","sources":["../../../../src/files/controllers/file.controller.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * File Controller Backend Service\n *\n * Handles file download, metadata retrieval, deletion, and sharing.\n * Provides global file access endpoints independent of resource context.\n *\n * Routes:\n * - GET /files/:fileId - Download file (supports ?consumable_token=... for public access)\n * - GET /files/:fileId/metadata - Get file metadata (supports ?consumable_token=...)\n * - DELETE /files/:fileId - Delete file (unlinked only)\n * - POST /files/:fileId/share - Generate a shareable consumable token\n */\n\nimport { injectable, inject } from 'inversify';\nimport { Request, Response, NextFunction } from 'express';\nimport { z } from 'zod';\nimport {\n CoreConsumableTokenTypes,\n ConsumableToken_ConsumptionMode,\n CoreResourceOperation,\n CoreResourceType,\n ExecutionContext_ExecutionType,\n ErrorType,\n ErrorCustomMessageReference,\n FileStatus,\n FILE_DOWNLOADABLE_STATUSES,\n FILE_METADATA_WITHHELD_STATUSES,\n isWildoBackendError,\n MANUAL_CONTROLLER_ROUTES_URLS,\n ManualControllerRouteKey,\n} from '@wildo-ai/saas-models';\nimport { File } from '@wildo-ai/saas-models';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { AbstractControllerBackendService } from '~wildo-backend-lib/base-classes/services/controllers/abstract-controller.backend.service';\nimport { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport { ExecutionContextCreatorBackendService } from '~wildo-backend-lib/runtime/services/execution-context-creator.backend.service';\nimport { FilesBackendService } from '~wildo-backend-lib/files/services/files.backend.service';\nimport { FileFieldDetectionBackendService } from '~wildo-backend-lib/files/services/file-field-detection.backend.service';\nimport { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport { ConsumableTokenBackendService } from '~wildo-backend-lib/security/consumable-tokens/services/consumable-token.backend.service';\nimport { ExpiresInDurationSchema, DurationUnit, type DurationValue, type ExpiresInDuration } from '@wildo-ai/zod-decorators';\nimport { resolveFileUploaderPrincipal } from '~wildo-backend-lib/files/utils/file-uploader.utils';\nimport { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport { validateFileId } from '~wildo-backend-lib/files/utils/file-validation.utils';\nimport { projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { FileUploadGrantBackendService } from '~wildo-backend-lib/files/services/file-upload-grant.backend.service';\nimport { RateLimitBackendService } from '~wildo-backend-lib/errors/services/rate-limit.backend.service';\n/**\n * Zod schema for POST /files/:fileId/share request body validation.\n * All fields are optional — defaults come from z_file({ sharableDefaults }) or hardcoded fallbacks.\n */\nconst ShareFileRequestBodySchema = z.object({\n expiresIn: ExpiresInDurationSchema.optional(),\n maxUses: z.number().int().min(1).optional(),\n}).strict();\n\n@injectable()\nexport class FileController extends AbstractControllerBackendService {\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) logger: any,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) errorBuilder: any,\n @inject(SAAS_SERVICE_TYPES.ErrorHandlerService) errorHandler: any,\n @inject(SAAS_SERVICE_TYPES.ResourceRegistryService)\n private readonly resourcesRegistry: ResourcesRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.ExecutionContextCreatorBackendService)\n private readonly executionContextCreator: ExecutionContextCreatorBackendService,\n @inject(SAAS_SERVICE_TYPES.FilesBackendService)\n private readonly filesService: FilesBackendService,\n @inject(SAAS_SERVICE_TYPES.ConsumableTokenService)\n private readonly consumableTokenService: ConsumableTokenBackendService,\n @inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService)\n private readonly repositoriesRegistry: RepositoriesRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.FileFieldDetectionService)\n private readonly fileFieldDetection: FileFieldDetectionBackendService,\n @inject(SAAS_SERVICE_TYPES.FileUploadGrantService)\n private readonly fileUploadGrantService: FileUploadGrantBackendService,\n @inject(SAAS_SERVICE_TYPES.RateLimitBackendService)\n private readonly rateLimitService: RateLimitBackendService,\n ) {\n super(logger, errorBuilder, errorHandler, 'FileController');\n }\n\n /**\n * Setup file controller routes\n */\n protected setupRoutes(): void {\n // Download file: GET /files/:fileId\n // File upload grants (issue #312) — registered BEFORE the generic `/files/:fileId` family so that\n // `upload-grants` can never be read as a fileId. The status read is PUBLIC: the token is the\n // credential, and the drop page has no session. Revocation is authenticated and addressed by ID.\n // Paths come from `MANUAL_CONTROLLER_ROUTES_URLS` rather than from literals. They were literals\n // until 2026-09-09, which put them outside every mechanism keyed on `ManualControllerRouteKey` —\n // including the generated API reference, where a file route could therefore never appear.\n const uploadGrantStatusUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_UPLOAD_GRANT_STATUS];\n this.router.get(uploadGrantStatusUrl, this.asyncHandler(this.readUploadGrantStatus.bind(this)));\n this.logRouteRegistration('GET', uploadGrantStatusUrl, 'Read upload grant status (token-authenticated, public)');\n const uploadGrantRevokeUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_UPLOAD_GRANT_REVOKE];\n this.router.delete(uploadGrantRevokeUrl, this.asyncHandler(this.revokeUploadGrant.bind(this)));\n this.logRouteRegistration('DELETE', uploadGrantRevokeUrl, 'Revoke an upload grant (minter or super-admin)');\n\n const fileItemUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_ITEM];\n this.router.get(fileItemUrl, this.asyncHandler(this.downloadFile.bind(this)));\n this.logRouteRegistration('GET', fileItemUrl, 'Download file');\n\n // Get file metadata: GET /files/:fileId/metadata\n const fileMetadataUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_METADATA];\n this.router.get(fileMetadataUrl, this.asyncHandler(this.getFileMetadata.bind(this)));\n this.logRouteRegistration('GET', fileMetadataUrl, 'Get file metadata');\n\n // Delete file: DELETE /files/:fileId\n this.router.delete(fileItemUrl, this.asyncHandler(this.deleteFile.bind(this)));\n this.logRouteRegistration('DELETE', fileItemUrl, 'Delete file');\n\n // Share file: POST /files/:fileId/share\n const fileShareUrl = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.FILES_SHARE];\n this.router.post(fileShareUrl, this.asyncHandler(this.shareFile.bind(this)));\n this.logRouteRegistration('POST', fileShareUrl, 'Generate share link');\n }\n\n /**\n * Get the READ operation path for FILES resource.\n * Used to create execution contexts for file operations.\n *\n * FILES declares only `REPOSITORY_ONLY` variants for the core operations\n * (see `files.shared.resources-config.schemas.ts`) — file metadata is\n * managed off the standard HTTP routing surface. This controller exposes\n * its own `/files/...` routes but bootstraps execution contexts against\n * the registered repository-only operations. See\n * `ResourcesRegistryBackendService.getRepositoryOperationPathDefault` for\n * why this is a distinct method from `getOperationPathDefault`.\n */\n /**\n * GET /files/upload-grants/:token — public status read (issue #312, D10).\n *\n * Rate-limited like the other public token endpoints: a token is 64 hex chars of entropy, so this\n * is not an enumeration surface, but a public route with a database read behind it still needs a\n * ceiling. Returns state, target, constraints, the upload URL and header name (what the drop page\n * renders), and after redemption the produced `fileId` + status (what an agent reads back). Never\n * the file's name.\n */\n private async readUploadGrantStatus(req: Request, res: Response, next: NextFunction): Promise<void> {\n try {\n await this.rateLimitService.checkPolicy(req, res, { requestsPerMinute: 30, requestsPerHour: 300 }, 'files:upload-grant:status');\n const token = req.params.token as string;\n const status = await this.fileUploadGrantService.readStatus(token);\n res.status(200).json(status);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * DELETE /files/upload-grants/:grantId — revoke, authenticated, by ID never by value.\n *\n * The context is created against the FILES DELETE operation exactly as `deleteFile` does (the\n * repository-only sibling lookup — see {@link getFileReadOperation}); who may revoke — the minter,\n * or a platform super-administrator — is decided inside the grant service. Idempotent: an already\n * revoked or redeemed grant answers `{ revoked: false }` rather than an error.\n */\n private async revokeUploadGrant(req: Request, res: Response, next: NextFunction): Promise<void> {\n try {\n const grantId = req.params.grantId as string;\n const operationPath = this.getFileDeleteOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, {} as ExecutionContext<any>, {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: { message: 'File DELETE operation not found' },\n });\n }\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n { url: `/files/upload-grants/${grantId}`, parameters: [] },\n );\n const revoked = await this.fileUploadGrantService.revoke(grantId, executionContext);\n res.status(200).json({ grantId, revoked });\n } catch (error) {\n next(error);\n }\n }\n\n private getFileReadOperation() {\n return this.resourcesRegistry.getRepositoryOperationPathDefault(\n CoreResourceType.FILES,\n CoreResourceOperation.READ\n );\n }\n\n /**\n * Get the DELETE operation path for FILES resource.\n *\n * See {@link getFileReadOperation} for the rationale behind using the\n * repository-only sibling lookup rather than the URL-bearing one.\n */\n private getFileDeleteOperation() {\n return this.resourcesRegistry.getRepositoryOperationPathDefault(\n CoreResourceType.FILES,\n CoreResourceOperation.DELETE\n );\n }\n\n /**\n * Withhold the metadata of a file whose status puts it past disclosure (gate **G-FILE**).\n *\n * The download route already gates the BYTES on {@link FILE_DOWNLOADABLE_STATUSES}; the metadata\n * route had no status gate at all, so after a privacy erasure marked a file `DELETED` its\n * `originalFilename` and `uploadedBy` stayed readable by any member of its scope until the cleanup\n * batch physically removed it — weeks later. Erasure has to be complete at T+0, not eventually.\n *\n * Answers NOT_FOUND rather than the download route's \"not available\" validation error: for an\n * ERASED file, confirming that the id still resolves is itself a disclosure. The download route's\n * shape is right for its own cases (an in-flight `SCANNING` file genuinely exists and will become\n * downloadable); this one must behave as deleted, matching the retained parent row it belonged to.\n */\n private assertFileMetadataDisclosable(\n file: File,\n fileId: string,\n executionContext?: ExecutionContext<any>,\n ): void {\n if (FILE_METADATA_WITHHELD_STATUSES.has(file.status)) {\n throw this.buildFileNotFoundError(fileId, executionContext);\n }\n }\n\n private buildFileNotFoundError(fileId: string, executionContext?: ExecutionContext<any>) {\n return this.errorBuilder.buildError(\n ErrorType.NOT_FOUND,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_NOT_FOUND,\n context: {\n fileId, // diagnostic (log-only)\n },\n }\n );\n }\n\n /**\n * Authenticated direct file routes should not disclose whether a probed fileId\n * exists when the caller lacks access. Collapse authorization failures into\n * the same not-found surface used for genuinely missing files.\n */\n private async getReadableFileOrNotFound(\n fileId: string,\n executionContext: ExecutionContext<any>,\n ): Promise<File> {\n try {\n const file = await this.filesService.getFile(fileId, executionContext);\n if (!file) {\n throw this.buildFileNotFoundError(fileId, executionContext);\n }\n return file;\n } catch (error) {\n const errorType = isWildoBackendError(error)\n ? error.type\n : (error instanceof Error && 'errorType' in error ? (error as Error & { errorType?: ErrorType }).errorType : undefined);\n\n if (errorType === ErrorType.AUTHORIZATION) {\n throw this.buildFileNotFoundError(fileId, executionContext);\n }\n\n throw error;\n }\n }\n\n /**\n * Public consumable-token downloads bypass normal user authorization. Build a\n * minimal synthetic execution context that carries only the FILES READ\n * operation identity and a public execution type, without fabricating a user\n * initiator.\n */\n private createSyntheticPublicReadExecutionContext(): ExecutionContext<any> {\n const operationPath = this.getFileReadOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n message: 'File READ operation not found for synthetic public execution context',\n },\n }\n );\n }\n\n return new ExecutionContext(\n operation,\n ExecutionContext_ExecutionType.PUBLIC_EXECUTION,\n new Map(),\n null,\n [],\n [],\n );\n }\n\n /**\n * Validate a consumable token for file access (WITHOUT consuming it).\n * Returns true if a valid token was provided, false if no token is present.\n * Throws if token is present but invalid (expired, revoked, type mismatch, relatedId mismatch).\n *\n * IMPORTANT: Consumption is intentionally NOT done here. Callers must call\n * `consumeFileTokenWithRetry()` AFTER confirming the file exists, to avoid burning\n * SINGLE_USE tokens on 404s.\n */\n private async validateFileToken(\n consumableTokenValue: string | undefined,\n fileId: string,\n ): Promise<boolean> {\n if (!consumableTokenValue) {\n return false;\n }\n\n // Validate the token using the dedicated service\n // Restricts to FILE_PUBLIC_ACCESS type only\n const tokenObject = await this.consumableTokenService.validateToken(\n consumableTokenValue,\n [CoreConsumableTokenTypes.FILE_PUBLIC_ACCESS],\n );\n\n // SECURITY: FILE_PUBLIC_ACCESS tokens MUST have a relatedId matching the requested file.\n // Tokens without relatedId would be wildcard tokens that can access any file — reject them.\n if (!tokenObject.relatedId || tokenObject.relatedId !== fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.AUTHENTICATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONSUMABLE_TOKEN_CONTEXT_MISMATCH,\n context: {\n message: tokenObject.relatedId\n ? 'Token relatedId does not match requested fileId'\n : 'FILE_PUBLIC_ACCESS tokens must have a relatedId bound to a specific file',\n expectedFileId: fileId,\n },\n }\n );\n }\n\n return true;\n }\n\n /**\n * Consume a file access token AFTER the file has been confirmed to exist.\n * This prevents burning SINGLE_USE tokens on 404 responses.\n */\n private async consumeFileToken(consumableTokenValue: string): Promise<void> {\n await this.consumableTokenService.consumeToken(consumableTokenValue);\n }\n\n /**\n * Post-response token consumption still has to happen after a successful HTTP\n * finish event, but we retry transient failures a few times so a short-lived\n * Mongo hiccup does not silently leave file-access tokens reusable.\n */\n private async consumeFileTokenWithRetry(consumableTokenValue: string, fileId: string): Promise<void> {\n const retryDelaysMs = [0, 100, 250, 500];\n\n for (let attempt = 0; attempt < retryDelaysMs.length; attempt += 1) {\n const delayMs = retryDelaysMs[attempt]!;\n\n if (delayMs > 0) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n\n try {\n await this.consumeFileToken(consumableTokenValue);\n return;\n } catch (error) {\n if (attempt === retryDelaysMs.length - 1) {\n throw error;\n }\n\n this.logger.warn('Retrying file token consumption after successful response', {\n fileId,\n attempt: attempt + 1,\n nextRetryDelayMs: retryDelaysMs[attempt + 1],\n ...projectCaughtErrorLogFields(error),\n });\n }\n }\n }\n\n /**\n * Download file endpoint.\n * GET /files/:fileId\n *\n * Supports consumable token access via query parameter: ?consumable_token=...\n */\n private async downloadFile(req: Request, res: Response, next: NextFunction): Promise<void> {\n const fileId = req.params.fileId as string;\n\n // Defense-in-depth: Check for presence before format validation\n // Express routes should ensure params exist, but explicit check improves robustness\n if (!fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ID_VALIDATION_FAILED,\n context: {\n // diagnostic (log-only)\n fieldName: 'fileId',\n reason: 'missing',\n }\n }\n );\n }\n\n const consumableToken = req.query.consumable_token as string | undefined;\n\n this.logDebug('File download requested', { fileId, hasConsumableToken: !!consumableToken });\n\n try {\n // Validate fileId format (CRITICAL: Prevents invalid fileId propagation and database errors)\n // ExecutionContext will be created below, but validation can happen early with undefined context\n validateFileId(fileId, this.errorBuilder, undefined, 'fileId');\n\n // ── Token-based public access path ──\n // If a consumable token is provided, validate it and serve the file directly\n // without going through the normal execution context / authorization flow.\n const isTokenAccess = await this.validateFileToken(consumableToken, fileId);\n\n if (isTokenAccess) {\n const file = await this.getFileDirectly(fileId);\n if (!file) {\n throw this.errorBuilder.buildError(\n ErrorType.NOT_FOUND,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_NOT_FOUND,\n context: { fileId }, // diagnostic (log-only)\n }\n );\n }\n if (!FILE_DOWNLOADABLE_STATUSES.has(file.status)) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: { message: 'File is not available for download', fileId, status: file.status },\n }\n );\n }\n const syntheticExecutionContext = this.createSyntheticPublicReadExecutionContext();\n this.scheduleConsumableTokenConsumptionOnSuccess(res, consumableToken!, fileId);\n await this.streamFileFromStorage(file, res, syntheticExecutionContext, next);\n return;\n }\n\n // ── Normal authenticated access path ──\n // Create execution context for file READ operation\n const operationPath = this.getFileReadOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n {} as ExecutionContext<any>,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n message: 'File READ operation not found',\n },\n }\n );\n }\n\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n {\n url: `/files/${fileId}`,\n parameters: [],\n }\n );\n\n // Authorize file access\n const file = await this.getReadableFileOrNotFound(fileId, executionContext);\n\n if (!FILE_DOWNLOADABLE_STATUSES.has(file.status)) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n message: 'File is not available for download',\n fileId,\n status: file.status,\n },\n }\n );\n }\n\n // Stream file from storage\n await this.streamFileFromStorage(file, res, executionContext, next);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * Stream file from storage to response (global download endpoint).\n *\n * Delegates to the shared `FilesBackendService.streamFileToResponse` seam so the\n * global download route and the resource-integrated serve route share one\n * streaming/lifecycle implementation. The global download endpoint forces\n * `attachment` (browser download); the resource serve route uses `inline`\n * (in-place preview). Authorization is already performed by the caller.\n */\n private async streamFileFromStorage(\n file: File,\n res: Response,\n executionContext: ExecutionContext<any> | undefined,\n next?: NextFunction,\n ): Promise<void> {\n await this.filesService.streamFileToResponse(file, res, executionContext, {\n disposition: 'attachment',\n next,\n });\n }\n\n /**\n * Get file metadata endpoint.\n * GET /files/:fileId/metadata\n *\n * Supports consumable token access via query parameter: ?consumable_token=...\n */\n private async getFileMetadata(req: Request, res: Response, next: NextFunction): Promise<void> {\n const fileId = req.params.fileId as string;\n\n // Defense-in-depth: Check for presence before format validation\n // Express routes should ensure params exist, but explicit check improves robustness\n if (!fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ID_VALIDATION_FAILED,\n context: {\n // diagnostic (log-only)\n fieldName: 'fileId',\n reason: 'missing',\n }\n }\n );\n }\n\n const consumableToken = req.query.consumable_token as string | undefined;\n\n this.logDebug('File metadata requested', { fileId, hasConsumableToken: !!consumableToken });\n\n try {\n // Validate fileId format (CRITICAL: Prevents invalid fileId propagation and database errors)\n // ExecutionContext will be created below, but validation can happen early with undefined context\n validateFileId(fileId, this.errorBuilder, undefined, 'fileId');\n\n // ── Token-based public access path ──\n const isTokenAccess = await this.validateFileToken(consumableToken, fileId);\n\n if (isTokenAccess) {\n const file = await this.getFileDirectly(fileId);\n if (!file) {\n throw this.errorBuilder.buildError(\n ErrorType.NOT_FOUND,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_NOT_FOUND,\n context: { fileId }, // diagnostic (log-only)\n }\n );\n }\n this.assertFileMetadataDisclosable(file, fileId);\n this.scheduleConsumableTokenConsumptionOnSuccess(res, consumableToken!, fileId);\n const fileMetadata = this.filesService.toMetadataResponse(file);\n this.jsonSuccess(res, fileMetadata);\n return;\n }\n\n // ── Normal authenticated access path ──\n // Create execution context for file READ operation\n const operationPath = this.getFileReadOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n {} as ExecutionContext<any>,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n message: 'File READ operation not found',\n },\n }\n );\n }\n\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n {\n url: `/files/${fileId}/metadata`,\n parameters: [],\n }\n );\n\n // Authorize file access and get file\n const file = await this.getReadableFileOrNotFound(fileId, executionContext);\n this.assertFileMetadataDisclosable(file, fileId, executionContext);\n\n // Return file metadata\n const fileMetadata = this.filesService.toMetadataResponse(file);\n this.jsonSuccess(res, fileMetadata);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * Delete file endpoint.\n * DELETE /files/:fileId\n *\n * Only allows deletion of unlinked files (status: UPLOADED or ORPHANED).\n * Rejects deletion of linked files (status: LINKED).\n */\n private async deleteFile(req: Request, res: Response, next: NextFunction): Promise<void> {\n const fileId = req.params.fileId as string;\n\n // Defense-in-depth: Check for presence before format validation\n // Express routes should ensure params exist, but explicit check improves robustness\n if (!fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ID_VALIDATION_FAILED,\n context: {\n // diagnostic (log-only)\n fieldName: 'fileId',\n reason: 'missing',\n }\n }\n );\n }\n\n this.logDebug('File deletion requested', { fileId });\n\n try {\n // Validate fileId format (CRITICAL: Prevents invalid fileId propagation and database errors)\n // ExecutionContext will be created below, but validation can happen early with undefined context\n validateFileId(fileId, this.errorBuilder, undefined, 'fileId');\n\n // Create execution context for file DELETE operation\n const operationPath = this.getFileDeleteOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n {} as ExecutionContext<any>,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n message: 'File DELETE operation not found',\n },\n }\n );\n }\n\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n {\n url: `/files/${fileId}`,\n parameters: [],\n }\n );\n\n // Read file first to verify it exists and check status. Like other\n // authenticated direct file routes, delete should not leak whether a\n // probed fileId exists outside the caller's accessible scope.\n const file = await this.getReadableFileOrNotFound(fileId, executionContext);\n\n // Check if file is already deleted\n if (file.status === FileStatus.DELETED) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ALREADY_DELETED,\n context: {\n // diagnostic (log-only)\n fileId,\n status: file.status,\n },\n }\n );\n }\n\n // AV scanning is the only in-flight processing state left on the FILE lifecycle — text\n // extraction/indexing moved to per-field chunk rows with the resource-native RAG reshape and\n // no longer blocks a delete (their cleanup follows the file through the removal seams).\n if (file.status === FileStatus.SCANNING) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_DELETE_WHILE_PROCESSING,\n context: {\n // diagnostic (log-only)\n fileId,\n status: file.status,\n },\n }\n );\n }\n\n // Reject deletion of linked files\n if (file.status === FileStatus.LINKED) {\n throw this.errorBuilder.buildError(\n ErrorType.AUTHORIZATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_DELETE_LINKED_BLOCKED,\n context: {\n // diagnostic (log-only)\n fileId,\n status: file.status,\n linkedResourceType: file.linkedResourceType,\n linkedResourceId: file.linkedResourceId,\n },\n }\n );\n }\n\n // Detached-file delete is owned by the recorded uploader principal.\n // We compare only the raw id + entity type pair and leave richer display\n // hydration to clients on demand.\n const currentUploaderPrincipal = resolveFileUploaderPrincipal(executionContext);\n if (\n !currentUploaderPrincipal\n || !file.uploadedBy\n || !file.uploadedByEntityType\n || file.uploadedBy !== currentUploaderPrincipal.uploadedBy\n || file.uploadedByEntityType !== currentUploaderPrincipal.uploadedByEntityType\n ) {\n throw this.errorBuilder.buildError(\n ErrorType.AUTHORIZATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_DELETE_UPLOADER_ONLY,\n context: {\n // diagnostic (log-only)\n fileId,\n uploadedBy: file.uploadedBy,\n uploadedByEntityType: file.uploadedByEntityType,\n currentUploaderPrincipal,\n },\n }\n );\n }\n\n // Delete file (soft delete)\n await this.filesService.deleteFile(fileId, executionContext);\n\n // Return success response\n this.jsonSuccess(res, {\n success: true,\n message: 'File deleted successfully',\n fileId,\n }, 200);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * Share file endpoint.\n * POST /files/:fileId/share\n *\n * Generates a shareable consumable token for the specified file.\n * Requires the file's z_file field to have `sharable: true` in its schema metadata.\n *\n * Request body (optional):\n * - expiresIn?: DurationValue (minutes/hours/days, value ≥ 1) — override default expiration\n * - maxUses?: number — override default max uses (only for BOUNDED_REUSE)\n *\n * Returns:\n * - { token: string, expiresAt: string, maxUses?: number }\n */\n private async shareFile(req: Request, res: Response, next: NextFunction): Promise<void> {\n const fileId = req.params.fileId as string;\n\n if (!fileId) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_ID_VALIDATION_FAILED,\n context: {\n // diagnostic (log-only)\n fieldName: 'fileId',\n reason: 'missing',\n }\n }\n );\n }\n\n this.logDebug('File share requested', { fileId });\n\n try {\n validateFileId(fileId, this.errorBuilder, undefined, 'fileId');\n\n // ── Validate request body ──\n const bodyParseResult = ShareFileRequestBodySchema.safeParse(req.body || {});\n if (!bodyParseResult.success) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FILE_SHARE_REQUEST_INVALID,\n context: {\n // diagnostic (log-only)\n errors: bodyParseResult.error.issues.map(i => ({ path: i.path.join('.'), message: i.message })),\n },\n }\n );\n }\n const requestBody = bodyParseResult.data;\n\n // Create execution context for file READ operation (share requires at least read access)\n const operationPath = this.getFileReadOperation();\n const operation = this.resourcesRegistry.getOperationFromPath(operationPath);\n if (!operation) {\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n {} as ExecutionContext<any>,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: { message: 'File READ operation not found' },\n }\n );\n }\n\n const executionContext = await this.executionContextCreator.createExecutionContextFromRequest(\n req,\n operation,\n {\n url: `/files/${fileId}/share`,\n parameters: [],\n }\n );\n\n // Authorize and get the file\n const file = await this.getReadableFileOrNotFound(fileId, executionContext);\n\n // ── Check if the file's z_file field is declared as sharable ──\n // The sharable flag is on the schema metadata of the z_file field that owns this file.\n // We need to look up the resource configuration and inspect the field metadata.\n const fileFieldMetadata = this.getFileFieldSharableMetadata(file);\n if (!fileFieldMetadata.sharable) {\n throw this.errorBuilder.buildError(\n ErrorType.AUTHORIZATION,\n executionContext,\n {\n customMessageReference: ErrorCustomMessageReference.CONSUMABLE_TOKEN_FILE_SHARING_DISABLED,\n context: {\n // diagnostic (log-only)\n fileId,\n linkedResourceType: file.linkedResourceType,\n linkedFieldName: file.linkedFieldName,\n },\n }\n );\n }\n\n // ── Resolve sharing defaults from schema metadata, then override with request body ──\n const defaults = fileFieldMetadata.sharableDefaults || {};\n\n const expiresIn = requestBody.expiresIn ?? defaults.expiresIn ?? { value: 7, unit: DurationUnit.DAYS };\n const consumptionMode = defaults.consumptionMode === 'SINGLE_USE'\n ? ConsumableToken_ConsumptionMode.SINGLE_USE\n : ConsumableToken_ConsumptionMode.BOUNDED_REUSE;\n const maxUses = consumptionMode === ConsumableToken_ConsumptionMode.BOUNDED_REUSE\n ? (requestBody.maxUses || defaults.maxUses || 100)\n : undefined;\n\n // ── Generate consumable token ──\n // NOTE: tokenType in CreateTokenParams is the token type identifier (e.g., FILE_PUBLIC_ACCESS),\n // NOT the Wildo resource type (e.g., FILES). validateToken checks this field against expected types.\n const result = await this.consumableTokenService.createToken({\n tokenType: CoreConsumableTokenTypes.FILE_PUBLIC_ACCESS,\n consumptionMode,\n resourceIdentifier: CoreResourceType.FILES,\n relatedId: fileId,\n organizationId: file.organizationId,\n expiresIn: expiresIn as DurationValue,\n roles: [],\n maxUses,\n metadata: {\n linkedResourceType: file.linkedResourceType,\n linkedFieldName: file.linkedFieldName,\n originalFilename: file.originalFilename,\n },\n });\n\n this.jsonSuccess(res, {\n token: result.token,\n expiresAt: result.expiresAt.toISOString(),\n ...(maxUses != null && { maxUses }),\n }, 201);\n } catch (error) {\n next(error);\n }\n }\n\n /**\n * Consume a public access token only after the HTTP response has completed\n * successfully. This avoids burning single-use tokens on downstream stream or\n * response failures that happen after authorization has already succeeded.\n */\n private scheduleConsumableTokenConsumptionOnSuccess(\n res: Response,\n consumableToken: string,\n fileId: string,\n ): void {\n let settled = false;\n\n const cleanup = () => {\n res.off('finish', onFinish);\n res.off('close', onClose);\n res.off('error', onError);\n };\n\n const onFinish = () => {\n if (settled) {\n return;\n }\n\n settled = true;\n cleanup();\n\n void Promise.resolve(this.consumeFileTokenWithRetry(consumableToken, fileId)).catch((error: unknown) => {\n this.logger.error('Failed to consume file token after successful response retries', {\n fileId,\n ...projectCaughtErrorLogFields(error),\n });\n });\n };\n\n const onClose = () => {\n if (settled || res.writableFinished) {\n return;\n }\n\n settled = true;\n cleanup();\n };\n\n const onError = () => {\n if (settled) {\n return;\n }\n\n settled = true;\n cleanup();\n };\n\n res.once('finish', onFinish);\n res.once('close', onClose);\n res.once('error', onError);\n }\n\n /**\n * Fetch a file record directly via repository, bypassing user-level authorization.\n * Used for token-authenticated public access where the consumable token itself provides authorization.\n *\n * Uses an internal system execution context (INTERNALLY_INITIATED_REQUEST with APP_ADMIN_SUPER_ADMIN)\n * to perform the read, ensuring the repository's prefix/postfix hooks have a valid context.\n */\n private async getFileDirectly(fileId: string): Promise<File | null> {\n const internalContext = await this.executionContextCreator.createForInternalSystemOperation();\n const filesRepo = this.repositoriesRegistry.getRepositoryOrThrow(\n CoreResourceType.FILES,\n internalContext,\n );\n const file = await filesRepo.read<File>(\n internalContext,\n { _id: fileId },\n );\n return file || null;\n }\n\n /**\n * Look up the z_file field metadata for a linked file to determine if sharing is enabled.\n *\n * Uses `getFileMetadata()` from `@wildo-ai/zod-decorators` to read the `FileSchemaMetadata`\n * stored by `z_file({ sharable: true })`. The metadata is accessed via the resource registry\n * → resource configuration → mainSchema → field schema.\n *\n * Returns `{ sharable: boolean, sharableDefaults?: ... }` based on the schema metadata\n * of the field that owns this file. If the file is not linked or the field cannot be\n * found, returns `{ sharable: false }`.\n */\n private getFileFieldSharableMetadata(file: File): {\n sharable: boolean;\n sharableDefaults?: { expiresIn?: ExpiresInDuration; maxUses?: number; consumptionMode?: 'SINGLE_USE' | 'BOUNDED_REUSE' };\n } {\n // File must be linked to a resource to have schema metadata\n if (!file.linkedResourceType || !file.linkedFieldName) {\n return { sharable: false };\n }\n\n try {\n const detectedField = this.fileFieldDetection.getFileFieldMetadata(\n file.linkedResourceType as any,\n file.linkedFieldName,\n );\n if (!detectedField) {\n return { sharable: false };\n }\n\n const fileConfig = detectedField.fileMetadata;\n if (!fileConfig) {\n return { sharable: false };\n }\n\n return {\n sharable: !!fileConfig.sharable,\n sharableDefaults: fileConfig.sharableDefaults,\n };\n } catch {\n // If anything fails during schema lookup, sharing is not available\n this.logDebug('Failed to look up file field sharable metadata', {\n fileId: file.fileId,\n linkedResourceType: file.linkedResourceType,\n linkedFieldName: file.linkedFieldName,\n });\n return { sharable: false };\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload-route-locals.backend.types.d.ts","sourceRoot":"","sources":["../../../../../src/files/handlers/file-upload-route-locals.backend.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uFAAuF,CAAC;AAC7H,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,uBAAuB,CAAA;KAAE,CAAC;CACjF"}
1
+ {"version":3,"file":"file-upload-route-locals.backend.types.d.ts","sourceRoot":"","sources":["../../../../src/files/handlers/file-upload-route-locals.backend.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uFAAuF,CAAC;AAC7H,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,uBAAuB,CAAA;KAAE,CAAC;CACjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload-route-locals.backend.types.js","sourceRoot":"","sources":["../../../../../src/files/handlers/file-upload-route-locals.backend.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ConsumableToken } from '~wildo-backend-lib/security/consumable-tokens/models/consumable-tokens.shared.schemas';\nimport type { FileUploadGrantMetadata } from '@wildo-ai/saas-models';\n\n/**\n * What the upload route's authorization middleware leaves on `res.locals` for the handler when the\n * request authenticated with a file upload GRANT (issue #312). Absent for every other upload.\n *\n * Shared between `ControllerResourceBackendService` (which sets it, after the route-binding check)\n * and `ResourceFileUploadHandlerBackendService` (which consumes the grant at the point of no return),\n * so the two cannot disagree about the key or the shape.\n */\nexport interface FileUploadRouteGrantLocals {\n fileUploadGrant?: { token: ConsumableToken; metadata: FileUploadGrantMetadata };\n}\n"]}
1
+ {"version":3,"file":"file-upload-route-locals.backend.types.js","sourceRoot":"","sources":["../../../../src/files/handlers/file-upload-route-locals.backend.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ConsumableToken } from '~wildo-backend-lib/security/consumable-tokens/models/consumable-tokens.shared.schemas';\nimport type { FileUploadGrantMetadata } from '@wildo-ai/saas-models';\n\n/**\n * What the upload route's authorization middleware leaves on `res.locals` for the handler when the\n * request authenticated with a file upload GRANT (issue #312). Absent for every other upload.\n *\n * Shared between `ControllerResourceBackendService` (which sets it, after the route-binding check)\n * and `ResourceFileUploadHandlerBackendService` (which consumes the grant at the point of no return),\n * so the two cannot disagree about the key or the shape.\n */\nexport interface FileUploadRouteGrantLocals {\n fileUploadGrant?: { token: ConsumableToken; metadata: FileUploadGrantMetadata };\n}\n"]}
@@ -35,6 +35,8 @@ import { AppConfigurationService } from '../../config/services/app-configuration
35
35
  import { FileStorageRouterBackendService } from '../../files/storage/file-storage-router.backend.service';
36
36
  import { FileFieldDetectionBackendService } from '../../files/services/file-field-detection.backend.service';
37
37
  import { FileStoragePathResolverBackendService } from '../../files/storage/file-storage-path-resolver.backend.service';
38
+ import type { StorageRemoteFileDescription } from '../../files/storage/file-storage-provider.types';
39
+ import type { FileConstraint } from '../../files/constraints/file-constraint.types';
38
40
  import { FileScanningBackendService } from '../../files/services/file-scanning.backend.service';
39
41
  import { ConsumableTokenBackendService } from '../../security/consumable-tokens/services/consumable-token.backend.service';
40
42
  import { FileUploadGrantBackendService } from '../../files/services/file-upload-grant.backend.service';
@@ -115,6 +117,41 @@ export declare class ResourceFileUploadHandlerBackendService {
115
117
  * @param executionContext - Execution context for scope values
116
118
  * @returns FileScopeIdentifiers derived from parent resource
117
119
  */
120
+ /**
121
+ * The point of no return for a file upload GRANT (issue #312): every check a caller can act on has
122
+ * run and nothing has been written. A refusal before this leaves the grant usable for a retry; a
123
+ * race loser is refused by the atomic consume and writes nothing. This handler is NOT on the
124
+ * services-registry pipeline, so its post-operation consumption never sees this request — this is
125
+ * the one consumption site, for bytes and for references alike.
126
+ */
127
+ private consumeUploadGrant;
128
+ /**
129
+ * Who the file is attributed to. Under a grant that is the MINTER — the person or machine that
130
+ * delegated the upload — never the grant. A user-minted grant already yields that through the token
131
+ * context (`resolveFileUploaderPrincipal`, CONSUMABLE_TOKEN case); a machine-minted one yields
132
+ * nothing there, so the grant's own `minter` record is used. Both agree with createFile's mismatch
133
+ * guard. Consuming the grant is a separate step, because a REFERENCE is verified at the vendor AS
134
+ * this principal before the grant may be spent on it.
135
+ */
136
+ private resolveUploaderFromRequest;
137
+ /**
138
+ * Link a file that stays at a vendor into this field (#394 P5): a picker's `REMOTE_REFERENCE`
139
+ * becomes a FILES row in the vendor's storage, with no bytes ever transiting this process.
140
+ *
141
+ * The order is the same as a byte upload's, with the vendor standing in for the multer file: the
142
+ * reference is resolved to a storage by the provider it names, refused unless the FIELD accepts
143
+ * that storage, DESCRIBED at the vendor as the linking person (which is what proves it real and
144
+ * readable), held to the field's constraints, and only then does a row exist — PENDING, then
145
+ * UPLOADED with the reference as its `storageRef`. A row that fails between the two is marked
146
+ * FAILED like an upload's would be.
147
+ */
148
+ private handleRemoteReferenceLink;
118
149
  private deriveScopeFromParentResource;
119
150
  }
151
+ /**
152
+ * The field's constraints applied to what the VENDOR says about a file — the same three checks the
153
+ * multer-file validator runs on bytes, on metadata instead. Extension-vs-MIME is not among them: a
154
+ * reference carries the vendor's MIME type as fact, and there is no local file to sniff.
155
+ */
156
+ export declare function collectRemoteReferenceConstraintViolations(constraint: FileConstraint, description: Partial<Pick<StorageRemoteFileDescription, 'contentType' | 'size'>>): string[];
120
157
  //# sourceMappingURL=resource-file-upload-handler.backend.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-file-upload-handler.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/files/handlers/resource-file-upload-handler.backend.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-file-upload-handler.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/files/handlers/resource-file-upload-handler.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAkR,MAAM,uBAAuB,CAAC;AAI5V,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAAE,+BAA+B,EAAE,MAAM,0EAA0E,CAAC;AAC3H,OAAO,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AACvG,OAAO,EAAE,2BAA2B,EAAE,MAAM,qFAAqF,CAAC;AAClI,OAAO,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,qCAAqC,EAAE,MAAM,qFAAqF,CAAC;AAI5I,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAE,+BAA+B,EAAE,MAAM,sEAAsE,CAAC;AACvH,OAAO,EAAE,gCAAgC,EAAE,MAAM,wEAAwE,CAAC;AAC1H,OAAO,EAAE,qCAAqC,EAAE,MAAM,6EAA6E,CAAC;AACpI,OAAO,KAAK,EAA6C,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AAC5J,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,iEAAiE,CAAC;AAG7G,OAAO,EAAE,6BAA6B,EAAE,MAAM,yFAAyF,CAAC;AACxI,OAAO,EAAE,6BAA6B,EAAE,MAAM,qEAAqE,CAAC;AAGpH,qBACa,uCAAuC;IAKhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAExC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAEpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IA9BzC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;gBAI9D,MAAM,EAAE,aAAa,EAErB,YAAY,EAAE,0BAA0B,EAExC,iBAAiB,EAAE,+BAA+B,EAElD,kBAAkB,EAAE,2BAA2B,EAE/C,aAAa,EAAE,qBAAqB,EAEpC,YAAY,EAAE,mBAAmB,EAEjC,iBAAiB,EAAE,+BAA+B,EAElD,kBAAkB,EAAE,gCAAgC,EAEpD,uBAAuB,EAAE,qCAAqC,EAE9D,gBAAgB,EAAE,uBAAuB,EAEzC,YAAY,EAAE,qCAAqC,EAEnD,mBAAmB,EAAE,0BAA0B,EAE/C,sBAAsB,EAAE,6BAA6B,EAErD,sBAAsB,EAAE,6BAA6B;IAMxE;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,qBAAqB,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,EACtE,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;IA6dhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,eAAe,CACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;IA0FhB;;;;;;;;;;;OAWG;IACH;;;;;;OAMG;YACW,kBAAkB;IAMhC;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAoBlC;;;;;;;;;;OAUG;YACW,yBAAyB;IAoJvC,OAAO,CAAC,6BAA6B;CAyHtC;AAED;;;;GAIG;AACH,wBAAgB,0CAA0C,CACxD,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC,GAC/E,MAAM,EAAE,CAeV"}