@wildo-ai/saas-models 1.1.9 → 1.1.10

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 (936) hide show
  1. package/dist/esm/_inspect.d.ts.map +1 -1
  2. package/dist/esm/_inspect.js.map +1 -1
  3. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
  4. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js.map +1 -1
  5. package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/application-subject.shared.schemas.js.map +1 -1
  7. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  8. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
  9. package/dist/esm/applications/applications-context.schemas.d.ts +68 -2
  10. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  11. package/dist/esm/applications/applications-context.schemas.js.map +1 -1
  12. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  13. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  14. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  15. package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
  16. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  17. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
  18. package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
  19. package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
  20. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  21. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  22. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  23. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  24. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  25. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  26. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  27. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
  28. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  29. package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
  30. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
  31. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
  32. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
  33. package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
  34. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
  35. package/dist/esm/billing/price.shared.resources-config.schemas.js.map +1 -1
  36. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  37. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  38. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  39. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  40. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  41. package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
  42. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  43. package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
  44. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  45. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  46. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
  47. package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
  48. package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
  49. package/dist/esm/billing/promotions.shared.schemas.js.map +1 -1
  50. package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts.map +1 -1
  51. package/dist/esm/billing/public-pricing-catalog.shared.atoms.js.map +1 -1
  52. package/dist/esm/billing/public-pricing-catalog.shared.d.ts.map +1 -1
  53. package/dist/esm/billing/public-pricing-catalog.shared.js.map +1 -1
  54. package/dist/esm/billing/referral-reward.shared.schemas.d.ts.map +1 -1
  55. package/dist/esm/billing/referral-reward.shared.schemas.js.map +1 -1
  56. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  57. package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
  58. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  59. package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
  60. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  61. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  62. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  63. package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
  64. package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts.map +1 -1
  65. package/dist/esm/billing/usage-flush-evidence.shared.schemas.js.map +1 -1
  66. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
  67. package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
  68. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  69. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  70. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
  71. package/dist/esm/charts/aggregation-query.shared.schemas.js.map +1 -1
  72. package/dist/esm/charts/aggregation.shared.definitions.d.ts.map +1 -1
  73. package/dist/esm/charts/aggregation.shared.definitions.js.map +1 -1
  74. package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
  75. package/dist/esm/charts/chart-definition-builder.shared.js.map +1 -1
  76. package/dist/esm/companion/artifact-placement.shared.definitions.d.ts.map +1 -1
  77. package/dist/esm/companion/artifact-placement.shared.definitions.js.map +1 -1
  78. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  79. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  80. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
  81. package/dist/esm/companion/shared-library-companion.shared.definitions.js.map +1 -1
  82. package/dist/esm/companion-exports.d.ts.map +1 -1
  83. package/dist/esm/companion-exports.js.map +1 -1
  84. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +1 -1
  85. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  86. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +5 -2
  87. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
  88. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -1
  89. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -1
  90. package/dist/esm/compliance/audit-trails/audit-event-classification.shared.d.ts +28 -0
  91. package/dist/esm/compliance/audit-trails/audit-event-classification.shared.d.ts.map +1 -0
  92. package/dist/esm/compliance/audit-trails/audit-event-classification.shared.js +30 -0
  93. package/dist/esm/compliance/audit-trails/audit-event-classification.shared.js.map +1 -0
  94. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -1
  95. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -1
  96. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
  97. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js.map +1 -1
  98. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +1 -1
  99. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  100. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +2 -1
  101. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
  102. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +20 -0
  103. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  104. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +40 -0
  105. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  106. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +1 -14
  107. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  108. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +1 -16
  109. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  110. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts +17 -4
  111. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  112. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +25 -5
  113. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  114. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts.map +1 -1
  115. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js.map +1 -1
  116. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts.map +1 -1
  117. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js.map +1 -1
  118. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts +0 -50
  119. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
  120. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js +4 -51
  121. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -1
  122. package/dist/esm/compliance/documents/public-governed-documents.shared.d.ts +67 -0
  123. package/dist/esm/compliance/documents/public-governed-documents.shared.d.ts.map +1 -0
  124. package/dist/esm/compliance/documents/public-governed-documents.shared.js +69 -0
  125. package/dist/esm/compliance/documents/public-governed-documents.shared.js.map +1 -0
  126. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts.map +1 -1
  127. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js.map +1 -1
  128. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts.map +1 -1
  129. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js.map +1 -1
  130. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
  131. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
  132. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts.map +1 -1
  133. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js.map +1 -1
  134. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
  135. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -1
  136. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts.map +1 -1
  137. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js.map +1 -1
  138. package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts.map +1 -1
  139. package/dist/esm/compliance/privacy/consent-purposes.shared.js.map +1 -1
  140. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -1
  141. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +1 -1
  142. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -1
  143. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
  144. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -1
  145. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
  146. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
  147. package/dist/esm/compliance/privacy/jurisdiction-containment.shared.d.ts +32 -0
  148. package/dist/esm/compliance/privacy/jurisdiction-containment.shared.d.ts.map +1 -0
  149. package/dist/esm/compliance/privacy/jurisdiction-containment.shared.js +46 -0
  150. package/dist/esm/compliance/privacy/jurisdiction-containment.shared.js.map +1 -0
  151. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts.map +1 -1
  152. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js.map +1 -1
  153. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts.map +1 -1
  154. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js.map +1 -1
  155. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts.map +1 -1
  156. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js.map +1 -1
  157. package/dist/esm/compliance/privacy/legal-notice-obligation.shared.d.ts +47 -0
  158. package/dist/esm/compliance/privacy/legal-notice-obligation.shared.d.ts.map +1 -0
  159. package/dist/esm/compliance/privacy/legal-notice-obligation.shared.js +54 -0
  160. package/dist/esm/compliance/privacy/legal-notice-obligation.shared.js.map +1 -0
  161. package/dist/esm/compliance/privacy/legal-notice.shared.d.ts +105 -0
  162. package/dist/esm/compliance/privacy/legal-notice.shared.d.ts.map +1 -0
  163. package/dist/esm/compliance/privacy/legal-notice.shared.js +112 -0
  164. package/dist/esm/compliance/privacy/legal-notice.shared.js.map +1 -0
  165. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +1 -27
  166. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
  167. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +2 -41
  168. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
  169. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +51 -0
  170. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
  171. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +65 -0
  172. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
  173. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
  174. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js.map +1 -1
  175. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
  176. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js.map +1 -1
  177. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  178. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  179. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts.map +1 -1
  180. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js.map +1 -1
  181. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts.map +1 -1
  182. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js.map +1 -1
  183. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  184. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  185. package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts.map +1 -1
  186. package/dist/esm/compliance/privacy/retention-binding.shared.utils.js.map +1 -1
  187. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts.map +1 -1
  188. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js.map +1 -1
  189. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts +8 -8
  190. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts.map +1 -1
  191. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js.map +1 -1
  192. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
  193. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -1
  194. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts.map +1 -1
  195. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js.map +1 -1
  196. package/dist/esm/compliance/privacy/sharing.shared.schemas.d.ts.map +1 -1
  197. package/dist/esm/compliance/privacy/sharing.shared.schemas.js.map +1 -1
  198. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts.map +1 -1
  199. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js.map +1 -1
  200. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts.map +1 -1
  201. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js.map +1 -1
  202. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
  203. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
  204. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
  205. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -1
  206. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  207. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  208. package/dist/esm/compliance/review-cadence.shared.schemas.d.ts.map +1 -1
  209. package/dist/esm/compliance/review-cadence.shared.schemas.js.map +1 -1
  210. package/dist/esm/compliance/risk-posture.shared.schemas.d.ts.map +1 -1
  211. package/dist/esm/compliance/risk-posture.shared.schemas.js.map +1 -1
  212. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  213. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  214. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +63 -1
  215. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  216. package/dist/esm/config/app-configuration-shared.shared.schemas.js +11 -0
  217. package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
  218. package/dist/esm/config/app-frontend-type.shared.schemas.d.ts.map +1 -1
  219. package/dist/esm/config/app-frontend-type.shared.schemas.js.map +1 -1
  220. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  221. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  222. package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
  223. package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -1
  224. package/dist/esm/config/configuration-validation.shared.schemas.d.ts.map +1 -1
  225. package/dist/esm/config/configuration-validation.shared.schemas.js.map +1 -1
  226. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  227. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  228. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +16 -16
  229. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
  230. package/dist/esm/config/frontend/chart-definition.shared.schemas.js.map +1 -1
  231. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
  232. package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
  233. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  234. package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
  235. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
  236. package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
  237. package/dist/esm/config/postgresql.shared.schemas.d.ts.map +1 -1
  238. package/dist/esm/config/postgresql.shared.schemas.js.map +1 -1
  239. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
  240. package/dist/esm/config/registration-acquisition-policy.shared.utils.js.map +1 -1
  241. package/dist/esm/config-authoring.entry.d.ts.map +1 -1
  242. package/dist/esm/config-authoring.entry.js.map +1 -1
  243. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
  244. package/dist/esm/crdt/crdt-merge.shared.utils.js.map +1 -1
  245. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
  246. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js.map +1 -1
  247. package/dist/esm/errors/caught-error-description.shared.utils.d.ts +5 -1
  248. package/dist/esm/errors/caught-error-description.shared.utils.d.ts.map +1 -1
  249. package/dist/esm/errors/caught-error-description.shared.utils.js +48 -4
  250. package/dist/esm/errors/caught-error-description.shared.utils.js.map +1 -1
  251. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  252. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  253. package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
  254. package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
  255. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  256. package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
  257. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  258. package/dist/esm/errors/errors.shared.utils.js.map +1 -1
  259. package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts.map +1 -1
  260. package/dist/esm/errors/resource-access-forbidden.shared.error.js.map +1 -1
  261. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -1
  262. package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -1
  263. package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts.map +1 -1
  264. package/dist/esm/errors/zod-issue-formatting.shared.utils.js.map +1 -1
  265. package/dist/esm/exports/tabular-csv.shared.utils.d.ts.map +1 -1
  266. package/dist/esm/exports/tabular-csv.shared.utils.js.map +1 -1
  267. package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts.map +1 -1
  268. package/dist/esm/external-data/external-data-pipeline-description.shared.js.map +1 -1
  269. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts.map +1 -1
  270. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js.map +1 -1
  271. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  272. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  273. package/dist/esm/external-data/external-data-provenance.shared.d.ts.map +1 -1
  274. package/dist/esm/external-data/external-data-provenance.shared.js.map +1 -1
  275. package/dist/esm/external-data.exports.d.ts.map +1 -1
  276. package/dist/esm/external-data.exports.js.map +1 -1
  277. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
  278. package/dist/esm/external-providers/compose-provider-registry.shared.js.map +1 -1
  279. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  280. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  281. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  282. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  283. package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -1
  284. package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -1
  285. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
  286. package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
  287. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +34 -1
  288. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  289. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js.map +1 -1
  290. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
  291. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
  292. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
  293. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
  294. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  295. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  296. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -1
  297. package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -1
  298. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts.map +1 -1
  299. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js.map +1 -1
  300. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts.map +1 -1
  301. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js.map +1 -1
  302. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts.map +1 -1
  303. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js.map +1 -1
  304. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts.map +1 -1
  305. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js.map +1 -1
  306. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -1
  307. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -1
  308. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  309. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  310. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  311. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  312. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -1
  313. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -1
  314. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
  315. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
  316. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
  317. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
  318. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts.map +1 -1
  319. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js.map +1 -1
  320. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  321. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
  322. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts.map +1 -1
  323. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js.map +1 -1
  324. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts.map +1 -1
  325. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js.map +1 -1
  326. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -1
  327. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -1
  328. package/dist/esm/external-providers/provider-usage-cost.shared.d.ts.map +1 -1
  329. package/dist/esm/external-providers/provider-usage-cost.shared.js.map +1 -1
  330. package/dist/esm/external-providers/provider-usage-pricing.example.d.ts.map +1 -1
  331. package/dist/esm/external-providers/provider-usage-pricing.example.js.map +1 -1
  332. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
  333. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -1
  334. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
  335. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
  336. package/dist/esm/features/connected-feature.example.d.ts.map +1 -1
  337. package/dist/esm/features/connected-feature.example.js.map +1 -1
  338. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  339. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  340. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  341. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  342. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  343. package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
  344. package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
  345. package/dist/esm/features/feature-registry.shared.js.map +1 -1
  346. package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
  347. package/dist/esm/features/feature-resolution.shared.schemas.js.map +1 -1
  348. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  349. package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
  350. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
  351. package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
  352. package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -1
  353. package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -1
  354. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
  355. package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
  356. package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
  357. package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
  358. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  359. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  360. package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
  361. package/dist/esm/files/files.shared.utils.js.map +1 -1
  362. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  363. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -1
  364. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
  365. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -1
  366. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
  367. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -1
  368. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
  369. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js.map +1 -1
  370. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  371. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  372. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
  373. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -1
  374. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts.map +1 -1
  375. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js.map +1 -1
  376. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts.map +1 -1
  377. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js.map +1 -1
  378. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  379. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  380. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts.map +1 -1
  381. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js.map +1 -1
  382. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +2 -1
  383. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
  384. package/dist/esm/flows-actors/deliberation.shared.schemas.js +2 -1
  385. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
  386. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts.map +1 -1
  387. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js.map +1 -1
  388. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
  389. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -1
  390. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  391. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  392. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
  393. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -1
  394. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
  395. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -1
  396. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  397. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  398. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  399. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
  400. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  401. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
  402. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  403. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  404. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
  405. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js.map +1 -1
  406. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  407. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  408. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  409. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  410. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -1
  411. package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -1
  412. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
  413. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
  414. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts.map +1 -1
  415. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js.map +1 -1
  416. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts.map +1 -1
  417. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js.map +1 -1
  418. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts.map +1 -1
  419. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js.map +1 -1
  420. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts.map +1 -1
  421. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js.map +1 -1
  422. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts.map +1 -1
  423. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js.map +1 -1
  424. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
  425. package/dist/esm/flows-actors/prompt-ir.shared.schemas.js.map +1 -1
  426. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -1
  427. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -1
  428. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -1
  429. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -1
  430. package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts.map +1 -1
  431. package/dist/esm/flows-actors/review-deadlines.shared.schemas.js.map +1 -1
  432. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  433. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
  434. package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/work-attribution.shared.schemas.js.map +1 -1
  436. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
  437. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
  438. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
  439. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -1
  440. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
  441. package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
  442. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
  443. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
  444. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  445. package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
  446. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
  447. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
  448. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts +2 -2
  449. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
  450. package/dist/esm/guidance/lifecycle-config.shared.schemas.js.map +1 -1
  451. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
  452. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
  453. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
  454. package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
  455. package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
  456. package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
  457. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
  458. package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
  459. package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts.map +1 -1
  460. package/dist/esm/guidance/progression-presentation.shared.schemas.js.map +1 -1
  461. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  462. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
  463. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  464. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  465. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
  466. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -1
  467. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  468. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
  469. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts.map +1 -1
  470. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js.map +1 -1
  471. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts.map +1 -1
  472. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js.map +1 -1
  473. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -1
  474. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -1
  475. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts.map +1 -1
  476. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js.map +1 -1
  477. package/dist/esm/i18n/application-config-vocabulary.shared.d.ts.map +1 -1
  478. package/dist/esm/i18n/application-config-vocabulary.shared.js.map +1 -1
  479. package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts.map +1 -1
  480. package/dist/esm/i18n/engine-open-vocabulary-values.shared.js.map +1 -1
  481. package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts.map +1 -1
  482. package/dist/esm/i18n/engine-open-vocabulary.shared.js.map +1 -1
  483. package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts.map +1 -1
  484. package/dist/esm/i18n/interpolate-label-params.shared.utils.js.map +1 -1
  485. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
  486. package/dist/esm/i18n/labelling.dto.shared.schemas.js.map +1 -1
  487. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts.map +1 -1
  488. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js.map +1 -1
  489. package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts.map +1 -1
  490. package/dist/esm/inbound/conversation-threads.shared.schemas.js.map +1 -1
  491. package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts.map +1 -1
  492. package/dist/esm/inbound/inbound-channels.shared.schemas.js.map +1 -1
  493. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts.map +1 -1
  494. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js.map +1 -1
  495. package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts.map +1 -1
  496. package/dist/esm/inbound/inbound-delivery.shared.schemas.js.map +1 -1
  497. package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts.map +1 -1
  498. package/dist/esm/inbound/inbound-endpoint-env.shared.js.map +1 -1
  499. package/dist/esm/index.d.ts +5 -0
  500. package/dist/esm/index.d.ts.map +1 -1
  501. package/dist/esm/index.js +5 -0
  502. package/dist/esm/index.js.map +1 -1
  503. package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -1
  504. package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -1
  505. package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -1
  506. package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -1
  507. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts.map +1 -1
  508. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js.map +1 -1
  509. package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
  510. package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
  511. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
  512. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
  513. package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.d.ts.map +1 -1
  514. package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.js.map +1 -1
  515. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +13 -1
  516. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -1
  517. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +21 -1
  518. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -1
  519. package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -1
  520. package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -1
  521. package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
  522. package/dist/esm/meta-workflows.exports.js.map +1 -1
  523. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
  524. package/dist/esm/monitoring/monitoring.shared.schemas.js.map +1 -1
  525. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
  526. package/dist/esm/notifications/email/email-context.shared.schemas.js.map +1 -1
  527. package/dist/esm/notifications/email/email-submission.shared.enums.d.ts.map +1 -1
  528. package/dist/esm/notifications/email/email-submission.shared.enums.js.map +1 -1
  529. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  530. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  531. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
  532. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
  533. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts.map +1 -1
  534. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js.map +1 -1
  535. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts.map +1 -1
  536. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js.map +1 -1
  537. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
  538. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.js.map +1 -1
  539. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  540. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
  541. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
  542. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -1
  543. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  544. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  545. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  546. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  547. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  548. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  549. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  550. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  551. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
  552. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
  553. package/dist/esm/notifications/notifications.shared.schemas.d.ts +5 -3
  554. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  555. package/dist/esm/notifications/notifications.shared.schemas.js +5 -3
  556. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  557. package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts.map +1 -1
  558. package/dist/esm/organizations/application-owner-organization.shared.schemas.js.map +1 -1
  559. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
  560. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  561. package/dist/esm/organizations/organization-features.shared.schemas.d.ts.map +1 -1
  562. package/dist/esm/organizations/organization-features.shared.schemas.js.map +1 -1
  563. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  564. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
  565. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  566. package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
  567. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
  568. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js.map +1 -1
  569. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  570. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  571. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  572. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js.map +1 -1
  573. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  574. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  575. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  576. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js.map +1 -1
  577. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  578. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  579. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
  580. package/dist/esm/organizations/organization-unit-inheritance.shared.js.map +1 -1
  581. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
  582. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -1
  583. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
  584. package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -1
  585. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
  586. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -1
  587. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
  588. package/dist/esm/organizations/organization-unit-narrowing.example.js.map +1 -1
  589. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  590. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  591. package/dist/esm/organizations/organization-units.shared.path.d.ts.map +1 -1
  592. package/dist/esm/organizations/organization-units.shared.path.js.map +1 -1
  593. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  594. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
  595. package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
  596. package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
  597. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  598. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  599. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  600. package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
  601. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts.map +1 -1
  602. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js.map +1 -1
  603. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts.map +1 -1
  604. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js.map +1 -1
  605. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts.map +1 -1
  606. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js.map +1 -1
  607. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts.map +1 -1
  608. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js.map +1 -1
  609. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts.map +1 -1
  610. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js.map +1 -1
  611. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts.map +1 -1
  612. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js.map +1 -1
  613. package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts.map +1 -1
  614. package/dist/esm/organizations/service-provider-relationships.shared.schemas.js.map +1 -1
  615. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
  616. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
  617. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
  618. package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
  619. package/dist/esm/public-runtime/index.d.ts +13 -0
  620. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  621. package/dist/esm/public-runtime/index.js +13 -0
  622. package/dist/esm/public-runtime/index.js.map +1 -1
  623. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  624. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  625. package/dist/esm/queue/jobs.shared.schemas.d.ts +1 -1
  626. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  627. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  628. package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
  629. package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
  630. package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
  631. package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
  632. package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
  633. package/dist/esm/queue/queues.shared.utils.js.map +1 -1
  634. package/dist/esm/queue/rabbitmq-queue-args.shared.d.ts.map +1 -1
  635. package/dist/esm/queue/rabbitmq-queue-args.shared.js.map +1 -1
  636. package/dist/esm/rag/rag-retrieval-health.shared.d.ts.map +1 -1
  637. package/dist/esm/rag/rag-retrieval-health.shared.js.map +1 -1
  638. package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
  639. package/dist/esm/requests/header-keys.shared.js.map +1 -1
  640. package/dist/esm/requests/http-requests.shared.d.ts.map +1 -1
  641. package/dist/esm/requests/http-requests.shared.js.map +1 -1
  642. package/dist/esm/requests/idempotency-key.shared.d.ts.map +1 -1
  643. package/dist/esm/requests/idempotency-key.shared.js.map +1 -1
  644. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
  645. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
  646. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  647. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  648. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  649. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  650. package/dist/esm/requests/websocket.shared.schemas.d.ts +2 -2
  651. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  652. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  653. package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
  654. package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
  655. package/dist/esm/resources/collection-query-parameters.shared.d.ts.map +1 -1
  656. package/dist/esm/resources/collection-query-parameters.shared.js.map +1 -1
  657. package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
  658. package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
  659. package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts.map +1 -1
  660. package/dist/esm/resources/embedded-resource-mark.shared.utils.js.map +1 -1
  661. package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
  662. package/dist/esm/resources/relationship-display.shared.schemas.js.map +1 -1
  663. package/dist/esm/resources/resource-status-lifecycle.example.d.ts +100 -0
  664. package/dist/esm/resources/resource-status-lifecycle.example.d.ts.map +1 -0
  665. package/dist/esm/resources/resource-status-lifecycle.example.js +156 -0
  666. package/dist/esm/resources/resource-status-lifecycle.example.js.map +1 -0
  667. package/dist/esm/resources/resources-config.shared.factory.d.ts +25 -1
  668. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  669. package/dist/esm/resources/resources-config.shared.factory.js +31 -8
  670. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  671. package/dist/esm/resources/resources-config.shared.schemas.d.ts +33 -0
  672. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  673. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  674. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  675. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  676. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  677. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  678. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
  679. package/dist/esm/resources/resources-serialization.shared.schemas.js.map +1 -1
  680. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  681. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  682. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  683. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  684. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  685. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  686. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
  687. package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -1
  688. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
  689. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -1
  690. package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
  691. package/dist/esm/resources/utils/composition-seedability.validation.js.map +1 -1
  692. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
  693. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js.map +1 -1
  694. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts.map +1 -1
  695. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js.map +1 -1
  696. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
  697. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js.map +1 -1
  698. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -1
  699. package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -1
  700. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts.map +1 -1
  701. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js.map +1 -1
  702. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts.map +1 -1
  703. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js.map +1 -1
  704. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts.map +1 -1
  705. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js.map +1 -1
  706. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
  707. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js.map +1 -1
  708. package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -1
  709. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -1
  710. package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
  711. package/dist/esm/resources/utils/repository-dto-builder.utils.js.map +1 -1
  712. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts.map +1 -1
  713. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js.map +1 -1
  714. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
  715. package/dist/esm/resources/utils/required-fk-fillability.validation.js.map +1 -1
  716. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
  717. package/dist/esm/resources/utils/resource-operation-type-guards.utils.js.map +1 -1
  718. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  719. package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
  720. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
  721. package/dist/esm/resources/utils/resource-polymorphism.relationships.js.map +1 -1
  722. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
  723. package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
  724. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
  725. package/dist/esm/resources/utils/resource-polymorphism.utils.js.map +1 -1
  726. package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
  727. package/dist/esm/resources/utils/resource-subtree.utils.js.map +1 -1
  728. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
  729. package/dist/esm/resources/utils/resources-config-context-needs.utils.js.map +1 -1
  730. package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
  731. package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
  732. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  733. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
  734. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
  735. package/dist/esm/resources/utils/resources-config-operations.path.utils.js.map +1 -1
  736. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
  737. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
  738. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
  739. package/dist/esm/resources/utils/resources-config-operations.utils.js.map +1 -1
  740. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  741. package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
  742. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  743. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  744. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
  745. package/dist/esm/resources/utils/schema-family-builder.utils.js.map +1 -1
  746. package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
  747. package/dist/esm/resources/utils/schema-type-inference.utils.js.map +1 -1
  748. package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
  749. package/dist/esm/resources/utils/schema-type-utils.js.map +1 -1
  750. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
  751. package/dist/esm/resources/utils/schema-variant-resolver.utils.js.map +1 -1
  752. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  753. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  754. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
  755. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -1
  756. package/dist/esm/resources/work-unit.shared.schemas.d.ts.map +1 -1
  757. package/dist/esm/resources/work-unit.shared.schemas.js.map +1 -1
  758. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  759. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  760. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  761. package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
  762. package/dist/esm/runtime/runtime.shared.schemas.d.ts.map +1 -1
  763. package/dist/esm/runtime/runtime.shared.schemas.js.map +1 -1
  764. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  765. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  766. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  767. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  768. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  769. package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
  770. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
  771. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js.map +1 -1
  772. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  773. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  774. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  775. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  776. package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
  777. package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
  778. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
  780. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
  781. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -1
  782. package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js.map +1 -1
  784. package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts.map +1 -1
  785. package/dist/esm/security/authentications/password-blocklist.shared.utils.js.map +1 -1
  786. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
  787. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js.map +1 -1
  788. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  789. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  790. package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/same-origin-redirect-path.shared.js.map +1 -1
  792. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
  793. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -1
  794. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  795. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
  796. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  797. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  798. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
  799. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
  800. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  801. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
  802. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts.map +1 -1
  803. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js.map +1 -1
  804. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  805. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
  806. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
  807. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js.map +1 -1
  808. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts.map +1 -1
  809. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js.map +1 -1
  810. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts.map +1 -1
  811. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js.map +1 -1
  812. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
  814. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
  815. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
  816. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
  817. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
  818. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  819. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  820. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  821. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  822. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  823. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
  824. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  825. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  826. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
  827. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
  828. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  829. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -1
  830. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -1
  831. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -1
  832. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  833. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  834. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
  835. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
  836. package/dist/esm/security/authorizations/roles.application-roles.example.d.ts +37 -0
  837. package/dist/esm/security/authorizations/roles.application-roles.example.d.ts.map +1 -0
  838. package/dist/esm/security/authorizations/roles.application-roles.example.js +50 -0
  839. package/dist/esm/security/authorizations/roles.application-roles.example.js.map +1 -0
  840. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts +13 -0
  841. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  842. package/dist/esm/security/authorizations/roles.shared.defaults.js +13 -0
  843. package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
  844. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +29 -0
  845. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  846. package/dist/esm/security/authorizations/roles.shared.schemas.js +28 -0
  847. package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
  848. package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
  849. package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -1
  850. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts.map +1 -1
  851. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js.map +1 -1
  852. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
  853. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
  854. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
  855. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -1
  856. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -1
  857. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
  858. package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts.map +1 -1
  859. package/dist/esm/security/credential-rotation-grace.shared.utils.js.map +1 -1
  860. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.d.ts.map +1 -1
  861. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js.map +1 -1
  862. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  863. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
  864. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
  865. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  866. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  867. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  868. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
  869. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -1
  870. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
  871. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
  872. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
  873. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js.map +1 -1
  874. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -1
  875. package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -1
  876. package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts.map +1 -1
  877. package/dist/esm/security/submission-challenge/submission-challenge.shared.js.map +1 -1
  878. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts.map +1 -1
  879. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js.map +1 -1
  880. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts.map +1 -1
  881. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js.map +1 -1
  882. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -1
  883. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -1
  884. package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts.map +1 -1
  885. package/dist/esm/systems-of-record/system-of-record-env.shared.js.map +1 -1
  886. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -1
  887. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -1
  888. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -1
  889. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -1
  890. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -1
  891. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -1
  892. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts.map +1 -1
  893. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js.map +1 -1
  894. package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
  895. package/dist/esm/testing/resource-config-builders.js.map +1 -1
  896. package/dist/esm/testing.d.ts.map +1 -1
  897. package/dist/esm/testing.js.map +1 -1
  898. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
  899. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -1
  900. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  901. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
  902. package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
  903. package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
  904. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
  905. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +2 -0
  906. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
  907. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
  908. package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
  909. package/dist/esm/users/user-consent-decision.shared.utils.d.ts.map +1 -1
  910. package/dist/esm/users/user-consent-decision.shared.utils.js.map +1 -1
  911. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
  912. package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
  913. package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
  914. package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
  915. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
  916. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
  917. package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
  918. package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
  919. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
  920. package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -1
  921. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  922. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
  923. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  924. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
  925. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  926. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
  927. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  928. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
  929. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  930. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  931. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  932. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  933. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  934. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  935. package/dist/tsconfig.build.tsbuildinfo +1 -0
  936. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"chart-definition-builder.shared.js","sourceRoot":"","sources":["../../../../src/charts/chart-definition-builder.shared.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * ChartDefinitionBuilder — Fluent API for building ChartDefinitions\n *\n * Pure function that constructs a ChartDefinition object and validates\n * it against the schema. No backend/frontend deps.\n *\n * View wiring (scope, addressability, launcher) is composed separately\n * in frontend presets/config via InsertedChartDeclaration in saas-frontend-lib.\n * Charts are resource-owned inserted surfaces only; there is no app-level\n * chart view type.\n *\n * Usage:\n * chartBuilder('orders-per-month', 'ORDERS')\n * .type(ChartType.BAR)\n * .timeDimension('createdAt', TimeGranularity.MONTH)\n * .count()\n * .build()\n * ────────────────────────────────────────────────────────────── */\n\nimport {\n ChartType,\n ChartDefinitionSchema,\n type ChartDefinition,\n type ChartSeriesDefinition,\n type ChartAccessControl,\n type ChartInputDefinition,\n type ChartSplitConfig,\n type ChartSeriesStyle,\n type ChartAppearance,\n type ChartTypeConfig,\n} from '../config/frontend/chart-definition.shared.schemas';\nimport {\n AggregateFunction,\n TimeGranularity,\n ComparisonOperator,\n ContextFilterSource,\n SortDirection,\n DimensionSortBy,\n JoinType,\n WindowFunctionType,\n} from './aggregation.shared.definitions';\nimport type {\n Measure,\n Dimension,\n ContextFilter,\n ResourceJoin,\n HavingClause,\n ComputedMeasure,\n WindowFunction,\n AggregationQuery,\n} from './aggregation-query.shared.schemas';\n\n// ── Builder Options Types ────────────────────────────────────\n\nexport interface MeasureOptions {\n label?: string;\n filter?: Record<string, unknown>;\n}\n\nexport interface DimensionOptions {\n label?: string;\n sort?: {\n direction?: SortDirection;\n by?: 'self' | 'measure';\n measureRef?: string;\n };\n topN?: number;\n groupOther?: boolean;\n}\n\nexport interface TimeDimensionOptions extends DimensionOptions {\n fillMissingBuckets?: boolean;\n dateRange?: { from?: string; to?: string };\n}\n\nexport interface SeriesOptions {\n chartType?: ChartType;\n yAxisIndex?: number;\n style?: Partial<ChartSeriesStyle>;\n hidden?: boolean;\n}\n\nexport interface JoinOptions {\n selectFields?: string[];\n joinType?: JoinType;\n}\n\nexport interface WindowFunctionOptions {\n label?: string;\n windowSize?: number;\n partitionBy?: string;\n orderBy?: string;\n}\n\n// ── Builder Class ────────────────────────────────────────────\n\nexport class ChartDefinitionBuilder {\n private _chartType: ChartType = ChartType.BAR;\n private _dimensions: Dimension[] = [];\n private _measures: Measure[] = [];\n private _series: ChartSeriesDefinition[] = [];\n private _contextFilters: ContextFilter[] = [];\n private _joins: ResourceJoin[] = [];\n private _filters?: Record<string, unknown>;\n private _accessControl?: ChartAccessControl;\n private _refreshInterval?: number;\n private _timezone?: string;\n private _limit?: number;\n private _orderBy?: Array<{ ref: string; direction: SortDirection }>;\n private _splitByDimension?: string;\n private _splitConfig?: ChartSplitConfig;\n private _having: HavingClause[] = [];\n private _computedMeasures: ComputedMeasure[] = [];\n private _windowFunctions: WindowFunction[] = [];\n private _appearance?: ChartAppearance;\n private _chartTypeConfig?: ChartTypeConfig;\n private _i18n?: ChartDefinition['i18n'];\n private _inputs?: ChartInputDefinition[];\n\n constructor(\n private readonly _ref: string,\n private readonly _mainResourceType: string,\n ) {}\n\n // ── Chart type ──\n\n type(chartType: ChartType): this {\n this._chartType = chartType;\n return this;\n }\n\n // ── Dimensions ──\n\n dimension(field: string, options?: DimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n timeDimension(field: string, granularity: TimeGranularity, options?: TimeDimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n timeGranularity: granularity,\n fillMissingBuckets: options?.fillMissingBuckets ?? true, // default: true for time dimensions\n dateRange: options?.dateRange,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n // ── Measures (shorthands) ──\n\n count(options?: MeasureOptions): this {\n return this.measure('*', AggregateFunction.COUNT, {\n ...options,\n label: options?.label ?? 'Count',\n });\n }\n\n sum(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.SUM, options);\n }\n\n avg(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.AVG, options);\n }\n\n min(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.MIN, options);\n }\n\n max(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.MAX, options);\n }\n\n measure(field: string, aggregate: AggregateFunction, options?: MeasureOptions): this {\n const ref = field === '*' ? `*_${aggregate}` : `${field}_${aggregate}`;\n this._measures.push({\n ref,\n field,\n aggregate,\n label: options?.label,\n filter: options?.filter,\n });\n return this;\n }\n\n // ── Series (explicit) ──\n\n series(ref: string, name: string, measureRef: string, options?: SeriesOptions): this {\n const series: ChartSeriesDefinition = {\n ref,\n name,\n measureRef,\n chartType: options?.chartType,\n yAxisIndex: options?.yAxisIndex,\n hidden: options?.hidden,\n style: options?.style ? { ...options.style } : undefined,\n };\n this._series.push(series);\n return this;\n }\n\n // ── Split by dimension ──\n\n splitBy(dimensionRef: string, config?: ChartSplitConfig): this {\n this._splitByDimension = dimensionRef;\n this._splitConfig = config;\n return this;\n }\n\n // ── Access control ──\n\n accessControl(config: ChartAccessControl): this {\n this._accessControl = config;\n return this;\n }\n\n // ── Filters ──\n\n contextFilter(field: string, source: ContextFilterSource, options?: { operator?: ComparisonOperator; sourceField?: string }): this {\n this._contextFilters.push({\n field,\n operator: options?.operator ?? ComparisonOperator.EQ,\n source,\n sourceField: options?.sourceField,\n });\n return this;\n }\n\n filter(filters: Record<string, unknown>): this {\n this._filters = filters;\n return this;\n }\n\n // ── Computed measures (post-aggregation) ──\n\n /**\n * Add a computed measure that evaluates an expression using other measure refs as variables.\n *\n * @param ref - Unique ref for this computed measure\n * @param expression - Safe expression using measure refs (e.g., \"completed / total * 100\")\n * @param dependsOn - Measure refs referenced in the expression\n * @param label - Optional display label\n *\n * @example\n * ```ts\n * .count({ label: 'Total' }) // ref: \"*_count\"\n * .measure('status', AggregateFunction.COUNT, { // ref: \"status_count\"\n * label: 'Completed',\n * filter: { status: 'completed' }\n * })\n * .computedMeasure('completion_rate', 'round(status_count / *_count * 100, 1)', ['status_count', '*_count'])\n * ```\n */\n computedMeasure(ref: string, expression: string, dependsOn: string[], label?: string): this {\n this._computedMeasures.push({\n ref,\n expression,\n dependsOn,\n label,\n });\n return this;\n }\n\n // ── Window functions (post-aggregation transforms) ──\n\n /**\n * Generic window function.\n */\n windowFunction(ref: string, sourceRef: string, type: WindowFunctionType, options?: WindowFunctionOptions): this {\n this._windowFunctions.push({\n ref,\n sourceRef,\n type,\n label: options?.label,\n windowSize: options?.windowSize,\n partitionBy: options?.partitionBy,\n orderBy: options?.orderBy,\n });\n return this;\n }\n\n /**\n * Shorthand: running total (cumulative sum).\n */\n runningTotal(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.RUNNING_TOTAL, options);\n }\n\n /**\n * Shorthand: percent change from previous row.\n */\n percentChange(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.PERCENT_CHANGE, options);\n }\n\n /**\n * Shorthand: moving average over a window of N rows.\n *\n * @param windowSize - Number of rows in the moving window (default: 3)\n */\n movingAvg(ref: string, sourceRef: string, windowSize?: number, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.MOVING_AVG, {\n ...options,\n windowSize: windowSize ?? 3,\n });\n }\n\n /**\n * Shorthand: percent of total (value / sum * 100).\n */\n percentOfTotal(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.PERCENT_OF_TOTAL, options);\n }\n\n /**\n * Shorthand: difference from previous row.\n */\n difference(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.DIFFERENCE, options);\n }\n\n // ── Cross-resource joins ──\n\n join(resourceType: string, fkField: string, alias: string, options?: JoinOptions): this {\n this._joins.push({\n resourceType,\n foreignKeyField: fkField,\n alias,\n selectFields: options?.selectFields,\n joinType: options?.joinType ?? JoinType.LEFT,\n });\n return this;\n }\n\n // ── HAVING (filter on aggregated values) ──\n\n /**\n * Add a HAVING clause to filter on aggregated measure values.\n *\n * @param measureRef - Ref of the measure to filter on\n * @param operator - Comparison operator (GT, GTE, LT, LTE, EQ, NEQ)\n * @param value - Numeric value to compare against\n *\n * @example\n * ```ts\n * .count()\n * .having('*_COUNT', ComparisonOperator.GT, 10) // Only groups with count > 10\n * ```\n */\n having(measureRef: string, operator: ComparisonOperator, value: number): this {\n this._having.push({ measureRef, operator, value });\n return this;\n }\n\n // ── Binned dimension shorthand ──\n\n /**\n * Add a numeric dimension with binning (step-based or boundary-based).\n *\n * @example\n * ```ts\n * // Step-based: 0-10, 10-20, 20-30, ...\n * .binDimension('age', { step: 10 })\n *\n * // Boundary-based: <0, 0-50, 50-100, 100-500, ≥500\n * .binDimension('price', { boundaries: [0, 50, 100, 500] })\n * ```\n */\n binDimension(field: string, bin: { step: number } | { boundaries: number[] }, options?: DimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n bin,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n // ── Result shaping ──\n\n timezone(tz: string): this {\n this._timezone = tz;\n return this;\n }\n\n refreshInterval(ms: number): this {\n this._refreshInterval = ms;\n return this;\n }\n\n limitResults(n: number): this {\n this._limit = n;\n return this;\n }\n\n orderBy(ref: string, direction: SortDirection = SortDirection.ASC): this {\n if (!this._orderBy) this._orderBy = [];\n this._orderBy.push({ ref, direction });\n return this;\n }\n\n // ── Appearance & type config ──\n\n appearance(config: ChartAppearance): this {\n this._appearance = config;\n return this;\n }\n\n chartTypeConfig(config: ChartTypeConfig): this {\n this._chartTypeConfig = config;\n return this;\n }\n\n /**\n * Declare an explicit runtime input for this chart.\n *\n * Inputs replace raw caller-provided filter fragments with an authored\n * contract that can only bind into approved query seams.\n */\n input(definition: ChartInputDefinition): this {\n if (!this._inputs) {\n this._inputs = [];\n }\n\n this._inputs.push(definition);\n return this;\n }\n\n /**\n * Set i18n labelling keys for chart-level text (title, axes, tooltips, split values).\n * When resolved at render time, these keys replace hardcoded text with translated strings.\n */\n i18n(config: NonNullable<ChartDefinition['i18n']>): this {\n this._i18n = config;\n return this;\n }\n\n // ── Build ──\n\n build(): ChartDefinition {\n // Validate computed measure dependsOn refs against actual measure refs\n if (this._computedMeasures.length > 0) {\n const measureRefs = new Set(this._measures.map(m => m.ref));\n // Also include other computed measure refs (for chained computations)\n const computedRefs = new Set(this._computedMeasures.map(cm => cm.ref));\n\n for (const cm of this._computedMeasures) {\n for (const dep of cm.dependsOn) {\n // Guard: a computed measure cannot reference itself\n if (dep === cm.ref) {\n throw new Error(\n `ChartDefinitionBuilder: computed measure '${cm.ref}' references itself in dependsOn. ` +\n `Self-referencing computed measures are not supported.`,\n );\n }\n if (!measureRefs.has(dep) && !computedRefs.has(dep)) {\n throw new Error(\n `ChartDefinitionBuilder: computed measure '${cm.ref}' depends on '${dep}', ` +\n `but no measure or computed measure with that ref exists. ` +\n `Available measure refs: [${[...measureRefs].join(', ')}]`,\n );\n }\n }\n }\n }\n\n // Auto-generate series from measures if none were explicitly defined\n const series = this._series.length > 0\n ? this._series\n : this._autoGenerateSeries();\n\n // Apply splitByDimension to auto-generated series\n const finalSeries = series.map(s => ({\n ...s,\n splitByDimension: s.splitByDimension ?? this._splitByDimension,\n splitConfig: s.splitConfig ?? this._splitConfig,\n }));\n\n const dataQuery: AggregationQuery = {\n mainResourceType: this._mainResourceType,\n dimensions: this._dimensions,\n measures: this._measures,\n filters: this._filters,\n contextFilters: this._contextFilters.length > 0 ? this._contextFilters : undefined,\n computedMeasures: this._computedMeasures.length > 0 ? this._computedMeasures : undefined,\n windowFunctions: this._windowFunctions.length > 0 ? this._windowFunctions : undefined,\n joins: this._joins.length > 0 ? this._joins : undefined,\n having: this._having.length > 0 ? this._having : undefined,\n timezone: this._timezone,\n limit: this._limit,\n orderBy: this._orderBy,\n };\n\n const definition: Record<string, unknown> = {\n ref: this._ref,\n chartType: this._chartType,\n dataQuery,\n series: finalSeries,\n inputs: this._inputs,\n accessControl: this._accessControl,\n refreshInterval: this._refreshInterval,\n appearance: this._appearance,\n chartTypeConfig: this._chartTypeConfig,\n i18n: this._i18n,\n };\n\n const parsed = ChartDefinitionSchema.parse(definition);\n return parsed as ChartDefinition;\n }\n\n // ── Private helpers ──\n\n private _autoGenerateSeries(): ChartSeriesDefinition[] {\n return this._measures.map(measure => ({\n ref: `${measure.ref}_series`,\n name: measure.label || measure.ref,\n measureRef: measure.ref,\n }));\n }\n}\n\n// ── Factory function ─────────────────────────────────────────\n\n/**\n * Create a ChartDefinitionBuilder.\n *\n * @param ref - Unique chart reference used for registry lookup and the backend data endpoint `/charts/:chartRef/data`\n * @param mainResourceType - Primary resource type for the data query\n *\n * @example\n * ```ts\n * const chart = chartBuilder('orders-per-month', 'ORDERS')\n * .type(ChartType.BAR)\n * .timeDimension('createdAt', TimeGranularity.MONTH)\n * .count()\n * .build();\n * ```\n */\nexport function chartBuilder(ref: string, mainResourceType: string): ChartDefinitionBuilder {\n return new ChartDefinitionBuilder(ref, mainResourceType);\n}\n"]}
