@wildo-ai/saas-models 1.1.5 → 1.1.6

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 (888) hide show
  1. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  2. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +2 -1
  3. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
  4. package/dist/esm/applications/applications-context.schemas.d.ts +176 -2
  5. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  7. package/dist/esm/applications/applications.shared.resources-config.schemas.js +3 -2
  8. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  9. package/dist/esm/applications/applications.shared.schemas.d.ts +7 -5
  10. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  11. package/dist/esm/applications/applications.shared.schemas.js +6 -4
  12. package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
  13. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +10 -1
  14. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  15. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +49 -15
  16. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
  17. package/dist/esm/billing/billing-account.shared.schemas.js +2 -2
  18. package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
  19. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +25 -0
  20. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  21. package/dist/esm/billing/billing-configuration.shared.schemas.js +19 -0
  22. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  23. package/dist/esm/billing/billing-enums.shared.schemas.d.ts +27 -5
  24. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  25. package/dist/esm/billing/billing-enums.shared.schemas.js +30 -4
  26. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  27. package/dist/esm/billing/billing-types.shared.schemas.d.ts +37 -11
  28. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  29. package/dist/esm/billing/billing-types.shared.schemas.js +31 -19
  30. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  31. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +2 -0
  32. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  33. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js +18 -7
  34. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
  35. package/dist/esm/billing/credit-pool.shared.schemas.d.ts +2 -0
  36. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  37. package/dist/esm/billing/credit-pool.shared.schemas.js +7 -1
  38. package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
  39. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +6 -6
  40. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
  41. package/dist/esm/billing/invoice-ref.shared.schemas.js +1 -1
  42. package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
  43. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  44. package/dist/esm/billing/price.shared.schemas.js +5 -3
  45. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  46. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts +11 -1
  47. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  48. package/dist/esm/billing/product-behavior-policy.shared.schemas.js +39 -23
  49. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  50. package/dist/esm/billing/product-definition.shared.schemas.d.ts +30 -2
  51. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  52. package/dist/esm/billing/product-definition.shared.schemas.js +35 -0
  53. package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
  54. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +6 -3
  55. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  56. package/dist/esm/billing/product.shared.schemas.d.ts +7 -3
  57. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  58. package/dist/esm/billing/product.shared.schemas.js +22 -7
  59. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  60. package/dist/esm/billing/promotions.shared.resources-config.schemas.js +8 -8
  61. package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
  62. package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts +135 -0
  63. package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts.map +1 -0
  64. package/dist/esm/billing/public-pricing-catalog.shared.atoms.js +112 -0
  65. package/dist/esm/billing/public-pricing-catalog.shared.atoms.js.map +1 -0
  66. package/dist/esm/billing/public-pricing-catalog.shared.d.ts +30 -0
  67. package/dist/esm/billing/public-pricing-catalog.shared.d.ts.map +1 -0
  68. package/dist/esm/billing/public-pricing-catalog.shared.js +53 -0
  69. package/dist/esm/billing/public-pricing-catalog.shared.js.map +1 -0
  70. package/dist/esm/billing/referral-reward.shared.schemas.d.ts +51 -0
  71. package/dist/esm/billing/referral-reward.shared.schemas.d.ts.map +1 -0
  72. package/dist/esm/billing/referral-reward.shared.schemas.js +92 -0
  73. package/dist/esm/billing/referral-reward.shared.schemas.js.map +1 -0
  74. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts +54 -33
  75. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  76. package/dist/esm/billing/referral.shared.resources-config.schemas.js +56 -2
  77. package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
  78. package/dist/esm/billing/referral.shared.schemas.d.ts +22 -37
  79. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  80. package/dist/esm/billing/referral.shared.schemas.js +24 -44
  81. package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
  82. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +9 -1
  83. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  84. package/dist/esm/billing/subscription.shared.resources-config.schemas.js +55 -22
  85. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  86. package/dist/esm/billing/subscription.shared.schemas.d.ts +80 -5
  87. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  88. package/dist/esm/billing/subscription.shared.schemas.js +85 -25
  89. package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
  90. package/dist/esm/billing/usage-record.shared.schemas.js +5 -5
  91. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  92. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +143 -2
  93. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  94. package/dist/esm/companion/provider-discovery.shared.schemas.js +84 -1
  95. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  96. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +14 -1
  97. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  98. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +4 -0
  99. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
  100. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts +70 -0
  101. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -1
  102. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js +87 -0
  103. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -1
  104. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts +34 -0
  105. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -1
  106. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js +137 -3
  107. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -1
  108. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts +7 -0
  109. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
  110. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js.map +1 -1
  111. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +28 -2
  112. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  113. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +29 -8
  114. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
  115. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +29 -6
  116. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  117. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +38 -9
  118. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  119. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +1822 -146
  120. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  121. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +1777 -87
  122. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  123. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts +10 -0
  124. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  125. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +148 -7
  126. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  127. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +2 -0
  128. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
  129. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js +2 -0
  130. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
  131. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts +0 -8
  132. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +0 -1
  133. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js.map +0 -1
  134. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts +17 -8
  135. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -1
  136. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +43 -20
  137. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -1
  138. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +38 -0
  139. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
  140. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +39 -0
  141. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
  142. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts +35 -0
  143. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts.map +1 -0
  144. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js +82 -0
  145. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js.map +1 -0
  146. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts +37 -0
  147. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts.map +1 -0
  148. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js +223 -0
  149. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js.map +1 -0
  150. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts +222 -0
  151. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts.map +1 -0
  152. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js +331 -0
  153. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js.map +1 -0
  154. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +37 -3
  155. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
  156. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +33 -4
  157. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
  158. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts +52 -0
  159. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts.map +1 -0
  160. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js +116 -0
  161. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js.map +1 -0
  162. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts +11 -0
  163. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts.map +1 -0
  164. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js +11 -0
  165. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js.map +1 -0
  166. package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts +93 -0
  167. package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts.map +1 -0
  168. package/dist/esm/compliance/privacy/retention-binding.shared.utils.js +149 -0
  169. package/dist/esm/compliance/privacy/retention-binding.shared.utils.js.map +1 -0
  170. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts +43 -0
  171. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts.map +1 -0
  172. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js +106 -0
  173. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js.map +1 -0
  174. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts +209 -0
  175. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts.map +1 -0
  176. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js +226 -0
  177. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js.map +1 -0
  178. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts +129 -5
  179. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
  180. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js +128 -4
  181. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -1
  182. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts +53 -0
  183. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts.map +1 -0
  184. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js +74 -0
  185. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js.map +1 -0
  186. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts +311 -0
  187. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts.map +1 -0
  188. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js +355 -0
  189. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js.map +1 -0
  190. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +178 -39
  191. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
  192. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +145 -35
  193. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
  194. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
  195. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js +26 -0
  196. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -1
  197. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts +9 -0
  198. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  199. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  200. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +109 -1
  201. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  202. package/dist/esm/config/app-configuration-shared.shared.schemas.js +57 -0
  203. package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
  204. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +69 -0
  205. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/entity-identity-config.shared.schemas.js +93 -0
  207. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  208. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +16 -16
  209. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +160 -61
  210. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  211. package/dist/esm/config/frontend/navigation.shared.schemas.js +297 -65
  212. package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
  213. package/dist/esm/errors/caught-error-description.shared.utils.d.ts +69 -0
  214. package/dist/esm/errors/caught-error-description.shared.utils.d.ts.map +1 -0
  215. package/dist/esm/errors/caught-error-description.shared.utils.js +77 -0
  216. package/dist/esm/errors/caught-error-description.shared.utils.js.map +1 -0
  217. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +76 -3
  218. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  219. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +76 -2
  220. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  221. package/dist/esm/errors/errors.shared.schemas.d.ts +20 -1
  222. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  223. package/dist/esm/errors/errors.shared.schemas.js +16 -9
  224. package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
  225. package/dist/esm/errors/errors.shared.utils.d.ts +0 -24
  226. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  227. package/dist/esm/errors/errors.shared.utils.js +0 -39
  228. package/dist/esm/errors/errors.shared.utils.js.map +1 -1
  229. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts +6 -7
  230. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -1
  231. package/dist/esm/errors/thrown-value-description.shared.utils.js +6 -7
  232. package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -1
  233. package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts +70 -0
  234. package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts.map +1 -0
  235. package/dist/esm/external-data/external-data-pipeline-description.shared.js +92 -0
  236. package/dist/esm/external-data/external-data-pipeline-description.shared.js.map +1 -0
  237. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts +154 -0
  238. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts.map +1 -0
  239. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js +161 -0
  240. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js.map +1 -0
  241. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +1071 -23
  242. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  243. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js +1065 -17
  244. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  245. package/dist/esm/external-data/external-data-provenance.shared.d.ts +71 -0
  246. package/dist/esm/external-data/external-data-provenance.shared.d.ts.map +1 -0
  247. package/dist/esm/external-data/external-data-provenance.shared.js +88 -0
  248. package/dist/esm/external-data/external-data-provenance.shared.js.map +1 -0
  249. package/dist/esm/external-data.exports.d.ts +5 -0
  250. package/dist/esm/external-data.exports.d.ts.map +1 -1
  251. package/dist/esm/external-data.exports.js +11 -0
  252. package/dist/esm/external-data.exports.js.map +1 -1
  253. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +17 -2
  254. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  255. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +22 -4
  256. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  257. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  258. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +3 -0
  259. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  260. package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -1
  261. package/dist/esm/external-providers/engine-capability-surface.shared.js +2 -0
  262. package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -1
  263. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +152 -1
  264. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  265. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +4 -3
  266. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
  267. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +4 -3
  268. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
  269. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +45 -0
  270. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
  271. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +14 -0
  272. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
  273. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +188 -4
  274. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  275. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +76 -9
  276. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  277. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts +175 -33
  278. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -1
  279. package/dist/esm/external-providers/frontend-provider-public-config.shared.js +247 -42
  280. package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -1
  281. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts +53 -0
  282. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts.map +1 -0
  283. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js +41 -0
  284. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js.map +1 -0
  285. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts +150 -0
  286. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts.map +1 -0
  287. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js +22 -0
  288. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js.map +1 -0
  289. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts +42 -0
  290. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts.map +1 -0
  291. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js +49 -0
  292. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js.map +1 -0
  293. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts +53 -0
  294. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -1
  295. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js +56 -0
  296. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -1
  297. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +34 -0
  298. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  299. package/dist/esm/external-providers/provider-capability.shared.schemas.js +34 -0
  300. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  301. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +341 -4
  302. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  303. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +270 -20
  304. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  305. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts +6 -2
  306. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -1
  307. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js +6 -2
  308. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -1
  309. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +174 -1
  310. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
  311. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +125 -0
  312. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
  313. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +3 -3
  314. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts +42 -0
  315. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts.map +1 -0
  316. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js +57 -0
  317. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js.map +1 -0
  318. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +6 -0
  319. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  320. package/dist/esm/external-providers/provider-protocol.shared.schemas.js +6 -0
  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 +58 -0
  323. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts.map +1 -0
  324. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js +35 -0
  325. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js.map +1 -0
  326. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts +115 -0
  327. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts.map +1 -0
  328. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js +137 -0
  329. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js.map +1 -0
  330. package/dist/esm/external-providers/provider-usage-cost.shared.d.ts +73 -0
  331. package/dist/esm/external-providers/provider-usage-cost.shared.d.ts.map +1 -0
  332. package/dist/esm/external-providers/provider-usage-cost.shared.js +171 -0
  333. package/dist/esm/external-providers/provider-usage-cost.shared.js.map +1 -0
  334. package/dist/esm/external-providers/provider-usage-pricing.example.d.ts +12 -0
  335. package/dist/esm/external-providers/provider-usage-pricing.example.d.ts.map +1 -0
  336. package/dist/esm/external-providers/provider-usage-pricing.example.js +40 -0
  337. package/dist/esm/external-providers/provider-usage-pricing.example.js.map +1 -0
  338. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts +68 -32
  339. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
  340. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js +63 -52
  341. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -1
  342. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +5 -5
  343. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
  344. package/dist/esm/features/application-features.shared.resources-config.schemas.js +13 -5
  345. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
  346. package/dist/esm/features/connected-feature.example.d.ts.map +1 -1
  347. package/dist/esm/features/connected-feature.example.js +2 -1
  348. package/dist/esm/features/connected-feature.example.js.map +1 -1
  349. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  350. package/dist/esm/features/core-feature-definitions.shared.js +2 -1
  351. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  352. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  353. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  354. package/dist/esm/features/feature-definition.shared.schemas.d.ts +2 -11
  355. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  356. package/dist/esm/features/feature-definition.shared.schemas.js +0 -12
  357. package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
  358. package/dist/esm/features/scope-features.shared.schemas.d.ts +31 -17
  359. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  360. package/dist/esm/features/scope-features.shared.schemas.js +27 -5
  361. package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
  362. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +5 -5
  363. package/dist/esm/flows-actors/actors.shared.schemas.d.ts +127 -11
  364. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  365. package/dist/esm/flows-actors/actors.shared.schemas.js +32 -1
  366. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  367. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +16 -0
  368. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
  369. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js +7 -0
  370. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -1
  371. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts +68 -0
  372. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts.map +1 -0
  373. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js +276 -0
  374. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js.map +1 -0
  375. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts +468 -0
  376. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts.map +1 -0
  377. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js +472 -0
  378. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js.map +1 -0
  379. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts +118 -0
  380. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts.map +1 -0
  381. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js +144 -0
  382. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js.map +1 -0
  383. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +142 -8
  384. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  385. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +209 -11
  386. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  387. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +37 -2
  388. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  389. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +30 -2
  390. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  391. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts +0 -11
  392. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  393. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js +12 -5
  394. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
  395. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts +45 -6
  396. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  397. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js +31 -5
  398. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
  399. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +30 -30
  400. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  401. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +15 -7
  402. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  403. package/dist/esm/flows-actors/flows.shared.schemas.d.ts +15 -0
  404. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  405. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts +506 -0
  406. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -1
  407. package/dist/esm/flows-actors/human-decision.shared.schemas.js +502 -0
  408. package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -1
  409. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts +46 -0
  410. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts.map +1 -0
  411. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js +65 -0
  412. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js.map +1 -0
  413. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts +120 -0
  414. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts.map +1 -0
  415. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js +165 -0
  416. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js.map +1 -0
  417. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts +45 -0
  418. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts.map +1 -0
  419. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js +127 -0
  420. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js.map +1 -0
  421. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts +83 -0
  422. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts.map +1 -0
  423. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js +97 -0
  424. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js.map +1 -0
  425. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts +136 -0
  426. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts.map +1 -0
  427. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js +90 -0
  428. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js.map +1 -0
  429. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts +5 -1
  430. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -1
  431. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js +19 -4
  432. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -1
  433. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts +13 -15
  434. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js +30 -17
  436. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -1
  437. package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts +268 -0
  438. package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts.map +1 -0
  439. package/dist/esm/flows-actors/review-deadlines.shared.schemas.js +576 -0
  440. package/dist/esm/flows-actors/review-deadlines.shared.schemas.js.map +1 -0
  441. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +30 -0
  442. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  443. package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts +129 -0
  444. package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts.map +1 -0
  445. package/dist/esm/flows-actors/work-attribution.shared.schemas.js +141 -0
  446. package/dist/esm/flows-actors/work-attribution.shared.schemas.js.map +1 -0
  447. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts +22 -1
  448. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
  449. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js +23 -0
  450. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
  451. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +61 -0
  452. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
  453. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +61 -0
  454. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -1
  455. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  456. package/dist/esm/guidance/guidance-state.shared.schemas.js +11 -10
  457. package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
  458. package/dist/esm/guidance/lifecycle-state.shared.schemas.js +6 -6
  459. package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
  460. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  461. package/dist/esm/guidance/progression-state.shared.schemas.js +8 -7
  462. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  463. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js +1 -1
  464. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -1
  465. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +550 -30
  466. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  467. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +498 -34
  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 +62 -0
  470. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts.map +1 -0
  471. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js +66 -0
  472. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js.map +1 -0
  473. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts +133 -0
  474. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts.map +1 -0
  475. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js +191 -0
  476. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js.map +1 -0
  477. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts +37 -6
  478. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -1
  479. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js +37 -6
  480. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -1
  481. package/dist/esm/i18n/application-config-vocabulary.shared.d.ts +36 -0
  482. package/dist/esm/i18n/application-config-vocabulary.shared.d.ts.map +1 -0
  483. package/dist/esm/i18n/application-config-vocabulary.shared.js +39 -0
  484. package/dist/esm/i18n/application-config-vocabulary.shared.js.map +1 -0
  485. package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts +11 -0
  486. package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts.map +1 -0
  487. package/dist/esm/i18n/engine-open-vocabulary-values.shared.js +14 -0
  488. package/dist/esm/i18n/engine-open-vocabulary-values.shared.js.map +1 -0
  489. package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts +20 -0
  490. package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts.map +1 -0
  491. package/dist/esm/i18n/engine-open-vocabulary.shared.js +21 -0
  492. package/dist/esm/i18n/engine-open-vocabulary.shared.js.map +1 -0
  493. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts +94 -0
  494. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts.map +1 -0
  495. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js +206 -0
  496. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js.map +1 -0
  497. package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts +169 -0
  498. package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts.map +1 -0
  499. package/dist/esm/inbound/conversation-threads.shared.schemas.js +231 -0
  500. package/dist/esm/inbound/conversation-threads.shared.schemas.js.map +1 -0
  501. package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts +195 -0
  502. package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts.map +1 -0
  503. package/dist/esm/inbound/inbound-channels.shared.schemas.js +244 -0
  504. package/dist/esm/inbound/inbound-channels.shared.schemas.js.map +1 -0
  505. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts +36 -0
  506. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts.map +1 -0
  507. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js +169 -0
  508. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js.map +1 -0
  509. package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts +404 -0
  510. package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts.map +1 -0
  511. package/dist/esm/inbound/inbound-delivery.shared.schemas.js +449 -0
  512. package/dist/esm/inbound/inbound-delivery.shared.schemas.js.map +1 -0
  513. package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts +46 -0
  514. package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts.map +1 -0
  515. package/dist/esm/inbound/inbound-endpoint-env.shared.js +57 -0
  516. package/dist/esm/inbound/inbound-endpoint-env.shared.js.map +1 -0
  517. package/dist/esm/index.d.ts +58 -1
  518. package/dist/esm/index.d.ts.map +1 -1
  519. package/dist/esm/index.js +67 -1
  520. package/dist/esm/index.js.map +1 -1
  521. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +28 -0
  522. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
  523. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js +29 -0
  524. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
  525. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +95 -1
  526. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -1
  527. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +121 -0
  528. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -1
  529. package/dist/esm/meta-workflows.exports.d.ts +0 -1
  530. package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
  531. package/dist/esm/meta-workflows.exports.js +0 -1
  532. package/dist/esm/meta-workflows.exports.js.map +1 -1
  533. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +7 -1
  534. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  535. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js +35 -0
  536. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  537. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts +131 -0
  538. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts.map +1 -0
  539. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js +258 -0
  540. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js.map +1 -0
  541. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts +448 -0
  542. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts.map +1 -0
  543. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js +530 -0
  544. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js.map +1 -0
  545. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  546. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js +4 -3
  547. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
  548. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +16 -1
  549. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  550. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +46 -16
  551. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  552. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +19 -12
  553. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  554. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +77 -12
  555. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  556. package/dist/esm/notifications/notification-badges.schemas.d.ts +35 -3
  557. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  558. package/dist/esm/notifications/notification-badges.schemas.js +43 -3
  559. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  560. package/dist/esm/notifications/notifications.shared.schemas.d.ts +66 -399
  561. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  562. package/dist/esm/notifications/notifications.shared.schemas.js +111 -58
  563. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  564. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +5 -5
  565. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +6 -6
  566. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  567. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +3 -0
  568. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  569. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +60 -14
  570. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
  571. package/dist/esm/organizations/organization-members.shared.schemas.d.ts +3 -0
  572. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  573. package/dist/esm/organizations/organization-members.shared.schemas.js +30 -0
  574. package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
  575. package/dist/esm/organizations/organization-notifications.shared.schemas.js +9 -9
  576. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  577. package/dist/esm/organizations/organization-preferences.shared.schemas.js +4 -4
  578. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  579. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts +0 -1
  580. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  581. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +5 -5
  582. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  583. package/dist/esm/organizations/organization-profile.shared.schemas.js +15 -10
  584. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  585. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js +1 -1
  586. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -1
  587. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
  588. package/dist/esm/organizations/organization-unit-members.shared.schemas.js +2 -1
  589. package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -1
  590. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts +63 -1
  591. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
  592. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js +106 -5
  593. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -1
  594. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  595. package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -0
  596. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  597. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  598. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js +7 -2
  599. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
  600. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +3 -1
  601. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  602. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +12 -8
  603. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  604. package/dist/esm/organizations/organizations.shared.schemas.d.ts +7 -2
  605. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  606. package/dist/esm/organizations/organizations.shared.schemas.js +51 -1
  607. package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
  608. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts +58 -0
  609. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts.map +1 -0
  610. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js +188 -0
  611. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js.map +1 -0
  612. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts +122 -0
  613. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts.map +1 -0
  614. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js +136 -0
  615. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js.map +1 -0
  616. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts +36 -0
  617. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts.map +1 -0
  618. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js +155 -0
  619. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js.map +1 -0
  620. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts +229 -0
  621. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts.map +1 -0
  622. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js +290 -0
  623. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js.map +1 -0
  624. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts +48 -0
  625. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts.map +1 -0
  626. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js +50 -0
  627. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js.map +1 -0
  628. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts +97 -0
  629. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts.map +1 -0
  630. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js +572 -0
  631. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js.map +1 -0
  632. package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts +590 -0
  633. package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts.map +1 -0
  634. package/dist/esm/organizations/service-provider-relationships.shared.schemas.js +869 -0
  635. package/dist/esm/organizations/service-provider-relationships.shared.schemas.js.map +1 -0
  636. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +36 -6
  637. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
  638. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +57 -16
  639. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
  640. package/dist/esm/provider-registration-runtime.exports.d.ts +0 -1
  641. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
  642. package/dist/esm/provider-registration-runtime.exports.js +0 -1
  643. package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
  644. package/dist/esm/public-runtime/index.d.ts +30 -11
  645. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  646. package/dist/esm/public-runtime/index.js +30 -11
  647. package/dist/esm/public-runtime/index.js.map +1 -1
  648. package/dist/esm/queue/jobs.shared.schemas.d.ts +36 -8
  649. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  650. package/dist/esm/queue/jobs.shared.schemas.js +12 -0
  651. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  652. package/dist/esm/requests/header-keys.shared.d.ts +6 -0
  653. package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
  654. package/dist/esm/requests/header-keys.shared.js +7 -0
  655. package/dist/esm/requests/header-keys.shared.js.map +1 -1
  656. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
  657. package/dist/esm/requests/manual-controllers-routes-documentation.js +147 -8
  658. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
  659. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +51 -23
  660. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  661. package/dist/esm/requests/manual-controllers-routes-urls.js +64 -0
  662. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  663. package/dist/esm/requests/websocket.shared.schemas.d.ts +78 -13
  664. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  665. package/dist/esm/requests/websocket.shared.schemas.js +91 -18
  666. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  667. package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts +21 -0
  668. package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts.map +1 -0
  669. package/dist/esm/resources/embedded-resource-mark.shared.utils.js +22 -0
  670. package/dist/esm/resources/embedded-resource-mark.shared.utils.js.map +1 -0
  671. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  672. package/dist/esm/resources/resources-config.shared.factory.js +812 -32
  673. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  674. package/dist/esm/resources/resources-config.shared.schemas.d.ts +244 -48
  675. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  676. package/dist/esm/resources/resources-config.shared.schemas.js +151 -17
  677. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  678. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  679. package/dist/esm/resources/resources-registry.shared.core.definitions.js +353 -12
  680. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  681. package/dist/esm/resources/resources.shared.core.definitions.d.ts +45 -0
  682. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  683. package/dist/esm/resources/resources.shared.core.definitions.js +92 -0
  684. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  685. package/dist/esm/resources/resources.shared.schemas.d.ts +2 -17
  686. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  687. package/dist/esm/resources/resources.shared.schemas.js +24 -20
  688. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  689. package/dist/esm/resources/resources.shared.utils.d.ts +16 -8
  690. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  691. package/dist/esm/resources/resources.shared.utils.js +16 -8
  692. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  693. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts +2 -2
  694. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
  695. package/dist/esm/resources/utils/collection-export.shared.utils.js +4 -2
  696. package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -1
  697. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts +103 -0
  698. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts.map +1 -0
  699. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js +275 -0
  700. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js.map +1 -0
  701. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts +51 -0
  702. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts.map +1 -0
  703. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js +28 -0
  704. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js.map +1 -0
  705. package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -1
  706. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js +30 -19
  707. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -1
  708. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts +2 -0
  709. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts.map +1 -0
  710. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js +33 -0
  711. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js.map +1 -0
  712. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts +15 -0
  713. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  714. package/dist/esm/resources/utils/resource-polymorphism.factory.js +6 -1
  715. package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
  716. package/dist/esm/resources/utils/resource-polymorphism.schemas.js +30 -4
  717. package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
  718. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +46 -0
  719. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  720. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +205 -22
  721. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
  722. package/dist/esm/resources/utils/resources-serialization.utils.d.ts +19 -2
  723. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  724. package/dist/esm/resources/utils/resources-serialization.utils.js +4 -0
  725. package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
  726. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  727. package/dist/esm/resources/utils/shared-persistence-collection.utils.js +15 -9
  728. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  729. package/dist/esm/resources/work-unit.shared.schemas.d.ts +20 -0
  730. package/dist/esm/resources/work-unit.shared.schemas.d.ts.map +1 -0
  731. package/dist/esm/resources/work-unit.shared.schemas.js +19 -0
  732. package/dist/esm/resources/work-unit.shared.schemas.js.map +1 -0
  733. package/dist/esm/runtime/execution-context.shared.schemas.d.ts +48 -1
  734. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  735. package/dist/esm/runtime/execution-context.shared.schemas.js +101 -9
  736. package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
  737. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
  738. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  739. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +37 -20
  740. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  741. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
  742. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  743. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +61 -48
  744. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  745. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts +26 -0
  746. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  747. package/dist/esm/security/api-keys/api-keys.shared.schemas.js +39 -5
  748. package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
  749. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +5 -3
  750. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  751. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +6 -0
  752. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  753. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +2 -2
  754. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -1
  755. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts +11 -0
  756. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  757. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js +19 -8
  758. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
  759. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +1 -1
  760. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +5 -5
  761. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  762. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js +11 -11
  763. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
  764. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts +2 -0
  765. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  766. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js +9 -0
  767. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
  768. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts +169 -0
  769. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts.map +1 -0
  770. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js +162 -0
  771. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js.map +1 -0
  772. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  773. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js +10 -8
  774. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
  775. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +8 -8
  776. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
  777. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  778. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +17 -16
  779. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  780. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  781. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +28 -25
  782. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  783. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts +17 -6
  784. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  785. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js +90 -38
  786. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
  787. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +0 -24
  788. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  789. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +79 -68
  790. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  791. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +8 -1
  792. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
  793. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +7 -0
  794. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
  795. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +1 -1
  796. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -1
  797. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +7 -7
  798. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  799. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  800. package/dist/esm/security/authorizations/roles.shared.defaults.js +56 -0
  801. package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
  802. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +77 -1
  803. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  804. package/dist/esm/security/authorizations/roles.shared.schemas.js +90 -0
  805. package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
  806. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts +86 -0
  807. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts.map +1 -0
  808. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js +40 -0
  809. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js.map +1 -0
  810. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +2 -1
  811. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
  812. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js +2 -1
  813. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
  814. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +2 -1
  815. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
  816. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +2 -1
  817. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -1
  818. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +46 -14
  819. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -1
  820. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +81 -21
  821. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
  822. package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts +69 -0
  823. package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts.map +1 -0
  824. package/dist/esm/security/credential-rotation-grace.shared.utils.js +77 -0
  825. package/dist/esm/security/credential-rotation-grace.shared.utils.js.map +1 -0
  826. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  827. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +28 -8
  828. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
  829. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +3 -1
  830. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
  831. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +89 -14
  832. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  833. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +1 -0
  834. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  835. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +25 -4
  836. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  837. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts +7 -1
  838. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -1
  839. package/dist/esm/security/outbound-target-control.shared.schemas.js +6 -0
  840. package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -1
  841. package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts +143 -0
  842. package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts.map +1 -0
  843. package/dist/esm/security/submission-challenge/submission-challenge.shared.js +123 -0
  844. package/dist/esm/security/submission-challenge/submission-challenge.shared.js.map +1 -0
  845. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts +384 -0
  846. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts.map +1 -0
  847. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js +327 -0
  848. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js.map +1 -0
  849. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts +121 -8
  850. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -1
  851. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js +83 -4
  852. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -1
  853. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts +266 -8
  854. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -1
  855. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js +291 -7
  856. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -1
  857. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts +313 -3
  858. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -1
  859. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js +369 -3
  860. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -1
  861. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -1
  862. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js +2 -1
  863. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -1
  864. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +5 -3
  865. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  866. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js +19 -10
  867. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
  868. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
  869. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +6 -0
  870. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
  871. package/dist/esm/users/user-preferences-reset.shared.utils.js +2 -2
  872. package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -1
  873. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +0 -3
  874. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  875. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +0 -3
  876. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  877. package/dist/esm/users/user-self.shared.resources-config.schemas.js +1 -1
  878. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  879. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  880. package/dist/esm/users/users.shared.resources-config.schemas.js +82 -20
  881. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  882. package/dist/esm/users/users.shared.schemas.d.ts +12 -9
  883. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  884. package/dist/esm/users/users.shared.schemas.js +49 -18
  885. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  886. package/package.json +4 -4
  887. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js +0 -7
  888. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -0,0 +1,331 @@
