@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":"rag-source-field-detection.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/files/services/rag-source-field-detection.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,YAAY,EAA0C,MAAM,uBAAuB,CAAC;AAE7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,+BAA+B,EAAE,MAAM,0EAA0E,CAAC;AAC3H,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAIL,qBAAqB,EACrB,KAAK,oCAAoC,EAC1C,MAAM,2EAA2E,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,YAAY,EAAE,qBAAqB,CAAC;IACpC,qGAAqG;IACrG,MAAM,EAAE,oCAAoC,CAAC,QAAQ,CAAC,CAAC;IACvD;;;OAGG;IACH,cAAc,CAAC,EAAE,oCAAoC,CAAC,gBAAgB,CAAC,CAAC;CACzE;AAED,qBACa,qCAAqC;IAS9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAIjF,OAAO,CAAC,oBAAoB,CAA0D;gBAInE,MAAM,EAAE,aAAa,EAErB,iBAAiB,EAAE,+BAA+B,EAElD,YAAY,EAAE,0BAA0B;IAM3D;;;;;;;OAOG;IACH,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,sBAAsB,EAAE;IAsE3E;;;;;;OAMG;IACH,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO;IAIvD;;;;;;OAMG;IACH,yBAAyB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAK5G;;;;;OAKG;IACH,UAAU,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;CAS9C"}
1
+ {"version":3,"file":"rag-source-field-detection.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/files/services/rag-source-field-detection.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,YAAY,EAA0C,MAAM,uBAAuB,CAAC;AAE7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,+BAA+B,EAAE,MAAM,0EAA0E,CAAC;AAC3H,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAIL,qBAAqB,EACrB,KAAK,oCAAoC,EAC1C,MAAM,2EAA2E,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,YAAY,EAAE,qBAAqB,CAAC;IACpC,qGAAqG;IACrG,MAAM,EAAE,oCAAoC,CAAC,QAAQ,CAAC,CAAC;IACvD;;;OAGG;IACH,cAAc,CAAC,EAAE,oCAAoC,CAAC,gBAAgB,CAAC,CAAC;CACzE;AAED,qBACa,qCAAqC;IAS9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAIjF,OAAO,CAAC,oBAAoB,CAA0D;gBAInE,MAAM,EAAE,aAAa,EAErB,iBAAiB,EAAE,+BAA+B,EAElD,YAAY,EAAE,0BAA0B;IAM3D;;;;;;;OAOG;IACH,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,sBAAsB,EAAE;IAsE3E;;;;;;OAMG;IACH,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO;IAIvD;;;;;;OAMG;IACH,yBAAyB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAK5G;;;;;OAKG;IACH,UAAU,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;CAS9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"application-storage-key.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/application-storage-key.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,cAAc,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAAG,SAAS,EACvC,aAAa,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAcpC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAO7F;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,GAAG,MAAM,CAYT"}
1
+ {"version":3,"file":"application-storage-key.backend.utils.d.ts","sourceRoot":"","sources":["../../../../src/files/storage/application-storage-key.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,cAAc,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAAG,SAAS,EACvC,aAAa,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAcpC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAO7F;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,GAAG,MAAM,CAYT"}
@@ -1 +1 @@
1
- {"version":3,"file":"application-storage-key.backend.utils.js","sourceRoot":"","sources":["../../../../../src/files/storage/application-storage-key.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,oBAAoB,EAAE,sCAAsC,EAAE,MAAM,uBAAuB,CAAC;AAErG,OAAO,EAAE,8BAA8B,EAAE,MAAM,kEAAkE,CAAC;AAGlH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAuC,EACvC,aAAqB;IAErB,kGAAkG;IAClG,gGAAgG;IAChG,4DAA4D;IAC5D,IAAI,KAAK,EAAE,YAAY,KAAK,oBAAoB,CAAC,aAAa,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,KAAK,EAAE,YAAY,KAAK,oBAAoB,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3E,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC1E,CAAC;IACD,iGAAiG;IACjG,mGAAmG;IACnG,uDAAuD;IACvD,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,OAA8B;IACnF,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,6BAA6B,CAAC,SAAiB;IAC7D,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAY5C;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB;QACzC,CAAC,CAAC,sCAAsC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACjE,CAAC,CAAC,wBAAwB,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvF,OAAO,8BAA8B,CAAC,YAAY,CAAC,4BAA4B,CAC7E,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,KAAK,EACL,OAAO,CACR,CAAC;AACJ,CAAC","sourcesContent":["/**\n * The ONE composer every path-based storage provider addresses a blob with.\n *\n * ## Why this module exists rather than a second implementation per provider\n *\n * The key shape is not decoration: `<scope>/<scopeId>` is what makes ONE TENANT's blobs a PREFIX,\n * and therefore what makes erasure, orphan sweeps, per-tenant listing and credential confinement\n * expressible at all. A provider that composes its own shape is a deployment where none of those\n * exist — silently, because nothing fails when a prefix is merely absent.\n *\n * That is exactly what had happened: the managed provider carried the tenant-scoped shape while the\n * local-directory provider composed `[applicationId]/[folderPath]/<leaf>` from the field's\n * declarative binding alone, so routing a field to local storage produced a store with no tenant\n * structure whatsoever. Two implementations that \"must agree\" agreed for as long as nobody edited\n * either. So the composition lives here, once, and both providers call it.\n *\n * ## What is NOT here\n *\n * Provider-specific framing stays with the provider:\n * - the managed provider prepends its configured `bucketPrefix` (an object-store namespacing knob\n * with no filesystem meaning) and applies its textual stored-`storageRef` prefix guard;\n * - the local provider resolves the returned relative key against its base directory and applies\n * its filesystem containment check.\n *\n * What is shared is the ANSWER to \"where does this blob live\", which is the part that must not\n * differ between two providers serving the same authored `z_file()` binding.\n */\n\nimport { ResourcePrimaryScope, resolveSharedPersistenceCollectionName } from '@wildo-ai/saas-models';\nimport type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';\nimport { API_ROUTES_BACKEND_DEFINITIONS } from '~wildo-backend-lib/requests/models/api-routes.backend.defintions';\nimport type { StorageUploadOptions } from './file-storage-provider.types';\n\n/**\n * The key segment for a blob with no resource type.\n *\n * A literal rather than a resource name, and prefixed with `_` so it can never collide with a\n * value `resolveSharedPersistenceCollectionName` produces — that function returns collection\n * names, which never start with an underscore.\n */\nexport const UNLINKED_STORAGE_SEGMENT = '_unlinked';\n\n/**\n * The `<scope>/<scopeId>` segments of a storage key.\n *\n * This is what makes ONE TENANT's blobs a prefix. Without it every organization's files of a given\n * resource share a single prefix, so erasure, orphan sweeps and \"who owns this object\" all become\n * per-row database work instead of prefix operations — and no per-tenant confinement is expressible\n * at all. (That was the state of the managed provider until 2026-08-14: the approved shape carried\n * these segments and the first implementation dropped them. The local-directory provider never had\n * them at all until this module existed.)\n *\n * Always emits BOTH segments, including for APPLICATION scope where the id repeats the one already\n * in the prefix. The redundancy is deliberate: one key shape, no branch, nothing that can produce a\n * second layout. A parser can always take the last three segments as scope/scopeId/fileId.\n */\nexport function resolveStorageScopeSegments(\n scope: FileScopeIdentifiers | undefined,\n applicationId: string,\n): { scope: string; scopeId: string } {\n // The SEGMENT IS the enum value — `ResourcePrimaryScope.ORGANIZATIONS === 'organizations'`. Using\n // the enum directly keeps one vocabulary: a parallel string table here would be a second source\n // that silently drifts the day a scope is added or renamed.\n if (scope?.primaryScope === ResourcePrimaryScope.ORGANIZATIONS && scope.organizationId) {\n return { scope: ResourcePrimaryScope.ORGANIZATIONS, scopeId: scope.organizationId };\n }\n if (scope?.primaryScope === ResourcePrimaryScope.USER_SELF && scope.userId) {\n return { scope: ResourcePrimaryScope.USER_SELF, scopeId: scope.userId };\n }\n // APPLICATION scope, or a scope whose id is missing — fall back to the application. Never throw:\n // a key must always be derivable, and an application-scoped key is the correct conservative answer\n // (it is the narrowest scope every file provably has).\n return { scope: ResourcePrimaryScope.APPLICATION, scopeId: applicationId };\n}\n\n/**\n * The caller-authored tail of a key: `[folderPath/]<fileName|fileId>`.\n *\n * Returns the empty string when nothing survives — the caller raises\n * `FILE_STORAGE_KEY_COMPOSITION_FAILED` with its own execution context, which this module does not\n * have.\n */\nexport function composeStorageLeafPath(fileId: string, options?: StorageUploadOptions): string {\n const leafName = options?.fileName?.trim() || fileId;\n const folderPath = options?.folderPath?.trim();\n if (!leafName) {\n return '';\n }\n return folderPath ? `${folderPath}/${leafName}` : leafName;\n}\n\n/**\n * Does `candidate` contain a whole `.` or `..` path segment?\n *\n * ## Why a TEXTUAL check, beside a provider's own containment guard\n *\n * The local provider's guard resolves the path and checks it stays under the base directory, which\n * is strictly stronger for the question \"does this escape the store\". It is strictly WEAKER for the\n * question this key shape exists to answer: once a key carries a six-segment\n * `applications/<app>/files/<resource>/<scope>/<scopeId>/` prefix, a `..` no longer has to escape\n * the store to do damage — it only has to climb out of the TENANT prefix and land under a\n * different one, which the containment check happily admits because the destination is still\n * inside the base.\n *\n * The managed provider states the same thing from the other side (its stored-ref prefix check is\n * textual, so `…/x/../../../elsewhere/y` satisfies it). Both providers therefore refuse a `.`/`..`\n * SEGMENT in the composed key, and the verdict for one authored value no longer depends on which\n * provider a deployment binds.\n *\n * Only a WHOLE segment counts. `v1.2.3`, `..config` and `file..name.txt` are ordinary names, and a\n * substring match on `..` would refuse all three — an over-refusal invisible until an application\n * authors a versioned folder.\n */\nexport function storageKeyHasTraversalSegment(candidate: string): boolean {\n return candidate.split('/').some((segment) => segment === '.' || segment === '..');\n}\n\n/**\n * The application-scoped, resource-scoped, tenant-scoped key for a blob.\n *\n * `applications/<applicationId>/files/<storageName>/<scope>/<scopeId>/<leafPath>`\n *\n * The managed provider prepends its bucket prefix to this; the local provider resolves it against\n * its base directory. Nothing else may re-derive it — the shape is the tenant boundary, and a\n * second derivation is a second boundary.\n */\nexport function composeApplicationStorageKey(args: {\n applicationId: string;\n /** `[folderPath/]<fileName|fileId>` — see {@link composeStorageLeafPath}. */\n leafPath: string;\n /**\n * The resource this blob belongs to. Absent ⇒ {@link UNLINKED_STORAGE_SEGMENT}, an explicit\n * staging segment rather than a fallthrough: late LINKING is allowed (the row's\n * `linkedResourceId` fills in later), late TYPE declaration is not, because the key is derived\n * once at create and the blob never moves.\n */\n linkedResourceType?: ResourceType;\n scope?: FileScopeIdentifiers;\n}): string {\n const storageName = args.linkedResourceType\n ? resolveSharedPersistenceCollectionName(args.linkedResourceType)\n : UNLINKED_STORAGE_SEGMENT;\n const { scope, scopeId } = resolveStorageScopeSegments(args.scope, args.applicationId);\n return API_ROUTES_BACKEND_DEFINITIONS.FILE_STORAGE.STORAGE_KEY_APPLICATION_FILE(\n args.applicationId,\n args.leafPath,\n storageName,\n scope,\n scopeId,\n );\n}\n"]}
1
+ {"version":3,"file":"application-storage-key.backend.utils.js","sourceRoot":"","sources":["../../../../src/files/storage/application-storage-key.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,oBAAoB,EAAE,sCAAsC,EAAE,MAAM,uBAAuB,CAAC;AAErG,OAAO,EAAE,8BAA8B,EAAE,MAAM,kEAAkE,CAAC;AAGlH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAuC,EACvC,aAAqB;IAErB,kGAAkG;IAClG,gGAAgG;IAChG,4DAA4D;IAC5D,IAAI,KAAK,EAAE,YAAY,KAAK,oBAAoB,CAAC,aAAa,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,KAAK,EAAE,YAAY,KAAK,oBAAoB,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3E,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC1E,CAAC;IACD,iGAAiG;IACjG,mGAAmG;IACnG,uDAAuD;IACvD,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,OAA8B;IACnF,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,6BAA6B,CAAC,SAAiB;IAC7D,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAY5C;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB;QACzC,CAAC,CAAC,sCAAsC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACjE,CAAC,CAAC,wBAAwB,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvF,OAAO,8BAA8B,CAAC,YAAY,CAAC,4BAA4B,CAC7E,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,KAAK,EACL,OAAO,CACR,CAAC;AACJ,CAAC","sourcesContent":["/**\n * The ONE composer every path-based storage provider addresses a blob with.\n *\n * ## Why this module exists rather than a second implementation per provider\n *\n * The key shape is not decoration: `<scope>/<scopeId>` is what makes ONE TENANT's blobs a PREFIX,\n * and therefore what makes erasure, orphan sweeps, per-tenant listing and credential confinement\n * expressible at all. A provider that composes its own shape is a deployment where none of those\n * exist — silently, because nothing fails when a prefix is merely absent.\n *\n * That is exactly what had happened: the managed provider carried the tenant-scoped shape while the\n * local-directory provider composed `[applicationId]/[folderPath]/<leaf>` from the field's\n * declarative binding alone, so routing a field to local storage produced a store with no tenant\n * structure whatsoever. Two implementations that \"must agree\" agreed for as long as nobody edited\n * either. So the composition lives here, once, and both providers call it.\n *\n * ## What is NOT here\n *\n * Provider-specific framing stays with the provider:\n * - the managed provider prepends its configured `bucketPrefix` (an object-store namespacing knob\n * with no filesystem meaning) and applies its textual stored-`storageRef` prefix guard;\n * - the local provider resolves the returned relative key against its base directory and applies\n * its filesystem containment check.\n *\n * What is shared is the ANSWER to \"where does this blob live\", which is the part that must not\n * differ between two providers serving the same authored `z_file()` binding.\n */\n\nimport { ResourcePrimaryScope, resolveSharedPersistenceCollectionName } from '@wildo-ai/saas-models';\nimport type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';\nimport { API_ROUTES_BACKEND_DEFINITIONS } from '~wildo-backend-lib/requests/models/api-routes.backend.defintions';\nimport type { StorageUploadOptions } from './file-storage-provider.types';\n\n/**\n * The key segment for a blob with no resource type.\n *\n * A literal rather than a resource name, and prefixed with `_` so it can never collide with a\n * value `resolveSharedPersistenceCollectionName` produces — that function returns collection\n * names, which never start with an underscore.\n */\nexport const UNLINKED_STORAGE_SEGMENT = '_unlinked';\n\n/**\n * The `<scope>/<scopeId>` segments of a storage key.\n *\n * This is what makes ONE TENANT's blobs a prefix. Without it every organization's files of a given\n * resource share a single prefix, so erasure, orphan sweeps and \"who owns this object\" all become\n * per-row database work instead of prefix operations — and no per-tenant confinement is expressible\n * at all. (That was the state of the managed provider until 2026-08-14: the approved shape carried\n * these segments and the first implementation dropped them. The local-directory provider never had\n * them at all until this module existed.)\n *\n * Always emits BOTH segments, including for APPLICATION scope where the id repeats the one already\n * in the prefix. The redundancy is deliberate: one key shape, no branch, nothing that can produce a\n * second layout. A parser can always take the last three segments as scope/scopeId/fileId.\n */\nexport function resolveStorageScopeSegments(\n scope: FileScopeIdentifiers | undefined,\n applicationId: string,\n): { scope: string; scopeId: string } {\n // The SEGMENT IS the enum value — `ResourcePrimaryScope.ORGANIZATIONS === 'organizations'`. Using\n // the enum directly keeps one vocabulary: a parallel string table here would be a second source\n // that silently drifts the day a scope is added or renamed.\n if (scope?.primaryScope === ResourcePrimaryScope.ORGANIZATIONS && scope.organizationId) {\n return { scope: ResourcePrimaryScope.ORGANIZATIONS, scopeId: scope.organizationId };\n }\n if (scope?.primaryScope === ResourcePrimaryScope.USER_SELF && scope.userId) {\n return { scope: ResourcePrimaryScope.USER_SELF, scopeId: scope.userId };\n }\n // APPLICATION scope, or a scope whose id is missing — fall back to the application. Never throw:\n // a key must always be derivable, and an application-scoped key is the correct conservative answer\n // (it is the narrowest scope every file provably has).\n return { scope: ResourcePrimaryScope.APPLICATION, scopeId: applicationId };\n}\n\n/**\n * The caller-authored tail of a key: `[folderPath/]<fileName|fileId>`.\n *\n * Returns the empty string when nothing survives — the caller raises\n * `FILE_STORAGE_KEY_COMPOSITION_FAILED` with its own execution context, which this module does not\n * have.\n */\nexport function composeStorageLeafPath(fileId: string, options?: StorageUploadOptions): string {\n const leafName = options?.fileName?.trim() || fileId;\n const folderPath = options?.folderPath?.trim();\n if (!leafName) {\n return '';\n }\n return folderPath ? `${folderPath}/${leafName}` : leafName;\n}\n\n/**\n * Does `candidate` contain a whole `.` or `..` path segment?\n *\n * ## Why a TEXTUAL check, beside a provider's own containment guard\n *\n * The local provider's guard resolves the path and checks it stays under the base directory, which\n * is strictly stronger for the question \"does this escape the store\". It is strictly WEAKER for the\n * question this key shape exists to answer: once a key carries a six-segment\n * `applications/<app>/files/<resource>/<scope>/<scopeId>/` prefix, a `..` no longer has to escape\n * the store to do damage — it only has to climb out of the TENANT prefix and land under a\n * different one, which the containment check happily admits because the destination is still\n * inside the base.\n *\n * The managed provider states the same thing from the other side (its stored-ref prefix check is\n * textual, so `…/x/../../../elsewhere/y` satisfies it). Both providers therefore refuse a `.`/`..`\n * SEGMENT in the composed key, and the verdict for one authored value no longer depends on which\n * provider a deployment binds.\n *\n * Only a WHOLE segment counts. `v1.2.3`, `..config` and `file..name.txt` are ordinary names, and a\n * substring match on `..` would refuse all three — an over-refusal invisible until an application\n * authors a versioned folder.\n */\nexport function storageKeyHasTraversalSegment(candidate: string): boolean {\n return candidate.split('/').some((segment) => segment === '.' || segment === '..');\n}\n\n/**\n * The application-scoped, resource-scoped, tenant-scoped key for a blob.\n *\n * `applications/<applicationId>/files/<storageName>/<scope>/<scopeId>/<leafPath>`\n *\n * The managed provider prepends its bucket prefix to this; the local provider resolves it against\n * its base directory. Nothing else may re-derive it — the shape is the tenant boundary, and a\n * second derivation is a second boundary.\n */\nexport function composeApplicationStorageKey(args: {\n applicationId: string;\n /** `[folderPath/]<fileName|fileId>` — see {@link composeStorageLeafPath}. */\n leafPath: string;\n /**\n * The resource this blob belongs to. Absent ⇒ {@link UNLINKED_STORAGE_SEGMENT}, an explicit\n * staging segment rather than a fallthrough: late LINKING is allowed (the row's\n * `linkedResourceId` fills in later), late TYPE declaration is not, because the key is derived\n * once at create and the blob never moves.\n */\n linkedResourceType?: ResourceType;\n scope?: FileScopeIdentifiers;\n}): string {\n const storageName = args.linkedResourceType\n ? resolveSharedPersistenceCollectionName(args.linkedResourceType)\n : UNLINKED_STORAGE_SEGMENT;\n const { scope, scopeId } = resolveStorageScopeSegments(args.scope, args.applicationId);\n return API_ROUTES_BACKEND_DEFINITIONS.FILE_STORAGE.STORAGE_KEY_APPLICATION_FILE(\n args.applicationId,\n args.leafPath,\n storageName,\n scope,\n scopeId,\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"file-storage-path-resolver.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-path-resolver.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAmE,MAAM,0BAA0B,CAAC;AAEpI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAElG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAI1E,qBACa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,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;IAMxC;;;;;;;;;OASG;IACH,OAAO,CACL,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,oBAAoB,GAAG,SAAS;IAwEnC,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,eAAe;IAmDvB;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;CAmDhC;AAkBD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7C"}
1
+ {"version":3,"file":"file-storage-path-resolver.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/files/storage/file-storage-path-resolver.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAmE,MAAM,0BAA0B,CAAC;AAEpI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAElG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAI1E,qBACa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,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;IAMxC;;;;;;;;;OASG;IACH,OAAO,CACL,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,oBAAoB,GAAG,SAAS;IAwEnC,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,eAAe;IAmDvB;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;CAmDhC;AAkBD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7C"}
@@ -12,7 +12,7 @@ import type { FileStorageAccepted } from '@wildo-ai/zod-decorators';
12
12
  import type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';
13
13
  import type { File } from '@wildo-ai/saas-models';
14
14
  import type { ExecutionContext } from '../../runtime/models/execution-context.backend.schemas';
15
- export type StoredFileStorageTarget = Pick<File, 'fileId' | 'storageProvider' | 'storageRef'>;
15
+ export type StoredFileStorageTarget = Pick<File, 'fileId' | 'storageProvider' | 'storageRef' | 'uploadedBy' | 'uploadedByEntityType'>;
16
16
  /**
17
17
  * Optional parameters for upload operations.
18
18
  *
@@ -106,6 +106,15 @@ export interface StorageDownloadResult {
106
106
  /**
107
107
  * Storage metadata for a file.
108
108
  */
109
+ /**
110
+ * What a vendor says about a file a person is about to link — the metadata the
111
+ * FILES row is created from, so the row records the vendor's facts rather than
112
+ * whatever the picker showed.
113
+ */
114
+ export interface StorageRemoteFileDescription extends StorageFileMetadata {
115
+ /** The vendor's display name for the file. */
116
+ name: string;
117
+ }
109
118
  export interface StorageFileMetadata {
110
119
  /** Content type (MIME type) */
111
120
  contentType: string;
@@ -133,6 +142,32 @@ export interface StorageProviderHealthResult {
133
142
  export interface IFileStorageProvider {
134
143
  /** Provider identifier — must match a FileStorageAccepted enum value */
135
144
  readonly providerId: FileStorageAccepted;
145
+ /**
146
+ * The external provider whose DELEGATED credential this storage reads and
147
+ * writes through — `'google-drive'` for `GOOGLE_DRIVE` — set only on a storage that
148
+ * lives at a vendor (#394 P5). It is the join the upload handler resolves a
149
+ * picker's `REMOTE_REFERENCE` by: the reference names a provider, the field
150
+ * names the storages it accepts, and the storage whose `connectedProviderRef`
151
+ * is that provider must be one of them. Absent on a storage the framework
152
+ * itself serves.
153
+ */
154
+ readonly connectedProviderRef?: string;
155
+ /**
156
+ * True on a storage whose `delete` forgets the reference and does NOT remove the bytes — a
157
+ * vendor storage where the bytes are a person's own document (#394 P5). A caller that "rolls
158
+ * back" a stored blob by deleting it must read this before logging that the bytes are gone.
159
+ */
160
+ readonly retainsBytesOnDelete?: true;
161
+ /**
162
+ * Describe a file that already exists at the vendor, BEFORE any row exists
163
+ * for it — the verification step of linking a picker's `REMOTE_REFERENCE`
164
+ * (#394 P5). Present only on a storage that can be linked to; a storage that
165
+ * only receives uploads has no such file to describe. Reads through the
166
+ * linker's connected account, which is also the proof that the reference is
167
+ * real and reachable by the person offering it; a reference the vendor does
168
+ * not know, or the linker cannot read, refuses here and no row is created.
169
+ */
170
+ describeRemoteReference?(externalId: string, linker: Pick<File, 'uploadedBy' | 'uploadedByEntityType'>, executionContext: ExecutionContext<any>): Promise<StorageRemoteFileDescription>;
136
171
  /**
137
172
  * Whether this provider has the required configuration to operate.
138
173
  * Returns false when env vars / credentials are absent.
@@ -1 +1 @@
1
- {"version":3,"file":"file-storage-provider.types.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-provider.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-storage-provider.types.d.ts","sourceRoot":"","sources":["../../../../src/files/storage/file-storage-provider.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-storage-provider.types.js","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-provider.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG","sourcesContent":["/**\n * File Storage Provider Interface\n *\n * Abstracts storage operations behind a unified interface.\n * The Wildo-managed MinIO/S3 provider is the default implementation.\n * Future providers (OneDrive, Google Drive, Dropbox, local-directory) implement the same interface.\n *\n * Services inject `IFileStorageProvider` via the `FileStorageRouterBackendService`.\n */\n\nimport { Readable } from 'stream';\nimport type { FileStorageAccepted } from '@wildo-ai/zod-decorators';\nimport type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';\nimport type { File } from '@wildo-ai/saas-models';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\n\nexport type StoredFileStorageTarget = Pick<File, 'fileId' | 'storageProvider' | 'storageRef'>;\n\n/**\n * Optional parameters for upload operations.\n *\n * All path segments are pre-composed by the caller\n * (typically `FileStoragePathResolverBackendService`); the provider\n * only concatenates them onto its own root.\n */\nexport interface StorageUploadOptions {\n /**\n * The resource type this blob belongs to, used to place it under a per-resource\n * segment in the object key: `applications/<appId>/files/<storageName>/…`.\n *\n * OPTIONAL because a blob genuinely may have no resource yet (staged before linking), which\n * lands under `_unlinked/` rather than inventing a resource segment. It is NOT optional because\n * some provider ignores it — every path-based provider composes its key with the same shared\n * composer, so this segment reaches the local-directory provider exactly as it reaches the\n * managed one.\n *\n * The segment is `resolveSharedPersistenceCollectionName(resourceType)`, NOT the raw\n * resource type — the same vocabulary the database grants use, so `USER_SELF` and\n * `USERS` resolve to one prefix because they are the same rows.\n */\n linkedResourceType?: ResourceType;\n\n /**\n * The file's tenant scope, placed into the object key as `<scope>/<scopeId>`.\n *\n * This is what makes a tenant's blobs a PREFIX: erasure, orphan sweeps and \"who owns this object\"\n * become prefix operations instead of per-row database lookups. Omitted ⇒ the key falls back to\n * APPLICATION scope with the resolved application id, so there is exactly ONE key shape and never\n * a branch that produces a second layout.\n */\n scope?: FileScopeIdentifiers;\n\n /**\n * Composed relative folder path for organizing files within\n * the provider's namespace.\n *\n * When set, the provider stores the blob at\n * `<providerRoot>/[applications/<appId>/files/<storageName>/<scope>/<scopeId>/]<folderPath>/<fileName|fileId>`,\n * the bracketed prefix being present unless `includeApplicationId` is explicitly `false`.\n *\n * Forward-slash separated, no leading or trailing slash.\n * @example 'specs/icps/big_companies'\n * @example 'avatars'\n */\n folderPath?: string;\n\n /**\n * Explicit file name to use instead of the fileId.\n * When omitted, the provider falls back to the fileId (UUID).\n * @example 'personna.md'\n * @example 'avatar.png'\n */\n fileName?: string;\n\n /**\n * Whether the framework-derived prefix\n * `applications/<appId>/files/<storageName>/<scope>/<scopeId>/` is placed above the authored\n * folder path and leaf name.\n *\n * - `true` / `undefined` → include it. This is now the default on EVERY provider; the\n * local-directory provider defaulted to `false` until 2026-09-09, which is what left it with no\n * tenant structure.\n * - `false` → the key is the bare `[folderPath/]<fileName|fileId>`. This discards the WHOLE\n * prefix, not only the application segment, so nothing about the blob is addressable by tenant\n * any more. Both providers honour it identically, so one authored value has one meaning.\n */\n includeApplicationId?: boolean;\n}\n\n/**\n * Result of a successful file upload.\n */\nexport interface StorageUploadResult {\n /** Unique storage reference (provider-specific key) */\n storageRef: string;\n /** Storage provider identifier */\n provider: FileStorageAccepted;\n}\n\n/**\n * Result of a file download.\n */\nexport interface StorageDownloadResult {\n /** Readable stream of file content */\n stream: Readable;\n /** Content type (MIME type) */\n contentType: string;\n /** File size in bytes */\n size: number;\n /** ETag for caching */\n etag?: string;\n /** Last modification date */\n lastModified?: Date;\n}\n\n/**\n * Storage metadata for a file.\n */\nexport interface StorageFileMetadata {\n /** Content type (MIME type) */\n contentType: string;\n /** File size in bytes */\n size: number;\n /** ETag for caching */\n etag?: string;\n /** Last modification date */\n lastModified?: Date;\n}\n\n/**\n * Health check result for a storage provider.\n */\nexport interface StorageProviderHealthResult {\n healthy: boolean;\n latency: number;\n error?: string;\n}\n\n/**\n * Unified storage provider interface.\n *\n * All file storage providers must implement this interface.\n * Operations are scoped by executionContext for multi-tenant isolation.\n */\nexport interface IFileStorageProvider {\n /** Provider identifier — must match a FileStorageAccepted enum value */\n readonly providerId: FileStorageAccepted;\n\n /**\n * Whether this provider has the required configuration to operate.\n * Returns false when env vars / credentials are absent.\n */\n isConfigured(): boolean;\n\n /**\n * Eagerly initialize the provider (connect, verify bucket/container).\n * Called at startup for fail-fast. If not called, providers may lazy-init.\n */\n initialize(): Promise<void>;\n\n /**\n * Check provider health (connectivity, bucket reachability).\n */\n healthCheck(): Promise<StorageProviderHealthResult>;\n\n /**\n * Upload a file to storage.\n *\n * @param fileStream - Readable stream of file content\n * @param fileId - Unique file identifier\n * @param mimeType - MIME type of the file\n * @param size - File size in bytes\n * @param executionContext - Execution context (for auth/tenant scoping)\n * @param options - Optional upload options\n * @returns Storage upload result with provider-specific reference\n */\n upload(\n fileStream: Readable,\n fileId: string,\n mimeType: string,\n size: number,\n executionContext: ExecutionContext<any>,\n options?: StorageUploadOptions,\n ): Promise<StorageUploadResult>;\n\n /**\n * Download a file from storage.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n * @returns Download result with stream and metadata\n */\n download(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<StorageDownloadResult>;\n\n /**\n * Delete a file from storage.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n */\n delete(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<void>;\n\n /**\n * Get file metadata without downloading.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n * @returns File metadata\n */\n getMetadata(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<StorageFileMetadata>;\n}\n"]}
1
+ {"version":3,"file":"file-storage-provider.types.js","sourceRoot":"","sources":["../../../../src/files/storage/file-storage-provider.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG","sourcesContent":["/**\n * File Storage Provider Interface\n *\n * Abstracts storage operations behind a unified interface.\n * The Wildo-managed MinIO/S3 provider is the default implementation.\n * Future providers (OneDrive, Google Drive, Dropbox, local-directory) implement the same interface.\n *\n * Services inject `IFileStorageProvider` via the `FileStorageRouterBackendService`.\n */\n\nimport { Readable } from 'stream';\nimport type { FileStorageAccepted } from '@wildo-ai/zod-decorators';\nimport type { FileScopeIdentifiers, ResourceType } from '@wildo-ai/saas-models';\nimport type { File } from '@wildo-ai/saas-models';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\n\nexport type StoredFileStorageTarget = Pick<\n File,\n | 'fileId'\n | 'storageProvider'\n | 'storageRef'\n /*\n * The two uploader fields ride along for a storage that serves bytes through a\n * PERSON's connected account (#394 P5): a Drive file is reachable through the\n * grant of whoever linked or uploaded it, not through the reader's, so the\n * provider needs to know who that was. Both are optional on the row, so a\n * target built from three fields still type-checks — a provider that needs\n * them refuses at the call with a message naming what is missing.\n */\n | 'uploadedBy'\n | 'uploadedByEntityType'\n>;\n\n/**\n * Optional parameters for upload operations.\n *\n * All path segments are pre-composed by the caller\n * (typically `FileStoragePathResolverBackendService`); the provider\n * only concatenates them onto its own root.\n */\nexport interface StorageUploadOptions {\n /**\n * The resource type this blob belongs to, used to place it under a per-resource\n * segment in the object key: `applications/<appId>/files/<storageName>/…`.\n *\n * OPTIONAL because a blob genuinely may have no resource yet (staged before linking), which\n * lands under `_unlinked/` rather than inventing a resource segment. It is NOT optional because\n * some provider ignores it — every path-based provider composes its key with the same shared\n * composer, so this segment reaches the local-directory provider exactly as it reaches the\n * managed one.\n *\n * The segment is `resolveSharedPersistenceCollectionName(resourceType)`, NOT the raw\n * resource type — the same vocabulary the database grants use, so `USER_SELF` and\n * `USERS` resolve to one prefix because they are the same rows.\n */\n linkedResourceType?: ResourceType;\n\n /**\n * The file's tenant scope, placed into the object key as `<scope>/<scopeId>`.\n *\n * This is what makes a tenant's blobs a PREFIX: erasure, orphan sweeps and \"who owns this object\"\n * become prefix operations instead of per-row database lookups. Omitted ⇒ the key falls back to\n * APPLICATION scope with the resolved application id, so there is exactly ONE key shape and never\n * a branch that produces a second layout.\n */\n scope?: FileScopeIdentifiers;\n\n /**\n * Composed relative folder path for organizing files within\n * the provider's namespace.\n *\n * When set, the provider stores the blob at\n * `<providerRoot>/[applications/<appId>/files/<storageName>/<scope>/<scopeId>/]<folderPath>/<fileName|fileId>`,\n * the bracketed prefix being present unless `includeApplicationId` is explicitly `false`.\n *\n * Forward-slash separated, no leading or trailing slash.\n * @example 'specs/icps/big_companies'\n * @example 'avatars'\n */\n folderPath?: string;\n\n /**\n * Explicit file name to use instead of the fileId.\n * When omitted, the provider falls back to the fileId (UUID).\n * @example 'personna.md'\n * @example 'avatar.png'\n */\n fileName?: string;\n\n /**\n * Whether the framework-derived prefix\n * `applications/<appId>/files/<storageName>/<scope>/<scopeId>/` is placed above the authored\n * folder path and leaf name.\n *\n * - `true` / `undefined` → include it. This is now the default on EVERY provider; the\n * local-directory provider defaulted to `false` until 2026-09-09, which is what left it with no\n * tenant structure.\n * - `false` → the key is the bare `[folderPath/]<fileName|fileId>`. This discards the WHOLE\n * prefix, not only the application segment, so nothing about the blob is addressable by tenant\n * any more. Both providers honour it identically, so one authored value has one meaning.\n */\n includeApplicationId?: boolean;\n}\n\n/**\n * Result of a successful file upload.\n */\nexport interface StorageUploadResult {\n /** Unique storage reference (provider-specific key) */\n storageRef: string;\n /** Storage provider identifier */\n provider: FileStorageAccepted;\n}\n\n/**\n * Result of a file download.\n */\nexport interface StorageDownloadResult {\n /** Readable stream of file content */\n stream: Readable;\n /** Content type (MIME type) */\n contentType: string;\n /** File size in bytes */\n size: number;\n /** ETag for caching */\n etag?: string;\n /** Last modification date */\n lastModified?: Date;\n}\n\n/**\n * Storage metadata for a file.\n */\n/**\n * What a vendor says about a file a person is about to link — the metadata the\n * FILES row is created from, so the row records the vendor's facts rather than\n * whatever the picker showed.\n */\nexport interface StorageRemoteFileDescription extends StorageFileMetadata {\n /** The vendor's display name for the file. */\n name: string;\n}\n\nexport interface StorageFileMetadata {\n /** Content type (MIME type) */\n contentType: string;\n /** File size in bytes */\n size: number;\n /** ETag for caching */\n etag?: string;\n /** Last modification date */\n lastModified?: Date;\n}\n\n/**\n * Health check result for a storage provider.\n */\nexport interface StorageProviderHealthResult {\n healthy: boolean;\n latency: number;\n error?: string;\n}\n\n/**\n * Unified storage provider interface.\n *\n * All file storage providers must implement this interface.\n * Operations are scoped by executionContext for multi-tenant isolation.\n */\nexport interface IFileStorageProvider {\n /** Provider identifier — must match a FileStorageAccepted enum value */\n readonly providerId: FileStorageAccepted;\n\n /**\n * The external provider whose DELEGATED credential this storage reads and\n * writes through — `'google-drive'` for `GOOGLE_DRIVE` — set only on a storage that\n * lives at a vendor (#394 P5). It is the join the upload handler resolves a\n * picker's `REMOTE_REFERENCE` by: the reference names a provider, the field\n * names the storages it accepts, and the storage whose `connectedProviderRef`\n * is that provider must be one of them. Absent on a storage the framework\n * itself serves.\n */\n readonly connectedProviderRef?: string;\n\n /**\n * True on a storage whose `delete` forgets the reference and does NOT remove the bytes — a\n * vendor storage where the bytes are a person's own document (#394 P5). A caller that \"rolls\n * back\" a stored blob by deleting it must read this before logging that the bytes are gone.\n */\n readonly retainsBytesOnDelete?: true;\n\n /**\n * Describe a file that already exists at the vendor, BEFORE any row exists\n * for it — the verification step of linking a picker's `REMOTE_REFERENCE`\n * (#394 P5). Present only on a storage that can be linked to; a storage that\n * only receives uploads has no such file to describe. Reads through the\n * linker's connected account, which is also the proof that the reference is\n * real and reachable by the person offering it; a reference the vendor does\n * not know, or the linker cannot read, refuses here and no row is created.\n */\n describeRemoteReference?(\n externalId: string,\n linker: Pick<File, 'uploadedBy' | 'uploadedByEntityType'>,\n executionContext: ExecutionContext<any>,\n ): Promise<StorageRemoteFileDescription>;\n\n /**\n * Whether this provider has the required configuration to operate.\n * Returns false when env vars / credentials are absent.\n */\n isConfigured(): boolean;\n\n /**\n * Eagerly initialize the provider (connect, verify bucket/container).\n * Called at startup for fail-fast. If not called, providers may lazy-init.\n */\n initialize(): Promise<void>;\n\n /**\n * Check provider health (connectivity, bucket reachability).\n */\n healthCheck(): Promise<StorageProviderHealthResult>;\n\n /**\n * Upload a file to storage.\n *\n * @param fileStream - Readable stream of file content\n * @param fileId - Unique file identifier\n * @param mimeType - MIME type of the file\n * @param size - File size in bytes\n * @param executionContext - Execution context (for auth/tenant scoping)\n * @param options - Optional upload options\n * @returns Storage upload result with provider-specific reference\n */\n upload(\n fileStream: Readable,\n fileId: string,\n mimeType: string,\n size: number,\n executionContext: ExecutionContext<any>,\n options?: StorageUploadOptions,\n ): Promise<StorageUploadResult>;\n\n /**\n * Download a file from storage.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n * @returns Download result with stream and metadata\n */\n download(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<StorageDownloadResult>;\n\n /**\n * Delete a file from storage.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n */\n delete(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<void>;\n\n /**\n * Get file metadata without downloading.\n *\n * @param fileId - File identifier\n * @param executionContext - Execution context\n * @returns File metadata\n */\n getMetadata(\n file: StoredFileStorageTarget,\n executionContext: ExecutionContext<any>,\n ): Promise<StorageFileMetadata>;\n}\n"]}
@@ -24,10 +24,20 @@ export declare class FileStorageRouterBackendService {
24
24
  private readonly errorBuilder;
25
25
  private readonly wildoManagedProvider;
26
26
  private readonly localDirectoryProvider;
27
+ private readonly googleDriveProvider;
27
28
  protected logDebug: (message: string, context?: Record<string, unknown>) => void;
28
29
  /** Map of providerId → IFileStorageProvider for O(1) lookup */
29
30
  private readonly providerMap;
30
- constructor(logger: LoggerService, errorBuilder: ErrorBuilderBackendService, wildoManagedProvider: IFileStorageProvider, localDirectoryProvider: IFileStorageProvider);
31
+ constructor(logger: LoggerService, errorBuilder: ErrorBuilderBackendService, wildoManagedProvider: IFileStorageProvider, localDirectoryProvider: IFileStorageProvider, googleDriveProvider: IFileStorageProvider);
32
+ /**
33
+ * The storage a picker's `REMOTE_REFERENCE` lands in, by the PROVIDER the reference names
34
+ * (#394 P5): the storage whose `connectedProviderRef` is that provider — `google-drive` →
35
+ * `GOOGLE_DRIVE`. Registered-or-not is the only question answered here; whether the field
36
+ * accepts that storage and whether it is configured are the caller's, because each refuses
37
+ * with a different message. Undefined when no registered storage is connected through the
38
+ * provider, which is what a Dropbox reference gets until a Dropbox storage exists.
39
+ */
40
+ resolveProviderForConnectedProvider(providerRef: string): IFileStorageProvider | undefined;
31
41
  /**
32
42
  * Resolve the appropriate storage provider for a given set of accepted providers.
33
43
  *
@@ -48,6 +58,8 @@ export declare class FileStorageRouterBackendService {
48
58
  * Use this when no schema-level preference is set.
49
59
  */
50
60
  getDefaultProvider(): IFileStorageProvider;
61
+ /** Every registered storage, configured or not — for validators that report on the unconfigured ones. */
62
+ listProviders(): readonly IFileStorageProvider[];
51
63
  getProviderById(providerId: string): IFileStorageProvider | undefined;
52
64
  /**
53
65
  * Eagerly initialize all configured storage providers.
@@ -60,8 +72,14 @@ export declare class FileStorageRouterBackendService {
60
72
  */
61
73
  healthCheck(): Promise<StorageProviderHealthResult>;
62
74
  /**
63
- * Check if at least one storage provider is configured.
64
- * Returns false when the app doesn't use file features.
75
+ * Whether the APPLICATION has somewhere of its own to put bytes — at least one storage the
76
+ * framework serves with an application credential is configured. Returns false when the app
77
+ * doesn't use file features.
78
+ *
79
+ * A vendor storage (`connectedProviderRef` set) does not count: it is reachable only through a
80
+ * PERSON's delegated grant, so it is nowhere for an archival batch or a health check to write.
81
+ * Counting it made `resolveProvider([WILDO_MANAGED, LOCAL_DIRECTORY])` throw one line after this
82
+ * predicate answered true (#394 P5 review, F6).
65
83
  */
66
84
  isConfigured(): boolean;
67
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-storage-router.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-router.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,KAAK,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAEvG,qBACa,+BAA+B;IAQxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAErC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAbzC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAEjF,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;gBAI7C,MAAM,EAAE,aAAa,EAErB,YAAY,EAAE,0BAA0B,EAExC,oBAAoB,EAAE,oBAAoB,EAE1C,sBAAsB,EAAE,oBAAoB;IAU/D;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,GAAG,oBAAoB;IAgD9E;;;OAGG;IACH,kBAAkB,IAAI,oBAAoB;IAI1C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIrE;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAezD;;;OAGG;IACH,YAAY,IAAI,OAAO;CAQxB"}
1
+ {"version":3,"file":"file-storage-router.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/files/storage/file-storage-router.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,KAAK,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAEvG,qBACa,+BAA+B;IAQxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAErC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAftC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAEjF,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;gBAI7C,MAAM,EAAE,aAAa,EAErB,YAAY,EAAE,0BAA0B,EAExC,oBAAoB,EAAE,oBAAoB,EAE1C,sBAAsB,EAAE,oBAAoB,EAE5C,mBAAmB,EAAE,oBAAoB;IAW5D;;;;;;;OAOG;IACH,mCAAmC,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAU1F;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,GAAG,oBAAoB;IAgD9E;;;OAGG;IACH,kBAAkB,IAAI,oBAAoB;IAI1C,yGAAyG;IACzG,aAAa,IAAI,SAAS,oBAAoB,EAAE;IAIhD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIrE;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAezD;;;;;;;;;OASG;IACH,YAAY,IAAI,OAAO;CAQxB"}
@@ -37,19 +37,41 @@ let FileStorageRouterBackendService = class FileStorageRouterBackendService {
37
37
  errorBuilder;
38
38
  wildoManagedProvider;
39
39
  localDirectoryProvider;
40
+ googleDriveProvider;
40
41
  logDebug;
41
42
  /** Map of providerId → IFileStorageProvider for O(1) lookup */
42
43
  providerMap;
43
- constructor(logger, errorBuilder, wildoManagedProvider, localDirectoryProvider) {
44
+ constructor(logger, errorBuilder, wildoManagedProvider, localDirectoryProvider, googleDriveProvider) {
44
45
  this.logger = logger;
45
46
  this.errorBuilder = errorBuilder;
46
47
  this.wildoManagedProvider = wildoManagedProvider;
47
48
  this.localDirectoryProvider = localDirectoryProvider;
49
+ this.googleDriveProvider = googleDriveProvider;
48
50
  this.logDebug = this.logger.debugByType('FileStorageRouterBackendService');
49
51
  this.logger.setDebugTypeLogging('FileStorageRouterBackendService', false);
50
52
  this.providerMap = new Map();
51
53
  this.providerMap.set(FileStorageAccepted.WILDO_MANAGED, this.wildoManagedProvider);
52
54
  this.providerMap.set(FileStorageAccepted.LOCAL_DIRECTORY, this.localDirectoryProvider);
55
+ this.providerMap.set(FileStorageAccepted.GOOGLE_DRIVE, this.googleDriveProvider);
56
+ }
57
+ /**
58
+ * The storage a picker's `REMOTE_REFERENCE` lands in, by the PROVIDER the reference names
59
+ * (#394 P5): the storage whose `connectedProviderRef` is that provider — `google-drive` →
60
+ * `GOOGLE_DRIVE`. Registered-or-not is the only question answered here; whether the field
61
+ * accepts that storage and whether it is configured are the caller's, because each refuses
62
+ * with a different message. Undefined when no registered storage is connected through the
63
+ * provider, which is what a Dropbox reference gets until a Dropbox storage exists.
64
+ */
65
+ resolveProviderForConnectedProvider(providerRef) {
66
+ // Framework-served storages declare no provider; `undefined === undefined` must not make one
67
+ // of them the answer to a reference that names nothing (the first draft did exactly that).
68
+ if (!providerRef)
69
+ return undefined;
70
+ for (const provider of this.providerMap.values()) {
71
+ if (provider.connectedProviderRef !== undefined && provider.connectedProviderRef === providerRef)
72
+ return provider;
73
+ }
74
+ return undefined;
53
75
  }
54
76
  /**
55
77
  * Resolve the appropriate storage provider for a given set of accepted providers.
@@ -108,6 +130,10 @@ let FileStorageRouterBackendService = class FileStorageRouterBackendService {
108
130
  getDefaultProvider() {
109
131
  return this.wildoManagedProvider;
110
132
  }
133
+ /** Every registered storage, configured or not — for validators that report on the unconfigured ones. */
134
+ listProviders() {
135
+ return [...this.providerMap.values()];
136
+ }
111
137
  getProviderById(providerId) {
112
138
  return this.providerMap.get(providerId);
113
139
  }
@@ -145,12 +171,18 @@ let FileStorageRouterBackendService = class FileStorageRouterBackendService {
145
171
  return { healthy: true, latency: totalLatency };
146
172
  }
147
173
  /**
148
- * Check if at least one storage provider is configured.
149
- * Returns false when the app doesn't use file features.
174
+ * Whether the APPLICATION has somewhere of its own to put bytes — at least one storage the
175
+ * framework serves with an application credential is configured. Returns false when the app
176
+ * doesn't use file features.
177
+ *
178
+ * A vendor storage (`connectedProviderRef` set) does not count: it is reachable only through a
179
+ * PERSON's delegated grant, so it is nowhere for an archival batch or a health check to write.
180
+ * Counting it made `resolveProvider([WILDO_MANAGED, LOCAL_DIRECTORY])` throw one line after this
181
+ * predicate answered true (#394 P5 review, F6).
150
182
  */
151
183
  isConfigured() {
152
184
  for (const provider of this.providerMap.values()) {
153
- if (provider.isConfigured()) {
185
+ if (provider.connectedProviderRef === undefined && provider.isConfigured()) {
154
186
  return true;
155
187
  }
156
188
  }
@@ -163,7 +195,8 @@ FileStorageRouterBackendService = __decorate([
163
195
  __param(1, inject(SAAS_SERVICE_TYPES.ErrorBuilderService)),
164
196
  __param(2, inject(SAAS_SERVICE_TYPES.FileStorageProvider_WildoManaged)),
165
197
  __param(3, inject(SAAS_SERVICE_TYPES.FileStorageProvider_LocalDirectory)),
166
- __metadata("design:paramtypes", [Function, ErrorBuilderBackendService, Object, Object])
198
+ __param(4, inject(SAAS_SERVICE_TYPES.FileStorageProvider_GoogleDrive)),
199
+ __metadata("design:paramtypes", [Function, ErrorBuilderBackendService, Object, Object, Object])
167
200
  ], FileStorageRouterBackendService);
168
201
  export { FileStorageRouterBackendService };
169
202
  //# sourceMappingURL=file-storage-router.backend.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-storage-router.backend.service.js","sourceRoot":"","sources":["../../../../../src/files/storage/file-storage-router.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * File Storage Router Backend Service\n *\n * Selects the appropriate IFileStorageProvider based on:\n * 1. Schema-declared `storageAccepted` (from z_file({ storageAccepted: [...] }))\n * 2. Provider availability (isConfigured() check)\n *\n * Registered providers:\n * - Wildo-managed (MinIO/S3) — default, used when no storageAccepted is specified\n * - Local directory — filesystem-backed storage via `storage.localDirectory`\n *\n * Resolution is strict: when `storageAccepted` is explicitly declared, only\n * those providers are considered. A CONFIGURATION error is thrown when none\n * of the declared providers are configured (no silent fallback to S3).\n * When `storageAccepted` is omitted, Wildo-managed is the default and must\n * be configured, otherwise a CONFIGURATION error is thrown.\n */\n\nimport { injectable, inject } from 'inversify';\nimport { ErrorType, ErrorCustomMessageReference } from '@wildo-ai/saas-models';\nimport { FileStorageAccepted } from '@wildo-ai/zod-decorators';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { IFileStorageProvider, StorageProviderHealthResult } from './file-storage-provider.types';\n\n@injectable()\nexport class FileStorageRouterBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n /** Map of providerId → IFileStorageProvider for O(1) lookup */\n private readonly providerMap: Map<string, IFileStorageProvider>;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService)\n private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.FileStorageProvider_WildoManaged)\n private readonly wildoManagedProvider: IFileStorageProvider,\n @inject(SAAS_SERVICE_TYPES.FileStorageProvider_LocalDirectory)\n private readonly localDirectoryProvider: IFileStorageProvider,\n ) {\n this.logDebug = this.logger.debugByType('FileStorageRouterBackendService');\n this.logger.setDebugTypeLogging('FileStorageRouterBackendService', false);\n\n this.providerMap = new Map<string, IFileStorageProvider>();\n this.providerMap.set(FileStorageAccepted.WILDO_MANAGED, this.wildoManagedProvider);\n this.providerMap.set(FileStorageAccepted.LOCAL_DIRECTORY, this.localDirectoryProvider);\n }\n\n /**\n * Resolve the appropriate storage provider for a given set of accepted providers.\n *\n * Resolution:\n * - `storageAccepted` undefined/empty → default to Wildo-managed (must be configured)\n * - `storageAccepted` specified → first configured match wins; if none configured → CONFIGURATION error\n *\n * Strict: when providers are explicitly declared, no silent fallback to an\n * un-requested provider occurs. This prevents data landing in unexpected storage.\n *\n * @param storageAccepted - Accepted storage providers from z_file() schema (undefined = Wildo-managed)\n * @returns The resolved storage provider\n * @throws CONFIGURATION error when no suitable configured provider is found\n */\n resolveProvider(storageAccepted?: FileStorageAccepted[]): IFileStorageProvider {\n if (!storageAccepted || storageAccepted.length === 0) {\n if (!this.wildoManagedProvider.isConfigured()) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'No storageAccepted specified and default Wildo-managed storage is not configured. ' +\n 'Set STORAGE_ENDPOINT (managed storage credentials are fetched from apps-manager, never configured here) ' +\n 'or specify storageAccepted in z_file().',\n },\n }\n );\n }\n return this.wildoManagedProvider;\n }\n\n // Try to find a registered AND configured provider matching the schema preferences (in order)\n for (const preferred of storageAccepted) {\n const provider = this.providerMap.get(preferred);\n if (provider && provider.isConfigured()) {\n return provider;\n }\n }\n\n // The developer explicitly declared accepted providers but none are configured.\n // Strict behavior: do NOT silently fall back to a provider they didn't request.\n const configuredProviders = Array.from(this.providerMap.entries())\n .filter(([, p]) => p.isConfigured())\n .map(([id]) => id);\n\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'None of the requested storage providers are configured. ' +\n 'Ensure the corresponding environment variables are set for at least one of the declared providers.',\n requestedProviders: storageAccepted,\n configuredProviders,\n },\n }\n );\n }\n\n /**\n * Get the default storage provider (Wildo-managed).\n * Use this when no schema-level preference is set.\n */\n getDefaultProvider(): IFileStorageProvider {\n return this.wildoManagedProvider;\n }\n\n getProviderById(providerId: string): IFileStorageProvider | undefined {\n return this.providerMap.get(providerId);\n }\n\n /**\n * Eagerly initialize all configured storage providers.\n * Call at startup to fail fast on misconfiguration.\n * Providers that are not configured are skipped.\n */\n async initialize(): Promise<void> {\n for (const [providerId, provider] of this.providerMap) {\n if (!provider.isConfigured()) {\n this.logDebug('Skipping unconfigured storage provider', { providerId });\n continue;\n }\n this.logDebug('Initializing storage provider', { providerId });\n await provider.initialize();\n this.logDebug('Storage provider initialized', { providerId });\n }\n }\n\n /**\n * Run health checks on all configured providers.\n */\n async healthCheck(): Promise<StorageProviderHealthResult> {\n let totalLatency = 0;\n for (const [providerId, provider] of this.providerMap) {\n if (!provider.isConfigured()) {\n continue;\n }\n const result = await provider.healthCheck();\n totalLatency += result.latency;\n if (!result.healthy) {\n return { healthy: false, latency: totalLatency, error: `${providerId}: ${result.error}` };\n }\n }\n return { healthy: true, latency: totalLatency };\n }\n\n /**\n * Check if at least one storage provider is configured.\n * Returns false when the app doesn't use file features.\n */\n isConfigured(): boolean {\n for (const provider of this.providerMap.values()) {\n if (provider.isConfigured()) {\n return true;\n }\n }\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"file-storage-router.backend.service.js","sourceRoot":"","sources":["../../../../src/files/storage/file-storage-router.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * File Storage Router Backend Service\n *\n * Selects the appropriate IFileStorageProvider based on:\n * 1. Schema-declared `storageAccepted` (from z_file({ storageAccepted: [...] }))\n * 2. Provider availability (isConfigured() check)\n *\n * Registered providers:\n * - Wildo-managed (MinIO/S3) — default, used when no storageAccepted is specified\n * - Local directory — filesystem-backed storage via `storage.localDirectory`\n *\n * Resolution is strict: when `storageAccepted` is explicitly declared, only\n * those providers are considered. A CONFIGURATION error is thrown when none\n * of the declared providers are configured (no silent fallback to S3).\n * When `storageAccepted` is omitted, Wildo-managed is the default and must\n * be configured, otherwise a CONFIGURATION error is thrown.\n */\n\nimport { injectable, inject } from 'inversify';\nimport { ErrorType, ErrorCustomMessageReference } from '@wildo-ai/saas-models';\nimport { FileStorageAccepted } from '@wildo-ai/zod-decorators';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { IFileStorageProvider, StorageProviderHealthResult } from './file-storage-provider.types';\n\n@injectable()\nexport class FileStorageRouterBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n /** Map of providerId → IFileStorageProvider for O(1) lookup */\n private readonly providerMap: Map<string, IFileStorageProvider>;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService)\n private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.FileStorageProvider_WildoManaged)\n private readonly wildoManagedProvider: IFileStorageProvider,\n @inject(SAAS_SERVICE_TYPES.FileStorageProvider_LocalDirectory)\n private readonly localDirectoryProvider: IFileStorageProvider,\n @inject(SAAS_SERVICE_TYPES.FileStorageProvider_GoogleDrive)\n private readonly googleDriveProvider: IFileStorageProvider,\n ) {\n this.logDebug = this.logger.debugByType('FileStorageRouterBackendService');\n this.logger.setDebugTypeLogging('FileStorageRouterBackendService', false);\n\n this.providerMap = new Map<string, IFileStorageProvider>();\n this.providerMap.set(FileStorageAccepted.WILDO_MANAGED, this.wildoManagedProvider);\n this.providerMap.set(FileStorageAccepted.LOCAL_DIRECTORY, this.localDirectoryProvider);\n this.providerMap.set(FileStorageAccepted.GOOGLE_DRIVE, this.googleDriveProvider);\n }\n\n /**\n * The storage a picker's `REMOTE_REFERENCE` lands in, by the PROVIDER the reference names\n * (#394 P5): the storage whose `connectedProviderRef` is that provider — `google-drive` →\n * `GOOGLE_DRIVE`. Registered-or-not is the only question answered here; whether the field\n * accepts that storage and whether it is configured are the caller's, because each refuses\n * with a different message. Undefined when no registered storage is connected through the\n * provider, which is what a Dropbox reference gets until a Dropbox storage exists.\n */\n resolveProviderForConnectedProvider(providerRef: string): IFileStorageProvider | undefined {\n // Framework-served storages declare no provider; `undefined === undefined` must not make one\n // of them the answer to a reference that names nothing (the first draft did exactly that).\n if (!providerRef) return undefined;\n for (const provider of this.providerMap.values()) {\n if (provider.connectedProviderRef !== undefined && provider.connectedProviderRef === providerRef) return provider;\n }\n return undefined;\n }\n\n /**\n * Resolve the appropriate storage provider for a given set of accepted providers.\n *\n * Resolution:\n * - `storageAccepted` undefined/empty → default to Wildo-managed (must be configured)\n * - `storageAccepted` specified → first configured match wins; if none configured → CONFIGURATION error\n *\n * Strict: when providers are explicitly declared, no silent fallback to an\n * un-requested provider occurs. This prevents data landing in unexpected storage.\n *\n * @param storageAccepted - Accepted storage providers from z_file() schema (undefined = Wildo-managed)\n * @returns The resolved storage provider\n * @throws CONFIGURATION error when no suitable configured provider is found\n */\n resolveProvider(storageAccepted?: FileStorageAccepted[]): IFileStorageProvider {\n if (!storageAccepted || storageAccepted.length === 0) {\n if (!this.wildoManagedProvider.isConfigured()) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'No storageAccepted specified and default Wildo-managed storage is not configured. ' +\n 'Set STORAGE_ENDPOINT (managed storage credentials are fetched from apps-manager, never configured here) ' +\n 'or specify storageAccepted in z_file().',\n },\n }\n );\n }\n return this.wildoManagedProvider;\n }\n\n // Try to find a registered AND configured provider matching the schema preferences (in order)\n for (const preferred of storageAccepted) {\n const provider = this.providerMap.get(preferred);\n if (provider && provider.isConfigured()) {\n return provider;\n }\n }\n\n // The developer explicitly declared accepted providers but none are configured.\n // Strict behavior: do NOT silently fall back to a provider they didn't request.\n const configuredProviders = Array.from(this.providerMap.entries())\n .filter(([, p]) => p.isConfigured())\n .map(([id]) => id);\n\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'None of the requested storage providers are configured. ' +\n 'Ensure the corresponding environment variables are set for at least one of the declared providers.',\n requestedProviders: storageAccepted,\n configuredProviders,\n },\n }\n );\n }\n\n /**\n * Get the default storage provider (Wildo-managed).\n * Use this when no schema-level preference is set.\n */\n getDefaultProvider(): IFileStorageProvider {\n return this.wildoManagedProvider;\n }\n\n /** Every registered storage, configured or not — for validators that report on the unconfigured ones. */\n listProviders(): readonly IFileStorageProvider[] {\n return [...this.providerMap.values()];\n }\n\n getProviderById(providerId: string): IFileStorageProvider | undefined {\n return this.providerMap.get(providerId);\n }\n\n /**\n * Eagerly initialize all configured storage providers.\n * Call at startup to fail fast on misconfiguration.\n * Providers that are not configured are skipped.\n */\n async initialize(): Promise<void> {\n for (const [providerId, provider] of this.providerMap) {\n if (!provider.isConfigured()) {\n this.logDebug('Skipping unconfigured storage provider', { providerId });\n continue;\n }\n this.logDebug('Initializing storage provider', { providerId });\n await provider.initialize();\n this.logDebug('Storage provider initialized', { providerId });\n }\n }\n\n /**\n * Run health checks on all configured providers.\n */\n async healthCheck(): Promise<StorageProviderHealthResult> {\n let totalLatency = 0;\n for (const [providerId, provider] of this.providerMap) {\n if (!provider.isConfigured()) {\n continue;\n }\n const result = await provider.healthCheck();\n totalLatency += result.latency;\n if (!result.healthy) {\n return { healthy: false, latency: totalLatency, error: `${providerId}: ${result.error}` };\n }\n }\n return { healthy: true, latency: totalLatency };\n }\n\n /**\n * Whether the APPLICATION has somewhere of its own to put bytes — at least one storage the\n * framework serves with an application credential is configured. Returns false when the app\n * doesn't use file features.\n *\n * A vendor storage (`connectedProviderRef` set) does not count: it is reachable only through a\n * PERSON's delegated grant, so it is nowhere for an archival batch or a health check to write.\n * Counting it made `resolveProvider([WILDO_MANAGED, LOCAL_DIRECTORY])` throw one line after this\n * predicate answered true (#394 P5 review, F6).\n */\n isConfigured(): boolean {\n for (const provider of this.providerMap.values()) {\n if (provider.connectedProviderRef === undefined && provider.isConfigured()) {\n return true;\n }\n }\n return false;\n }\n}\n"]}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * `FileStorageAccepted.GOOGLE_DRIVE` — a file storage whose bytes live in a PERSON's Google Drive
3
+ * (#394 P5).
4
+ *
5
+ * Every other storage here is the application's: it holds a credential of its own and every row
6
+ * is reachable with it. This one holds none. A Drive file is reachable through exactly one grant —
7
+ * the delegated OAuth2 token of the person who linked it (a picker's `REMOTE_REFERENCE`) or
8
+ * uploaded it — so the row's `uploadedBy` is the credential key, resolved through the same
9
+ * connected-accounts store and the same admissibility predicate the browser access-token door
10
+ * uses. A reader who is not the linker still reads the file: the application authorizes the ROW,
11
+ * and the storage reads the BYTES as the linker, which is the delegated access the person granted
12
+ * when they connected the account. Each such read is a recorded credential USE.
13
+ *
14
+ * Two decisions, written down because they are not the obvious ones:
15
+ *
16
+ * - `delete` NEVER touches Drive. The application never owned these bytes: a linked file is the
17
+ * person's document, and an uploaded one landed in their Drive under their account. Deleting a
18
+ * person's own document because an application row went away is the irreversible act this
19
+ * repository requires a deliberate door for, and there is no such door yet. So a delete forgets
20
+ * the reference and says so — a stale file in someone's Drive is a nuisance; a vanished one is
21
+ * an incident.
22
+ * - `isConfigured` asks the registry, not the network. There is no application credential to
23
+ * probe with, and a per-person storage is "configured" exactly when the provider admits a
24
+ * USER-owned delegated connection — the condition under which any row could ever be read.
25
+ *
26
+ * Outbound calls go to one fixed vendor host, so they are not SSRF-pinned; each carries a deadline.
27
+ */
28
+ import { Readable } from 'stream';
29
+ import type { File } from '@wildo-ai/saas-models';
30
+ import { FileStorageAccepted } from '@wildo-ai/zod-decorators';
31
+ import type { LoggerService } from '../../monitoring/logger/services/logger.service';
32
+ import { ErrorBuilderBackendService } from '../../errors/services/error-builder.backend.service';
33
+ import { AppConfigurationService } from '../../config/services/app-configuration.backend.service';
34
+ import type { ExecutionContext } from '../../runtime/models/execution-context.backend.schemas';
35
+ import { ExternalProvidersRegistryBackendService } from '../../external-providers/services/external-providers-registry.backend.service';
36
+ import type { UserProviderCredentialResolverPort } from '../../security/connected-accounts/user-provider-credential-resolver.port';
37
+ import type { IFileStorageProvider, StorageDownloadResult, StorageFileMetadata, StorageProviderHealthResult, StorageRemoteFileDescription, StorageUploadOptions, StorageUploadResult, StoredFileStorageTarget } from './file-storage-provider.types';
38
+ /**
39
+ * The provider whose delegated credential this storage reads through: the CATALOGUE `google-drive`
40
+ * provider (`@wildo-ai/providers/google-drive`), whose OAuth2 client a person connects their Drive
41
+ * through under the `drive.file` scope — not the engine `google` SSO provider, which mints no
42
+ * delegated token. The frontend `google-drive` module carries the same ref, so the picker, the
43
+ * access-token door and this storage all name one account.
44
+ */
45
+ export declare const GOOGLE_DRIVE_CONNECTED_PROVIDER_REF = "google-drive";
46
+ /** Drive v3, the only host this storage ever talks to. */
47
+ export declare const GOOGLE_DRIVE_API_ORIGIN = "https://www.googleapis.com";
48
+ /** One deadline for every call; a download of a large file streams past it only once headers arrived. */
49
+ export declare const GOOGLE_DRIVE_REQUEST_TIMEOUT_MS = 30000;
50
+ export declare class GoogleDriveStorageProvider implements IFileStorageProvider {
51
+ private readonly logger;
52
+ private readonly errorBuilder;
53
+ private readonly appConfigService;
54
+ private readonly registry;
55
+ private readonly userCredentials;
56
+ readonly providerId = FileStorageAccepted.GOOGLE_DRIVE;
57
+ readonly connectedProviderRef = "google-drive";
58
+ /** `delete` forgets the reference and leaves the bytes in the person's Drive — see the header. */
59
+ readonly retainsBytesOnDelete = true;
60
+ private readonly logDebug;
61
+ constructor(logger: LoggerService, errorBuilder: ErrorBuilderBackendService, appConfigService: AppConfigurationService, registry: ExternalProvidersRegistryBackendService, userCredentials: UserProviderCredentialResolverPort);
62
+ isConfigured(): boolean;
63
+ initialize(): Promise<void>;
64
+ healthCheck(): Promise<StorageProviderHealthResult>;
65
+ describeRemoteReference(externalId: string, linker: Pick<File, 'uploadedBy' | 'uploadedByEntityType'>, executionContext: ExecutionContext<any>): Promise<StorageRemoteFileDescription>;
66
+ upload(fileStream: Readable, fileId: string, mimeType: string, size: number, executionContext: ExecutionContext<any>, options?: StorageUploadOptions): Promise<StorageUploadResult>;
67
+ download(file: StoredFileStorageTarget, executionContext: ExecutionContext<any>): Promise<StorageDownloadResult>;
68
+ delete(file: StoredFileStorageTarget, _executionContext: ExecutionContext<any>): Promise<void>;
69
+ getMetadata(file: StoredFileStorageTarget, executionContext: ExecutionContext<any>): Promise<StorageFileMetadata>;
70
+ /**
71
+ * The delegated token of the person a target names. Three refusals, each naming what is
72
+ * missing: the target names no signed-in person; the provider admits no personal connection;
73
+ * the person's connection is gone. Every success is a recorded credential use.
74
+ *
75
+ * assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — a person's delegated grant is
76
+ * spent server-side only, only for a file that person linked or uploaded, and only as a
77
+ * recorded use; the token never reaches the reader.
78
+ */
79
+ private resolveLinkerToken;
80
+ private requireLinker;
81
+ private requireStorageRef;
82
+ private fetchMetadata;
83
+ private toDescription;
84
+ /** One call shape: fixed host, a deadline, and vendor status codes mapped to this repository's error types. */
85
+ private call;
86
+ }
87
+ //# sourceMappingURL=google-drive-storage-provider.backend.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-drive-storage-provider.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/files/storage/google-drive-storage-provider.backend.service.ts"],"names":[],"mappings":"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"}