1
+ {"version":3,"file":"chart-definition-builder.shared.js","sourceRoot":"","sources":["../../../src/charts/chart-definition-builder.shared.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * ChartDefinitionBuilder — Fluent API for building ChartDefinitions\n *\n * Pure function that constructs a ChartDefinition object and validates\n * it against the schema. No backend/frontend deps.\n *\n * View wiring (scope, addressability, launcher) is composed separately\n * in frontend presets/config via InsertedChartDeclaration in saas-frontend-lib.\n * Charts are resource-owned inserted surfaces only; there is no app-level\n * chart view type.\n *\n * Usage:\n * chartBuilder('orders-per-month', 'ORDERS')\n * .type(ChartType.BAR)\n * .timeDimension('createdAt', TimeGranularity.MONTH)\n * .count()\n * .build()\n * ────────────────────────────────────────────────────────────── */\n\nimport {\n ChartType,\n ChartDefinitionSchema,\n type ChartDefinition,\n type ChartSeriesDefinition,\n type ChartAccessControl,\n type ChartInputDefinition,\n type ChartSplitConfig,\n type ChartSeriesStyle,\n type ChartAppearance,\n type ChartTypeConfig,\n} from '../config/frontend/chart-definition.shared.schemas';\nimport {\n AggregateFunction,\n TimeGranularity,\n ComparisonOperator,\n ContextFilterSource,\n SortDirection,\n DimensionSortBy,\n JoinType,\n WindowFunctionType,\n} from './aggregation.shared.definitions';\nimport type {\n Measure,\n Dimension,\n ContextFilter,\n ResourceJoin,\n HavingClause,\n ComputedMeasure,\n WindowFunction,\n AggregationQuery,\n} from './aggregation-query.shared.schemas';\n\n// ── Builder Options Types ────────────────────────────────────\n\nexport interface MeasureOptions {\n label?: string;\n filter?: Record<string, unknown>;\n}\n\nexport interface DimensionOptions {\n label?: string;\n sort?: {\n direction?: SortDirection;\n by?: 'self' | 'measure';\n measureRef?: string;\n };\n topN?: number;\n groupOther?: boolean;\n}\n\nexport interface TimeDimensionOptions extends DimensionOptions {\n fillMissingBuckets?: boolean;\n dateRange?: { from?: string; to?: string };\n}\n\nexport interface SeriesOptions {\n chartType?: ChartType;\n yAxisIndex?: number;\n style?: Partial<ChartSeriesStyle>;\n hidden?: boolean;\n}\n\nexport interface JoinOptions {\n selectFields?: string[];\n joinType?: JoinType;\n}\n\nexport interface WindowFunctionOptions {\n label?: string;\n windowSize?: number;\n partitionBy?: string;\n orderBy?: string;\n}\n\n// ── Builder Class ────────────────────────────────────────────\n\nexport class ChartDefinitionBuilder {\n private _chartType: ChartType = ChartType.BAR;\n private _dimensions: Dimension[] = [];\n private _measures: Measure[] = [];\n private _series: ChartSeriesDefinition[] = [];\n private _contextFilters: ContextFilter[] = [];\n private _joins: ResourceJoin[] = [];\n private _filters?: Record<string, unknown>;\n private _accessControl?: ChartAccessControl;\n private _refreshInterval?: number;\n private _timezone?: string;\n private _limit?: number;\n private _orderBy?: Array<{ ref: string; direction: SortDirection }>;\n private _splitByDimension?: string;\n private _splitConfig?: ChartSplitConfig;\n private _having: HavingClause[] = [];\n private _computedMeasures: ComputedMeasure[] = [];\n private _windowFunctions: WindowFunction[] = [];\n private _appearance?: ChartAppearance;\n private _chartTypeConfig?: ChartTypeConfig;\n private _i18n?: ChartDefinition['i18n'];\n private _inputs?: ChartInputDefinition[];\n\n constructor(\n private readonly _ref: string,\n private readonly _mainResourceType: string,\n ) {}\n\n // ── Chart type ──\n\n type(chartType: ChartType): this {\n this._chartType = chartType;\n return this;\n }\n\n // ── Dimensions ──\n\n dimension(field: string, options?: DimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n timeDimension(field: string, granularity: TimeGranularity, options?: TimeDimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n timeGranularity: granularity,\n fillMissingBuckets: options?.fillMissingBuckets ?? true, // default: true for time dimensions\n dateRange: options?.dateRange,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n // ── Measures (shorthands) ──\n\n count(options?: MeasureOptions): this {\n return this.measure('*', AggregateFunction.COUNT, {\n ...options,\n label: options?.label ?? 'Count',\n });\n }\n\n sum(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.SUM, options);\n }\n\n avg(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.AVG, options);\n }\n\n min(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.MIN, options);\n }\n\n max(field: string, options?: MeasureOptions): this {\n return this.measure(field, AggregateFunction.MAX, options);\n }\n\n measure(field: string, aggregate: AggregateFunction, options?: MeasureOptions): this {\n const ref = field === '*' ? `*_${aggregate}` : `${field}_${aggregate}`;\n this._measures.push({\n ref,\n field,\n aggregate,\n label: options?.label,\n filter: options?.filter,\n });\n return this;\n }\n\n // ── Series (explicit) ──\n\n series(ref: string, name: string, measureRef: string, options?: SeriesOptions): this {\n const series: ChartSeriesDefinition = {\n ref,\n name,\n measureRef,\n chartType: options?.chartType,\n yAxisIndex: options?.yAxisIndex,\n hidden: options?.hidden,\n style: options?.style ? { ...options.style } : undefined,\n };\n this._series.push(series);\n return this;\n }\n\n // ── Split by dimension ──\n\n splitBy(dimensionRef: string, config?: ChartSplitConfig): this {\n this._splitByDimension = dimensionRef;\n this._splitConfig = config;\n return this;\n }\n\n // ── Access control ──\n\n accessControl(config: ChartAccessControl): this {\n this._accessControl = config;\n return this;\n }\n\n // ── Filters ──\n\n contextFilter(field: string, source: ContextFilterSource, options?: { operator?: ComparisonOperator; sourceField?: string }): this {\n this._contextFilters.push({\n field,\n operator: options?.operator ?? ComparisonOperator.EQ,\n source,\n sourceField: options?.sourceField,\n });\n return this;\n }\n\n filter(filters: Record<string, unknown>): this {\n this._filters = filters;\n return this;\n }\n\n // ── Computed measures (post-aggregation) ──\n\n /**\n * Add a computed measure that evaluates an expression using other measure refs as variables.\n *\n * @param ref - Unique ref for this computed measure\n * @param expression - Safe expression using measure refs (e.g., \"completed / total * 100\")\n * @param dependsOn - Measure refs referenced in the expression\n * @param label - Optional display label\n *\n * @example\n * ```ts\n * .count({ label: 'Total' }) // ref: \"*_count\"\n * .measure('status', AggregateFunction.COUNT, { // ref: \"status_count\"\n * label: 'Completed',\n * filter: { status: 'completed' }\n * })\n * .computedMeasure('completion_rate', 'round(status_count / *_count * 100, 1)', ['status_count', '*_count'])\n * ```\n */\n computedMeasure(ref: string, expression: string, dependsOn: string[], label?: string): this {\n this._computedMeasures.push({\n ref,\n expression,\n dependsOn,\n label,\n });\n return this;\n }\n\n // ── Window functions (post-aggregation transforms) ──\n\n /**\n * Generic window function.\n */\n windowFunction(ref: string, sourceRef: string, type: WindowFunctionType, options?: WindowFunctionOptions): this {\n this._windowFunctions.push({\n ref,\n sourceRef,\n type,\n label: options?.label,\n windowSize: options?.windowSize,\n partitionBy: options?.partitionBy,\n orderBy: options?.orderBy,\n });\n return this;\n }\n\n /**\n * Shorthand: running total (cumulative sum).\n */\n runningTotal(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.RUNNING_TOTAL, options);\n }\n\n /**\n * Shorthand: percent change from previous row.\n */\n percentChange(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.PERCENT_CHANGE, options);\n }\n\n /**\n * Shorthand: moving average over a window of N rows.\n *\n * @param windowSize - Number of rows in the moving window (default: 3)\n */\n movingAvg(ref: string, sourceRef: string, windowSize?: number, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.MOVING_AVG, {\n ...options,\n windowSize: windowSize ?? 3,\n });\n }\n\n /**\n * Shorthand: percent of total (value / sum * 100).\n */\n percentOfTotal(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.PERCENT_OF_TOTAL, options);\n }\n\n /**\n * Shorthand: difference from previous row.\n */\n difference(ref: string, sourceRef: string, options?: Omit<WindowFunctionOptions, 'windowSize'>): this {\n return this.windowFunction(ref, sourceRef, WindowFunctionType.DIFFERENCE, options);\n }\n\n // ── Cross-resource joins ──\n\n join(resourceType: string, fkField: string, alias: string, options?: JoinOptions): this {\n this._joins.push({\n resourceType,\n foreignKeyField: fkField,\n alias,\n selectFields: options?.selectFields,\n joinType: options?.joinType ?? JoinType.LEFT,\n });\n return this;\n }\n\n // ── HAVING (filter on aggregated values) ──\n\n /**\n * Add a HAVING clause to filter on aggregated measure values.\n *\n * @param measureRef - Ref of the measure to filter on\n * @param operator - Comparison operator (GT, GTE, LT, LTE, EQ, NEQ)\n * @param value - Numeric value to compare against\n *\n * @example\n * ```ts\n * .count()\n * .having('*_COUNT', ComparisonOperator.GT, 10) // Only groups with count > 10\n * ```\n */\n having(measureRef: string, operator: ComparisonOperator, value: number): this {\n this._having.push({ measureRef, operator, value });\n return this;\n }\n\n // ── Binned dimension shorthand ──\n\n /**\n * Add a numeric dimension with binning (step-based or boundary-based).\n *\n * @example\n * ```ts\n * // Step-based: 0-10, 10-20, 20-30, ...\n * .binDimension('age', { step: 10 })\n *\n * // Boundary-based: <0, 0-50, 50-100, 100-500, ≥500\n * .binDimension('price', { boundaries: [0, 50, 100, 500] })\n * ```\n */\n binDimension(field: string, bin: { step: number } | { boundaries: number[] }, options?: DimensionOptions): this {\n const ref = options?.label?.toLowerCase().replace(/\\s+/g, '_') || field;\n this._dimensions.push({\n ref,\n field,\n label: options?.label,\n bin,\n sort: options?.sort ? {\n direction: options.sort.direction ?? SortDirection.ASC,\n by: options.sort.by === 'measure' ? DimensionSortBy.MEASURE : DimensionSortBy.SELF,\n measureRef: options.sort.measureRef,\n } : undefined,\n topN: options?.topN,\n groupOther: options?.groupOther,\n });\n return this;\n }\n\n // ── Result shaping ──\n\n timezone(tz: string): this {\n this._timezone = tz;\n return this;\n }\n\n refreshInterval(ms: number): this {\n this._refreshInterval = ms;\n return this;\n }\n\n limitResults(n: number): this {\n this._limit = n;\n return this;\n }\n\n orderBy(ref: string, direction: SortDirection = SortDirection.ASC): this {\n if (!this._orderBy) this._orderBy = [];\n this._orderBy.push({ ref, direction });\n return this;\n }\n\n // ── Appearance & type config ──\n\n appearance(config: ChartAppearance): this {\n this._appearance = config;\n return this;\n }\n\n chartTypeConfig(config: ChartTypeConfig): this {\n this._chartTypeConfig = config;\n return this;\n }\n\n /**\n * Declare an explicit runtime input for this chart.\n *\n * Inputs replace raw caller-provided filter fragments with an authored\n * contract that can only bind into approved query seams.\n */\n input(definition: ChartInputDefinition): this {\n if (!this._inputs) {\n this._inputs = [];\n }\n\n this._inputs.push(definition);\n return this;\n }\n\n /**\n * Set i18n labelling keys for chart-level text (title, axes, tooltips, split values).\n * When resolved at render time, these keys replace hardcoded text with translated strings.\n */\n i18n(config: NonNullable<ChartDefinition['i18n']>): this {\n this._i18n = config;\n return this;\n }\n\n // ── Build ──\n\n build(): ChartDefinition {\n // Validate computed measure dependsOn refs against actual measure refs\n if (this._computedMeasures.length > 0) {\n const measureRefs = new Set(this._measures.map(m => m.ref));\n // Also include other computed measure refs (for chained computations)\n const computedRefs = new Set(this._computedMeasures.map(cm => cm.ref));\n\n for (const cm of this._computedMeasures) {\n for (const dep of cm.dependsOn) {\n // Guard: a computed measure cannot reference itself\n if (dep === cm.ref) {\n throw new Error(\n `ChartDefinitionBuilder: computed measure '${cm.ref}' references itself in dependsOn. ` +\n `Self-referencing computed measures are not supported.`,\n );\n }\n if (!measureRefs.has(dep) && !computedRefs.has(dep)) {\n throw new Error(\n `ChartDefinitionBuilder: computed measure '${cm.ref}' depends on '${dep}', ` +\n `but no measure or computed measure with that ref exists. ` +\n `Available measure refs: [${[...measureRefs].join(', ')}]`,\n );\n }\n }\n }\n }\n\n // Auto-generate series from measures if none were explicitly defined\n const series = this._series.length > 0\n ? this._series\n : this._autoGenerateSeries();\n\n // Apply splitByDimension to auto-generated series\n const finalSeries = series.map(s => ({\n ...s,\n splitByDimension: s.splitByDimension ?? this._splitByDimension,\n splitConfig: s.splitConfig ?? this._splitConfig,\n }));\n\n const dataQuery: AggregationQuery = {\n mainResourceType: this._mainResourceType,\n dimensions: this._dimensions,\n measures: this._measures,\n filters: this._filters,\n contextFilters: this._contextFilters.length > 0 ? this._contextFilters : undefined,\n computedMeasures: this._computedMeasures.length > 0 ? this._computedMeasures : undefined,\n windowFunctions: this._windowFunctions.length > 0 ? this._windowFunctions : undefined,\n joins: this._joins.length > 0 ? this._joins : undefined,\n having: this._having.length > 0 ? this._having : undefined,\n timezone: this._timezone,\n limit: this._limit,\n orderBy: this._orderBy,\n };\n\n const definition: Record<string, unknown> = {\n ref: this._ref,\n chartType: this._chartType,\n dataQuery,\n series: finalSeries,\n inputs: this._inputs,\n accessControl: this._accessControl,\n refreshInterval: this._refreshInterval,\n appearance: this._appearance,\n chartTypeConfig: this._chartTypeConfig,\n i18n: this._i18n,\n };\n\n const parsed = ChartDefinitionSchema.parse(definition);\n return parsed as ChartDefinition;\n }\n\n // ── Private helpers ──\n\n private _autoGenerateSeries(): ChartSeriesDefinition[] {\n return this._measures.map(measure => ({\n ref: `${measure.ref}_series`,\n name: measure.label || measure.ref,\n measureRef: measure.ref,\n }));\n }\n}\n\n// ── Factory function ─────────────────────────────────────────\n\n/**\n * Create a ChartDefinitionBuilder.\n *\n * @param ref - Unique chart reference used for registry lookup and the backend data endpoint `/charts/:chartRef/data`\n * @param mainResourceType - Primary resource type for the data query\n *\n * @example\n * ```ts\n * const chart = chartBuilder('orders-per-month', 'ORDERS')\n * .type(ChartType.BAR)\n * .timeDimension('createdAt', TimeGranularity.MONTH)\n * .count()\n * .build();\n * ```\n */\nexport function chartBuilder(ref: string, mainResourceType: string): ChartDefinitionBuilder {\n return new ChartDefinitionBuilder(ref, mainResourceType);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-placement.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../src/companion/artifact-placement.shared.definitions.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oCAAoC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,sBAAsB,CAAC;IACtC,WAAW,EAAE,+BAA+B,CAAC;CAC9C;AAED,MAAM,WAAW,oCACf,SAAQ,oCAAoC;IAC5C,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,yCACf,SAAQ,oCAAoC;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
1
+ {"version":3,"file":"artifact-placement.shared.definitions.d.ts","sourceRoot":"","sources":["../../../src/companion/artifact-placement.shared.definitions.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oCAAoC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,sBAAsB,CAAC;IACtC,WAAW,EAAE,+BAA+B,CAAC;CAC9C;AAED,MAAM,WAAW,oCACf,SAAQ,oCAAoC;IAC5C,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,yCACf,SAAQ,oCAAoC;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-placement.shared.definitions.js","sourceRoot":"","sources":["../../../../src/companion/artifact-placement.shared.definitions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,yDAA+B,CAAA;IAC/B,2CAAiB,CAAA;IACjB,yDAA+B,CAAA;AACjC,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC","sourcesContent":["export enum CompanionArtifactClass {\n DOMAIN_MODULE = 'domain-module',\n ENGINE = 'engine',\n FRONTEND_ONLY = 'frontend-only',\n}\n\nexport interface CompanionArtifactPlacementRoots {\n shared?: string;\n backend?: string;\n frontend?: string;\n}\n\n/**\n * Tooling-facing ownership descriptor for generated artifacts such as\n * translations or email label files.\n *\n * `ownerId` is intentionally broader than `moduleId`: some generated artifacts\n * belong to engine/frontend-only buckets that are not business\n * modules, but still need a stable owner identity and placement contract.\n */\nexport interface CompanionArtifactPlacementDescriptor {\n ownerId: string;\n artifactClass: CompanionArtifactClass;\n rootsByRole: CompanionArtifactPlacementRoots;\n}\n\nexport interface CompanionResourceOwnershipDescriptor\n extends CompanionArtifactPlacementDescriptor {\n resourceTypes: string[];\n}\n\nexport interface CompanionEmailTemplateOwnershipDescriptor\n extends CompanionArtifactPlacementDescriptor {\n templateRefs: string[];\n}\n"]}
1
+ {"version":3,"file":"artifact-placement.shared.definitions.js","sourceRoot":"","sources":["../../../src/companion/artifact-placement.shared.definitions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,yDAA+B,CAAA;IAC/B,2CAAiB,CAAA;IACjB,yDAA+B,CAAA;AACjC,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC","sourcesContent":["export enum CompanionArtifactClass {\n DOMAIN_MODULE = 'domain-module',\n ENGINE = 'engine',\n FRONTEND_ONLY = 'frontend-only',\n}\n\nexport interface CompanionArtifactPlacementRoots {\n shared?: string;\n backend?: string;\n frontend?: string;\n}\n\n/**\n * Tooling-facing ownership descriptor for generated artifacts such as\n * translations or email label files.\n *\n * `ownerId` is intentionally broader than `moduleId`: some generated artifacts\n * belong to engine/frontend-only buckets that are not business\n * modules, but still need a stable owner identity and placement contract.\n */\nexport interface CompanionArtifactPlacementDescriptor {\n ownerId: string;\n artifactClass: CompanionArtifactClass;\n rootsByRole: CompanionArtifactPlacementRoots;\n}\n\nexport interface CompanionResourceOwnershipDescriptor\n extends CompanionArtifactPlacementDescriptor {\n resourceTypes: string[];\n}\n\nexport interface CompanionEmailTemplateOwnershipDescriptor\n extends CompanionArtifactPlacementDescriptor {\n templateRefs: string[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"provider-discovery.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/companion/provider-discovery.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EAAgD,YAAY,EAAE,MAAM,wDAAwD,CAAC;AAGpI;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0CAA0C;;;kBAGrD,CAAC;AACH,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0CAA0C,CAAC,CAAC;AAE9G,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;4BAgB/C,CAAC;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;kBAKjD,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAEtG;;;;;;;;;GASG;AACH,eAAO,MAAM,iCAAiC;;;;;mBA+B5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC;;IAE9C;;;;;;OAMG;;;;;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;IAOH;;;;;;;;;;;OAWG;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;IAEH;;;;;;;;OAQG;;;;;;IAMH;;;;;;;OAOG;;IAEH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;;;;;iBAEH,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,sCAAsC;IACjD,wGAAwG;;IAExG,0EAA0E;;IAE1E,yFAAyF;;;;;;;;;;IAGzF,iGAAiG;;IAEjG,mFAAmF;;IAEnF,gGAAgG;;iBAUhG,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAEtG,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,CAAC,EAAE,6BAA6B,EAAE,CAAC;IACxD;;;OAGG;IACH,qBAAqB,CAAC,EAAE,gCAAgC,EAAE,CAAC;CAC5D"}
1
+ {"version":3,"file":"provider-discovery.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/companion/provider-discovery.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EAAgD,YAAY,EAAE,MAAM,wDAAwD,CAAC;AAGpI;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0CAA0C;;;kBAGrD,CAAC;AACH,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0CAA0C,CAAC,CAAC;AAE9G,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;4BAgB/C,CAAC;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;kBAKjD,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAEtG;;;;;;;;;GASG;AACH,eAAO,MAAM,iCAAiC;;;;;mBA+B5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC;;IAE9C;;;;;;OAMG;;;;;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;IAOH;;;;;;;;;;;OAWG;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;IAEH;;;;;;;;OAQG;;;;;;IAMH;;;;;;;OAOG;;IAEH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;;;;;iBAEH,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,sCAAsC;IACjD,wGAAwG;;IAExG,0EAA0E;;IAE1E,yFAAyF;;;;;;;;;;IAGzF,iGAAiG;;IAEjG,mFAAmF;;IAEnF,gGAAgG;;iBAUhG,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAEtG,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,CAAC,EAAE,6BAA6B,EAAE,CAAC;IACxD;;;OAGG;IACH,qBAAqB,CAAC,EAAE,gCAAgC,EAAE,CAAC;CAC5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider-discovery.shared.schemas.js","sourceRoot":"","sources":["../../../../src/companion/provider-discovery.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { AppFrontendType } from '../config/app-frontend-type.shared.schemas';\nimport { EngineCapability } from '../external-providers/engine-capabilities.shared.schemas';\nimport { FrontendProviderEntrySchema } from '../external-providers/frontend-bootstrap.shared.schemas';\nimport { ProviderIdentitySchema, ProviderOriginSchema, ProviderTier } from '../external-providers/provider-metadata.shared.schemas';\nimport { ProviderComplianceProfileSchema } from '../external-providers/provider-compliance-profile.shared.schemas';\n\n/**\n * Companion-safe provider implementation declaration.\n *\n * App/runtime-owner packages expose these entries through their `./companion`\n * default export so tooling can discover which provider refs are actually\n * reachable from which runtime owners before materializing generated artifacts.\n */\n\n/**\n * Discriminator branch for `frontendService` runtime targets.\n *\n * Targets a frontend service by its `AppFrontendType` (the closed kind set\n * — SAAS_APP, STATIC_WEBSITE, TECH_DOC) rather than by an app-defined\n * `serviceKey` string. Engine-shipped packages (`external-connectors-public`,\n * etc.) have no way to know app-defined service keys, so the discovery\n * contract is keyed on the type. Apps with multiple frontend services of\n * the same type currently broadcast the contribution to all of them; if\n * per-service-key targeting becomes a need, add a second variant.\n */\nexport const ProviderFrontendServiceRuntimeTargetSchema = z.strictObject({\n kind: z.literal('frontendService'),\n serviceType: z.enum(AppFrontendType),\n});\nexport type ProviderFrontendServiceRuntimeTarget = z.infer<typeof ProviderFrontendServiceRuntimeTargetSchema>;\n\nexport const ProviderCompanionRuntimeTargetSchema = z.discriminatedUnion('kind', [\n z.strictObject({\n kind: z.literal('backend'),\n }),\n z.strictObject({\n kind: z.literal('companion'),\n }),\n ProviderFrontendServiceRuntimeTargetSchema,\n z.strictObject({\n kind: z.literal('minion'),\n minionKey: z.string().min(1),\n }),\n z.strictObject({\n kind: z.literal('worker'),\n workerKey: z.string().min(1),\n }),\n]);\nexport type ProviderCompanionRuntimeTarget = z.infer<typeof ProviderCompanionRuntimeTargetSchema>;\n\n/**\n * Values-free projection of one backend provider secret requirement.\n *\n * The stable provider-owned `slug` is preserved separately from the concrete\n * environment-variable name so a rename on either axis changes the lockfile\n * integrity digest. Secret values never cross this companion-safe boundary.\n */\nexport const ProviderSecretContractShapeEntrySchema = z.strictObject({\n slug: z.string().min(1),\n envVarName: z.string().min(1),\n required: z.boolean(),\n description: z.string().min(1),\n});\nexport type ProviderSecretContractShapeEntry = z.infer<typeof ProviderSecretContractShapeEntrySchema>;\n\n/**\n * Deterministic, values-free secret-contract shape used by provider discovery\n * and lockfile integrity checks.\n *\n * Every contribution must declare this field. `[]` means the provider is\n * authoritatively known to require no secrets; omission is rejected rather\n * than being silently interpreted as an empty contract. Entries must be\n * sorted by `slug`, and both slugs and environment-variable names are unique,\n * so independently contributed facets cannot produce order-dependent digests.\n */\nexport const ProviderSecretContractShapeSchema = z.array(ProviderSecretContractShapeEntrySchema).superRefine((entries, context) => {\n const seenSlugs = new Set<string>();\n const seenEnvVarNames = new Set<string>();\n\n for (const [index, entry] of entries.entries()) {\n if (seenSlugs.has(entry.slug)) {\n context.addIssue({\n code: 'custom',\n path: [index, 'slug'],\n message: `Duplicate provider secret-contract slug \"${entry.slug}\".`,\n });\n }\n seenSlugs.add(entry.slug);\n\n if (seenEnvVarNames.has(entry.envVarName)) {\n context.addIssue({\n code: 'custom',\n path: [index, 'envVarName'],\n message: `Duplicate provider secret-contract envVarName \"${entry.envVarName}\".`,\n });\n }\n seenEnvVarNames.add(entry.envVarName);\n\n if (index > 0 && entries[index - 1].slug.localeCompare(entry.slug) >= 0) {\n context.addIssue({\n code: 'custom',\n path: [index, 'slug'],\n message: 'Provider secret-contract entries must be sorted by slug.',\n });\n }\n }\n});\nexport type ProviderSecretContractShape = z.infer<typeof ProviderSecretContractShapeSchema>;\n\n/**\n * A contribution is a wire record produced by one package version and read by\n * another (the CLI, the companion, a generated artifact), so it is a LOOSE\n * object: an additive field from a newer producer rides through an older\n * consumer instead of hard-failing the parse (#328 — it used to be strict,\n * which made every additive field a five-surface change and every old/new\n * mix a boot failure). Required fields stay required; only UNKNOWN keys are\n * tolerated, and they are kept rather than stripped so a re-emitting\n * consumer does not silently drop what it did not understand.\n */\nexport const ProviderCompanionContributionSchema = z.looseObject({\n ref: z.string().min(1),\n /**\n * The provider's identity (package, tier, vendor, origin) as declared on\n * its module metadata, so tooling can display tiers and group vendors\n * without loading the runtime module. Optional on the wire for one\n * reason only: contributions emitted before #328 carry none, and a\n * discovery walk must still read them.\n */\n identity: ProviderIdentitySchema.optional(),\n /**\n * Stable package import path that makes the provider implementation reachable\n * from the contributing package at runtime. This validates owner-package\n * reachability without coupling discovery to source-file paths.\n */\n runtimeImportPath: z.string().min(1),\n runtimeTargets: z.array(ProviderCompanionRuntimeTargetSchema).min(1),\n engineCapabilities: z.array(z.enum(EngineCapability)).default([]),\n providerCapabilities: z.array(z.string().min(1)).default([]),\n protocols: z.array(z.string().min(1)).default([]),\n secretsContractShape: ProviderSecretContractShapeSchema,\n /**\n * Per protocol, the environment variable its API key is read from — the DEFAULT `authConfig.secretRef`\n * a running host derives from the binding's runtime contract, so the value `getProviderApiKey` reads\n * before it refuses a call for a missing key (#2229). Keyed by the same protocol strings as `protocols`;\n * a protocol absent from the map authenticates with nothing a host must hold.\n *\n * Carried so tooling can predict that refusal from discovery without loading a provider module — the\n * creation preflight names the ONE key a step needs, where `secretsContractShape` lists every key the\n * provider may use (Stripe's webhook secret is required by its shape and read by no boot refusal).\n * Values-free, and optional on the wire because a contribution emitted before #2229 carries none; a\n * reader then falls back to the required entries of `secretsContractShape`.\n */\n protocolSecretRefs: z.record(z.string().min(1), z.string().min(1)).optional(),\n /**\n * Optional frontend-safe provider payload for `frontendService` runtime\n * targets. Tooling materializes this into generated runtime artifacts so the\n * backend bootstrap endpoint can serve app-owned public providers without\n * importing frontend packages at runtime.\n */\n frontendEntry: FrontendProviderEntrySchema.optional(),\n /**\n * Optional app module owner when the provider implementation belongs to one\n * concrete module instead of the whole package/runtime.\n */\n sourceModuleId: z.string().min(1).optional(),\n /**\n * The hosts the provider's OAuth2 TOKEN endpoint may resolve to (#1725) — derived by the producer with\n * `describeProviderOAuth2TokenEndpointHosts`, absent when the provider runs no OAuth2 connected account.\n *\n * Carried so `wildo config sync` can refuse a declared shared connection whose member names a different\n * authorization server than its base, without loading either module. Values-free: a login host is not a\n * secret. Optional on the wire because a contribution emitted before #1725 carries none; the registry then\n * makes the same comparison on the loaded modules at boot.\n */\n oauth2TokenEndpointHosts: z.strictObject({\n exact: z.array(z.string().min(1)),\n suffixes: z.array(z.string().min(1)),\n undeterminable: z.boolean(),\n }).optional(),\n /**\n * The secrets-contract SLUGS holding the provider's connected-account OAuth2 client registration — its client id\n * and client secret (#1725). Absent when the provider runs no OAuth2 connected account.\n *\n * Carried so `wildo secrets` can tell an operator which registration a declared shared connection actually needs:\n * the BASE's slots are then required, and a MEMBER's own slots are inert — reported, never required — because the\n * base's client connects and refreshes the one grant.\n */\n oauth2ClientSlotSlugs: z.array(z.string().min(1)).optional(),\n /**\n * What the provider's BACKEND module declares about who runs it and where it processes (#1708) — ESTABLISHED\n * facts, or UNDETERMINED. A frontend facet's profile rides `frontendEntry.complianceProfile` instead (#1743).\n *\n * Carried so the compliance readers (the evidence collector, the companion's drafting brief) learn every\n * declared provider's profile from discovery, WITHOUT loading a provider module — the same reason\n * `oauth2TokenEndpointHosts` is here. Values-free: a vendor's region list is not a secret. Optional on the wire\n * because a contribution emitted before #1708 carries none, which a reader reports as \"no profile\".\n */\n complianceProfile: ProviderComplianceProfileSchema.optional(),\n});\nexport type ProviderCompanionContribution = z.infer<typeof ProviderCompanionContributionSchema>;\n\n/**\n * A package's declaration that it ADDS OPERATIONS to a provider it does not own (#1672).\n *\n * ## Why this is its own record and not a `ProviderCompanionContribution`\n *\n * A contribution says \"this package OWNS provider X\": identity, secrets contract, protocols, the runtimes\n * it reaches. Discovery keeps one owner per ref and compares every contribution's secrets-contract shape\n * against the others. An augmentation owns none of that — the base keeps identity, tier, secrets contract,\n * OAuth2 block and connection — so recording it as a second contribution of the same ref would make the\n * shape comparison treat it as a second owner, and the import map would pick one of the two by sort order.\n * A separate record is what lets the base stay the base.\n *\n * ## What it carries, and why each field is STATIC\n *\n * `operationIds` and `requiredScopes` are stated here rather than read from the catalogue because a\n * catalogue is a LAZY loader that tooling must never call (`ProviderRestOperationCatalogueLoader`). So\n * `wildo config sync` can refuse an operation-id collision and record which scopes an augmentation may ask\n * for without evaluating any vendor code; the runtime then checks that what the loader delivers is exactly\n * what was declared here, and refuses the augmentation otherwise.\n *\n * INERT until an application opts it in under `providers.augmentations.<augments>` — installing a package\n * never adds an operation to a provider on its own.\n *\n * Loose for the reason `ProviderCompanionContributionSchema` is: a newer producer's additive field must ride\n * through an older consumer.\n */\nexport const ProviderAugmentationContributionSchema = z.looseObject({\n /** The ref of the provider this package adds operations to — owned by the engine or another package. */\n augments: z.string().min(1),\n /** The augmentation package's own npm name, as its manifest states it. */\n packageName: z.string().min(1),\n /** Always `CATALOGUE`: an augmentation binds no engine slot and adds only operations. */\n tier: z.literal(ProviderTier.CATALOGUE),\n origin: ProviderOriginSchema,\n /** The specifier a host imports to read the augmentation (`<package>/backend` by convention). */\n runtimeImportPath: z.string().min(1),\n /** Every operation id the augmentation contributes — sorted, unique, non-empty. */\n operationIds: z.array(z.string().min(1)).min(1),\n /** Every vendor scope any of those operations declares in `requiredScopes` — sorted, unique. */\n requiredScopes: z.array(z.string().min(1)).default([]),\n}).superRefine((contribution, ctx) => {\n for (const [field, values] of [['operationIds', contribution.operationIds], ['requiredScopes', contribution.requiredScopes]] as const) {\n for (let index = 1; index < values.length; index += 1) {\n if (values[index - 1].localeCompare(values[index]) >= 0) {\n ctx.addIssue({ code: 'custom', path: [field, index], message: `${field} must be sorted and unique (\"${values[index]}\" follows \"${values[index - 1]}\").` });\n }\n }\n }\n});\nexport type ProviderAugmentationContribution = z.infer<typeof ProviderAugmentationContributionSchema>;\n\nexport interface RuntimeOwnerCompanionExports {\n providerContributions?: ProviderCompanionContribution[];\n /**\n * Operation augmentations of providers this package does not own (#1672). Separate from\n * `providerContributions` on purpose — see {@link ProviderAugmentationContributionSchema}.\n */\n providerAugmentations?: ProviderAugmentationContribution[];\n}\n"]}
1
+ {"version":3,"file":"provider-discovery.shared.schemas.js","sourceRoot":"","sources":["../../../src/companion/provider-discovery.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { AppFrontendType } from '../config/app-frontend-type.shared.schemas';\nimport { EngineCapability } from '../external-providers/engine-capabilities.shared.schemas';\nimport { FrontendProviderEntrySchema } from '../external-providers/frontend-bootstrap.shared.schemas';\nimport { ProviderIdentitySchema, ProviderOriginSchema, ProviderTier } from '../external-providers/provider-metadata.shared.schemas';\nimport { ProviderComplianceProfileSchema } from '../external-providers/provider-compliance-profile.shared.schemas';\n\n/**\n * Companion-safe provider implementation declaration.\n *\n * App/runtime-owner packages expose these entries through their `./companion`\n * default export so tooling can discover which provider refs are actually\n * reachable from which runtime owners before materializing generated artifacts.\n */\n\n/**\n * Discriminator branch for `frontendService` runtime targets.\n *\n * Targets a frontend service by its `AppFrontendType` (the closed kind set\n * — SAAS_APP, STATIC_WEBSITE, TECH_DOC) rather than by an app-defined\n * `serviceKey` string. Engine-shipped packages (`external-connectors-public`,\n * etc.) have no way to know app-defined service keys, so the discovery\n * contract is keyed on the type. Apps with multiple frontend services of\n * the same type currently broadcast the contribution to all of them; if\n * per-service-key targeting becomes a need, add a second variant.\n */\nexport const ProviderFrontendServiceRuntimeTargetSchema = z.strictObject({\n kind: z.literal('frontendService'),\n serviceType: z.enum(AppFrontendType),\n});\nexport type ProviderFrontendServiceRuntimeTarget = z.infer<typeof ProviderFrontendServiceRuntimeTargetSchema>;\n\nexport const ProviderCompanionRuntimeTargetSchema = z.discriminatedUnion('kind', [\n z.strictObject({\n kind: z.literal('backend'),\n }),\n z.strictObject({\n kind: z.literal('companion'),\n }),\n ProviderFrontendServiceRuntimeTargetSchema,\n z.strictObject({\n kind: z.literal('minion'),\n minionKey: z.string().min(1),\n }),\n z.strictObject({\n kind: z.literal('worker'),\n workerKey: z.string().min(1),\n }),\n]);\nexport type ProviderCompanionRuntimeTarget = z.infer<typeof ProviderCompanionRuntimeTargetSchema>;\n\n/**\n * Values-free projection of one backend provider secret requirement.\n *\n * The stable provider-owned `slug` is preserved separately from the concrete\n * environment-variable name so a rename on either axis changes the lockfile\n * integrity digest. Secret values never cross this companion-safe boundary.\n */\nexport const ProviderSecretContractShapeEntrySchema = z.strictObject({\n slug: z.string().min(1),\n envVarName: z.string().min(1),\n required: z.boolean(),\n description: z.string().min(1),\n});\nexport type ProviderSecretContractShapeEntry = z.infer<typeof ProviderSecretContractShapeEntrySchema>;\n\n/**\n * Deterministic, values-free secret-contract shape used by provider discovery\n * and lockfile integrity checks.\n *\n * Every contribution must declare this field. `[]` means the provider is\n * authoritatively known to require no secrets; omission is rejected rather\n * than being silently interpreted as an empty contract. Entries must be\n * sorted by `slug`, and both slugs and environment-variable names are unique,\n * so independently contributed facets cannot produce order-dependent digests.\n */\nexport const ProviderSecretContractShapeSchema = z.array(ProviderSecretContractShapeEntrySchema).superRefine((entries, context) => {\n const seenSlugs = new Set<string>();\n const seenEnvVarNames = new Set<string>();\n\n for (const [index, entry] of entries.entries()) {\n if (seenSlugs.has(entry.slug)) {\n context.addIssue({\n code: 'custom',\n path: [index, 'slug'],\n message: `Duplicate provider secret-contract slug \"${entry.slug}\".`,\n });\n }\n seenSlugs.add(entry.slug);\n\n if (seenEnvVarNames.has(entry.envVarName)) {\n context.addIssue({\n code: 'custom',\n path: [index, 'envVarName'],\n message: `Duplicate provider secret-contract envVarName \"${entry.envVarName}\".`,\n });\n }\n seenEnvVarNames.add(entry.envVarName);\n\n if (index > 0 && entries[index - 1].slug.localeCompare(entry.slug) >= 0) {\n context.addIssue({\n code: 'custom',\n path: [index, 'slug'],\n message: 'Provider secret-contract entries must be sorted by slug.',\n });\n }\n }\n});\nexport type ProviderSecretContractShape = z.infer<typeof ProviderSecretContractShapeSchema>;\n\n/**\n * A contribution is a wire record produced by one package version and read by\n * another (the CLI, the companion, a generated artifact), so it is a LOOSE\n * object: an additive field from a newer producer rides through an older\n * consumer instead of hard-failing the parse (#328 — it used to be strict,\n * which made every additive field a five-surface change and every old/new\n * mix a boot failure). Required fields stay required; only UNKNOWN keys are\n * tolerated, and they are kept rather than stripped so a re-emitting\n * consumer does not silently drop what it did not understand.\n */\nexport const ProviderCompanionContributionSchema = z.looseObject({\n ref: z.string().min(1),\n /**\n * The provider's identity (package, tier, vendor, origin) as declared on\n * its module metadata, so tooling can display tiers and group vendors\n * without loading the runtime module. Optional on the wire for one\n * reason only: contributions emitted before #328 carry none, and a\n * discovery walk must still read them.\n */\n identity: ProviderIdentitySchema.optional(),\n /**\n * Stable package import path that makes the provider implementation reachable\n * from the contributing package at runtime. This validates owner-package\n * reachability without coupling discovery to source-file paths.\n */\n runtimeImportPath: z.string().min(1),\n runtimeTargets: z.array(ProviderCompanionRuntimeTargetSchema).min(1),\n engineCapabilities: z.array(z.enum(EngineCapability)).default([]),\n providerCapabilities: z.array(z.string().min(1)).default([]),\n protocols: z.array(z.string().min(1)).default([]),\n secretsContractShape: ProviderSecretContractShapeSchema,\n /**\n * Per protocol, the environment variable its API key is read from — the DEFAULT `authConfig.secretRef`\n * a running host derives from the binding's runtime contract, so the value `getProviderApiKey` reads\n * before it refuses a call for a missing key (#2229). Keyed by the same protocol strings as `protocols`;\n * a protocol absent from the map authenticates with nothing a host must hold.\n *\n * Carried so tooling can predict that refusal from discovery without loading a provider module — the\n * creation preflight names the ONE key a step needs, where `secretsContractShape` lists every key the\n * provider may use (Stripe's webhook secret is required by its shape and read by no boot refusal).\n * Values-free, and optional on the wire because a contribution emitted before #2229 carries none; a\n * reader then falls back to the required entries of `secretsContractShape`.\n */\n protocolSecretRefs: z.record(z.string().min(1), z.string().min(1)).optional(),\n /**\n * Optional frontend-safe provider payload for `frontendService` runtime\n * targets. Tooling materializes this into generated runtime artifacts so the\n * backend bootstrap endpoint can serve app-owned public providers without\n * importing frontend packages at runtime.\n */\n frontendEntry: FrontendProviderEntrySchema.optional(),\n /**\n * Optional app module owner when the provider implementation belongs to one\n * concrete module instead of the whole package/runtime.\n */\n sourceModuleId: z.string().min(1).optional(),\n /**\n * The hosts the provider's OAuth2 TOKEN endpoint may resolve to (#1725) — derived by the producer with\n * `describeProviderOAuth2TokenEndpointHosts`, absent when the provider runs no OAuth2 connected account.\n *\n * Carried so `wildo config sync` can refuse a declared shared connection whose member names a different\n * authorization server than its base, without loading either module. Values-free: a login host is not a\n * secret. Optional on the wire because a contribution emitted before #1725 carries none; the registry then\n * makes the same comparison on the loaded modules at boot.\n */\n oauth2TokenEndpointHosts: z.strictObject({\n exact: z.array(z.string().min(1)),\n suffixes: z.array(z.string().min(1)),\n undeterminable: z.boolean(),\n }).optional(),\n /**\n * The secrets-contract SLUGS holding the provider's connected-account OAuth2 client registration — its client id\n * and client secret (#1725). Absent when the provider runs no OAuth2 connected account.\n *\n * Carried so `wildo secrets` can tell an operator which registration a declared shared connection actually needs:\n * the BASE's slots are then required, and a MEMBER's own slots are inert — reported, never required — because the\n * base's client connects and refreshes the one grant.\n */\n oauth2ClientSlotSlugs: z.array(z.string().min(1)).optional(),\n /**\n * What the provider's BACKEND module declares about who runs it and where it processes (#1708) — ESTABLISHED\n * facts, or UNDETERMINED. A frontend facet's profile rides `frontendEntry.complianceProfile` instead (#1743).\n *\n * Carried so the compliance readers (the evidence collector, the companion's drafting brief) learn every\n * declared provider's profile from discovery, WITHOUT loading a provider module — the same reason\n * `oauth2TokenEndpointHosts` is here. Values-free: a vendor's region list is not a secret. Optional on the wire\n * because a contribution emitted before #1708 carries none, which a reader reports as \"no profile\".\n */\n complianceProfile: ProviderComplianceProfileSchema.optional(),\n});\nexport type ProviderCompanionContribution = z.infer<typeof ProviderCompanionContributionSchema>;\n\n/**\n * A package's declaration that it ADDS OPERATIONS to a provider it does not own (#1672).\n *\n * ## Why this is its own record and not a `ProviderCompanionContribution`\n *\n * A contribution says \"this package OWNS provider X\": identity, secrets contract, protocols, the runtimes\n * it reaches. Discovery keeps one owner per ref and compares every contribution's secrets-contract shape\n * against the others. An augmentation owns none of that — the base keeps identity, tier, secrets contract,\n * OAuth2 block and connection — so recording it as a second contribution of the same ref would make the\n * shape comparison treat it as a second owner, and the import map would pick one of the two by sort order.\n * A separate record is what lets the base stay the base.\n *\n * ## What it carries, and why each field is STATIC\n *\n * `operationIds` and `requiredScopes` are stated here rather than read from the catalogue because a\n * catalogue is a LAZY loader that tooling must never call (`ProviderRestOperationCatalogueLoader`). So\n * `wildo config sync` can refuse an operation-id collision and record which scopes an augmentation may ask\n * for without evaluating any vendor code; the runtime then checks that what the loader delivers is exactly\n * what was declared here, and refuses the augmentation otherwise.\n *\n * INERT until an application opts it in under `providers.augmentations.<augments>` — installing a package\n * never adds an operation to a provider on its own.\n *\n * Loose for the reason `ProviderCompanionContributionSchema` is: a newer producer's additive field must ride\n * through an older consumer.\n */\nexport const ProviderAugmentationContributionSchema = z.looseObject({\n /** The ref of the provider this package adds operations to — owned by the engine or another package. */\n augments: z.string().min(1),\n /** The augmentation package's own npm name, as its manifest states it. */\n packageName: z.string().min(1),\n /** Always `CATALOGUE`: an augmentation binds no engine slot and adds only operations. */\n tier: z.literal(ProviderTier.CATALOGUE),\n origin: ProviderOriginSchema,\n /** The specifier a host imports to read the augmentation (`<package>/backend` by convention). */\n runtimeImportPath: z.string().min(1),\n /** Every operation id the augmentation contributes — sorted, unique, non-empty. */\n operationIds: z.array(z.string().min(1)).min(1),\n /** Every vendor scope any of those operations declares in `requiredScopes` — sorted, unique. */\n requiredScopes: z.array(z.string().min(1)).default([]),\n}).superRefine((contribution, ctx) => {\n for (const [field, values] of [['operationIds', contribution.operationIds], ['requiredScopes', contribution.requiredScopes]] as const) {\n for (let index = 1; index < values.length; index += 1) {\n if (values[index - 1].localeCompare(values[index]) >= 0) {\n ctx.addIssue({ code: 'custom', path: [field, index], message: `${field} must be sorted and unique (\"${values[index]}\" follows \"${values[index - 1]}\").` });\n }\n }\n }\n});\nexport type ProviderAugmentationContribution = z.infer<typeof ProviderAugmentationContributionSchema>;\n\nexport interface RuntimeOwnerCompanionExports {\n providerContributions?: ProviderCompanionContribution[];\n /**\n * Operation augmentations of providers this package does not own (#1672). Separate from\n * `providerContributions` on purpose — see {@link ProviderAugmentationContributionSchema}.\n */\n providerAugmentations?: ProviderAugmentationContribution[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-library-companion.shared.definitions.d.ts","sourceRoot":"","sources":["../../../../src/companion/shared-library-companion.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAExF,MAAM,WAAW,6BAA6B,CAC5C,aAAa,SAAS,gBAAgB,GAAG,gBAAgB,CACzD,SAAQ,4BAA4B;IACpC,iBAAiB,EAAE,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACnD"}
1
+ {"version":3,"file":"shared-library-companion.shared.definitions.d.ts","sourceRoot":"","sources":["../../../src/companion/shared-library-companion.shared.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAExF,MAAM,WAAW,6BAA6B,CAC5C,aAAa,SAAS,gBAAgB,GAAG,gBAAgB,CACzD,SAAQ,4BAA4B;IACpC,iBAAiB,EAAE,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-library-companion.shared.definitions.js","sourceRoot":"","sources":["../../../../src/companion/shared-library-companion.shared.definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { SharedSaaSModule } from '../runtime/domain-module.shared.definitions';\nimport type { RuntimeOwnerCompanionExports } from './provider-discovery.shared.schemas';\n\nexport interface SharedLibraryCompanionExports<\n TSharedModule extends SharedSaaSModule = SharedSaaSModule,\n> extends RuntimeOwnerCompanionExports {\n loadSharedModules: () => Promise<TSharedModule[]>;\n}\n"]}
1
+ {"version":3,"file":"shared-library-companion.shared.definitions.js","sourceRoot":"","sources":["../../../src/companion/shared-library-companion.shared.definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { SharedSaaSModule } from '../runtime/domain-module.shared.definitions';\nimport type { RuntimeOwnerCompanionExports } from './provider-discovery.shared.schemas';\n\nexport interface SharedLibraryCompanionExports<\n TSharedModule extends SharedSaaSModule = SharedSaaSModule,\n> extends RuntimeOwnerCompanionExports {\n loadSharedModules: () => Promise<TSharedModule[]>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"companion-exports.d.ts","sourceRoot":"","sources":["../../../src/companion-exports.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC"}
1
+ {"version":3,"file":"companion-exports.d.ts","sourceRoot":"","sources":["../../src/companion-exports.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"companion-exports.js","sourceRoot":"","sources":["../../../src/companion-exports.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC","sourcesContent":["export * from './companion/artifact-placement.shared.definitions';\nexport * from './companion/provider-discovery.shared.schemas';\nexport * from './companion/shared-library-companion.shared.definitions';\n"]}
1
+ {"version":3,"file":"companion-exports.js","sourceRoot":"","sources":["../../src/companion-exports.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC","sourcesContent":["export * from './companion/artifact-placement.shared.definitions';\nexport * from './companion/provider-discovery.shared.schemas';\nexport * from './companion/shared-library-companion.shared.definitions';\n"]}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { AuditEventCategory, AuditEventSeverity } from './auditable-events.shared.schema';
2
+ import { AuditEventCategory, AuditEventSeverity } from './audit-event-classification.shared';
3
3
  import { CoreResourceOperation } from '../../resources/resources.shared.core.definitions';
4
4
  import { ResourceOperationRiskLevel, ResourceRelationship } from '../../resources/resources.shared.schemas';
5
5
  import { CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';
@@ -1 +1 @@
1
- {"version":3,"file":"application-audit-logs.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAA6B,MAAM,kCAAkC,CAAC;AAErH,OAAO,EAAE,qBAAqB,EAAwD,MAAM,mDAAmD,CAAC;AAChJ,OAAO,EAAE,0BAA0B,EAAgC,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAGpF;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,SAAS,cAAc,EAGpE,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,+DAA+D,GAC1E,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmG9C,CAAC"}
1
+ {"version":3,"file":"application-audit-logs.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAG7F,OAAO,EAAE,qBAAqB,EAAwD,MAAM,mDAAmD,CAAC;AAChJ,OAAO,EAAE,0BAA0B,EAAgC,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAGpF;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,SAAS,cAAc,EAGpE,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,+DAA+D,GAC1E,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqG9C,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { AuditEventCategory, AuditEventSeverity, AuditableEvent_BaseSchema } from './auditable-events.shared.schema.js';
2
+ import { AuditEventCategory, AuditEventSeverity } from './audit-event-classification.shared.js';
3
+ import { AuditableEvent_BaseSchema } from './auditable-events.shared.schema.js';
3
4
  import { createResourceConfiguration_Initialization } from '../../resources/resources-config.shared.factory.js';
4
5
  import { CoreResourceOperation, CoreResourceType, coreResourceShared_FieldIdentifier } from '../../resources/resources.shared.core.definitions.js';
5
6
  import { ResourceOperationRiskLevel, ResourceOperationVariantType } from '../../resources/resources.shared.schemas.js';
@@ -151,7 +152,9 @@ export const applicationAuditLogsResourceConfiguration_InitializationFactory = (
151
152
  riskLevel: ResourceOperationRiskLevel.MEDIUM,
152
153
  /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */
153
154
  admitsCrossTenantPlatformAdministration: true,
154
- isSearchable: true,
155
+ // Filters and sorts only, like the organization audit log (#2510): it declared itself searchable over no
156
+ // field, which on MongoDB ran a `$text` search against an index nothing creates.
157
+ isSearchable: false,
155
158
  searchableFields: [],
156
159
  filterFields: {
157
160
  applicationId: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"application-audit-logs.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\nimport { AuditEventCategory, AuditEventSeverity, AuditableEvent_BaseSchema } from './auditable-events.shared.schema';\nimport { createResourceConfiguration_Initialization } from '../../resources/resources-config.shared.factory';\nimport { CoreResourceOperation, CoreResourceType, coreResourceShared_FieldIdentifier } from '../../resources/resources.shared.core.definitions';\nimport { ResourceOperationRiskLevel, ResourceOperationVariantType, ResourceRelationship } from '../../resources/resources.shared.schemas';\nimport { CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { ResourceSystemAccessMode } from '../../resources/resources-config.shared.schemas';\n\n/**\n * The roles the application audit door's READ, LIST and SEARCH accept — ONE list, so the three verbs\n * cannot disagree about who may read the trail.\n *\n * `APP_ADMIN_SUPER_ADMIN` for the operator who investigates and then acts; `APP_AUDIT_EVIDENCE_READER`\n * for a party that must read and must NOT act — an assurance collector's machine credential, an\n * external auditor. Neither is an organization role: the rows behind this door span every tenant.\n */\nexport const APPLICATION_AUDIT_LOG_READ_ROLES: readonly CORE_APP_ROLES[] = Object.freeze([\n CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN,\n CORE_APP_ROLES.APP_AUDIT_EVIDENCE_READER,\n]);\n\n/**\n * The APPLICATION-scoped door onto the audit trail.\n *\n * ## Why this exists at all\n *\n * `AUDIT_LOGS` is organization-scoped and its only route is\n * `/organizations/{organizationId}/audit-logs`, so it returns exactly the rows carrying that\n * tenant. A large share of security events carry NO organization by design — `logUserLogin` takes\n * `organizationId` as optional because no organization is selected at login, and the same is true\n * of session eviction, token refresh and application-wide authentication-policy changes. Measured\n * on a dogfood application (#317): **94 of 127 rows had no organization**, and were reachable\n * through no API. An operator could see 26% of the trail and could not attest the rest, while a\n * reader querying the only available surface saw `user_login: 0` for a control that had emitted 21.\n *\n * ## Why a SEPARATE resource type rather than a second route\n *\n * `generateParentCombinations` composes every URL as\n * `[...primaryScope, ...mandatoryContext, ...optionalCombo]`, so a routed application edge on\n * `AUDIT_LOGS` would appear in EVERY combination and rewrite the organization route to\n * `/applications/{applicationId}/organizations/{organizationId}/audit-logs` — breaking all eight of\n * its documented paths and their consumers. Making the organization edge optional does not help:\n * the empty combination is skipped whenever any parent exists, so no bare route is emitted either.\n * A sibling type carrying ONE application parent takes the route it needs and leaves the existing\n * door byte-identical. The pattern is the engine's own: notification badges are dual-scope with a\n * type per scope, `APPLICATION_API_KEYS` shows the application routing shape, and `USER_SELF`\n * shows a distinct type addressing another's rows.\n *\n * ## Two doors, ONE record set — the security contract\n *\n * Both types resolve to the `auditLogs` collection through\n * `RESOURCE_SHARED_PERSISTENCE_COLLECTION_ALIASES`. That makes the isolation properties a\n * per-DOOR obligation rather than a property of the rows:\n *\n * - the organization door keeps its tenant filter and its organization roles, unchanged;\n * - this door accepts {@link APPLICATION_AUDIT_LOG_READ_ROLES} and nothing else — `APP_ADMIN_SUPER_ADMIN`\n * or the read-only `APP_AUDIT_EVIDENCE_READER`. An organization role must never reach it — the rows\n * behind it span every tenant;\n * - a read here that touches a tenant-attributed row is a CROSS-TENANT read and OWES an audit\n * emission. **It is wired**, by the two halves below acting together, and neither is optional:\n * each read variant declares `admitsCrossTenantPlatformAdministration`, and\n * `ServicesRegistryHandler.recordCrossTenantReadAccess` observes every enrolled read and emits\n * `CROSS_TENANT_ADMINISTRATIVE_ACCESS` once per TENANT the returned rows belong to. The\n * declaration is what enrols the read: `authorizeOrganizations` — where that event is otherwise\n * emitted — runs only for ORGANIZATIONS-scoped resources and decides on ONE fetched row, so it\n * never sees this door at all. Grouping per tenant is what makes the crossing visible to the\n * REACHED tenant, in its own organization-scoped viewer, rather than only to the operator.\n * `.claude/rules/administrative-continuity-floors.md` requires every crossing to be named in the\n * trail, and the trail is the worst possible surface on which to make an operator read invisible.\n * See `security/authorizations/cross-tenant-read-observation.backend.ts` for why an UNDECLARED\n * door is deliberately not observed instead of being observed with a false `admissionDeclared`.\n *\n * ## Deliberately mirrored from the organization resource\n *\n * `isSystemResource`, `systemAccessPolicy.exportSubject: FORBIDDEN` and the ABSENCE of a\n * `retentionPolicy` are copied ON PURPOSE. They are properties of the ROWS, and the rows are the\n * same ones — a second door that disagreed about whether the audit trail is subject-exportable, or\n * about how long it is kept, would be a policy fork over one record set. See the organization\n * config for the reasoning behind each; do not change one without the other.\n *\n * ## Deliberately NOT mirrored\n *\n * There is no CREATE. The organization resource carries a `REPOSITORY_ONLY` CREATE because that is\n * how audit rows are written; writing is not a scope question and must keep exactly one door.\n */\nexport const applicationAuditLogsResourceConfiguration_InitializationFactory = (\n resourcesRelationships: ResourceRelationship[]\n) => createResourceConfiguration_Initialization<\n undefined,\n CoreResourceOperation.READ | CoreResourceOperation.LIST | CoreResourceOperation.SEARCH,\n typeof AuditableEvent_BaseSchema\n>({\n mainSchema: AuditableEvent_BaseSchema,\n resourceIdentifier: CoreResourceType.APPLICATION_AUDIT_LOGS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.APPLICATION_AUDIT_LOGS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n /** Mirrored from the organization door — the same rows, so the same answer. Disclosing the monitoring trail to its own subject is self-defeating and out of Art. 20 scope. */\n systemAccessPolicy: { exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n ],\n\n operationsConfiguration: {\n [CoreResourceOperation.READ]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /**\n * Reading ONE tenant's audit row through the application door IS a crossing, so the cheapest\n * reach — fetch by id — is declared and audited exactly like the collection verbs. Declaring\n * it is also what stops `assignInitiatorOrganizationConfinementToFilter` silently narrowing\n * this door to an operator who happens to carry an ambient organization, which would make a\n * surface documented as spanning every tenant return one tenant and report success.\n */\n admitsCrossTenantPlatformAdministration: true,\n }],\n },\n\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */\n admitsCrossTenantPlatformAdministration: true,\n filterFields: {\n applicationId: z.string(),\n eventType: z.string(),\n eventCategory: z.enum(AuditEventCategory),\n severity: z.enum(AuditEventSeverity),\n userId: z.string(),\n /**\n * Filterable so an operator can narrow to one tenant THROUGH this door, which is the\n * cross-tenant investigation this surface exists for. It is a FILTER, never the isolation\n * boundary: isolation on this door is the role gate above, and narrowing to a tenant does\n * not make the read any less cross-tenant for audit purposes.\n */\n organizationId: z.string(),\n correlationId: z.string(),\n // #1597 — \"what did firm X do here?\": a client filters its own trail by the relationship its firm acted through.\n actingViaServiceProviderRelationshipId: z.string(),\n clientInstanceId: z.string(),\n createdAt: z.date(),\n },\n /** `eventId` last, as the keyset tie-breaker — `createdAt` is not unique under boot/seed bursts. Mirrors the organization door; removing it reintroduces a paging data-loss path. */\n sortFields: ['createdAt', 'severity', 'eventType', 'eventId'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }],\n },\n\n [CoreResourceOperation.SEARCH]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */\n admitsCrossTenantPlatformAdministration: true,\n isSearchable: true,\n searchableFields: [],\n filterFields: {\n applicationId: z.string(),\n eventType: z.string(),\n eventCategory: z.enum(AuditEventCategory),\n severity: z.enum(AuditEventSeverity),\n userId: z.string(),\n organizationId: z.string(),\n correlationId: z.string(),\n // #1597 — \"what did firm X do here?\": a client filters its own trail by the relationship its firm acted through.\n actingViaServiceProviderRelationshipId: z.string(),\n clientInstanceId: z.string(),\n createdAt: z.date(),\n },\n sortFields: ['createdAt', 'severity', 'eventType'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }],\n },\n },\n});\n"]}
1
+ {"version":3,"file":"application-audit-logs.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\nimport { AuditEventCategory, AuditEventSeverity } from './audit-event-classification.shared';\nimport { AuditableEvent_BaseSchema } from './auditable-events.shared.schema';\nimport { createResourceConfiguration_Initialization } from '../../resources/resources-config.shared.factory';\nimport { CoreResourceOperation, CoreResourceType, coreResourceShared_FieldIdentifier } from '../../resources/resources.shared.core.definitions';\nimport { ResourceOperationRiskLevel, ResourceOperationVariantType, ResourceRelationship } from '../../resources/resources.shared.schemas';\nimport { CORE_APP_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { ResourceSystemAccessMode } from '../../resources/resources-config.shared.schemas';\n\n/**\n * The roles the application audit door's READ, LIST and SEARCH accept — ONE list, so the three verbs\n * cannot disagree about who may read the trail.\n *\n * `APP_ADMIN_SUPER_ADMIN` for the operator who investigates and then acts; `APP_AUDIT_EVIDENCE_READER`\n * for a party that must read and must NOT act — an assurance collector's machine credential, an\n * external auditor. Neither is an organization role: the rows behind this door span every tenant.\n */\nexport const APPLICATION_AUDIT_LOG_READ_ROLES: readonly CORE_APP_ROLES[] = Object.freeze([\n CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN,\n CORE_APP_ROLES.APP_AUDIT_EVIDENCE_READER,\n]);\n\n/**\n * The APPLICATION-scoped door onto the audit trail.\n *\n * ## Why this exists at all\n *\n * `AUDIT_LOGS` is organization-scoped and its only route is\n * `/organizations/{organizationId}/audit-logs`, so it returns exactly the rows carrying that\n * tenant. A large share of security events carry NO organization by design — `logUserLogin` takes\n * `organizationId` as optional because no organization is selected at login, and the same is true\n * of session eviction, token refresh and application-wide authentication-policy changes. Measured\n * on a dogfood application (#317): **94 of 127 rows had no organization**, and were reachable\n * through no API. An operator could see 26% of the trail and could not attest the rest, while a\n * reader querying the only available surface saw `user_login: 0` for a control that had emitted 21.\n *\n * ## Why a SEPARATE resource type rather than a second route\n *\n * `generateParentCombinations` composes every URL as\n * `[...primaryScope, ...mandatoryContext, ...optionalCombo]`, so a routed application edge on\n * `AUDIT_LOGS` would appear in EVERY combination and rewrite the organization route to\n * `/applications/{applicationId}/organizations/{organizationId}/audit-logs` — breaking all eight of\n * its documented paths and their consumers. Making the organization edge optional does not help:\n * the empty combination is skipped whenever any parent exists, so no bare route is emitted either.\n * A sibling type carrying ONE application parent takes the route it needs and leaves the existing\n * door byte-identical. The pattern is the engine's own: notification badges are dual-scope with a\n * type per scope, `APPLICATION_API_KEYS` shows the application routing shape, and `USER_SELF`\n * shows a distinct type addressing another's rows.\n *\n * ## Two doors, ONE record set — the security contract\n *\n * Both types resolve to the `auditLogs` collection through\n * `RESOURCE_SHARED_PERSISTENCE_COLLECTION_ALIASES`. That makes the isolation properties a\n * per-DOOR obligation rather than a property of the rows:\n *\n * - the organization door keeps its tenant filter and its organization roles, unchanged;\n * - this door accepts {@link APPLICATION_AUDIT_LOG_READ_ROLES} and nothing else — `APP_ADMIN_SUPER_ADMIN`\n * or the read-only `APP_AUDIT_EVIDENCE_READER`. An organization role must never reach it — the rows\n * behind it span every tenant;\n * - a read here that touches a tenant-attributed row is a CROSS-TENANT read and OWES an audit\n * emission. **It is wired**, by the two halves below acting together, and neither is optional:\n * each read variant declares `admitsCrossTenantPlatformAdministration`, and\n * `ServicesRegistryHandler.recordCrossTenantReadAccess` observes every enrolled read and emits\n * `CROSS_TENANT_ADMINISTRATIVE_ACCESS` once per TENANT the returned rows belong to. The\n * declaration is what enrols the read: `authorizeOrganizations` — where that event is otherwise\n * emitted — runs only for ORGANIZATIONS-scoped resources and decides on ONE fetched row, so it\n * never sees this door at all. Grouping per tenant is what makes the crossing visible to the\n * REACHED tenant, in its own organization-scoped viewer, rather than only to the operator.\n * `.claude/rules/administrative-continuity-floors.md` requires every crossing to be named in the\n * trail, and the trail is the worst possible surface on which to make an operator read invisible.\n * See `security/authorizations/cross-tenant-read-observation.backend.ts` for why an UNDECLARED\n * door is deliberately not observed instead of being observed with a false `admissionDeclared`.\n *\n * ## Deliberately mirrored from the organization resource\n *\n * `isSystemResource`, `systemAccessPolicy.exportSubject: FORBIDDEN` and the ABSENCE of a\n * `retentionPolicy` are copied ON PURPOSE. They are properties of the ROWS, and the rows are the\n * same ones — a second door that disagreed about whether the audit trail is subject-exportable, or\n * about how long it is kept, would be a policy fork over one record set. See the organization\n * config for the reasoning behind each; do not change one without the other.\n *\n * ## Deliberately NOT mirrored\n *\n * There is no CREATE. The organization resource carries a `REPOSITORY_ONLY` CREATE because that is\n * how audit rows are written; writing is not a scope question and must keep exactly one door.\n */\nexport const applicationAuditLogsResourceConfiguration_InitializationFactory = (\n resourcesRelationships: ResourceRelationship[]\n) => createResourceConfiguration_Initialization<\n undefined,\n CoreResourceOperation.READ | CoreResourceOperation.LIST | CoreResourceOperation.SEARCH,\n typeof AuditableEvent_BaseSchema\n>({\n mainSchema: AuditableEvent_BaseSchema,\n resourceIdentifier: CoreResourceType.APPLICATION_AUDIT_LOGS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.APPLICATION_AUDIT_LOGS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n /** Mirrored from the organization door — the same rows, so the same answer. Disclosing the monitoring trail to its own subject is self-defeating and out of Art. 20 scope. */\n systemAccessPolicy: { exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n ],\n\n operationsConfiguration: {\n [CoreResourceOperation.READ]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /**\n * Reading ONE tenant's audit row through the application door IS a crossing, so the cheapest\n * reach — fetch by id — is declared and audited exactly like the collection verbs. Declaring\n * it is also what stops `assignInitiatorOrganizationConfinementToFilter` silently narrowing\n * this door to an operator who happens to carry an ambient organization, which would make a\n * surface documented as spanning every tenant return one tenant and report success.\n */\n admitsCrossTenantPlatformAdministration: true,\n }],\n },\n\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */\n admitsCrossTenantPlatformAdministration: true,\n filterFields: {\n applicationId: z.string(),\n eventType: z.string(),\n eventCategory: z.enum(AuditEventCategory),\n severity: z.enum(AuditEventSeverity),\n userId: z.string(),\n /**\n * Filterable so an operator can narrow to one tenant THROUGH this door, which is the\n * cross-tenant investigation this surface exists for. It is a FILTER, never the isolation\n * boundary: isolation on this door is the role gate above, and narrowing to a tenant does\n * not make the read any less cross-tenant for audit purposes.\n */\n organizationId: z.string(),\n correlationId: z.string(),\n // #1597 — \"what did firm X do here?\": a client filters its own trail by the relationship its firm acted through.\n actingViaServiceProviderRelationshipId: z.string(),\n clientInstanceId: z.string(),\n createdAt: z.date(),\n },\n /** `eventId` last, as the keyset tie-breaker — `createdAt` is not unique under boot/seed bursts. Mirrors the organization door; removing it reintroduces a paging data-loss path. */\n sortFields: ['createdAt', 'severity', 'eventType', 'eventId'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }],\n },\n\n [CoreResourceOperation.SEARCH]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [...APPLICATION_AUDIT_LOG_READ_ROLES],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n /** The declared crossing — see READ. Every enrolled read emits one crossing per tenant reached. */\n admitsCrossTenantPlatformAdministration: true,\n // Filters and sorts only, like the organization audit log (#2510): it declared itself searchable over no\n // field, which on MongoDB ran a `$text` search against an index nothing creates.\n isSearchable: false,\n searchableFields: [],\n filterFields: {\n applicationId: z.string(),\n eventType: z.string(),\n eventCategory: z.enum(AuditEventCategory),\n severity: z.enum(AuditEventSeverity),\n userId: z.string(),\n organizationId: z.string(),\n correlationId: z.string(),\n // #1597 — \"what did firm X do here?\": a client filters its own trail by the relationship its firm acted through.\n actingViaServiceProviderRelationshipId: z.string(),\n clientInstanceId: z.string(),\n createdAt: z.date(),\n },\n sortFields: ['createdAt', 'severity', 'eventType'] as const,\n maxPaginatedResultPerPageLimit: 100,\n }],\n },\n },\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-actor.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-actor.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,oBAAY,kBAAkB;IAC5B;;;;OAIG;IACH,MAAM,WAAW;IACjB;;;;;OAKG;IACH,OAAO,YAAY;IACnB;;;;OAIG;IACH,YAAY,iBAAiB;CAC9B;AAED,4FAA4F;AAC5F,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAqD,CAAC;AAEzG;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,oJAAoJ;AACpJ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,oBAAY,cAAc;IACxB,wFAAwF;IACxF,IAAI,SAAS;IACb;;;;OAIG;IACH,gBAAgB,qBAAqB;IACrC,iIAAiI;IACjI,OAAO,YAAY;IACnB;;;;OAIG;IACH,MAAM,WAAW;IACjB;;;;OAIG;IACH,eAAe,oBAAoB;IACnC,kGAAkG;IAClG,YAAY,iBAAiB;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB;;;;;;iBAuBhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,wEAAwE"}
1
+ {"version":3,"file":"audit-actor.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/compliance/audit-trails/audit-actor.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,oBAAY,kBAAkB;IAC5B;;;;OAIG;IACH,MAAM,WAAW;IACjB;;;;;OAKG;IACH,OAAO,YAAY;IACnB;;;;OAIG;IACH,YAAY,iBAAiB;CAC9B;AAED,4FAA4F;AAC5F,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAqD,CAAC;AAEzG;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,oJAAoJ;AACpJ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,oBAAY,cAAc;IACxB,wFAAwF;IACxF,IAAI,SAAS;IACb;;;;OAIG;IACH,gBAAgB,qBAAqB;IACrC,iIAAiI;IACjI,OAAO,YAAY;IACnB;;;;OAIG;IACH,MAAM,WAAW;IACjB;;;;OAIG;IACH,eAAe,oBAAoB;IACnC,kGAAkG;IAClG,YAAY,iBAAiB;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB;;;;;;iBAuBhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,wEAAwE"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-actor.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-actor.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAN,IAAY,kBAoBX;AApBD,WAAY,kBAAkB;IAC5B;;;;OAIG;IACH,uCAAiB,CAAA;IACjB;;;;;OAKG;IACH,yCAAmB,CAAA;IACnB;;;;OAIG;IACH,mDAA6B,CAAA;AAC/B,CAAC,EApBW,kBAAkB,KAAlB,kBAAkB,QAoB7B;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAsB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEzG;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,oJAAoJ;AACpJ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAN,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB,wFAAwF;IACxF,+BAAa,CAAA;IACb;;;;OAIG;IACH,uDAAqC,CAAA;IACrC,iIAAiI;IACjI,qCAAmB,CAAA;IACnB;;;;OAIG;IACH,mCAAiB,CAAA;IACjB;;;;OAIG;IACH,qDAAmC,CAAA;IACnC,kGAAkG;IAClG,+CAA6B,CAAA;AAC/B,CAAC,EAzBW,cAAc,KAAd,cAAc,QAyBzB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,kFAAkF;IAClF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IACzG;;;;OAIG;IACH,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,iGAAiG,CAAC;IAC9G,2DAA2D;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IAC1G,gHAAgH;IAChH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sGAAsG,CAAC;IACvJ,+EAA+E;IAC/E,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,0FAA0F,CAAC;CACxG,CAAC,CAAC;AAEH,wEAAwE","sourcesContent":["/**\n * Audit ACTOR vocabulary — what goes in an audit event's `*By` field when there is no acting user.\n *\n * Every auditable-event payload carries an actor field (`deletedBy`, `changedBy`, `removedBy`,\n * `requestedBy`, …) typed as a plain string, whose contract is: **the acting user's id, or a\n * sentinel from this enum saying why there is no user.** A reader can always tell the two apart —\n * these values are not id-shaped.\n *\n * ## Why this exists\n *\n * Every emitter used to fall back to the bare literal `'unknown'`, which merged three genuinely\n * different facts into one token:\n *\n * - the scheduled `organization-purge` batch destroying a tenant — the actor is precisely known, it\n * is the system;\n * - a machine principal acting on an API key or OAuth client — non-human, but attributable;\n * - a request that should have carried a principal and did not — a real anomaly.\n *\n * An auditor reading `'unknown'` cannot distinguish \"routine automation\" from \"we failed to\n * attribute a privileged action\", so the one case worth investigating was hidden inside the two that\n * are not. Merging semantically distinct concepts because they share a wire value is exactly what\n * the framework forbids; naming them separately restores the distinction.\n *\n * Discovered 2026-08-04 by the `organization-purge-batch-audit` e2e lane, which observed a\n * batch-purged tenant recorded as deleted by `'unknown'`.\n *\n * assurance-control: WILDO.AUDIT.ATTRIBUTION — a security-relevant action must record who performed\n * it, and must not disguise an unattributable action as an ordinary automated one.\n */\n\nimport { z } from 'zod';\n\n/**\n * Sentinel actors for audit `*By` fields. Resolve one with\n * `resolveAuditActorId(executionContext)` from `@wildo-ai/saas-backend-lib` rather than choosing by\n * hand — the mapping from execution type to sentinel belongs in one place.\n */\nexport enum AuditActorSentinel {\n /**\n * The system acted with no human principal BY DESIGN — a scheduled batch, a cron job, or an\n * internally initiated workflow. This is an ATTRIBUTED outcome: the actor is the application\n * itself, and a reviewer should read it as routine automation.\n */\n SYSTEM = 'system',\n /**\n * A machine principal acted: an organization or application API key, or an OAuth client. Non-human\n * but legitimate and traceable — the specific credential is recorded on the execution context\n * (`initiatorIds.machineCredential`) and on the machine-authentication event trail, so this field\n * records the KIND of actor rather than duplicating a second id shape into a user-id slot.\n */\n MACHINE = 'machine',\n /**\n * A principal was expected and could not be resolved. Unlike the two above this is an ANOMALY, and\n * it is the value a reviewer should alert on: a privileged action happened and the trail cannot\n * say who performed it.\n */\n UNATTRIBUTED = 'unattributed',\n}\n\n/** Every sentinel value, for consumers that need to tell a sentinel from a real user id. */\nexport const AUDIT_ACTOR_SENTINELS: readonly string[] = Object.freeze(Object.values(AuditActorSentinel));\n\n/**\n * Whether an audit `*By` value is a sentinel rather than a user id.\n *\n * Use this instead of comparing against literals at a call site — a consumer that hard-codes\n * `=== 'system'` silently stops matching if the vocabulary grows.\n */\nexport function isAuditActorSentinel(actorId: string): boolean {\n return AUDIT_ACTOR_SENTINELS.includes(actorId);\n}\n\n/** @wildo_source:part:start saas.models.audit-trails.actor-attribution facet:layer:shared facet:family:audit-trails facet:audience:app-developer */\n/**\n * The KIND of principal whose authority an audited action used — recorded on every audit row as\n * `actorKind`, beside `userId`.\n *\n * It answers ONE question and nothing else: *under whose authority did this happen?* Whether an AI\n * agent performed the action is a different question, answered by the presence of the row's\n * `agentActor` ({@link AuditAgentActorSchema}). An agent is never a principal: it always acts under a\n * user's, a machine's, or the application's own authority, so there is deliberately no `AGENT` member.\n * Folding the two into one field would make it answer two questions and a reader could no longer tell\n * \"the user did it\" from \"an agent did it with the user's authority\".\n *\n * The framework fills it on every row, so an application never writes it. An application emitting its\n * own event through `AuditLogsBackendService.logEvent` passes its request context, and with none names\n * the principal instead: `userAuditPrincipal(userId)`, `SYSTEM_AUDIT_PRINCIPAL`,\n * `UNAUTHENTICATED_AUDIT_PRINCIPAL` or `machineCredentialAuditPrincipal(...)`, all exported by\n * `@wildo-ai/saas-backend-lib`. With neither, the kind is read off the `userId` the event carries — right\n * only when that id is the actor, not the subject.\n *\n * assurance-control: WILDO.AUDIT.ATTRIBUTION — every audit row names the kind of principal whose\n * authority was used, so an unattributed action stays distinguishable from routine automation.\n */\nexport enum AuditActorKind {\n /** A signed-in person acting through a first-party session. `userId` is that person. */\n USER = 'user',\n /**\n * A person's authority, exercised by an EXTERNAL OAuth client they delegated to (an A2A or MCP\n * client). `userId` is the delegating person and `delegatingClientId` names the client, taken from\n * the verified token's `azp`.\n */\n DELEGATED_CLIENT = 'delegated_client',\n /** An organization or application machine credential (API key or OAuth client credentials). `principalCredentialId` names it. */\n MACHINE = 'machine',\n /**\n * The application acting on its own behalf by design — a batch, a cron job, an internal workflow, a\n * system-door read or write, or application code handling a signature-verified inbound message or\n * webhook (the sender holds a shared secret, not a credential this application issued).\n */\n SYSTEM = 'system',\n /**\n * Nobody was authenticated, and none was expected: a sign-in or recovery attempt before any factor\n * succeeded, a public operation, an anonymous visitor session. Routine traffic — kept apart from\n * `UNATTRIBUTED` so that a failed login is not reported as the anomaly reviewers alert on.\n */\n UNAUTHENTICATED = 'unauthenticated',\n /** A principal was expected and could not be resolved. The anomaly a reviewer should alert on. */\n UNATTRIBUTED = 'unattributed',\n}\n\n/**\n * Which AI agent performed an audited action, and in which execution — present on an audit row ONLY\n * when an agent acted. Its presence is how the trail says \"an agent did this\"; `actorKind` still names\n * the principal whose authority the agent used.\n *\n * Evidence only: nothing in the framework authorizes on it. It carries identifiers, never the\n * conversation's text, the tool's argument values, or digests of them — a digest of a short argument\n * can be reversed by enumeration, and the audit ledger cannot be scrubbed.\n *\n * Filled by the framework: every write an agent's tool makes — through a resource tool, a hand-written\n * tool, or a system write inside a tool — carries it automatically.\n */\nexport const AuditAgentActorSchema = z.object({\n /** The agent's declared `ref` (a configuration identifier, not personal data). */\n agentRef: z.string().min(1).describe('The declared reference of the AI agent that performed the action.'),\n /**\n * The conversational execution the action belongs to — a pseudonymous key into a transcript the\n * user owns. Absent when an agent was invoked outside any conversational execution: the framework\n * records the agent it knows rather than invent an execution id.\n */\n agentExecutionId: z\n .string()\n .min(1)\n .optional()\n .describe('The conversation run the action belongs to. Absent when the agent acted outside a conversation.'),\n /** The actors system the execution runs in, when known. */\n systemRef: z.string().min(1).optional().describe('The actor system the conversation runs in, when known.'),\n /** The tool the agent called: the `functionRef` of a function tool, or the model-facing name of an MCP tool. */\n toolName: z.string().min(1).optional().describe('The tool the agent called to perform the action: a function tool’s reference, or an MCP tool’s name.'),\n /** The human decision that authorised the call, for an approval-gated tool. */\n decisionRef: z\n .string()\n .min(1)\n .optional()\n .describe('For a tool that requires approval, the id of the human decision that approved this call.'),\n});\nexport type AuditAgentActor = z.infer<typeof AuditAgentActorSchema>;\n/** @wildo_source:part:end saas.models.audit-trails.actor-attribution */\n"]}
1
+ {"version":3,"file":"audit-actor.shared.schemas.js","sourceRoot":"","sources":["../../../../src/compliance/audit-trails/audit-actor.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAN,IAAY,kBAoBX;AApBD,WAAY,kBAAkB;IAC5B;;;;OAIG;IACH,uCAAiB,CAAA;IACjB;;;;;OAKG;IACH,yCAAmB,CAAA;IACnB;;;;OAIG;IACH,mDAA6B,CAAA;AAC/B,CAAC,EApBW,kBAAkB,KAAlB,kBAAkB,QAoB7B;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAsB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEzG;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,oJAAoJ;AACpJ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAN,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB,wFAAwF;IACxF,+BAAa,CAAA;IACb;;;;OAIG;IACH,uDAAqC,CAAA;IACrC,iIAAiI;IACjI,qCAAmB,CAAA;IACnB;;;;OAIG;IACH,mCAAiB,CAAA;IACjB;;;;OAIG;IACH,qDAAmC,CAAA;IACnC,kGAAkG;IAClG,+CAA6B,CAAA;AAC/B,CAAC,EAzBW,cAAc,KAAd,cAAc,QAyBzB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,kFAAkF;IAClF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IACzG;;;;OAIG;IACH,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,iGAAiG,CAAC;IAC9G,2DAA2D;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IAC1G,gHAAgH;IAChH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sGAAsG,CAAC;IACvJ,+EAA+E;IAC/E,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,0FAA0F,CAAC;CACxG,CAAC,CAAC;AAEH,wEAAwE","sourcesContent":["/**\n * Audit ACTOR vocabulary — what goes in an audit event's `*By` field when there is no acting user.\n *\n * Every auditable-event payload carries an actor field (`deletedBy`, `changedBy`, `removedBy`,\n * `requestedBy`, …) typed as a plain string, whose contract is: **the acting user's id, or a\n * sentinel from this enum saying why there is no user.** A reader can always tell the two apart —\n * these values are not id-shaped.\n *\n * ## Why this exists\n *\n * Every emitter used to fall back to the bare literal `'unknown'`, which merged three genuinely\n * different facts into one token:\n *\n * - the scheduled `organization-purge` batch destroying a tenant — the actor is precisely known, it\n * is the system;\n * - a machine principal acting on an API key or OAuth client — non-human, but attributable;\n * - a request that should have carried a principal and did not — a real anomaly.\n *\n * An auditor reading `'unknown'` cannot distinguish \"routine automation\" from \"we failed to\n * attribute a privileged action\", so the one case worth investigating was hidden inside the two that\n * are not. Merging semantically distinct concepts because they share a wire value is exactly what\n * the framework forbids; naming them separately restores the distinction.\n *\n * Discovered 2026-08-04 by the `organization-purge-batch-audit` e2e lane, which observed a\n * batch-purged tenant recorded as deleted by `'unknown'`.\n *\n * assurance-control: WILDO.AUDIT.ATTRIBUTION — a security-relevant action must record who performed\n * it, and must not disguise an unattributable action as an ordinary automated one.\n */\n\nimport { z } from 'zod';\n\n/**\n * Sentinel actors for audit `*By` fields. Resolve one with\n * `resolveAuditActorId(executionContext)` from `@wildo-ai/saas-backend-lib` rather than choosing by\n * hand — the mapping from execution type to sentinel belongs in one place.\n */\nexport enum AuditActorSentinel {\n /**\n * The system acted with no human principal BY DESIGN — a scheduled batch, a cron job, or an\n * internally initiated workflow. This is an ATTRIBUTED outcome: the actor is the application\n * itself, and a reviewer should read it as routine automation.\n */\n SYSTEM = 'system',\n /**\n * A machine principal acted: an organization or application API key, or an OAuth client. Non-human\n * but legitimate and traceable — the specific credential is recorded on the execution context\n * (`initiatorIds.machineCredential`) and on the machine-authentication event trail, so this field\n * records the KIND of actor rather than duplicating a second id shape into a user-id slot.\n */\n MACHINE = 'machine',\n /**\n * A principal was expected and could not be resolved. Unlike the two above this is an ANOMALY, and\n * it is the value a reviewer should alert on: a privileged action happened and the trail cannot\n * say who performed it.\n */\n UNATTRIBUTED = 'unattributed',\n}\n\n/** Every sentinel value, for consumers that need to tell a sentinel from a real user id. */\nexport const AUDIT_ACTOR_SENTINELS: readonly string[] = Object.freeze(Object.values(AuditActorSentinel));\n\n/**\n * Whether an audit `*By` value is a sentinel rather than a user id.\n *\n * Use this instead of comparing against literals at a call site — a consumer that hard-codes\n * `=== 'system'` silently stops matching if the vocabulary grows.\n */\nexport function isAuditActorSentinel(actorId: string): boolean {\n return AUDIT_ACTOR_SENTINELS.includes(actorId);\n}\n\n/** @wildo_source:part:start saas.models.audit-trails.actor-attribution facet:layer:shared facet:family:audit-trails facet:audience:app-developer */\n/**\n * The KIND of principal whose authority an audited action used — recorded on every audit row as\n * `actorKind`, beside `userId`.\n *\n * It answers ONE question and nothing else: *under whose authority did this happen?* Whether an AI\n * agent performed the action is a different question, answered by the presence of the row's\n * `agentActor` ({@link AuditAgentActorSchema}). An agent is never a principal: it always acts under a\n * user's, a machine's, or the application's own authority, so there is deliberately no `AGENT` member.\n * Folding the two into one field would make it answer two questions and a reader could no longer tell\n * \"the user did it\" from \"an agent did it with the user's authority\".\n *\n * The framework fills it on every row, so an application never writes it. An application emitting its\n * own event through `AuditLogsBackendService.logEvent` passes its request context, and with none names\n * the principal instead: `userAuditPrincipal(userId)`, `SYSTEM_AUDIT_PRINCIPAL`,\n * `UNAUTHENTICATED_AUDIT_PRINCIPAL` or `machineCredentialAuditPrincipal(...)`, all exported by\n * `@wildo-ai/saas-backend-lib`. With neither, the kind is read off the `userId` the event carries — right\n * only when that id is the actor, not the subject.\n *\n * assurance-control: WILDO.AUDIT.ATTRIBUTION — every audit row names the kind of principal whose\n * authority was used, so an unattributed action stays distinguishable from routine automation.\n */\nexport enum AuditActorKind {\n /** A signed-in person acting through a first-party session. `userId` is that person. */\n USER = 'user',\n /**\n * A person's authority, exercised by an EXTERNAL OAuth client they delegated to (an A2A or MCP\n * client). `userId` is the delegating person and `delegatingClientId` names the client, taken from\n * the verified token's `azp`.\n */\n DELEGATED_CLIENT = 'delegated_client',\n /** An organization or application machine credential (API key or OAuth client credentials). `principalCredentialId` names it. */\n MACHINE = 'machine',\n /**\n * The application acting on its own behalf by design — a batch, a cron job, an internal workflow, a\n * system-door read or write, or application code handling a signature-verified inbound message or\n * webhook (the sender holds a shared secret, not a credential this application issued).\n */\n SYSTEM = 'system',\n /**\n * Nobody was authenticated, and none was expected: a sign-in or recovery attempt before any factor\n * succeeded, a public operation, an anonymous visitor session. Routine traffic — kept apart from\n * `UNATTRIBUTED` so that a failed login is not reported as the anomaly reviewers alert on.\n */\n UNAUTHENTICATED = 'unauthenticated',\n /** A principal was expected and could not be resolved. The anomaly a reviewer should alert on. */\n UNATTRIBUTED = 'unattributed',\n}\n\n/**\n * Which AI agent performed an audited action, and in which execution — present on an audit row ONLY\n * when an agent acted. Its presence is how the trail says \"an agent did this\"; `actorKind` still names\n * the principal whose authority the agent used.\n *\n * Evidence only: nothing in the framework authorizes on it. It carries identifiers, never the\n * conversation's text, the tool's argument values, or digests of them — a digest of a short argument\n * can be reversed by enumeration, and the audit ledger cannot be scrubbed.\n *\n * Filled by the framework: every write an agent's tool makes — through a resource tool, a hand-written\n * tool, or a system write inside a tool — carries it automatically.\n */\nexport const AuditAgentActorSchema = z.object({\n /** The agent's declared `ref` (a configuration identifier, not personal data). */\n agentRef: z.string().min(1).describe('The declared reference of the AI agent that performed the action.'),\n /**\n * The conversational execution the action belongs to — a pseudonymous key into a transcript the\n * user owns. Absent when an agent was invoked outside any conversational execution: the framework\n * records the agent it knows rather than invent an execution id.\n */\n agentExecutionId: z\n .string()\n .min(1)\n .optional()\n .describe('The conversation run the action belongs to. Absent when the agent acted outside a conversation.'),\n /** The actors system the execution runs in, when known. */\n systemRef: z.string().min(1).optional().describe('The actor system the conversation runs in, when known.'),\n /** The tool the agent called: the `functionRef` of a function tool, or the model-facing name of an MCP tool. */\n toolName: z.string().min(1).optional().describe('The tool the agent called to perform the action: a function tool’s reference, or an MCP tool’s name.'),\n /** The human decision that authorised the call, for an approval-gated tool. */\n decisionRef: z\n .string()\n .min(1)\n .optional()\n .describe('For a tool that requires approval, the id of the human decision that approved this call.'),\n});\nexport type AuditAgentActor = z.infer<typeof AuditAgentActorSchema>;\n/** @wildo_source:part:end saas.models.audit-trails.actor-attribution */\n"]}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The two vocabularies an audit event is classified by: what KIND of activity it records, and how much attention it
3
+ * deserves. Every row carries both (`eventCategory`, `severity`), and they are what SIEM routing, the per-destination
4
+ * event filter and the audit views sort by.
5
+ *
6
+ * Kept in a module of their own, with no imports, because two different places classify: the engine's map of its own
7
+ * event types (`security-audit-event-envelope.shared.schema.ts`) and an APPLICATION's declaration of its own event types
8
+ * (`auditTrail.applicationEventTypes`, in `audit-trail-config.shared.schemas.ts`). The audit-event schemas already import
9
+ * that configuration module, so the vocabularies cannot live beside them without an import cycle — and an enum read
10
+ * while its module is still initializing is `undefined`.
11
+ *
12
+ * Their words are `AUDIT_EVENT_CATEGORY_MEANINGS` and `AUDIT_EVENT_SEVERITY_MEANINGS`, in `auditable-events.shared.schema.ts`.
13
+ */
14
+ /** What kind of activity an audit event records. */
15
+ export declare enum AuditEventCategory {
16
+ AUTHENTICATION = "authentication",
17
+ AUTHORIZATION = "authorization",
18
+ USER_LIFECYCLE = "user_lifecycle",
19
+ ORG_MANAGEMENT = "org_management",
20
+ DATA_ACCESS = "data_access"
21
+ }
22
+ /** How much attention an audit event deserves. */
23
+ export declare enum AuditEventSeverity {
24
+ INFO = "info",
25
+ WARNING = "warning",
26
+ CRITICAL = "critical"
27
+ }
28
+ //# sourceMappingURL=audit-event-classification.shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-event-classification.shared.d.ts","sourceRoot":"","sources":["../../../../src/compliance/audit-trails/audit-event-classification.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,oDAAoD;AACpD,oBAAY,kBAAkB;IAC5B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;CAC5B;AAED,kDAAkD;AAClD,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The two vocabularies an audit event is classified by: what KIND of activity it records, and how much attention it
3
+ * deserves. Every row carries both (`eventCategory`, `severity`), and they are what SIEM routing, the per-destination
4
+ * event filter and the audit views sort by.
5
+ *
6
+ * Kept in a module of their own, with no imports, because two different places classify: the engine's map of its own
7
+ * event types (`security-audit-event-envelope.shared.schema.ts`) and an APPLICATION's declaration of its own event types
8
+ * (`auditTrail.applicationEventTypes`, in `audit-trail-config.shared.schemas.ts`). The audit-event schemas already import
9
+ * that configuration module, so the vocabularies cannot live beside them without an import cycle — and an enum read
10
+ * while its module is still initializing is `undefined`.
11
+ *
12
+ * Their words are `AUDIT_EVENT_CATEGORY_MEANINGS` and `AUDIT_EVENT_SEVERITY_MEANINGS`, in `auditable-events.shared.schema.ts`.
13
+ */
14
+ /** What kind of activity an audit event records. */
15
+ export var AuditEventCategory;
16
+ (function (AuditEventCategory) {
17
+ AuditEventCategory["AUTHENTICATION"] = "authentication";
18
+ AuditEventCategory["AUTHORIZATION"] = "authorization";
19
+ AuditEventCategory["USER_LIFECYCLE"] = "user_lifecycle";
20
+ AuditEventCategory["ORG_MANAGEMENT"] = "org_management";
21
+ AuditEventCategory["DATA_ACCESS"] = "data_access";
22
+ })(AuditEventCategory || (AuditEventCategory = {}));
23
+ /** How much attention an audit event deserves. */
24
+ export var AuditEventSeverity;
25
+ (function (AuditEventSeverity) {
26
+ AuditEventSeverity["INFO"] = "info";
27
+ AuditEventSeverity["WARNING"] = "warning";
28
+ AuditEventSeverity["CRITICAL"] = "critical";
29
+ })(AuditEventSeverity || (AuditEventSeverity = {}));
30
+ //# sourceMappingURL=audit-event-classification.shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-event-classification.shared.js","sourceRoot":"","sources":["../../../../src/compliance/audit-trails/audit-event-classification.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,oDAAoD;AACpD,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,uDAAiC,CAAA;IACjC,qDAA+B,CAAA;IAC/B,uDAAiC,CAAA;IACjC,uDAAiC,CAAA;IACjC,iDAA2B,CAAA;AAC7B,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,kDAAkD;AAClD,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;AACvB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["/**\n * The two vocabularies an audit event is classified by: what KIND of activity it records, and how much attention it\n * deserves. Every row carries both (`eventCategory`, `severity`), and they are what SIEM routing, the per-destination\n * event filter and the audit views sort by.\n *\n * Kept in a module of their own, with no imports, because two different places classify: the engine's map of its own\n * event types (`security-audit-event-envelope.shared.schema.ts`) and an APPLICATION's declaration of its own event types\n * (`auditTrail.applicationEventTypes`, in `audit-trail-config.shared.schemas.ts`). The audit-event schemas already import\n * that configuration module, so the vocabularies cannot live beside them without an import cycle — and an enum read\n * while its module is still initializing is `undefined`.\n *\n * Their words are `AUDIT_EVENT_CATEGORY_MEANINGS` and `AUDIT_EVENT_SEVERITY_MEANINGS`, in `auditable-events.shared.schema.ts`.\n */\n\n/** What kind of activity an audit event records. */\nexport enum AuditEventCategory {\n AUTHENTICATION = 'authentication',\n AUTHORIZATION = 'authorization',\n USER_LIFECYCLE = 'user_lifecycle',\n ORG_MANAGEMENT = 'org_management',\n DATA_ACCESS = 'data_access',\n}\n\n/** How much attention an audit event deserves. */\nexport enum AuditEventSeverity {\n INFO = 'info',\n WARNING = 'warning',\n CRITICAL = 'critical',\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-export-projection.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-export-projection.shared.schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-export-projection.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/compliance/audit-trails/audit-export-projection.shared.schemas.ts"],"names":[],"mappings":"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"}