1
+ /**
2
+ * Legal holds — a recorded decision that suspends DELETION of a defined scope until it is released (#1634).
3
+ *
4
+ * ## Why it exists
5
+ *
6
+ * Once data is deleted on a schedule (#1613's retention-class sweep), a firm under litigation, a
7
+ * regulator's investigation or a client dispute must be able to stop that for a defined scope, and
8
+ * keep proof that it did. A hold is that stop. It is a decision about a CASE, which is why it is not a
9
+ * retention class: a statutory period is a property of a class of data (#1635); a hold names a scope
10
+ * and a ground, and ends only when somebody releases it.
11
+ *
12
+ * ## What a hold suspends
13
+ *
14
+ * Every door that destroys data consults ONE predicate before destroying anything
15
+ * ({@link matchLegalHoldsToRows}, evaluated over the active holds the backend reads in one query):
16
+ *
17
+ * | door | what a held row gets |
18
+ * |---|---|
19
+ * | the retention-class sweep | skipped and counted, never thrown |
20
+ * | a subject erasure | left exactly as it is (neither deleted nor scrubbed), reported per row |
21
+ * | the tenant purge | the whole tenant is skipped while ANY hold on it is active |
22
+ * | a DELETE / DELETE_MANY, and an `onParentDelete` cascade | refused, 409 {@link LegalHoldErrorCode.LEGAL_HOLD_ACTIVE} |
23
+ * | file bytes in object storage | not hard-deleted while the owning row is held |
24
+ * | RAG chunk removal | chunks of a held row are kept |
25
+ *
26
+ * Impersonalization counts as destruction: a scrub removes exactly what a hold exists to preserve.
27
+ *
28
+ * ## What it does NOT do
29
+ *
30
+ * It does not restrict PROCESSING (reads, updates). A hold is a preservation duty, and a row that must
31
+ * be preserved may still be corrected; restricting processing of kept data is #1635's statutory
32
+ * restriction, a different obligation with a different trigger.
33
+ *
34
+ * assurance-control: WILDO.PRIVACY.STORAGE_LIMITATION — deletion suspended under a recorded legal hold.
35
+ */
36
+ import { z } from 'zod';
37
+ import { PersonalDataCategory } from './personal-data-category.shared.schemas.js';
38
+ /** @wildo_source:part:start saas.models.privacy.legal-holds facet:layer:shared facet:audience:app-developer */
39
+ /**
40
+ * WHAT a hold covers.
41
+ *
42
+ * - `ORGANIZATION` — every row the tenant owns, and the tenant itself (it is not purged).
43
+ * - `RESOURCE_ROWS` — the rows of ONE resource type in the tenant: the listed `rowIds`, or every row of
44
+ * that type when none are listed. An explicit id list, not a query: a hold is evidence, and "which rows
45
+ * were held" must be answerable from the hold alone, without re-running a filter against data that
46
+ * has since changed.
47
+ * - `DATA_SUBJECT` — every row the subject-export graph attributes to one user. What a claim concerning
48
+ * ONE person needs. See {@link LegalHoldSubjectAttributionKind} for how a row is attributed.
49
+ */
50
+ export var LegalHoldScopeKind;
51
+ (function (LegalHoldScopeKind) {
52
+ LegalHoldScopeKind["ORGANIZATION"] = "organization";
53
+ LegalHoldScopeKind["RESOURCE_ROWS"] = "resource_rows";
54
+ LegalHoldScopeKind["DATA_SUBJECT"] = "data_subject";
55
+ })(LegalHoldScopeKind || (LegalHoldScopeKind = {}));
56
+ /**
57
+ * WHY the data is held. Travels into every refusal and erasure report, because the ground is what a
58
+ * data subject is owed when their erasure is not completed.
59
+ *
60
+ * GDPR Art. 17(3)(e) (establishment, exercise or defence of legal claims) and Art. 17(3)(b) (compliance
61
+ * with a legal obligation) are the grounds under which a hold may also block an erasure.
62
+ * spec-cite: Regulation (EU) 2016/679, Art. 17(3)(b) and (e). Not legal advice.
63
+ */
64
+ export var LegalHoldGround;
65
+ (function (LegalHoldGround) {
66
+ /** Litigation, a dispute or a claim that is reasonably anticipated — Art. 17(3)(e). */
67
+ LegalHoldGround["LEGAL_CLAIMS"] = "legal_claims";
68
+ /** A regulator's or authority's investigation that requires the data to be preserved. */
69
+ LegalHoldGround["REGULATORY_INVESTIGATION"] = "regulatory_investigation";
70
+ /** A legal obligation to keep the data, other than a statutory retention period of a class — Art. 17(3)(b). */
71
+ LegalHoldGround["LEGAL_OBLIGATION"] = "legal_obligation";
72
+ })(LegalHoldGround || (LegalHoldGround = {}));
73
+ /**
74
+ * A hold's lifecycle. Two states and one direction: a released hold is kept as evidence and never
75
+ * reactivated — a new hold is a new row. There is no expiry state, deliberately: litigation ends by
76
+ * decision, not by clock, and a hold that lapses on its own is exactly the failure it exists to prevent.
77
+ */
78
+ export var LegalHoldStatus;
79
+ (function (LegalHoldStatus) {
80
+ LegalHoldStatus["ACTIVE"] = "active";
81
+ LegalHoldStatus["RELEASED"] = "released";
82
+ })(LegalHoldStatus || (LegalHoldStatus = {}));
83
+ /**
84
+ * WHO placed the hold, and therefore who may release it.
85
+ *
86
+ * A hold is released by the tier that placed it, and only by that tier. A tenant must not be able to
87
+ * lift a preservation duty the operator placed on it (an investigation OF the tenant), and the operator
88
+ * must not lift a tenant's own litigation hold on the tenant's behalf. Both tiers SEE every hold on the
89
+ * tenant: the tenant is owed knowing why its data is not being deleted.
90
+ */
91
+ export var LegalHoldPlacementTier;
92
+ (function (LegalHoldPlacementTier) {
93
+ /** Placed by the tenant's own owner, for its own data. */
94
+ LegalHoldPlacementTier["ORGANIZATION"] = "organization";
95
+ /** Placed by an application super-administrator, crossing into the tenant through the declared door. */
96
+ LegalHoldPlacementTier["PLATFORM"] = "platform";
97
+ })(LegalHoldPlacementTier || (LegalHoldPlacementTier = {}));
98
+ /**
99
+ * Client-branchable codes carried as `context.code` on a refusal (allow-listed by the error sanitizer).
100
+ */
101
+ export var LegalHoldErrorCode;
102
+ (function (LegalHoldErrorCode) {
103
+ /** A row the delete addresses is under an active legal hold. The caller is authorized; the state forbids it. */
104
+ LegalHoldErrorCode["LEGAL_HOLD_ACTIVE"] = "legal_hold_active";
105
+ /** The active holds could not be read, so whether the rows are held is unknown. Deletion is refused (fail closed). */
106
+ LegalHoldErrorCode["LEGAL_HOLD_STATE_UNVERIFIABLE"] = "legal_hold_state_unverifiable";
107
+ })(LegalHoldErrorCode || (LegalHoldErrorCode = {}));
108
+ /** The custom verbs. No generic CREATE / UPDATE / DELETE is exposed to any client. */
109
+ export var LegalHolds_Operations;
110
+ (function (LegalHolds_Operations) {
111
+ LegalHolds_Operations["PLACE"] = "place";
112
+ LegalHolds_Operations["RELEASE"] = "release";
113
+ })(LegalHolds_Operations || (LegalHolds_Operations = {}));
114
+ /** The largest explicit row list one `RESOURCE_ROWS` hold may name. A larger set is several holds, or the whole resource type. */
115
+ export const LEGAL_HOLD_MAXIMUM_ROW_IDS = 1000;
116
+ export const LegalHoldSchema = z.object({
117
+ _id: z.string().min(1).isPrimaryKey().isSummaryField(),
118
+ /** The held tenant. The primary scope anchor: the tenant sees every hold on its data. */
119
+ organizationId: z.string().min(1).isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate().isAuditEvidence(),
120
+ scopeKind: z.enum(LegalHoldScopeKind)
121
+ .systemEnum('LegalHoldScopeKind')
122
+ .isDBIndexed()
123
+ .isSummaryField()
124
+ .excludeFromUpdate()
125
+ .isAuditEvidence(),
126
+ /** `RESOURCE_ROWS` only: the held resource type. */
127
+ resourceType: z.string().min(1).max(200).optional().excludeFromUpdate().isAuditEvidence(),
128
+ /** `RESOURCE_ROWS` only: the held rows. Absent means every row of {@link resourceType} in the tenant. */
129
+ rowIds: z.array(z.string().min(1)).max(LEGAL_HOLD_MAXIMUM_ROW_IDS).optional().excludeFromUpdate().isAuditEvidence(),
130
+ /** `DATA_SUBJECT` only: the person whose attributed rows are held. */
131
+ subjectUserId: z.string().min(1).optional().isDBIndexed().isForeignKey().excludeFromUpdate().isAuditEvidence(),
132
+ legalGround: z.enum(LegalHoldGround)
133
+ .systemEnum('LegalHoldGround')
134
+ .isSummaryField()
135
+ .excludeFromUpdate()
136
+ .isAuditEvidence(),
137
+ /**
138
+ * Why, in the placer's words: the matter, the case reference. REQUIRED.
139
+ *
140
+ * Not scrubbed on erasure, and that is a decision: a hold is the operator's defence evidence
141
+ * (Art. 17(3)(e)), and the matter it names is what the hold preserves. Not exported to SIEM by default
142
+ * either — free text is the surface most likely to name a third party.
143
+ */
144
+ justification: z.string().min(1).max(2000).excludeFromUpdate().dataCategories(PersonalDataCategory.USER_CONTENT),
145
+ placementTier: z.enum(LegalHoldPlacementTier)
146
+ .systemEnum('LegalHoldPlacementTier')
147
+ .isSummaryField()
148
+ .excludeFromCreate()
149
+ .excludeFromUpdate()
150
+ .isAuditEvidence(),
151
+ status: z.enum(LegalHoldStatus)
152
+ .systemEnum('LegalHoldStatus')
153
+ .default(LegalHoldStatus.ACTIVE)
154
+ .isDBIndexed()
155
+ .isSummaryField()
156
+ .excludeFromCreate()
157
+ .excludeFromUpdate()
158
+ .isAuditEvidence(),
159
+ placedByUserId: z.string().min(1).isForeignKey().excludeFromCreate().excludeFromUpdate().isAuditEvidence(),
160
+ placedAt: z.date().isSummaryField().excludeFromCreate().excludeFromUpdate().isAuditEvidence(),
161
+ releasedByUserId: z.string().min(1).optional().isForeignKey().excludeFromCreate().excludeFromUpdate().isAuditEvidence(),
162
+ /**
163
+ * The retention clock's closure field: a released hold is kept as `AUDIT_LOGS`-class evidence from this
164
+ * instant. Null while ACTIVE, so an active hold never expires. Server-owned — a caller-writable clock
165
+ * would be a caller-ordered delete of the evidence.
166
+ */
167
+ releasedAt: z.date().optional().isDBIndexed().excludeFromCreate().excludeFromUpdate().isAuditEvidence(),
168
+ releaseReason: z.string().max(2000).optional().excludeFromCreate().excludeFromUpdate().dataCategories(PersonalDataCategory.USER_CONTENT),
169
+ createdAt: z.date().optional(),
170
+ updatedAt: z.date().optional(),
171
+ });
172
+ /** The `place` request. Coherence between `scopeKind` and the three optional selectors is checked server-side. */
173
+ export const LegalHoldPlaceRequestSchema = z.object({
174
+ scopeKind: z.enum(LegalHoldScopeKind).describe('What the hold covers: the whole organization, rows of one resource, or one person\'s data.'),
175
+ resourceType: z.string().min(1).max(200).optional().describe('For a resource-rows hold: the resource type whose rows are held.'),
176
+ rowIds: z.array(z.string().min(1)).min(1).max(LEGAL_HOLD_MAXIMUM_ROW_IDS).optional()
177
+ .describe('For a resource-rows hold: the rows held. Omit to hold every row of the resource type in the organization.'),
178
+ subjectUserId: z.string().min(1).optional().describe('For a data-subject hold: the user whose data is held.'),
179
+ legalGround: z.enum(LegalHoldGround).describe('Why the data must be preserved.'),
180
+ justification: z.string().min(1).max(2000).describe('The matter or case the hold preserves data for.'),
181
+ });
182
+ /** @wildo_source:part:end saas.models.privacy.legal-holds */
183
+ export const LegalHoldReleaseRequestSchema = z.object({
184
+ releaseReason: z.string().min(1).max(2000).describe('Why the preservation duty has ended.'),
185
+ });
186
+ /**
187
+ * The scope-coherence rule for a `place` request, as one pure function the server and any client share.
188
+ * Returns the problems; empty means coherent.
189
+ */
190
+ export function validateLegalHoldPlaceRequest(request) {
191
+ const problems = [];
192
+ switch (request.scopeKind) {
193
+ case LegalHoldScopeKind.ORGANIZATION:
194
+ if (request.resourceType !== undefined || request.rowIds !== undefined || request.subjectUserId !== undefined) {
195
+ problems.push('An organization hold covers the whole organization and takes no resourceType, rowIds or subjectUserId.');
196
+ }
197
+ break;
198
+ case LegalHoldScopeKind.RESOURCE_ROWS:
199
+ if (!request.resourceType)
200
+ problems.push('A resource-rows hold names the resourceType it holds.');
201
+ if (request.subjectUserId !== undefined)
202
+ problems.push('A resource-rows hold takes no subjectUserId.');
203
+ break;
204
+ case LegalHoldScopeKind.DATA_SUBJECT:
205
+ if (!request.subjectUserId)
206
+ problems.push('A data-subject hold names the subjectUserId whose data it holds.');
207
+ if (request.resourceType !== undefined || request.rowIds !== undefined)
208
+ problems.push('A data-subject hold takes no resourceType or rowIds.');
209
+ break;
210
+ default: {
211
+ const unknownKind = request.scopeKind;
212
+ problems.push(`Unknown legal hold scope kind '${String(unknownKind)}'.`);
213
+ }
214
+ }
215
+ return problems;
216
+ }
217
+ /**
218
+ * How ONE resource type's rows are attributed to a data subject, for `DATA_SUBJECT` holds.
219
+ *
220
+ * Derived from the subject-export graph of `USERS` (Art. 15 access purpose), so "the rows a hold on a
221
+ * person covers" and "the rows an access request about that person discloses" are the same set by
222
+ * construction. Where a row cannot be attributed from its own fields, the answer is UNRESOLVABLE and the
223
+ * row is HELD: over-preserving delays a deletion until release, under-preserving destroys evidence.
224
+ */
225
+ export var LegalHoldSubjectAttributionKind;
226
+ (function (LegalHoldSubjectAttributionKind) {
227
+ /** The row IS the person (`USERS`): attributed when its id is the subject. */
228
+ LegalHoldSubjectAttributionKind["SUBJECT_ROW"] = "subject_row";
229
+ /** The row carries a foreign key to `USERS` on an export edge: attributed when any of those fields names the subject. */
230
+ LegalHoldSubjectAttributionKind["FOREIGN_KEY"] = "foreign_key";
231
+ /**
232
+ * The resource is in the subject's export graph, but a row's attribution needs other rows (an owned
233
+ * descendant, or a key held on the `USERS` side). Any foreign-key field it carries still attributes it; beyond
234
+ * that, a row in the held tenant is held (conservative), a row outside any tenant is the person's only when its
235
+ * `userId` names them, and inside ANOTHER person's erasure it is that person's, not the held subject's.
236
+ */
237
+ LegalHoldSubjectAttributionKind["UNRESOLVABLE"] = "unresolvable";
238
+ /** Not in the subject's export graph (unrelated, or declared `exportSubject: FORBIDDEN`). A data-subject hold never covers it. */
239
+ LegalHoldSubjectAttributionKind["NOT_ATTRIBUTED"] = "not_attributed";
240
+ })(LegalHoldSubjectAttributionKind || (LegalHoldSubjectAttributionKind = {}));
241
+ /**
242
+ * THE hold predicate — which of `rows` are under which of `holds`. Pure; the backend reads the active
243
+ * holds once per call and hands them in.
244
+ *
245
+ * `erasureSubjectUserIds` is set only by a subject erasure: every row that erasure reaches in a resource
246
+ * of the subject's export graph IS attributed to the person being erased, so a `DATA_SUBJECT` hold on that
247
+ * person covers it whatever its own fields say.
248
+ *
249
+ * The ORGANIZATIONS row's tenant is its own id, so an `ORGANIZATION` hold also holds the tenant row.
250
+ */
251
+ export function matchLegalHoldsToRows(input) {
252
+ const held = new Map();
253
+ if (input.holds.length === 0)
254
+ return held;
255
+ for (const candidate of input.rows) {
256
+ const rowOrganizationId = input.resourceType === input.organizationsResourceType
257
+ ? candidate.id
258
+ : candidate.organizationId;
259
+ for (const hold of input.holds) {
260
+ if (!legalHoldCoversRow(hold, candidate, rowOrganizationId, input))
261
+ continue;
262
+ const matches = held.get(candidate.id) ?? [];
263
+ matches.push({ holdId: hold._id, scopeKind: hold.scopeKind, legalGround: hold.legalGround });
264
+ held.set(candidate.id, matches);
265
+ }
266
+ }
267
+ return held;
268
+ }
269
+ function legalHoldCoversRow(hold, candidate, rowOrganizationId, input) {
270
+ switch (hold.scopeKind) {
271
+ case LegalHoldScopeKind.ORGANIZATION:
272
+ return rowOrganizationId === hold.organizationId;
273
+ case LegalHoldScopeKind.RESOURCE_ROWS:
274
+ return rowOrganizationId === hold.organizationId
275
+ && hold.resourceType === input.resourceType
276
+ && (hold.rowIds === undefined || hold.rowIds.includes(candidate.id));
277
+ case LegalHoldScopeKind.DATA_SUBJECT: {
278
+ // A person's rows outside any tenant (their user-scoped profile, preferences) are theirs wherever the
279
+ // claim arises, so a hold placed in one tenant covers them too. Rows of ANOTHER tenant are not this one's.
280
+ if (rowOrganizationId !== undefined && rowOrganizationId !== hold.organizationId)
281
+ return false;
282
+ const subject = hold.subjectUserId;
283
+ if (!subject)
284
+ return true; // incoherent hold: fail closed
285
+ const attribution = input.subjectAttribution;
286
+ if (attribution.kind === LegalHoldSubjectAttributionKind.NOT_ATTRIBUTED)
287
+ return false;
288
+ if (input.erasureSubjectUserIds?.includes(subject))
289
+ return true;
290
+ switch (attribution.kind) {
291
+ case LegalHoldSubjectAttributionKind.SUBJECT_ROW:
292
+ return candidate.id === subject;
293
+ case LegalHoldSubjectAttributionKind.FOREIGN_KEY:
294
+ return (attribution.foreignKeyFields ?? []).some((field) => String(candidate.row?.[field] ?? '') === subject);
295
+ case LegalHoldSubjectAttributionKind.UNRESOLVABLE: {
296
+ // A foreign key on the row itself still names the person, when there is one.
297
+ if ((attribution.foreignKeyFields ?? []).some((field) => String(candidate.row?.[field] ?? '') === subject))
298
+ return true;
299
+ // Inside the erasure of SOMEONE ELSE, the walk has already attributed the row: it is the erased person's,
300
+ // not this subject's. Holding it would refuse their erasure on a ground belonging to another matter.
301
+ if (input.erasureSubjectUserIds !== undefined)
302
+ return false;
303
+ // Outside any tenant, a row's owner is its `userId` (a USER_SELF row's primary scope), so a hold on one person
304
+ // never reaches every other person's rows across the application.
305
+ if (rowOrganizationId === undefined)
306
+ return String(candidate.row?.userId ?? '') === subject;
307
+ // Inside the held tenant, the row's owner cannot be read from its own fields: held, the conservative direction.
308
+ return true;
309
+ }
310
+ default: {
311
+ const unknownKind = attribution.kind;
312
+ throw new Error(`Unknown legal hold subject attribution '${String(unknownKind)}'`);
313
+ }
314
+ }
315
+ }
316
+ default: {
317
+ // An unknown scope is not a reason to delete: fail closed.
318
+ const unknownKind = hold.scopeKind;
319
+ void unknownKind;
320
+ return true;
321
+ }
322
+ }
323
+ }
324
+ /**
325
+ * The grounds of a set of matches, de-duplicated in vocabulary order — what a refusal or a report shows.
326
+ */
327
+ export function legalHoldGroundsOf(matches) {
328
+ const present = new Set(matches.map((match) => match.legalGround));
329
+ return Object.values(LegalHoldGround).filter((ground) => present.has(ground));
330
+ }
331
+ //# sourceMappingURL=legal-holds.shared.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legal-holds.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/compliance/privacy/legal-holds.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Legal holds — a recorded decision that suspends DELETION of a defined scope until it is released (#1634).\n *\n * ## Why it exists\n *\n * Once data is deleted on a schedule (#1613's retention-class sweep), a firm under litigation, a\n * regulator's investigation or a client dispute must be able to stop that for a defined scope, and\n * keep proof that it did. A hold is that stop. It is a decision about a CASE, which is why it is not a\n * retention class: a statutory period is a property of a class of data (#1635); a hold names a scope\n * and a ground, and ends only when somebody releases it.\n *\n * ## What a hold suspends\n *\n * Every door that destroys data consults ONE predicate before destroying anything\n * ({@link matchLegalHoldsToRows}, evaluated over the active holds the backend reads in one query):\n *\n * | door | what a held row gets |\n * |---|---|\n * | the retention-class sweep | skipped and counted, never thrown |\n * | a subject erasure | left exactly as it is (neither deleted nor scrubbed), reported per row |\n * | the tenant purge | the whole tenant is skipped while ANY hold on it is active |\n * | a DELETE / DELETE_MANY, and an `onParentDelete` cascade | refused, 409 {@link LegalHoldErrorCode.LEGAL_HOLD_ACTIVE} |\n * | file bytes in object storage | not hard-deleted while the owning row is held |\n * | RAG chunk removal | chunks of a held row are kept |\n *\n * Impersonalization counts as destruction: a scrub removes exactly what a hold exists to preserve.\n *\n * ## What it does NOT do\n *\n * It does not restrict PROCESSING (reads, updates). A hold is a preservation duty, and a row that must\n * be preserved may still be corrected; restricting processing of kept data is #1635's statutory\n * restriction, a different obligation with a different trigger.\n *\n * assurance-control: WILDO.PRIVACY.STORAGE_LIMITATION — deletion suspended under a recorded legal hold.\n */\n\nimport { z } from 'zod';\nimport { PersonalDataCategory } from './personal-data-category.shared.schemas';\n\n/** @wildo_source:part:start saas.models.privacy.legal-holds facet:layer:shared facet:audience:app-developer */\n/**\n * WHAT a hold covers.\n *\n * - `ORGANIZATION` — every row the tenant owns, and the tenant itself (it is not purged).\n * - `RESOURCE_ROWS` — the rows of ONE resource type in the tenant: the listed `rowIds`, or every row of\n * that type when none are listed. An explicit id list, not a query: a hold is evidence, and \"which rows\n * were held\" must be answerable from the hold alone, without re-running a filter against data that\n * has since changed.\n * - `DATA_SUBJECT` — every row the subject-export graph attributes to one user. What a claim concerning\n * ONE person needs. See {@link LegalHoldSubjectAttributionKind} for how a row is attributed.\n */\nexport enum LegalHoldScopeKind {\n ORGANIZATION = 'organization',\n RESOURCE_ROWS = 'resource_rows',\n DATA_SUBJECT = 'data_subject',\n}\n\n/**\n * WHY the data is held. Travels into every refusal and erasure report, because the ground is what a\n * data subject is owed when their erasure is not completed.\n *\n * GDPR Art. 17(3)(e) (establishment, exercise or defence of legal claims) and Art. 17(3)(b) (compliance\n * with a legal obligation) are the grounds under which a hold may also block an erasure.\n * spec-cite: Regulation (EU) 2016/679, Art. 17(3)(b) and (e). Not legal advice.\n */\nexport enum LegalHoldGround {\n /** Litigation, a dispute or a claim that is reasonably anticipated — Art. 17(3)(e). */\n LEGAL_CLAIMS = 'legal_claims',\n /** A regulator's or authority's investigation that requires the data to be preserved. */\n REGULATORY_INVESTIGATION = 'regulatory_investigation',\n /** A legal obligation to keep the data, other than a statutory retention period of a class — Art. 17(3)(b). */\n LEGAL_OBLIGATION = 'legal_obligation',\n}\n\n/**\n * A hold's lifecycle. Two states and one direction: a released hold is kept as evidence and never\n * reactivated — a new hold is a new row. There is no expiry state, deliberately: litigation ends by\n * decision, not by clock, and a hold that lapses on its own is exactly the failure it exists to prevent.\n */\nexport enum LegalHoldStatus {\n ACTIVE = 'active',\n RELEASED = 'released',\n}\n\n/**\n * WHO placed the hold, and therefore who may release it.\n *\n * A hold is released by the tier that placed it, and only by that tier. A tenant must not be able to\n * lift a preservation duty the operator placed on it (an investigation OF the tenant), and the operator\n * must not lift a tenant's own litigation hold on the tenant's behalf. Both tiers SEE every hold on the\n * tenant: the tenant is owed knowing why its data is not being deleted.\n */\nexport enum LegalHoldPlacementTier {\n /** Placed by the tenant's own owner, for its own data. */\n ORGANIZATION = 'organization',\n /** Placed by an application super-administrator, crossing into the tenant through the declared door. */\n PLATFORM = 'platform',\n}\n\n/**\n * Client-branchable codes carried as `context.code` on a refusal (allow-listed by the error sanitizer).\n */\nexport enum LegalHoldErrorCode {\n /** A row the delete addresses is under an active legal hold. The caller is authorized; the state forbids it. */\n LEGAL_HOLD_ACTIVE = 'legal_hold_active',\n /** The active holds could not be read, so whether the rows are held is unknown. Deletion is refused (fail closed). */\n LEGAL_HOLD_STATE_UNVERIFIABLE = 'legal_hold_state_unverifiable',\n}\n\n/** The custom verbs. No generic CREATE / UPDATE / DELETE is exposed to any client. */\nexport enum LegalHolds_Operations {\n PLACE = 'place',\n RELEASE = 'release',\n}\n\n/** The largest explicit row list one `RESOURCE_ROWS` hold may name. A larger set is several holds, or the whole resource type. */\nexport const LEGAL_HOLD_MAXIMUM_ROW_IDS = 1000;\n\nexport const LegalHoldSchema = z.object({\n _id: z.string().min(1).isPrimaryKey().isSummaryField(),\n\n /** The held tenant. The primary scope anchor: the tenant sees every hold on its data. */\n organizationId: z.string().min(1).isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate().isAuditEvidence(),\n\n scopeKind: z.enum(LegalHoldScopeKind)\n .systemEnum('LegalHoldScopeKind')\n .isDBIndexed()\n .isSummaryField()\n .excludeFromUpdate()\n .isAuditEvidence(),\n\n /** `RESOURCE_ROWS` only: the held resource type. */\n resourceType: z.string().min(1).max(200).optional().excludeFromUpdate().isAuditEvidence(),\n\n /** `RESOURCE_ROWS` only: the held rows. Absent means every row of {@link resourceType} in the tenant. */\n rowIds: z.array(z.string().min(1)).max(LEGAL_HOLD_MAXIMUM_ROW_IDS).optional().excludeFromUpdate().isAuditEvidence(),\n\n /** `DATA_SUBJECT` only: the person whose attributed rows are held. */\n subjectUserId: z.string().min(1).optional().isDBIndexed().isForeignKey().excludeFromUpdate().isAuditEvidence(),\n\n legalGround: z.enum(LegalHoldGround)\n .systemEnum('LegalHoldGround')\n .isSummaryField()\n .excludeFromUpdate()\n .isAuditEvidence(),\n\n /**\n * Why, in the placer's words: the matter, the case reference. REQUIRED.\n *\n * Not scrubbed on erasure, and that is a decision: a hold is the operator's defence evidence\n * (Art. 17(3)(e)), and the matter it names is what the hold preserves. Not exported to SIEM by default\n * either — free text is the surface most likely to name a third party.\n */\n justification: z.string().min(1).max(2000).excludeFromUpdate().dataCategories(PersonalDataCategory.USER_CONTENT),\n\n placementTier: z.enum(LegalHoldPlacementTier)\n .systemEnum('LegalHoldPlacementTier')\n .isSummaryField()\n .excludeFromCreate()\n .excludeFromUpdate()\n .isAuditEvidence(),\n\n status: z.enum(LegalHoldStatus)\n .systemEnum('LegalHoldStatus')\n .default(LegalHoldStatus.ACTIVE)\n .isDBIndexed()\n .isSummaryField()\n .excludeFromCreate()\n .excludeFromUpdate()\n .isAuditEvidence(),\n\n placedByUserId: z.string().min(1).isForeignKey().excludeFromCreate().excludeFromUpdate().isAuditEvidence(),\n placedAt: z.date().isSummaryField().excludeFromCreate().excludeFromUpdate().isAuditEvidence(),\n\n releasedByUserId: z.string().min(1).optional().isForeignKey().excludeFromCreate().excludeFromUpdate().isAuditEvidence(),\n /**\n * The retention clock's closure field: a released hold is kept as `AUDIT_LOGS`-class evidence from this\n * instant. Null while ACTIVE, so an active hold never expires. Server-owned — a caller-writable clock\n * would be a caller-ordered delete of the evidence.\n */\n releasedAt: z.date().optional().isDBIndexed().excludeFromCreate().excludeFromUpdate().isAuditEvidence(),\n releaseReason: z.string().max(2000).optional().excludeFromCreate().excludeFromUpdate().dataCategories(PersonalDataCategory.USER_CONTENT),\n\n createdAt: z.date().optional(),\n updatedAt: z.date().optional(),\n});\n\nexport type LegalHold = z.infer<typeof LegalHoldSchema>;\n\n/** The `place` request. Coherence between `scopeKind` and the three optional selectors is checked server-side. */\nexport const LegalHoldPlaceRequestSchema = z.object({\n scopeKind: z.enum(LegalHoldScopeKind).describe('What the hold covers: the whole organization, rows of one resource, or one person\\'s data.'),\n resourceType: z.string().min(1).max(200).optional().describe('For a resource-rows hold: the resource type whose rows are held.'),\n rowIds: z.array(z.string().min(1)).min(1).max(LEGAL_HOLD_MAXIMUM_ROW_IDS).optional()\n .describe('For a resource-rows hold: the rows held. Omit to hold every row of the resource type in the organization.'),\n subjectUserId: z.string().min(1).optional().describe('For a data-subject hold: the user whose data is held.'),\n legalGround: z.enum(LegalHoldGround).describe('Why the data must be preserved.'),\n justification: z.string().min(1).max(2000).describe('The matter or case the hold preserves data for.'),\n});\nexport type LegalHoldPlaceRequest = z.infer<typeof LegalHoldPlaceRequestSchema>;\n/** @wildo_source:part:end saas.models.privacy.legal-holds */\n\nexport const LegalHoldReleaseRequestSchema = z.object({\n releaseReason: z.string().min(1).max(2000).describe('Why the preservation duty has ended.'),\n});\n\n/**\n * The scope-coherence rule for a `place` request, as one pure function the server and any client share.\n * Returns the problems; empty means coherent.\n */\nexport function validateLegalHoldPlaceRequest(request: LegalHoldPlaceRequest): string[] {\n const problems: string[] = [];\n switch (request.scopeKind) {\n case LegalHoldScopeKind.ORGANIZATION:\n if (request.resourceType !== undefined || request.rowIds !== undefined || request.subjectUserId !== undefined) {\n problems.push('An organization hold covers the whole organization and takes no resourceType, rowIds or subjectUserId.');\n }\n break;\n case LegalHoldScopeKind.RESOURCE_ROWS:\n if (!request.resourceType) problems.push('A resource-rows hold names the resourceType it holds.');\n if (request.subjectUserId !== undefined) problems.push('A resource-rows hold takes no subjectUserId.');\n break;\n case LegalHoldScopeKind.DATA_SUBJECT:\n if (!request.subjectUserId) problems.push('A data-subject hold names the subjectUserId whose data it holds.');\n if (request.resourceType !== undefined || request.rowIds !== undefined) problems.push('A data-subject hold takes no resourceType or rowIds.');\n break;\n default: {\n const unknownKind: never = request.scopeKind;\n problems.push(`Unknown legal hold scope kind '${String(unknownKind)}'.`);\n }\n }\n return problems;\n}\n\n/**\n * How ONE resource type's rows are attributed to a data subject, for `DATA_SUBJECT` holds.\n *\n * Derived from the subject-export graph of `USERS` (Art. 15 access purpose), so \"the rows a hold on a\n * person covers\" and \"the rows an access request about that person discloses\" are the same set by\n * construction. Where a row cannot be attributed from its own fields, the answer is UNRESOLVABLE and the\n * row is HELD: over-preserving delays a deletion until release, under-preserving destroys evidence.\n */\nexport enum LegalHoldSubjectAttributionKind {\n /** The row IS the person (`USERS`): attributed when its id is the subject. */\n SUBJECT_ROW = 'subject_row',\n /** The row carries a foreign key to `USERS` on an export edge: attributed when any of those fields names the subject. */\n FOREIGN_KEY = 'foreign_key',\n /**\n * The resource is in the subject's export graph, but a row's attribution needs other rows (an owned\n * descendant, or a key held on the `USERS` side). Any foreign-key field it carries still attributes it; beyond\n * that, a row in the held tenant is held (conservative), a row outside any tenant is the person's only when its\n * `userId` names them, and inside ANOTHER person's erasure it is that person's, not the held subject's.\n */\n UNRESOLVABLE = 'unresolvable',\n /** Not in the subject's export graph (unrelated, or declared `exportSubject: FORBIDDEN`). A data-subject hold never covers it. */\n NOT_ATTRIBUTED = 'not_attributed',\n}\n\nexport interface LegalHoldSubjectAttribution {\n readonly kind: LegalHoldSubjectAttributionKind;\n /** The row fields naming a user — the whole answer for FOREIGN_KEY, a first answer for UNRESOLVABLE. */\n readonly foreignKeyFields?: readonly string[];\n}\n\n/** An active hold, as the predicate needs it. */\nexport type ActiveLegalHold = Pick<LegalHold, '_id' | 'organizationId' | 'scopeKind' | 'resourceType' | 'rowIds' | 'subjectUserId' | 'legalGround'>;\n\n/** One row a deletion path is about to destroy. */\nexport interface LegalHoldCandidateRow {\n readonly id: string;\n /** The tenant the row belongs to; absent for a row with no organization scope. */\n readonly organizationId?: string;\n /** The row's fields, for foreign-key attribution. */\n readonly row?: Record<string, unknown>;\n}\n\n/** Why a row is held: the hold and its ground. */\nexport interface LegalHoldMatch {\n readonly holdId: string;\n readonly scopeKind: LegalHoldScopeKind;\n readonly legalGround: LegalHoldGround;\n}\n\n/**\n * THE hold predicate — which of `rows` are under which of `holds`. Pure; the backend reads the active\n * holds once per call and hands them in.\n *\n * `erasureSubjectUserIds` is set only by a subject erasure: every row that erasure reaches in a resource\n * of the subject's export graph IS attributed to the person being erased, so a `DATA_SUBJECT` hold on that\n * person covers it whatever its own fields say.\n *\n * The ORGANIZATIONS row's tenant is its own id, so an `ORGANIZATION` hold also holds the tenant row.\n */\nexport function matchLegalHoldsToRows(input: {\n readonly holds: readonly ActiveLegalHold[];\n readonly resourceType: string;\n readonly rows: readonly LegalHoldCandidateRow[];\n readonly organizationsResourceType: string;\n readonly subjectAttribution: LegalHoldSubjectAttribution;\n readonly erasureSubjectUserIds?: readonly string[];\n}): Map<string, LegalHoldMatch[]> {\n const held = new Map<string, LegalHoldMatch[]>();\n if (input.holds.length === 0) return held;\n for (const candidate of input.rows) {\n const rowOrganizationId = input.resourceType === input.organizationsResourceType\n ? candidate.id\n : candidate.organizationId;\n for (const hold of input.holds) {\n if (!legalHoldCoversRow(hold, candidate, rowOrganizationId, input)) continue;\n const matches = held.get(candidate.id) ?? [];\n matches.push({ holdId: hold._id, scopeKind: hold.scopeKind, legalGround: hold.legalGround });\n held.set(candidate.id, matches);\n }\n }\n return held;\n}\n\nfunction legalHoldCoversRow(\n hold: ActiveLegalHold,\n candidate: LegalHoldCandidateRow,\n rowOrganizationId: string | undefined,\n input: Parameters<typeof matchLegalHoldsToRows>[0],\n): boolean {\n switch (hold.scopeKind) {\n case LegalHoldScopeKind.ORGANIZATION:\n return rowOrganizationId === hold.organizationId;\n case LegalHoldScopeKind.RESOURCE_ROWS:\n return rowOrganizationId === hold.organizationId\n && hold.resourceType === input.resourceType\n && (hold.rowIds === undefined || hold.rowIds.includes(candidate.id));\n case LegalHoldScopeKind.DATA_SUBJECT: {\n // A person's rows outside any tenant (their user-scoped profile, preferences) are theirs wherever the\n // claim arises, so a hold placed in one tenant covers them too. Rows of ANOTHER tenant are not this one's.\n if (rowOrganizationId !== undefined && rowOrganizationId !== hold.organizationId) return false;\n const subject = hold.subjectUserId;\n if (!subject) return true; // incoherent hold: fail closed\n const attribution = input.subjectAttribution;\n if (attribution.kind === LegalHoldSubjectAttributionKind.NOT_ATTRIBUTED) return false;\n if (input.erasureSubjectUserIds?.includes(subject)) return true;\n switch (attribution.kind) {\n case LegalHoldSubjectAttributionKind.SUBJECT_ROW:\n return candidate.id === subject;\n case LegalHoldSubjectAttributionKind.FOREIGN_KEY:\n return (attribution.foreignKeyFields ?? []).some((field) => String(candidate.row?.[field] ?? '') === subject);\n case LegalHoldSubjectAttributionKind.UNRESOLVABLE: {\n // A foreign key on the row itself still names the person, when there is one.\n if ((attribution.foreignKeyFields ?? []).some((field) => String(candidate.row?.[field] ?? '') === subject)) return true;\n // Inside the erasure of SOMEONE ELSE, the walk has already attributed the row: it is the erased person's,\n // not this subject's. Holding it would refuse their erasure on a ground belonging to another matter.\n if (input.erasureSubjectUserIds !== undefined) return false;\n // Outside any tenant, a row's owner is its `userId` (a USER_SELF row's primary scope), so a hold on one person\n // never reaches every other person's rows across the application.\n if (rowOrganizationId === undefined) return String(candidate.row?.userId ?? '') === subject;\n // Inside the held tenant, the row's owner cannot be read from its own fields: held, the conservative direction.\n return true;\n }\n default: {\n const unknownKind: never = attribution.kind;\n throw new Error(`Unknown legal hold subject attribution '${String(unknownKind)}'`);\n }\n }\n }\n default: {\n // An unknown scope is not a reason to delete: fail closed.\n const unknownKind: never = hold.scopeKind;\n void unknownKind;\n return true;\n }\n }\n}\n\n/** One row a subject erasure left untouched because a legal hold covers it (#1634). */\nexport interface SubjectErasureLegalHoldRetention {\n resourceType: string;\n rowId: string;\n /** The grounds of every hold covering the row — what the data subject is told. */\n legalGrounds: LegalHoldGround[];\n holdIds: string[];\n}\n\n/**\n * The grounds of a set of matches, de-duplicated in vocabulary order — what a refusal or a report shows.\n */\nexport function legalHoldGroundsOf(matches: readonly LegalHoldMatch[]): LegalHoldGround[] {\n const present = new Set(matches.map((match) => match.legalGround));\n return Object.values(LegalHoldGround).filter((ground) => present.has(ground));\n}\n"]}
@@ -46,14 +46,21 @@ export declare enum OperatorProcessingRole {
46
46
  * A B2B SaaS is typically a PROCESSOR for the records its customers put in, and a CONTROLLER for the
47
47
  * account and billing data of the people who administer them — simultaneously, in one product.
48
48
  *
49
- * `dataScope` is prose the operator writes, deliberately. Nothing structured exists to key it to: the
50
- * processing purposes a notice states are derived from the application's vision and requirements as
51
- * PROSE, so a ref here would point at nothing.
49
+ * `dataScope` is prose the operator writes, deliberately: it names a POPULATION of data ("customer records in a
50
+ * workspace"), not a processing purpose, so a lawful basis's `purposeRef` (#1709) is not what it would key to. No
51
+ * structured population vocabulary exists yet, and a ref to nothing would be worse than prose.
52
52
  */
53
53
  export declare const OperatorRoleAllocationSchema: z.ZodObject<{
54
54
  /** Which data this role covers, in the operator's own words — "customer records in a workspace". */
55
55
  dataScope: z.ZodString;
56
56
  role: z.ZodEnum<typeof OperatorProcessingRole>;
57
+ /**
58
+ * The resource types this role covers — the TYPED half of `dataScope` (#1710), so a running erasure or export can
59
+ * say who owes the Art. 19 communication for the subject in front of it. Optional: an allocation in prose only is
60
+ * still a valid statement for a notice, and a subject whose resource type no allocation names is reported as
61
+ * ROLE UNDECLARED, never guessed. `dataScope` stays the words a notice uses.
62
+ */
63
+ resourceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
57
64
  }, z.core.$strict>;
58
65
  export type OperatorRoleAllocation = z.infer<typeof OperatorRoleAllocationSchema>;
59
66
  /**
@@ -64,6 +71,16 @@ export type OperatorRoleAllocation = z.infer<typeof OperatorRoleAllocationSchema
64
71
  export declare const OperatorLawfulBasisSchema: z.ZodObject<{
65
72
  /** The purpose, in the operator's own words. Matches how the notice states purposes: prose, not a ref. */
66
73
  purpose: z.ZodString;
74
+ /**
75
+ * A STABLE id for this purpose, which a provider's or a system of record's compliance choice names
76
+ * (`providerComplianceChoices.<ref>.purposeRefs`) to say which purpose sending it data serves (#1709).
77
+ *
78
+ * Separate from `purpose` because the prose is the notice's wording and changes when the operator rewords it, while
79
+ * a link to it must survive the rewording. OPTIONAL, like every other part of this identity (#225): a basis with no
80
+ * ref is still a basis, and a recipient cannot link to it — which the recipients report names as a purpose not
81
+ * linked, never as a recipient with no purpose.
82
+ */
83
+ purposeRef: z.ZodOptional<z.ZodString>;
67
84
  basis: z.ZodEnum<typeof LawfulBasis>;
68
85
  /**
69
86
  * The assessment behind the basis. REQUIRED for `LEGITIMATE_INTERESTS`, which is the only basis
@@ -220,6 +237,13 @@ export declare const ApplicationOperatorComplianceIdentitySchema: z.ZodObject<{
220
237
  /** Which data this role covers, in the operator's own words — "customer records in a workspace". */
221
238
  dataScope: z.ZodString;
222
239
  role: z.ZodEnum<typeof OperatorProcessingRole>;
240
+ /**
241
+ * The resource types this role covers — the TYPED half of `dataScope` (#1710), so a running erasure or export can
242
+ * say who owes the Art. 19 communication for the subject in front of it. Optional: an allocation in prose only is
243
+ * still a valid statement for a notice, and a subject whose resource type no allocation names is reported as
244
+ * ROLE UNDECLARED, never guessed. `dataScope` stays the words a notice uses.
245
+ */
246
+ resourceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
223
247
  }, z.core.$strict>>>;
224
248
  /**
225
249
  * The lawful basis relied on, per processing purpose. At least one.
@@ -231,6 +255,16 @@ export declare const ApplicationOperatorComplianceIdentitySchema: z.ZodObject<{
231
255
  lawfulBases: z.ZodOptional<z.ZodArray<z.ZodObject<{
232
256
  /** The purpose, in the operator's own words. Matches how the notice states purposes: prose, not a ref. */
233
257
  purpose: z.ZodString;
258
+ /**
259
+ * A STABLE id for this purpose, which a provider's or a system of record's compliance choice names
260
+ * (`providerComplianceChoices.<ref>.purposeRefs`) to say which purpose sending it data serves (#1709).
261
+ *
262
+ * Separate from `purpose` because the prose is the notice's wording and changes when the operator rewords it, while
263
+ * a link to it must survive the rewording. OPTIONAL, like every other part of this identity (#225): a basis with no
264
+ * ref is still a basis, and a recipient cannot link to it — which the recipients report names as a purpose not
265
+ * linked, never as a recipient with no purpose.
266
+ */
267
+ purposeRef: z.ZodOptional<z.ZodString>;
234
268
  basis: z.ZodEnum<typeof LawfulBasis>;
235
269
  /**
236
270
  * The assessment behind the basis. REQUIRED for `LEGITIMATE_INTERESTS`, which is the only basis
@@ -1 +1 @@
1
- {"version":3,"file":"operator-compliance-identity.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/privacy/operator-compliance-identity.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,oBAAY,WAAW;IACrB,gGAAgG;IAChG,OAAO,YAAY;IACnB,iGAAiG;IACjG,QAAQ,aAAa;IACrB,+FAA+F;IAC/F,gBAAgB,qBAAqB;IACrC,4FAA4F;IAC5F,eAAe,oBAAoB;IACnC,wFAAwF;IACxF,WAAW,gBAAgB;IAC3B;;;;OAIG;IACH,oBAAoB,yBAAyB;CAC9C;AAED,6GAA6G;AAC7G,oBAAY,sBAAsB;IAChC,sDAAsD;IACtD,UAAU,eAAe;IACzB,mHAAmH;IACnH,SAAS,cAAc;IACvB,oHAAoH;IACpH,gBAAgB,qBAAqB;CACtC;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B;IACvC,oGAAoG;;;kBAGpG,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;IACpC,0GAA0G;;;IAG1G;;;OAGG;;kBAgBH,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,+BAA+B;IAC1C;;;;;;;;;OASG;;IAEH;;;;;;OAMG;;kBA2BH,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,2CAA2C;IACtD,2HAA2H;;IAE3H,qGAAqG;;IAErG;;;;;OAKG;;IAEH;;;;;;OAMG;;;;;IAKH;;;;OAIG;;QA9MH,oGAAoG;;;;IAgNpG;;;;;;OAMG;;QA1MH,0GAA0G;;;QAG1G;;;WAGG;;;IAsMH;;;;;;OAMG;;QAvIH;;;;;;;;;WASG;;QAEH;;;;;;WAMG;;;IAwHH;;;;;;;;;OASG;;kBAsBH,CAAC;AACH,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2CAA2C,CAAC,CAAC;AAGhH;;;;;;;;;;;;GAYG;AACH,oBAAY,8BAA8B;IACxC,iBAAiB,oBAAoB;IACrC,kBAAkB,sBAAsB;IACxC,eAAe,mBAAmB;IAClC,gBAAgB,oBAAoB;IACpC,YAAY,gBAAgB;IAC5B,qCAAqC,uCAAuC;CAC7E;AAED;;;;;;;GAOG;AACH,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,qCAAqC,GAAG,SAAS,GAC1D,SAAS,8BAA8B,EAAE,CAS3C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qCAAqC,GAAG,SAAS,WAAW,EAAE,GAAG,SAAS,CAKvH;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,qCAAqC,GAAG,OAAO,GAAG,SAAS,CAGxH"}
1
+ {"version":3,"file":"operator-compliance-identity.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/privacy/operator-compliance-identity.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D;;;;;;;;;;GAUG;AACH,oBAAY,WAAW;IACrB,gGAAgG;IAChG,OAAO,YAAY;IACnB,iGAAiG;IACjG,QAAQ,aAAa;IACrB,+FAA+F;IAC/F,gBAAgB,qBAAqB;IACrC,4FAA4F;IAC5F,eAAe,oBAAoB;IACnC,wFAAwF;IACxF,WAAW,gBAAgB;IAC3B;;;;OAIG;IACH,oBAAoB,yBAAyB;CAC9C;AAED,6GAA6G;AAC7G,oBAAY,sBAAsB;IAChC,sDAAsD;IACtD,UAAU,eAAe;IACzB,mHAAmH;IACnH,SAAS,cAAc;IACvB,oHAAoH;IACpH,gBAAgB,qBAAqB;CACtC;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B;IACvC,oGAAoG;;;IAGpG;;;;;OAKG;;kBAEH,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;IACpC,0GAA0G;;IAE1G;;;;;;;;OAQG;;;IAGH;;;OAGG;;kBAgBH,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,+BAA+B;IAC1C;;;;;;;;;OASG;;IAEH;;;;;;OAMG;;kBA2BH,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,2CAA2C;IACtD,2HAA2H;;IAE3H,qGAAqG;;IAErG;;;;;OAKG;;IAEH;;;;;;OAMG;;;;;IAKH;;;;OAIG;;QA/NH,oGAAoG;;;QAGpG;;;;;WAKG;;;IAyNH;;;;;;OAMG;;QApNH,0GAA0G;;QAE1G;;;;;;;;WAQG;;;QAGH;;;WAGG;;;IAgNH;;;;;;OAMG;;QAjJH;;;;;;;;;WASG;;QAEH;;;;;;WAMG;;;IAkIH;;;;;;;;;OASG;;kBAsBH,CAAC;AACH,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2CAA2C,CAAC,CAAC;AAGhH;;;;;;;;;;;;GAYG;AACH,oBAAY,8BAA8B;IACxC,iBAAiB,oBAAoB;IACrC,kBAAkB,sBAAsB;IACxC,eAAe,mBAAmB;IAClC,gBAAgB,oBAAoB;IACpC,YAAY,gBAAgB;IAC5B,qCAAqC,uCAAuC;CAC7E;AAED;;;;;;;GAOG;AACH,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,qCAAqC,GAAG,SAAS,GAC1D,SAAS,8BAA8B,EAAE,CAS3C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qCAAqC,GAAG,SAAS,WAAW,EAAE,GAAG,SAAS,CAKvH;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,qCAAqC,GAAG,OAAO,GAAG,SAAS,CAGxH"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { ConsentPurpose } from './consent-purposes.shared.js';
3
+ import { LawfulBasisPurposeRefSchema } from './purpose-ref.shared.schemas.js';
3
4
  /**
4
5
  * GDPR Art. 6(1) — the six lawful bases, closed by the article.
5
6
  *
@@ -48,14 +49,21 @@ export var OperatorProcessingRole;
48
49
  * A B2B SaaS is typically a PROCESSOR for the records its customers put in, and a CONTROLLER for the
49
50
  * account and billing data of the people who administer them — simultaneously, in one product.
50
51
  *
51
- * `dataScope` is prose the operator writes, deliberately. Nothing structured exists to key it to: the
52
- * processing purposes a notice states are derived from the application's vision and requirements as
53
- * PROSE, so a ref here would point at nothing.
52
+ * `dataScope` is prose the operator writes, deliberately: it names a POPULATION of data ("customer records in a
53
+ * workspace"), not a processing purpose, so a lawful basis's `purposeRef` (#1709) is not what it would key to. No
54
+ * structured population vocabulary exists yet, and a ref to nothing would be worse than prose.
54
55
  */
55
56
  export const OperatorRoleAllocationSchema = z.strictObject({
56
57
  /** Which data this role covers, in the operator's own words — "customer records in a workspace". */
57
58
  dataScope: z.string().trim().min(1),
58
59
  role: z.enum(OperatorProcessingRole),
60
+ /**
61
+ * The resource types this role covers — the TYPED half of `dataScope` (#1710), so a running erasure or export can
62
+ * say who owes the Art. 19 communication for the subject in front of it. Optional: an allocation in prose only is
63
+ * still a valid statement for a notice, and a subject whose resource type no allocation names is reported as
64
+ * ROLE UNDECLARED, never guessed. `dataScope` stays the words a notice uses.
65
+ */
66
+ resourceTypes: z.array(z.string().trim().min(1)).min(1).optional(),
59
67
  });
60
68
  /**
61
69
  * One processing purpose and the basis the operator relies on for it.
@@ -65,6 +73,16 @@ export const OperatorRoleAllocationSchema = z.strictObject({
65
73
  export const OperatorLawfulBasisSchema = z.strictObject({
66
74
  /** The purpose, in the operator's own words. Matches how the notice states purposes: prose, not a ref. */
67
75
  purpose: z.string().trim().min(1),
76
+ /**
77
+ * A STABLE id for this purpose, which a provider's or a system of record's compliance choice names
78
+ * (`providerComplianceChoices.<ref>.purposeRefs`) to say which purpose sending it data serves (#1709).
79
+ *
80
+ * Separate from `purpose` because the prose is the notice's wording and changes when the operator rewords it, while
81
+ * a link to it must survive the rewording. OPTIONAL, like every other part of this identity (#225): a basis with no
82
+ * ref is still a basis, and a recipient cannot link to it — which the recipients report names as a purpose not
83
+ * linked, never as a recipient with no purpose.
84
+ */
85
+ purposeRef: LawfulBasisPurposeRefSchema.optional(),
68
86
  basis: z.enum(LawfulBasis),
69
87
  /**
70
88
  * The assessment behind the basis. REQUIRED for `LEGITIMATE_INTERESTS`, which is the only basis
@@ -262,7 +280,18 @@ export const ApplicationOperatorComplianceIdentitySchema = z.strictObject({
262
280
  * declaring no basis at all is a refusal wearing a declaration's clothes, and it would land as a
263
281
  * complete answer.
264
282
  */
265
- lawfulBases: z.array(OperatorLawfulBasisSchema).min(1).optional(),
283
+ lawfulBases: z.array(OperatorLawfulBasisSchema).min(1).superRefine((bases, context) => {
284
+ // A purpose ref names ONE purpose, or a recipient linking to it would be linked to two (#1709).
285
+ const seen = new Set();
286
+ bases.forEach((entry, index) => {
287
+ if (entry.purposeRef === undefined)
288
+ return;
289
+ if (seen.has(entry.purposeRef)) {
290
+ context.addIssue({ code: 'custom', path: [index, 'purposeRef'], message: `purpose ref "${entry.purposeRef}" names more than one purpose` });
291
+ }
292
+ seen.add(entry.purposeRef);
293
+ });
294
+ }).optional(),
266
295
  /**
267
296
  * What a person must consent to in order to use the service at all (issue #139).
268
297
  *