@wildo-ai/saas-models 1.1.5 → 1.1.7

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 (1295) hide show
  1. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  2. package/dist/esm/__tests__/setup.js.map +1 -1
  3. package/dist/esm/_inspect.d.ts.map +1 -1
  4. package/dist/esm/_inspect.js.map +1 -1
  5. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js.map +1 -1
  7. package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
  8. package/dist/esm/applications/application-subject.shared.schemas.js.map +1 -1
  9. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  10. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +2 -1
  11. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
  12. package/dist/esm/applications/applications-context.schemas.d.ts +176 -2
  13. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  14. package/dist/esm/applications/applications-context.schemas.js.map +1 -1
  15. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  16. package/dist/esm/applications/applications.shared.resources-config.schemas.js +3 -2
  17. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  18. package/dist/esm/applications/applications.shared.schemas.d.ts +7 -5
  19. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  20. package/dist/esm/applications/applications.shared.schemas.js +6 -4
  21. package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
  22. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +10 -1
  23. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  24. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +49 -15
  25. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
  26. package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
  27. package/dist/esm/billing/billing-account.shared.schemas.js +2 -2
  28. package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
  29. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +25 -0
  30. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  31. package/dist/esm/billing/billing-configuration.shared.schemas.js +19 -0
  32. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  33. package/dist/esm/billing/billing-enums.shared.schemas.d.ts +27 -5
  34. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  35. package/dist/esm/billing/billing-enums.shared.schemas.js +30 -4
  36. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  37. package/dist/esm/billing/billing-types.shared.schemas.d.ts +37 -11
  38. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  39. package/dist/esm/billing/billing-types.shared.schemas.js +31 -19
  40. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  41. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +2 -0
  42. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  43. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js +18 -7
  44. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
  45. package/dist/esm/billing/credit-pool.shared.schemas.d.ts +2 -0
  46. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  47. package/dist/esm/billing/credit-pool.shared.schemas.js +7 -1
  48. package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
  49. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
  50. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +6 -6
  51. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
  52. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
  53. package/dist/esm/billing/invoice-ref.shared.schemas.js +1 -1
  54. package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
  55. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
  56. package/dist/esm/billing/price.shared.resources-config.schemas.js.map +1 -1
  57. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  58. package/dist/esm/billing/price.shared.schemas.js +5 -3
  59. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  60. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts +11 -1
  61. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  62. package/dist/esm/billing/product-behavior-policy.shared.schemas.js +39 -23
  63. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  64. package/dist/esm/billing/product-definition.shared.schemas.d.ts +30 -2
  65. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  66. package/dist/esm/billing/product-definition.shared.schemas.js +35 -0
  67. package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
  68. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +6 -3
  69. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  70. package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
  71. package/dist/esm/billing/product.shared.schemas.d.ts +7 -3
  72. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  73. package/dist/esm/billing/product.shared.schemas.js +22 -7
  74. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  75. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
  76. package/dist/esm/billing/promotions.shared.resources-config.schemas.js +8 -8
  77. package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
  78. package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
  79. package/dist/esm/billing/promotions.shared.schemas.js.map +1 -1
  80. package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts +135 -0
  81. package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts.map +1 -0
  82. package/dist/esm/billing/public-pricing-catalog.shared.atoms.js +112 -0
  83. package/dist/esm/billing/public-pricing-catalog.shared.atoms.js.map +1 -0
  84. package/dist/esm/billing/public-pricing-catalog.shared.d.ts +30 -0
  85. package/dist/esm/billing/public-pricing-catalog.shared.d.ts.map +1 -0
  86. package/dist/esm/billing/public-pricing-catalog.shared.js +53 -0
  87. package/dist/esm/billing/public-pricing-catalog.shared.js.map +1 -0
  88. package/dist/esm/billing/referral-reward.shared.schemas.d.ts +51 -0
  89. package/dist/esm/billing/referral-reward.shared.schemas.d.ts.map +1 -0
  90. package/dist/esm/billing/referral-reward.shared.schemas.js +92 -0
  91. package/dist/esm/billing/referral-reward.shared.schemas.js.map +1 -0
  92. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts +54 -33
  93. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  94. package/dist/esm/billing/referral.shared.resources-config.schemas.js +56 -2
  95. package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
  96. package/dist/esm/billing/referral.shared.schemas.d.ts +22 -37
  97. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  98. package/dist/esm/billing/referral.shared.schemas.js +24 -44
  99. package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
  100. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +9 -1
  101. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  102. package/dist/esm/billing/subscription.shared.resources-config.schemas.js +55 -22
  103. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  104. package/dist/esm/billing/subscription.shared.schemas.d.ts +80 -5
  105. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  106. package/dist/esm/billing/subscription.shared.schemas.js +85 -25
  107. package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
  108. package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts.map +1 -1
  109. package/dist/esm/billing/usage-flush-evidence.shared.schemas.js.map +1 -1
  110. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
  111. package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
  112. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  113. package/dist/esm/billing/usage-record.shared.schemas.js +5 -5
  114. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  115. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
  116. package/dist/esm/charts/aggregation-query.shared.schemas.js.map +1 -1
  117. package/dist/esm/charts/aggregation.shared.definitions.d.ts.map +1 -1
  118. package/dist/esm/charts/aggregation.shared.definitions.js.map +1 -1
  119. package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
  120. package/dist/esm/charts/chart-definition-builder.shared.js.map +1 -1
  121. package/dist/esm/companion/artifact-placement.shared.definitions.d.ts.map +1 -1
  122. package/dist/esm/companion/artifact-placement.shared.definitions.js.map +1 -1
  123. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +143 -2
  124. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  125. package/dist/esm/companion/provider-discovery.shared.schemas.js +84 -1
  126. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  127. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
  128. package/dist/esm/companion/shared-library-companion.shared.definitions.js.map +1 -1
  129. package/dist/esm/companion-exports.d.ts.map +1 -1
  130. package/dist/esm/companion-exports.js.map +1 -1
  131. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +14 -1
  132. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  133. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +4 -0
  134. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
  135. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts +70 -0
  136. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -1
  137. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js +87 -0
  138. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -1
  139. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts +34 -0
  140. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -1
  141. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js +137 -3
  142. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -1
  143. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts +7 -0
  144. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
  145. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js.map +1 -1
  146. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +28 -2
  147. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  148. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +29 -8
  149. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
  150. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +29 -6
  151. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  152. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +38 -9
  153. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  154. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +1822 -146
  155. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  156. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +1777 -87
  157. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  158. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts +10 -0
  159. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  160. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +148 -7
  161. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  162. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts.map +1 -1
  163. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js.map +1 -1
  164. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts.map +1 -1
  165. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js.map +1 -1
  166. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
  167. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -1
  168. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts.map +1 -1
  169. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js.map +1 -1
  170. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts.map +1 -1
  171. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js.map +1 -1
  172. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +2 -0
  173. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
  174. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js +2 -0
  175. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
  176. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts.map +1 -1
  177. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js.map +1 -1
  178. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
  179. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -1
  180. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts.map +1 -1
  181. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js.map +1 -1
  182. package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts.map +1 -1
  183. package/dist/esm/compliance/privacy/consent-purposes.shared.js.map +1 -1
  184. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts +17 -8
  185. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -1
  186. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +43 -20
  187. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -1
  188. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
  189. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -1
  190. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +38 -0
  191. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
  192. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +39 -0
  193. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
  194. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts +35 -0
  195. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts.map +1 -0
  196. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js +82 -0
  197. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js.map +1 -0
  198. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts +37 -0
  199. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts.map +1 -0
  200. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js +223 -0
  201. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js.map +1 -0
  202. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts +222 -0
  203. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts.map +1 -0
  204. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js +331 -0
  205. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js.map +1 -0
  206. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
  207. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
  208. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +37 -3
  209. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
  210. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +33 -4
  211. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
  212. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
  213. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js.map +1 -1
  214. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
  215. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js.map +1 -1
  216. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  217. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  218. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts +52 -0
  219. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts.map +1 -0
  220. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js +116 -0
  221. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js.map +1 -0
  222. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts +11 -0
  223. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts.map +1 -0
  224. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js +11 -0
  225. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js.map +1 -0
  226. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  227. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  228. package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts +93 -0
  229. package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts.map +1 -0
  230. package/dist/esm/compliance/privacy/retention-binding.shared.utils.js +149 -0
  231. package/dist/esm/compliance/privacy/retention-binding.shared.utils.js.map +1 -0
  232. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts +43 -0
  233. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts.map +1 -0
  234. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js +106 -0
  235. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js.map +1 -0
  236. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts +209 -0
  237. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts.map +1 -0
  238. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js +226 -0
  239. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js.map +1 -0
  240. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts +129 -5
  241. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js +128 -4
  243. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -1
  244. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts +53 -0
  245. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts.map +1 -0
  246. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js +74 -0
  247. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js.map +1 -0
  248. package/dist/esm/compliance/privacy/sharing.shared.schemas.d.ts.map +1 -1
  249. package/dist/esm/compliance/privacy/sharing.shared.schemas.js.map +1 -1
  250. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts +311 -0
  251. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts.map +1 -0
  252. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js +355 -0
  253. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js.map +1 -0
  254. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts.map +1 -1
  255. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js.map +1 -1
  256. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +178 -39
  257. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
  258. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +145 -35
  259. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
  260. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
  261. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js +26 -0
  262. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -1
  263. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts +9 -0
  264. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  265. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  266. package/dist/esm/compliance/review-cadence.shared.schemas.d.ts.map +1 -1
  267. package/dist/esm/compliance/review-cadence.shared.schemas.js.map +1 -1
  268. package/dist/esm/compliance/risk-posture.shared.schemas.d.ts.map +1 -1
  269. package/dist/esm/compliance/risk-posture.shared.schemas.js.map +1 -1
  270. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  271. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  272. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +109 -1
  273. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  274. package/dist/esm/config/app-configuration-shared.shared.schemas.js +57 -0
  275. package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
  276. package/dist/esm/config/app-frontend-type.shared.schemas.d.ts.map +1 -1
  277. package/dist/esm/config/app-frontend-type.shared.schemas.js.map +1 -1
  278. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  279. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  280. package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
  281. package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -1
  282. package/dist/esm/config/configuration-validation.shared.schemas.d.ts.map +1 -1
  283. package/dist/esm/config/configuration-validation.shared.schemas.js.map +1 -1
  284. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +69 -0
  285. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  286. package/dist/esm/config/entity-identity-config.shared.schemas.js +93 -0
  287. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  288. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +16 -16
  289. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
  290. package/dist/esm/config/frontend/chart-definition.shared.schemas.js.map +1 -1
  291. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
  292. package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
  293. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +160 -61
  294. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  295. package/dist/esm/config/frontend/navigation.shared.schemas.js +297 -65
  296. package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
  297. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
  298. package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
  299. package/dist/esm/config/postgresql.shared.schemas.d.ts.map +1 -1
  300. package/dist/esm/config/postgresql.shared.schemas.js.map +1 -1
  301. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
  302. package/dist/esm/config/registration-acquisition-policy.shared.utils.js.map +1 -1
  303. package/dist/esm/config-authoring.entry.d.ts.map +1 -1
  304. package/dist/esm/config-authoring.entry.js.map +1 -1
  305. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
  306. package/dist/esm/crdt/crdt-merge.shared.utils.js.map +1 -1
  307. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
  308. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js.map +1 -1
  309. package/dist/esm/errors/caught-error-description.shared.utils.d.ts +69 -0
  310. package/dist/esm/errors/caught-error-description.shared.utils.d.ts.map +1 -0
  311. package/dist/esm/errors/caught-error-description.shared.utils.js +77 -0
  312. package/dist/esm/errors/caught-error-description.shared.utils.js.map +1 -0
  313. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +76 -3
  314. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  315. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +76 -2
  316. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  317. package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
  318. package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
  319. package/dist/esm/errors/errors.shared.schemas.d.ts +20 -1
  320. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  321. package/dist/esm/errors/errors.shared.schemas.js +16 -9
  322. package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
  323. package/dist/esm/errors/errors.shared.utils.d.ts +0 -24
  324. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  325. package/dist/esm/errors/errors.shared.utils.js +0 -39
  326. package/dist/esm/errors/errors.shared.utils.js.map +1 -1
  327. package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts.map +1 -1
  328. package/dist/esm/errors/resource-access-forbidden.shared.error.js.map +1 -1
  329. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts +6 -7
  330. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -1
  331. package/dist/esm/errors/thrown-value-description.shared.utils.js +6 -7
  332. package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -1
  333. package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts.map +1 -1
  334. package/dist/esm/errors/zod-issue-formatting.shared.utils.js.map +1 -1
  335. package/dist/esm/exports/tabular-csv.shared.utils.d.ts.map +1 -1
  336. package/dist/esm/exports/tabular-csv.shared.utils.js.map +1 -1
  337. package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts +70 -0
  338. package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts.map +1 -0
  339. package/dist/esm/external-data/external-data-pipeline-description.shared.js +92 -0
  340. package/dist/esm/external-data/external-data-pipeline-description.shared.js.map +1 -0
  341. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts +154 -0
  342. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts.map +1 -0
  343. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js +161 -0
  344. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js.map +1 -0
  345. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +1071 -23
  346. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  347. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js +1065 -17
  348. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  349. package/dist/esm/external-data/external-data-provenance.shared.d.ts +71 -0
  350. package/dist/esm/external-data/external-data-provenance.shared.d.ts.map +1 -0
  351. package/dist/esm/external-data/external-data-provenance.shared.js +88 -0
  352. package/dist/esm/external-data/external-data-provenance.shared.js.map +1 -0
  353. package/dist/esm/external-data.exports.d.ts +5 -0
  354. package/dist/esm/external-data.exports.d.ts.map +1 -1
  355. package/dist/esm/external-data.exports.js +11 -0
  356. package/dist/esm/external-data.exports.js.map +1 -1
  357. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
  358. package/dist/esm/external-providers/compose-provider-registry.shared.js.map +1 -1
  359. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +17 -2
  360. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  361. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +22 -4
  362. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  363. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  364. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +3 -0
  365. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  366. package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -1
  367. package/dist/esm/external-providers/engine-capability-surface.shared.js +2 -0
  368. package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -1
  369. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
  370. package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
  371. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +152 -1
  372. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  373. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js.map +1 -1
  374. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +4 -3
  375. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
  376. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +4 -3
  377. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
  378. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +45 -0
  379. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
  380. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +14 -0
  381. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
  382. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +188 -4
  383. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  384. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +76 -9
  385. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  386. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts +175 -33
  387. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -1
  388. package/dist/esm/external-providers/frontend-provider-public-config.shared.js +247 -42
  389. package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -1
  390. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts +53 -0
  391. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts.map +1 -0
  392. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js +41 -0
  393. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js.map +1 -0
  394. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts +150 -0
  395. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts.map +1 -0
  396. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js +22 -0
  397. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js.map +1 -0
  398. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts +42 -0
  399. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts.map +1 -0
  400. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js +49 -0
  401. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js.map +1 -0
  402. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts.map +1 -1
  403. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js.map +1 -1
  404. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts +53 -0
  405. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -1
  406. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js +56 -0
  407. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -1
  408. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +34 -0
  409. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  410. package/dist/esm/external-providers/provider-capability.shared.schemas.js +34 -0
  411. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  412. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +341 -4
  413. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  414. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +270 -20
  415. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  416. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts +6 -2
  417. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -1
  418. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js +6 -2
  419. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -1
  420. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +174 -1
  421. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
  422. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +125 -0
  423. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
  424. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +3 -3
  425. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
  426. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
  427. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts +42 -0
  428. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts.map +1 -0
  429. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js +57 -0
  430. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js.map +1 -0
  431. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +6 -0
  432. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  433. package/dist/esm/external-providers/provider-protocol.shared.schemas.js +6 -0
  434. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
  435. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts +58 -0
  436. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts.map +1 -0
  437. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js +35 -0
  438. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js.map +1 -0
  439. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts +115 -0
  440. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts.map +1 -0
  441. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js +137 -0
  442. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js.map +1 -0
  443. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -1
  444. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -1
  445. package/dist/esm/external-providers/provider-usage-cost.shared.d.ts +73 -0
  446. package/dist/esm/external-providers/provider-usage-cost.shared.d.ts.map +1 -0
  447. package/dist/esm/external-providers/provider-usage-cost.shared.js +171 -0
  448. package/dist/esm/external-providers/provider-usage-cost.shared.js.map +1 -0
  449. package/dist/esm/external-providers/provider-usage-pricing.example.d.ts +12 -0
  450. package/dist/esm/external-providers/provider-usage-pricing.example.d.ts.map +1 -0
  451. package/dist/esm/external-providers/provider-usage-pricing.example.js +40 -0
  452. package/dist/esm/external-providers/provider-usage-pricing.example.js.map +1 -0
  453. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts +68 -32
  454. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
  455. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js +63 -52
  456. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -1
  457. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +5 -5
  458. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
  459. package/dist/esm/features/application-features.shared.resources-config.schemas.js +13 -5
  460. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
  461. package/dist/esm/features/connected-feature.example.d.ts.map +1 -1
  462. package/dist/esm/features/connected-feature.example.js +2 -1
  463. package/dist/esm/features/connected-feature.example.js.map +1 -1
  464. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  465. package/dist/esm/features/core-feature-definitions.shared.js +2 -1
  466. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  467. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  468. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  469. package/dist/esm/features/feature-definition.shared.schemas.d.ts +2 -11
  470. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  471. package/dist/esm/features/feature-definition.shared.schemas.js +0 -12
  472. package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
  473. package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
  474. package/dist/esm/features/feature-registry.shared.js.map +1 -1
  475. package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
  476. package/dist/esm/features/feature-resolution.shared.schemas.js.map +1 -1
  477. package/dist/esm/features/scope-features.shared.schemas.d.ts +31 -17
  478. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  479. package/dist/esm/features/scope-features.shared.schemas.js +27 -5
  480. package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
  481. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +5 -5
  482. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
  483. package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
  484. package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -1
  485. package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -1
  486. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
  487. package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
  488. package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
  489. package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
  490. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  491. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  492. package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
  493. package/dist/esm/files/files.shared.utils.js.map +1 -1
  494. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  495. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -1
  496. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
  497. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -1
  498. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
  499. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -1
  500. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
  501. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js.map +1 -1
  502. package/dist/esm/flows-actors/actors.shared.schemas.d.ts +127 -11
  503. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  504. package/dist/esm/flows-actors/actors.shared.schemas.js +32 -1
  505. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  506. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +16 -0
  507. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
  508. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js +7 -0
  509. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -1
  510. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts +68 -0
  511. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts.map +1 -0
  512. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js +276 -0
  513. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js.map +1 -0
  514. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts +468 -0
  515. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts.map +1 -0
  516. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js +472 -0
  517. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js.map +1 -0
  518. package/dist/esm/flows-actors/agents.shared.schemas.d.ts +2 -2
  519. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  520. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  521. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts +118 -0
  522. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts.map +1 -0
  523. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js +144 -0
  524. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js.map +1 -0
  525. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
  526. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
  527. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts.map +1 -1
  528. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js.map +1 -1
  529. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
  530. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -1
  531. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +142 -8
  532. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  533. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +209 -11
  534. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  535. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
  536. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -1
  537. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
  538. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -1
  539. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +37 -2
  540. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  541. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +30 -2
  542. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  543. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts +0 -11
  544. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  545. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js +12 -5
  546. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
  547. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts +45 -6
  548. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  549. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js +31 -5
  550. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
  551. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  552. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +30 -30
  553. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  554. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
  555. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js.map +1 -1
  556. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +15 -7
  557. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  558. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  559. package/dist/esm/flows-actors/flows.shared.schemas.d.ts +15 -0
  560. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  561. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  562. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts +506 -0
  563. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -1
  564. package/dist/esm/flows-actors/human-decision.shared.schemas.js +502 -0
  565. package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -1
  566. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
  567. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
  568. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts +46 -0
  569. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts.map +1 -0
  570. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js +65 -0
  571. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js.map +1 -0
  572. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts +120 -0
  573. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts.map +1 -0
  574. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js +165 -0
  575. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js.map +1 -0
  576. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts +45 -0
  577. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts.map +1 -0
  578. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js +127 -0
  579. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js.map +1 -0
  580. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts +83 -0
  581. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts.map +1 -0
  582. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js +97 -0
  583. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js.map +1 -0
  584. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts +136 -0
  585. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts.map +1 -0
  586. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js +90 -0
  587. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js.map +1 -0
  588. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
  589. package/dist/esm/flows-actors/prompt-ir.shared.schemas.js.map +1 -1
  590. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts +5 -1
  591. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -1
  592. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js +19 -4
  593. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -1
  594. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts +13 -15
  595. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -1
  596. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js +30 -17
  597. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -1
  598. package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts +268 -0
  599. package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts.map +1 -0
  600. package/dist/esm/flows-actors/review-deadlines.shared.schemas.js +576 -0
  601. package/dist/esm/flows-actors/review-deadlines.shared.schemas.js.map +1 -0
  602. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +30 -0
  603. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  604. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
  605. package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts +129 -0
  606. package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts.map +1 -0
  607. package/dist/esm/flows-actors/work-attribution.shared.schemas.js +141 -0
  608. package/dist/esm/flows-actors/work-attribution.shared.schemas.js.map +1 -0
  609. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts +22 -1
  610. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
  611. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js +23 -0
  612. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
  613. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +61 -0
  614. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
  615. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +61 -0
  616. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -1
  617. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
  618. package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
  619. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
  620. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
  621. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  622. package/dist/esm/guidance/guidance-state.shared.schemas.js +11 -10
  623. package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
  624. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
  625. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
  626. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
  627. package/dist/esm/guidance/lifecycle-config.shared.schemas.js.map +1 -1
  628. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
  629. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
  630. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
  631. package/dist/esm/guidance/lifecycle-state.shared.schemas.js +6 -6
  632. package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
  633. package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
  634. package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
  635. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
  636. package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
  637. package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts.map +1 -1
  638. package/dist/esm/guidance/progression-presentation.shared.schemas.js.map +1 -1
  639. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  640. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
  641. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  642. package/dist/esm/guidance/progression-state.shared.schemas.js +8 -7
  643. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  644. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
  645. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js +1 -1
  646. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -1
  647. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +550 -30
  648. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  649. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +498 -34
  650. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
  651. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts +62 -0
  652. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts.map +1 -0
  653. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js +66 -0
  654. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js.map +1 -0
  655. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts +133 -0
  656. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts.map +1 -0
  657. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js +191 -0
  658. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js.map +1 -0
  659. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts +37 -6
  660. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -1
  661. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js +37 -6
  662. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -1
  663. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts.map +1 -1
  664. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js.map +1 -1
  665. package/dist/esm/i18n/application-config-vocabulary.shared.d.ts +36 -0
  666. package/dist/esm/i18n/application-config-vocabulary.shared.d.ts.map +1 -0
  667. package/dist/esm/i18n/application-config-vocabulary.shared.js +39 -0
  668. package/dist/esm/i18n/application-config-vocabulary.shared.js.map +1 -0
  669. package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts +11 -0
  670. package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts.map +1 -0
  671. package/dist/esm/i18n/engine-open-vocabulary-values.shared.js +14 -0
  672. package/dist/esm/i18n/engine-open-vocabulary-values.shared.js.map +1 -0
  673. package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts +20 -0
  674. package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts.map +1 -0
  675. package/dist/esm/i18n/engine-open-vocabulary.shared.js +21 -0
  676. package/dist/esm/i18n/engine-open-vocabulary.shared.js.map +1 -0
  677. package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts.map +1 -1
  678. package/dist/esm/i18n/interpolate-label-params.shared.utils.js.map +1 -1
  679. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
  680. package/dist/esm/i18n/labelling.dto.shared.schemas.js.map +1 -1
  681. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts +94 -0
  682. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts.map +1 -0
  683. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js +206 -0
  684. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js.map +1 -0
  685. package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts +169 -0
  686. package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts.map +1 -0
  687. package/dist/esm/inbound/conversation-threads.shared.schemas.js +231 -0
  688. package/dist/esm/inbound/conversation-threads.shared.schemas.js.map +1 -0
  689. package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts +195 -0
  690. package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts.map +1 -0
  691. package/dist/esm/inbound/inbound-channels.shared.schemas.js +244 -0
  692. package/dist/esm/inbound/inbound-channels.shared.schemas.js.map +1 -0
  693. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts +36 -0
  694. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts.map +1 -0
  695. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js +169 -0
  696. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js.map +1 -0
  697. package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts +404 -0
  698. package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts.map +1 -0
  699. package/dist/esm/inbound/inbound-delivery.shared.schemas.js +449 -0
  700. package/dist/esm/inbound/inbound-delivery.shared.schemas.js.map +1 -0
  701. package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts +46 -0
  702. package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts.map +1 -0
  703. package/dist/esm/inbound/inbound-endpoint-env.shared.js +57 -0
  704. package/dist/esm/inbound/inbound-endpoint-env.shared.js.map +1 -0
  705. package/dist/esm/index.d.ts +58 -1
  706. package/dist/esm/index.d.ts.map +1 -1
  707. package/dist/esm/index.js +67 -1
  708. package/dist/esm/index.js.map +1 -1
  709. package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -1
  710. package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -1
  711. package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -1
  712. package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -1
  713. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts.map +1 -1
  714. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js.map +1 -1
  715. package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
  716. package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
  717. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +28 -0
  718. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
  719. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js +29 -0
  720. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
  721. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +95 -1
  722. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -1
  723. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +121 -0
  724. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -1
  725. package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -1
  726. package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -1
  727. package/dist/esm/meta-workflows.exports.d.ts +0 -1
  728. package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
  729. package/dist/esm/meta-workflows.exports.js +0 -1
  730. package/dist/esm/meta-workflows.exports.js.map +1 -1
  731. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
  732. package/dist/esm/monitoring/monitoring.shared.schemas.js.map +1 -1
  733. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
  734. package/dist/esm/notifications/email/email-context.shared.schemas.js.map +1 -1
  735. package/dist/esm/notifications/email/email-submission.shared.enums.d.ts.map +1 -1
  736. package/dist/esm/notifications/email/email-submission.shared.enums.js.map +1 -1
  737. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +7 -1
  738. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  739. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js +35 -0
  740. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  741. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
  742. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
  743. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts +131 -0
  744. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts.map +1 -0
  745. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js +258 -0
  746. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js.map +1 -0
  747. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts +448 -0
  748. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts.map +1 -0
  749. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js +530 -0
  750. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js.map +1 -0
  751. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
  752. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.js.map +1 -1
  753. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  754. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js +4 -3
  755. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
  756. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
  757. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -1
  758. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +16 -1
  759. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  760. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +46 -16
  761. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  762. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +19 -12
  763. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  764. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +77 -12
  765. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  766. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  767. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  768. package/dist/esm/notifications/notification-badges.schemas.d.ts +35 -3
  769. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  770. package/dist/esm/notifications/notification-badges.schemas.js +43 -3
  771. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  772. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
  773. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
  774. package/dist/esm/notifications/notifications.shared.schemas.d.ts +66 -399
  775. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  776. package/dist/esm/notifications/notifications.shared.schemas.js +111 -58
  777. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  778. package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts.map +1 -1
  779. package/dist/esm/organizations/application-owner-organization.shared.schemas.js.map +1 -1
  780. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +5 -5
  781. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
  782. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +6 -6
  783. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  784. package/dist/esm/organizations/organization-features.shared.schemas.d.ts.map +1 -1
  785. package/dist/esm/organizations/organization-features.shared.schemas.js.map +1 -1
  786. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +3 -0
  787. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  788. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +60 -14
  789. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
  790. package/dist/esm/organizations/organization-members.shared.schemas.d.ts +3 -0
  791. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  792. package/dist/esm/organizations/organization-members.shared.schemas.js +30 -0
  793. package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
  794. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
  795. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js.map +1 -1
  796. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  797. package/dist/esm/organizations/organization-notifications.shared.schemas.js +9 -9
  798. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  799. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  800. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js.map +1 -1
  801. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  802. package/dist/esm/organizations/organization-preferences.shared.schemas.js +4 -4
  803. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  804. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts +0 -1
  805. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  806. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js.map +1 -1
  807. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +5 -5
  808. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  809. package/dist/esm/organizations/organization-profile.shared.schemas.js +15 -10
  810. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  811. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
  812. package/dist/esm/organizations/organization-unit-inheritance.shared.js.map +1 -1
  813. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
  814. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js +1 -1
  815. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -1
  816. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
  817. package/dist/esm/organizations/organization-unit-members.shared.schemas.js +2 -1
  818. package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -1
  819. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts +63 -1
  820. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
  821. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js +106 -5
  822. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -1
  823. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
  824. package/dist/esm/organizations/organization-unit-narrowing.example.js.map +1 -1
  825. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  826. package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -0
  827. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  828. package/dist/esm/organizations/organization-units.shared.path.d.ts.map +1 -1
  829. package/dist/esm/organizations/organization-units.shared.path.js.map +1 -1
  830. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  831. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js +7 -2
  832. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
  833. package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
  834. package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
  835. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +3 -1
  836. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  837. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +12 -8
  838. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  839. package/dist/esm/organizations/organizations.shared.schemas.d.ts +7 -2
  840. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  841. package/dist/esm/organizations/organizations.shared.schemas.js +51 -1
  842. package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
  843. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts +58 -0
  844. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts.map +1 -0
  845. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js +188 -0
  846. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js.map +1 -0
  847. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts +122 -0
  848. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts.map +1 -0
  849. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js +136 -0
  850. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js.map +1 -0
  851. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts +36 -0
  852. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts.map +1 -0
  853. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js +155 -0
  854. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js.map +1 -0
  855. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts +229 -0
  856. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts.map +1 -0
  857. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js +290 -0
  858. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js.map +1 -0
  859. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts +48 -0
  860. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts.map +1 -0
  861. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js +50 -0
  862. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js.map +1 -0
  863. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts +97 -0
  864. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts.map +1 -0
  865. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js +572 -0
  866. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js.map +1 -0
  867. package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts +590 -0
  868. package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts.map +1 -0
  869. package/dist/esm/organizations/service-provider-relationships.shared.schemas.js +869 -0
  870. package/dist/esm/organizations/service-provider-relationships.shared.schemas.js.map +1 -0
  871. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +36 -6
  872. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
  873. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +57 -16
  874. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
  875. package/dist/esm/provider-registration-runtime.exports.d.ts +0 -1
  876. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
  877. package/dist/esm/provider-registration-runtime.exports.js +0 -1
  878. package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
  879. package/dist/esm/public-runtime/index.d.ts +30 -11
  880. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  881. package/dist/esm/public-runtime/index.js +30 -11
  882. package/dist/esm/public-runtime/index.js.map +1 -1
  883. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  884. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  885. package/dist/esm/queue/jobs.shared.schemas.d.ts +30 -2
  886. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  887. package/dist/esm/queue/jobs.shared.schemas.js +12 -0
  888. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  889. package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
  890. package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
  891. package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
  892. package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
  893. package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
  894. package/dist/esm/queue/queues.shared.utils.js.map +1 -1
  895. package/dist/esm/queue/rabbitmq-queue-args.shared.d.ts.map +1 -1
  896. package/dist/esm/queue/rabbitmq-queue-args.shared.js.map +1 -1
  897. package/dist/esm/rag/rag-retrieval-health.shared.d.ts.map +1 -1
  898. package/dist/esm/rag/rag-retrieval-health.shared.js.map +1 -1
  899. package/dist/esm/requests/header-keys.shared.d.ts +6 -0
  900. package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
  901. package/dist/esm/requests/header-keys.shared.js +7 -0
  902. package/dist/esm/requests/header-keys.shared.js.map +1 -1
  903. package/dist/esm/requests/http-requests.shared.d.ts.map +1 -1
  904. package/dist/esm/requests/http-requests.shared.js.map +1 -1
  905. package/dist/esm/requests/idempotency-key.shared.d.ts.map +1 -1
  906. package/dist/esm/requests/idempotency-key.shared.js.map +1 -1
  907. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
  908. package/dist/esm/requests/manual-controllers-routes-documentation.js +147 -8
  909. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
  910. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +51 -23
  911. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  912. package/dist/esm/requests/manual-controllers-routes-urls.js +64 -0
  913. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  914. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  915. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  916. package/dist/esm/requests/websocket.shared.schemas.d.ts +78 -13
  917. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  918. package/dist/esm/requests/websocket.shared.schemas.js +91 -18
  919. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  920. package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
  921. package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
  922. package/dist/esm/resources/collection-query-parameters.shared.d.ts.map +1 -1
  923. package/dist/esm/resources/collection-query-parameters.shared.js.map +1 -1
  924. package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
  925. package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
  926. package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts +21 -0
  927. package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts.map +1 -0
  928. package/dist/esm/resources/embedded-resource-mark.shared.utils.js +22 -0
  929. package/dist/esm/resources/embedded-resource-mark.shared.utils.js.map +1 -0
  930. package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
  931. package/dist/esm/resources/relationship-display.shared.schemas.js.map +1 -1
  932. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  933. package/dist/esm/resources/resources-config.shared.factory.js +812 -32
  934. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  935. package/dist/esm/resources/resources-config.shared.schemas.d.ts +244 -48
  936. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  937. package/dist/esm/resources/resources-config.shared.schemas.js +151 -17
  938. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  939. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  940. package/dist/esm/resources/resources-registry.shared.core.definitions.js +369 -12
  941. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  942. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  943. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  944. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
  945. package/dist/esm/resources/resources-serialization.shared.schemas.js.map +1 -1
  946. package/dist/esm/resources/resources.shared.core.definitions.d.ts +45 -0
  947. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  948. package/dist/esm/resources/resources.shared.core.definitions.js +92 -0
  949. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  950. package/dist/esm/resources/resources.shared.schemas.d.ts +2 -17
  951. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  952. package/dist/esm/resources/resources.shared.schemas.js +24 -20
  953. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  954. package/dist/esm/resources/resources.shared.utils.d.ts +16 -8
  955. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  956. package/dist/esm/resources/resources.shared.utils.js +16 -8
  957. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  958. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts +2 -2
  959. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
  960. package/dist/esm/resources/utils/collection-export.shared.utils.js +4 -2
  961. package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -1
  962. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
  963. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -1
  964. package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
  965. package/dist/esm/resources/utils/composition-seedability.validation.js.map +1 -1
  966. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
  967. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js.map +1 -1
  968. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts.map +1 -1
  969. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js.map +1 -1
  970. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
  971. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js.map +1 -1
  972. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -1
  973. package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -1
  974. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts +103 -0
  975. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts.map +1 -0
  976. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js +275 -0
  977. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js.map +1 -0
  978. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts.map +1 -1
  979. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js.map +1 -1
  980. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts +51 -0
  981. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts.map +1 -0
  982. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js +28 -0
  983. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js.map +1 -0
  984. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
  985. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js.map +1 -1
  986. package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -1
  987. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js +30 -19
  988. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -1
  989. package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
  990. package/dist/esm/resources/utils/repository-dto-builder.utils.js.map +1 -1
  991. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts +2 -0
  992. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts.map +1 -0
  993. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js +33 -0
  994. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js.map +1 -0
  995. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
  996. package/dist/esm/resources/utils/required-fk-fillability.validation.js.map +1 -1
  997. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
  998. package/dist/esm/resources/utils/resource-operation-type-guards.utils.js.map +1 -1
  999. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts +15 -0
  1000. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  1001. package/dist/esm/resources/utils/resource-polymorphism.factory.js +6 -1
  1002. package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
  1003. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
  1004. package/dist/esm/resources/utils/resource-polymorphism.relationships.js.map +1 -1
  1005. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
  1006. package/dist/esm/resources/utils/resource-polymorphism.schemas.js +30 -4
  1007. package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
  1008. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
  1009. package/dist/esm/resources/utils/resource-polymorphism.utils.js.map +1 -1
  1010. package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
  1011. package/dist/esm/resources/utils/resource-subtree.utils.js.map +1 -1
  1012. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
  1013. package/dist/esm/resources/utils/resources-config-context-needs.utils.js.map +1 -1
  1014. package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
  1015. package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
  1016. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +46 -0
  1017. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  1018. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +205 -22
  1019. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
  1020. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
  1021. package/dist/esm/resources/utils/resources-config-operations.path.utils.js.map +1 -1
  1022. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
  1023. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
  1024. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
  1025. package/dist/esm/resources/utils/resources-config-operations.utils.js.map +1 -1
  1026. package/dist/esm/resources/utils/resources-serialization.utils.d.ts +19 -2
  1027. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  1028. package/dist/esm/resources/utils/resources-serialization.utils.js +4 -0
  1029. package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
  1030. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  1031. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  1032. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
  1033. package/dist/esm/resources/utils/schema-family-builder.utils.js.map +1 -1
  1034. package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
  1035. package/dist/esm/resources/utils/schema-type-inference.utils.js.map +1 -1
  1036. package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
  1037. package/dist/esm/resources/utils/schema-type-utils.js.map +1 -1
  1038. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
  1039. package/dist/esm/resources/utils/schema-variant-resolver.utils.js.map +1 -1
  1040. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  1041. package/dist/esm/resources/utils/shared-persistence-collection.utils.js +15 -9
  1042. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  1043. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
  1044. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -1
  1045. package/dist/esm/resources/work-unit.shared.schemas.d.ts +20 -0
  1046. package/dist/esm/resources/work-unit.shared.schemas.d.ts.map +1 -0
  1047. package/dist/esm/resources/work-unit.shared.schemas.js +19 -0
  1048. package/dist/esm/resources/work-unit.shared.schemas.js.map +1 -0
  1049. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  1050. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  1051. package/dist/esm/runtime/execution-context.shared.schemas.d.ts +48 -1
  1052. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  1053. package/dist/esm/runtime/execution-context.shared.schemas.js +101 -9
  1054. package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
  1055. package/dist/esm/runtime/runtime.shared.schemas.d.ts.map +1 -1
  1056. package/dist/esm/runtime/runtime.shared.schemas.js.map +1 -1
  1057. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
  1058. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  1059. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +37 -20
  1060. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  1061. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
  1062. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  1063. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +61 -48
  1064. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  1065. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts +26 -0
  1066. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  1067. package/dist/esm/security/api-keys/api-keys.shared.schemas.js +39 -5
  1068. package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
  1069. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
  1070. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js.map +1 -1
  1071. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +5 -3
  1072. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  1073. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +6 -0
  1074. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  1075. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  1076. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  1077. package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
  1078. package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
  1079. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
  1080. package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
  1081. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
  1082. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -1
  1083. package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts.map +1 -1
  1084. package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js.map +1 -1
  1085. package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts.map +1 -1
  1086. package/dist/esm/security/authentications/password-blocklist.shared.utils.js.map +1 -1
  1087. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
  1088. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js.map +1 -1
  1089. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  1090. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  1091. package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts.map +1 -1
  1092. package/dist/esm/security/authentications/same-origin-redirect-path.shared.js.map +1 -1
  1093. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
  1094. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +2 -2
  1095. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -1
  1096. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts +11 -0
  1097. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  1098. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js +19 -8
  1099. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
  1100. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +1 -1
  1101. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  1102. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +5 -5
  1103. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  1104. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
  1105. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js +11 -11
  1106. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
  1107. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts +2 -0
  1108. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  1109. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js +9 -0
  1110. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
  1111. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts +169 -0
  1112. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts.map +1 -0
  1113. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js +162 -0
  1114. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js.map +1 -0
  1115. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  1116. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js +10 -8
  1117. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
  1118. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
  1119. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js.map +1 -1
  1120. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts.map +1 -1
  1121. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js.map +1 -1
  1122. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts.map +1 -1
  1123. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js.map +1 -1
  1124. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
  1125. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
  1126. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
  1127. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
  1128. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
  1129. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +8 -8
  1130. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
  1131. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  1132. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +17 -16
  1133. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  1134. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  1135. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +28 -25
  1136. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  1137. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts +17 -6
  1138. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  1139. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js +90 -38
  1140. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
  1141. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +0 -24
  1142. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  1143. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +79 -68
  1144. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  1145. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +8 -1
  1146. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
  1147. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +7 -0
  1148. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
  1149. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  1150. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +1 -1
  1151. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -1
  1152. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -1
  1153. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -1
  1154. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  1155. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +7 -7
  1156. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  1157. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
  1158. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
  1159. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  1160. package/dist/esm/security/authorizations/roles.shared.defaults.js +56 -0
  1161. package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
  1162. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +77 -1
  1163. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  1164. package/dist/esm/security/authorizations/roles.shared.schemas.js +90 -0
  1165. package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
  1166. package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
  1167. package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -1
  1168. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts +86 -0
  1169. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts.map +1 -0
  1170. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js +40 -0
  1171. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js.map +1 -0
  1172. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +2 -1
  1173. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
  1174. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js +2 -1
  1175. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
  1176. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +2 -1
  1177. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
  1178. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +2 -1
  1179. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -1
  1180. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +46 -14
  1181. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -1
  1182. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +81 -21
  1183. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
  1184. package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts +69 -0
  1185. package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts.map +1 -0
  1186. package/dist/esm/security/credential-rotation-grace.shared.utils.js +77 -0
  1187. package/dist/esm/security/credential-rotation-grace.shared.utils.js.map +1 -0
  1188. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.d.ts.map +1 -1
  1189. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js.map +1 -1
  1190. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  1191. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +28 -8
  1192. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
  1193. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +3 -1
  1194. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
  1195. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +89 -14
  1196. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  1197. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +1 -0
  1198. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  1199. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +25 -4
  1200. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  1201. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
  1202. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -1
  1203. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
  1204. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
  1205. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
  1206. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js.map +1 -1
  1207. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts +7 -1
  1208. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -1
  1209. package/dist/esm/security/outbound-target-control.shared.schemas.js +6 -0
  1210. package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -1
  1211. package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts +143 -0
  1212. package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts.map +1 -0
  1213. package/dist/esm/security/submission-challenge/submission-challenge.shared.js +123 -0
  1214. package/dist/esm/security/submission-challenge/submission-challenge.shared.js.map +1 -0
  1215. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts +384 -0
  1216. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts.map +1 -0
  1217. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js +327 -0
  1218. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js.map +1 -0
  1219. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts.map +1 -1
  1220. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js.map +1 -1
  1221. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts +121 -8
  1222. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -1
  1223. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js +83 -4
  1224. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -1
  1225. package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts.map +1 -1
  1226. package/dist/esm/systems-of-record/system-of-record-env.shared.js.map +1 -1
  1227. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts +266 -8
  1228. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -1
  1229. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js +291 -7
  1230. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -1
  1231. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts +313 -3
  1232. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -1
  1233. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js +369 -3
  1234. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -1
  1235. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -1
  1236. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js +2 -1
  1237. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -1
  1238. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts.map +1 -1
  1239. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js.map +1 -1
  1240. package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
  1241. package/dist/esm/testing/resource-config-builders.js.map +1 -1
  1242. package/dist/esm/testing.d.ts.map +1 -1
  1243. package/dist/esm/testing.js.map +1 -1
  1244. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
  1245. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -1
  1246. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +5 -3
  1247. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  1248. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js +19 -10
  1249. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
  1250. package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
  1251. package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
  1252. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
  1253. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +6 -0
  1254. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
  1255. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
  1256. package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
  1257. package/dist/esm/users/user-consent-decision.shared.utils.d.ts.map +1 -1
  1258. package/dist/esm/users/user-consent-decision.shared.utils.js.map +1 -1
  1259. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
  1260. package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
  1261. package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
  1262. package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
  1263. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
  1264. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
  1265. package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
  1266. package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
  1267. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
  1268. package/dist/esm/users/user-preferences-reset.shared.utils.js +2 -2
  1269. package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -1
  1270. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +0 -3
  1271. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  1272. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
  1273. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  1274. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
  1275. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +0 -3
  1276. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  1277. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
  1278. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  1279. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
  1280. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  1281. package/dist/esm/users/user-self.shared.resources-config.schemas.js +1 -1
  1282. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  1283. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  1284. package/dist/esm/users/users.shared.resources-config.schemas.js +82 -20
  1285. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  1286. package/dist/esm/users/users.shared.schemas.d.ts +12 -9
  1287. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  1288. package/dist/esm/users/users.shared.schemas.js +49 -18
  1289. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  1290. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1291. package/package.json +4 -4
  1292. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts +0 -8
  1293. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +0 -1
  1294. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js +0 -7
  1295. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js.map +0 -1
@@ -1,16 +1,19 @@
1
1
  import { ResourceConfiguration_QueueConfigSchema } from '../queue/queues.shared.schemas.js';
2
+ import { markEmbeddedResourceSchema } from './embedded-resource-mark.shared.utils.js';
2
3
  import { normalizeScheduledRecoveryPolicy } from '../queue/jobs.shared.schemas.js';
3
4
  /**
4
5
  * Operations Shared Schemas
5
6
  *
6
7
  * Reusable operation schemas for bulk actions and common operations
7
8
  */
8
- import { ExpiresInDurationSchema, getImpersonalizeMaskValue, getImpersonalizeTreatment, getZodObjectShape, getZodType, isBackendOnlyField, isDiscriminatorField, isExcludedFromCreate, isExcludedFromUpdate, isBusinessKeyField, isZodObject, isSummaryField, isTemplatableFileField, isUniqueField, isVirtualField, SingleFileValueSchema, toPatchOptionalField, mainSchemaFieldIsClearable, unwrapSchema, getDataCategories, markPatchRequestDtoObject, } from '@wildo-ai/zod-decorators';
9
+ import { ExpiresInDurationSchema, getImpersonalizeMaskValue, getImpersonalizeTreatment, getZodObjectShape, getZodType, isBackendOnlyField, isDiscriminatorField, isExcludedFromCreate, isExcludedFromUpdate, isBusinessKeyField, isZodObject, isSummaryField, isTemplatableFileField, isUniqueField, getUniqueFieldParams, isVirtualField, toPatchOptionalField, z_file, mainSchemaFieldIsClearable, unwrapSchema, getDataCategories, markPatchRequestDtoObject, isDBIndexed, } from '@wildo-ai/zod-decorators';
9
10
  import { z } from 'zod';
10
11
  import { ErrorType } from '../errors/errors.shared.schemas.js';
11
- import { ErasureRetentionMode, ResourceDataSubjectKind, RetentionStatus, RetentionStatusSchema } from '../compliance/privacy/impersonalization.shared.schemas.js';
12
+ import { ErasureRetentionMode, ResourceDataSubjectKind, RetentionStatus, RetentionStatusSchema, StatutoryRetentionGround } from '../compliance/privacy/impersonalization.shared.schemas.js';
12
13
  import { buildImpersonalizeScrubPatch, collectDeclaredPersonalDataFields, IMPERSONALIZE_MASK_CONSTANT, isImpersonalizeNeverScrubFloorField, resolveImpersonalizeMaskValue, resolveImpersonalizeResetValue, } from '../compliance/privacy/impersonalization-scrub.shared.utils.js';
13
14
  import { RedactionType } from '../compliance/privacy/redaction.shared.schemas.js';
15
+ import { DataRetentionClass, RETENTION_STARTED_AT_FIELD_NAME, ResourceRetentionBindingSchema, RetentionStartPoint, } from '../compliance/privacy/retention-schedule.shared.schemas.js';
16
+ import { collectRowTtlPolicies, resolveRetentionStartFieldName } from '../compliance/privacy/retention-binding.shared.utils.js';
14
17
  import { unknownPersonalDataCategories } from '../compliance/privacy/personal-data-category.shared.schemas.js';
15
18
  /*
16
19
  * entrypoint-closure-waiver: this root-reachable module imports the external-data AUTHORING
@@ -30,13 +33,18 @@ import { unknownPersonalDataCategories } from '../compliance/privacy/personal-da
30
33
  * root-exported contract here ever starts inferring one.
31
34
  */
32
35
  import { HttpApiResourceBindingSchema, assertHttpApiBindingDialectCoherence } from '../http-api-binding/http-api-binding.shared.schemas.js';
36
+ import { assertHttpApiWriteDeclarationCoherence, collectHttpApiWriteOperationFacts, resolveHttpApiWriteIdempotencyKeyRequirement, resolveHttpApiWriteVerb, } from './utils/http-api-write-declaration.shared.utils.js';
37
+ import { describeNoSubjectDataStanceContradiction, personalFieldsContradictingNoSubjectDataStance } from './utils/no-subject-data-stance-coherence.shared.utils.js';
33
38
  import { HTTP_API_ENGINE_INJECTED_FIELDS, HTTP_API_TENANT_ANCHOR_FIELD, READ_THROUGH_ORGANIZATION_UNIT_FIELD_NAME, } from '../http-api-binding/read-through-engine-anchors.shared.js';
34
39
  import { HttpApiTransportDialect } from '../http-api-binding/http-api-transport-dialect.shared.js';
35
- import { ExternalDataDestinationPopulation, ExternalDataFieldCoercion, ExternalDataMappingEntryKind, ExternalDataPipelineDeclarationSchema, assertExternalDataPipelineDeclarationCoherence, } from '../external-data/external-data-pipeline.shared.schemas.js';
40
+ import { ExternalDataConditionalOutcomeKind, ExternalDataDestinationPopulation, ExternalDataFieldCoercion, ExternalDataFieldOwner, ExternalDataMappingEntryKind, ExternalDataOrphanPolicy, ExternalDataPipelineDeclarationSchema, ExternalDataPipelineDirection, ExternalDataUnmappedValuePolicy, assertExternalDataPipelineDeclarationCoherence, resolveExternalDataFieldOwner, resolveExternalDataRemoteReferenceValueShape, } from '../external-data/external-data-pipeline.shared.schemas.js';
41
+ import { CoreM2MNotificationChannel, CoreUserNotificationChannel, CoreUserNotificationTarget, M2MNotificationDefinitionSchema, UserNotificationDefinitionSchema, } from '../notifications/notifications.shared.schemas.js';
36
42
  import { HttpMethod } from '../requests/http-requests.shared.js';
43
+ import { isSubmissionChallengeActionName } from '../security/submission-challenge/submission-challenge.shared.js';
37
44
  import { ConsumableToken_ConsumptionMode, TokenAuthenticationPolicy } from '../security/authentications/consumable-token.shared.schemas.js';
38
- import { OPERATION_VARIANT_KEY, wrapRequestDtoAsBulk, resolveBulkOperationMaxSelection, Resources_Filter_BaseSchema, Resources_Filter_DateRangeSchema, Resources_Filter_NumberRangeSchema, isResourcesFilterNumberRangeSchema, createPaginationRequestSchema, DEFAULT_LIST_PAGE_CEILING, DEFAULT_SEARCH_PAGE_CEILING, createPaginationResponseMetadataSchema, ResourceGeneratedOperationKind, ResourceSystemAccessMode, PersistenceAdapter, isPersistenceAdapter, SortOrder, ResourceCollectionExportResponseSchema, } from './resources-config.shared.schemas.js';
45
+ import { OPERATION_VARIANT_KEY, wrapRequestDtoAsBulk, resolveBulkOperationMaxSelection, Resources_Filter_BaseSchema, Resources_Filter_DateRangeSchema, Resources_Filter_NumberRangeSchema, isResourcesFilterNumberRangeSchema, createPaginationRequestSchema, DEFAULT_LIST_PAGE_CEILING, DEFAULT_SEARCH_PAGE_CEILING, createPaginationResponseMetadataSchema, ResourceGeneratedOperationKind, ResourceSystemAccessMode, PersistenceAdapter, isPersistenceAdapter, SortOrder, ResourceCollectionExportFormat, ResourceCollectionExportRowScope, ResourceCollectionExportResponseSchema, getResourcesFilterPresenceTarget, } from './resources-config.shared.schemas.js';
39
46
  import { CoreResourceOperation, CoreResourceType, coreResourceShared_FieldIdentifier } from './resources.shared.core.definitions.js';
47
+ import { requestSchemaCarriesField } from './utils/request-schema-field-carriage.shared.utils.js';
40
48
  import { PRIMARY_SCOPE_FIELD_IDENTIFIERS, PRIMARY_SCOPE_TO_CORE_RESOURCE_TYPE, FIELD_IDENTIFIER_TO_PRIMARY_SCOPE, RelationshipNature, ResourceOperationRiskLevel, ResourceOperationVariantType, ResourceOperation_ServiceRuntimeMode, ResourceParentResourceRequirement, ResourcePrimaryScope, ResourceRelationshipBulkAction, ResourceRelationshipBulkActionResultSchema, ResourceRelationshipBulkClearOperationRequestSchema, ResourceRelationshipBulkCreateOperationRequestSchema, ResourceRelationshipBulkLinkOperationRequestSchema, ResourceRelationshipBulkReplaceOperationRequestSchema, ResourceRelationshipBulkSetOperationRequestSchema, ResourceRelationshipBulkUnlinkOperationRequestSchema, ResourceRelationshipAccessScopeStrategy, ResourceRelationshipCardinality, ResourceTranspositionPolicy } from './resources.shared.schemas.js';
41
49
  import { createResourcesRelationship } from './resources-relationships.shared.factory.js';
42
50
  import { Resources_SharedUtils } from './resources.shared.utils.js';
@@ -45,7 +53,7 @@ import { ResourcesSummaryUtils } from './utils/resources-summary.utils.js';
45
53
  import { collectTemplatableFileFieldPaths, stripTemplatableFileFieldsRecursively } from './utils/templatable-file-fields.shared.utils.js';
46
54
  import { selectByPersistenceAdapter } from './utils/persistence-adapter-discrimination.shared.utils.js';
47
55
  import { isServiceResolvableDefaultOperation, SERVICE_RESOLVABLE_OPERATION_VARIANT_TYPES, URL_BEARING_OPERATION_VARIANT_TYPES, } from './utils/resource-operation-type-guards.utils.js';
48
- import { describeCaughtError } from '../errors/errors.shared.utils.js';
56
+ import { describeCaughtError } from '../errors/caught-error-description.shared.utils.js';
49
57
  // --------------------------------
50
58
  // Error Helpers
51
59
  // --------------------------------
@@ -100,6 +108,94 @@ function createConfigurationError(message) {
100
108
  error.type = ErrorType.CONFIGURATION;
101
109
  return error;
102
110
  }
111
+ /**
112
+ * Whether a dotted path names a field of the resource, descending through nested objects.
113
+ *
114
+ * Dotted because the PostgreSQL filter sanitizer admits a `field.sub` path under a planned JSONB root,
115
+ * so a filter or sort key may legitimately address a nested field. Each segment is unwrapped
116
+ * (optional, default, nullable) before its shape is read.
117
+ */
118
+ function schemaHasFieldPath(shape, path) {
119
+ let current = shape;
120
+ for (const segment of path.split('.')) {
121
+ const field = current?.[segment];
122
+ if (!field)
123
+ return false;
124
+ const unwrapped = (unwrapSchema(field) ?? field);
125
+ current = isZodObject(unwrapped) ? getZodObjectShape(unwrapped) : undefined;
126
+ }
127
+ return true;
128
+ }
129
+ /**
130
+ * Refuse a collection operation whose `filterFields`, `sortFields` or own-field `searchableFields` name
131
+ * something the resource does not have (#1806, #1952).
132
+ *
133
+ * Both lists are passed to the repository VERBATIM — the filter allow-list and the sort allow-list are
134
+ * the declared names, nothing else — so a name that is not a field compiles into a condition on a
135
+ * column that does not exist. On MongoDB that matches nothing and answers an empty page; on PostgreSQL
136
+ * a filter fails on a missing column and a sort is silently dropped. Either way the caller gets a wrong
137
+ * answer with no error saying the filter is unsupported, and the published API reference advertises a
138
+ * query parameter that cannot work. Four such names had shipped when this was written: `role` on the
139
+ * organization-member searches (the field is `roles`), `joinedAt` there and on the user searches (no
140
+ * such field), and `hasExpiration` on six credential searches (a question about `expiresAt`, which
141
+ * nothing translated).
142
+ *
143
+ * A filter key is admitted when it names a field, or when it is a presence filter
144
+ * (`createResourcesFilterPresenceSchema`) whose TARGET names one — that is the one declared
145
+ * translation there is. A function-valued entry — the old "filter-ref transformer" slot — is refused:
146
+ * nothing ever applied it, so its key reached the database untranslated, which is this defect again.
147
+ *
148
+ * `searchableFields` joined the check with #1952: an own-field name reaches the repository verbatim like the
149
+ * other two, and `ORGANIZATIONS`' SEARCH had shipped `email`, a field an organization does not have — every
150
+ * organization search then failed on PostgreSQL (`column "email" does not exist`) while MongoDB quietly
151
+ * matched nothing. A RELATIONAL entry is checked for its `localField`, the half that lives on this resource;
152
+ * its `relatedJoinField` and `fields` belong to the related resource, which is not known here, and a related
153
+ * resource that cannot be resolved already contributes nothing at query time (the fail-safe documented on
154
+ * `SearchableRelationDescriptor`). `_id` is refused as a searchable field even though it is a field: search is a
155
+ * substring match, and MongoDB stores `_id` as an ObjectId and refuses a regex on it, so the search would answer
156
+ * 500 there. A row is found by id through a READ or an `_id` filter.
157
+ *
158
+ * Checked against the EFFECTIVE schema, after the framework injects its own fields, because those are
159
+ * the fields a row actually carries.
160
+ */
161
+ function assertCollectionFieldsNameResourceFields(params) {
162
+ const { resourceIdentifier, operationLabel, schemaShape, filterFields, sortFields, searchableFields } = params;
163
+ for (const [key, declaration] of Object.entries(filterFields ?? {})) {
164
+ if (typeof declaration === 'function') {
165
+ throw createConfigurationError(`Resource "${resourceIdentifier}" ${operationLabel}: filter "${key}" is a function. Filter-ref transformers are not supported — nothing applies them, so the key would reach the database untranslated. `
166
+ + 'Declare the field\'s Zod type, or `createResourcesFilterPresenceSchema(<field>)` for a "has <field>" filter.');
167
+ }
168
+ const presenceTarget = getResourcesFilterPresenceTarget(declaration);
169
+ if (presenceTarget !== undefined) {
170
+ if (!schemaHasFieldPath(schemaShape, presenceTarget)) {
171
+ throw createConfigurationError(`Resource "${resourceIdentifier}" ${operationLabel}: presence filter "${key}" asks about "${presenceTarget}", which is not a field of the resource.`);
172
+ }
173
+ continue;
174
+ }
175
+ if (!schemaHasFieldPath(schemaShape, key)) {
176
+ throw createConfigurationError(`Resource "${resourceIdentifier}" ${operationLabel}: filter "${key}" is not a field of the resource, so it would match nothing. `
177
+ + 'Name a field, or declare `createResourcesFilterPresenceSchema(<field>)` for a "has <field>" filter.');
178
+ }
179
+ }
180
+ for (const field of sortFields ?? []) {
181
+ if (!schemaHasFieldPath(schemaShape, field)) {
182
+ throw createConfigurationError(`Resource "${resourceIdentifier}" ${operationLabel}: sort field "${field}" is not a field of the resource, so sorting by it would be ignored.`);
183
+ }
184
+ }
185
+ for (const entry of searchableFields ?? []) {
186
+ const ownField = typeof entry === 'string' ? entry : undefined;
187
+ const localField = entry && typeof entry === 'object' ? entry.localField : undefined;
188
+ if (ownField === '_id') {
189
+ throw createConfigurationError(`Resource "${resourceIdentifier}" ${operationLabel}: "_id" cannot be a searchable field. Search is a substring match, and MongoDB refuses a regex on an ObjectId; find a row by id with a READ or an \`_id\` filter.`);
190
+ }
191
+ if (ownField !== undefined && !schemaHasFieldPath(schemaShape, ownField)) {
192
+ throw createConfigurationError(`Resource "${resourceIdentifier}" ${operationLabel}: searchable field "${ownField}" is not a field of the resource, so a search on it fails on PostgreSQL and matches nothing on MongoDB.`);
193
+ }
194
+ if (typeof localField === 'string' && !schemaHasFieldPath(schemaShape, localField)) {
195
+ throw createConfigurationError(`Resource "${resourceIdentifier}" ${operationLabel}: relational searchable entry joins on "${localField}", which is not a field of the resource.`);
196
+ }
197
+ }
198
+ }
103
199
  /**
104
200
  * Creates a validation error with ErrorType.VALIDATION
105
201
  * Used for runtime data validation errors
@@ -118,6 +214,30 @@ function createValidationError(message) {
118
214
  function isUrlisableOperationVariantType(variantType) {
119
215
  return URL_BEARING_OPERATION_VARIANT_TYPES.includes(variantType);
120
216
  }
217
+ /**
218
+ * Refuse a `submissionChallenge` declaration the runtime could never honour (#1985).
219
+ *
220
+ * - On a variant that receives no HTTP request (INTERNAL_CALL, a cron or batch job, REPOSITORY_ONLY), no caller can send
221
+ * the `x-submission-challenge-response` header, and such a variant is reached by the server rather than by a visitor.
222
+ * The declaration would say "protected" while refusing every unauthenticated execution.
223
+ * - An action outside the captcha vendor's grammar would be minted by no vendor, so every token for it would be refused
224
+ * and only the proof of work could answer: a protection that silently loses half of itself.
225
+ *
226
+ * Thrown while the resource configuration is BUILT, so the application cannot start with either shape. The INLINE
227
+ * requirement is checked at application start instead, because the runtime mode can be set after this factory runs.
228
+ */
229
+ function assertSubmissionChallengeDeclaration(operation, variantType, declaration) {
230
+ if (declaration === undefined)
231
+ return;
232
+ if (!isUrlisableOperationVariantType(variantType)) {
233
+ throw createConfigurationError(`Operation '${operation}' declares a submission challenge on a '${variantType}' variant. Only a variant reached by an `
234
+ + 'HTTP request can receive the challenge answer; declare it on the API_CALL variant a visitor calls.');
235
+ }
236
+ if (!isSubmissionChallengeActionName(declaration.action)) {
237
+ throw createConfigurationError(`Operation '${operation}' declares the submission-challenge action '${String(declaration.action)}'. An action is 1 to 100 `
238
+ + 'letters, digits, underscores or slashes, the only names a captcha vendor mints tokens for.');
239
+ }
240
+ }
121
241
  /**
122
242
  * The operations a `retentionPolicy` resource must expose to the SERVICE dispatch
123
243
  * layer, with the retention primitive that needs each one.
@@ -280,7 +400,7 @@ export function reconcileGeneratedRelationshipBulkOperations(resourceConfigurati
280
400
  }
281
401
  }
282
402
  /**
283
- * Derive the CSV/JSON export companion of every LIST/SEARCH operation that declared
403
+ * Derive the file-export companion of every LIST/SEARCH operation that declared
284
404
  * `collectionExport`.
285
405
  *
286
406
  * ## Why derived rather than authored
@@ -329,9 +449,27 @@ function createGeneratedCollectionExportOperations(params) {
329
449
  if (!exportConfig.rowScopes || exportConfig.rowScopes.length === 0) {
330
450
  throw createConfigurationError(`[${params.resourceIdentifier}] operation "${sourceOperationIdentifier}" declares collectionExport with no rowScopes; declare at least one, or omit collectionExport entirely`);
331
451
  }
452
+ // A PDF is rendered by a template, so declaring the format without naming one leaves the export
453
+ // nothing to render with; naming one without the format is a declaration nothing reads (#1645).
454
+ const offersPdf = exportConfig.formats.includes(ResourceCollectionExportFormat.PDF);
455
+ if (offersPdf && !exportConfig.pdfTemplateId?.trim()) {
456
+ throw createConfigurationError(`[${params.resourceIdentifier}] operation "${sourceOperationIdentifier}" offers the PDF collection-export format but names no pdfTemplateId; a PDF export is rendered by a template`);
457
+ }
458
+ if (!offersPdf && exportConfig.pdfTemplateId !== undefined) {
459
+ throw createConfigurationError(`[${params.resourceIdentifier}] operation "${sourceOperationIdentifier}" names collectionExport.pdfTemplateId but does not offer the PDF format; add ResourceCollectionExportFormat.PDF or remove the template id`);
460
+ }
332
461
  if (exportConfig.maximumExportedRows !== undefined && exportConfig.maximumExportedRows <= 0) {
333
462
  throw createConfigurationError(`[${params.resourceIdentifier}] operation "${sourceOperationIdentifier}" declares a non-positive collectionExport.maximumExportedRows; omit it for no ceiling`);
334
463
  }
464
+ // A PDF cannot stream: the template lays out every row at once, in memory, before a byte is sent. So a
465
+ // whole-set PDF must declare how many rows it will hold — an unbounded one is an allocation any
466
+ // caller with the listing's roles can make as large as the table (#1645). CSV and JSON stream and
467
+ // keep their optional ceiling.
468
+ if (offersPdf
469
+ && exportConfig.rowScopes.includes(ResourceCollectionExportRowScope.FULL_RESULT_SET)
470
+ && exportConfig.maximumExportedRows === undefined) {
471
+ throw createConfigurationError(`[${params.resourceIdentifier}] operation "${sourceOperationIdentifier}" offers a whole-set PDF export without collectionExport.maximumExportedRows; a PDF is built in memory from every row, so it must declare its ceiling`);
472
+ }
335
473
  const operationIdentifier = Resources_SharedUtils.buildGeneratedCollectionExportOperationIdentifier(sourceOperationIdentifier);
336
474
  if (knownOperationIdentifiers.has(operationIdentifier)) {
337
475
  throw createConfigurationError(`[${params.resourceIdentifier}] generated collection export operation "${operationIdentifier}" collides with an existing operation identifier`);
@@ -467,8 +605,19 @@ function createGeneratedFileRegenerateOperations(params) {
467
605
  }
468
606
  const knownOperationIdentifiers = new Set(params.operations.map((operation) => String(operation.operationIdentifier)));
469
607
  const responseDto = z.object({
470
- file: SingleFileValueSchema,
471
- resource: generatedFileDiscoverySchema,
608
+ /*
609
+ * A FILE value, marked as one (`z_file()`), not the bare `SingleFileValueSchema` shape. The shape alone is a plain
610
+ * `{ fileId, updatedAt }` object, so every label walk read it as a nested object of two fields: the application
611
+ * labelling planner planned `fields.file.fileId` and `fields.file.updatedAt` for every resource carrying a generated
612
+ * PDF, words no screen reads (#1959). Marked, it classifies as `FieldSchemaType.FILE` like the field it was
613
+ * regenerated from, and is labelled — and displayed — as one file. Generated files are PDFs (`generation` pins that
614
+ * mime type on the source field), so the response says the same; the `generation` block itself names one template
615
+ * and cannot describe a DTO shared by every generated field of the resource.
616
+ */
617
+ file: z_file({ allowedMimeTypes: 'PDF' }).describe('The newly generated file.'),
618
+ // The record is this resource's own, so its fields are described by its specification (#1625).
619
+ resource: markEmbeddedResourceSchema(generatedFileDiscoverySchema, String(params.resourceIdentifier))
620
+ .describe('The record after the regenerated file was stored on it.'),
472
621
  });
473
622
  return generatedFields.map(({ fieldName }) => {
474
623
  const operationIdentifier = Resources_SharedUtils.buildGeneratedFileRegenerateOperationIdentifier(fieldName);
@@ -1262,16 +1411,53 @@ function processUserNotifications(userNotifications, resourceIdentifier, operati
1262
1411
  identifierParts.push(notification.level);
1263
1412
  }
1264
1413
  const autoGeneratedIdentifier = identifierParts.join("_");
1265
- return {
1414
+ const processed = {
1266
1415
  ...notification,
1267
1416
  identifier: autoGeneratedIdentifier,
1268
1417
  primaryScope: resourcePrimaryScope
1269
1418
  };
1419
+ assertUserNotificationDeclarationIsDeliverable(processed, resourceIdentifier, operationIdentifier);
1420
+ return processed;
1270
1421
  });
1271
1422
  }
1423
+ /**
1424
+ * Refuse a declared user notification the dispatcher could never deliver (#1874).
1425
+ *
1426
+ * `UserNotificationDefinitionSchema` states what is deliverable — a channel the dispatcher has an arm for, and a
1427
+ * `userRoles` filter only on a target that reads it (#495) — but no build step ever parsed a declaration against it,
1428
+ * so both rules held only in the type system and a test. A notification on an unknown channel (`'slack'`) was
1429
+ * accepted and every dispatch sent nothing, visible only at debug level. Parsing here makes the same rule hold for
1430
+ * every configuration, typed or not, at the moment it is built — the way the factory already refuses a filter,
1431
+ * sort or search field that names nothing.
1432
+ */
1433
+ function assertUserNotificationDeclarationIsDeliverable(notification, resourceIdentifier, operationIdentifier) {
1434
+ const parsed = UserNotificationDefinitionSchema.safeParse(notification);
1435
+ if (parsed.success)
1436
+ return;
1437
+ const declared = notification;
1438
+ const problems = parsed.error.issues.map((issue) => `${issue.path.join('.') || '(notification)'}: ${issue.message}`).join('; ');
1439
+ // A channel or target outside its vocabulary fails every member of the channel union, and Zod reports that as one
1440
+ // path-less "Invalid input" — so those two are named from the value itself, with the members that would be valid.
1441
+ const channelIsKnown = Object.values(CoreUserNotificationChannel).includes(declared.channel);
1442
+ const targetIsKnown = Object.values(CoreUserNotificationTarget).includes(declared.target);
1443
+ const reason = !channelIsKnown
1444
+ ? `no delivery exists for channel '${String(declared.channel)}'. A channel must be one of ${quoteMembers(CoreUserNotificationChannel)}`
1445
+ : !targetIsKnown
1446
+ ? `'${String(declared.target)}' is not a notification target. A target must be one of ${quoteMembers(CoreUserNotificationTarget)}`
1447
+ : problems;
1448
+ throw createConfigurationError(`Operation '${resourceIdentifier}_${operationIdentifier}' declares a user notification (target '${String(declared.target)}', channel '${String(declared.channel)}') that cannot be delivered: ${reason}.`);
1449
+ }
1450
+ /** `'a', 'b', 'c'` — the members of a closed vocabulary, as a refusal names them. */
1451
+ function quoteMembers(vocabulary) {
1452
+ return Object.values(vocabulary).map((member) => `'${member}'`).join(', ');
1453
+ }
1272
1454
  /**
1273
1455
  * Processes M2M notifications by auto-generating identifiers
1274
1456
  * Format: ${resourceIdentifier}_${operationIdentifier}_${channel}
1457
+ *
1458
+ * Each declaration is parsed against `M2MNotificationDefinitionSchema` and an undeliverable channel is refused
1459
+ * here, when the configuration is built. It used to be accepted and to throw "not implemented" at dispatch — after
1460
+ * the write, where the throw also skipped every later M2M notification of the same operation.
1275
1461
  */
1276
1462
  function processM2MNotifications(m2mNotifications, resourceIdentifier, operationIdentifier) {
1277
1463
  return m2mNotifications.map(notification => {
@@ -1281,10 +1467,17 @@ function processM2MNotifications(m2mNotifications, resourceIdentifier, operation
1281
1467
  operationIdentifier,
1282
1468
  notification.channel
1283
1469
  ].join("_");
1284
- return {
1470
+ const processed = {
1285
1471
  ...notification,
1286
1472
  identifier: autoGeneratedIdentifier
1287
1473
  };
1474
+ const parsed = M2MNotificationDefinitionSchema.safeParse(processed);
1475
+ if (!parsed.success) {
1476
+ throw createConfigurationError(`Operation '${resourceIdentifier}_${operationIdentifier}' declares an M2M notification on channel '${String(notification.channel)}' that cannot be delivered: `
1477
+ + `${parsed.error.issues.map((issue) => `${issue.path.join('.') || '(notification)'}: ${issue.message}`).join('; ')}. `
1478
+ + `A channel must be one of ${quoteMembers(CoreM2MNotificationChannel)}.`);
1479
+ }
1480
+ return processed;
1288
1481
  });
1289
1482
  }
1290
1483
  // --------------------------------
@@ -1590,7 +1783,10 @@ export function createResourceConfiguration_Initialization(params) {
1590
1783
  // lane", which is true of almost every resource — a default here would make every resource claim
1591
1784
  // to be one. The bindings are validated at boot, not here: this factory has the declaration but
1592
1785
  // not the registry, and a name resolves against the resource's own schema and operations.
1593
- subjectErasureLane, transpositionPolicy, retentionPolicy, dataSubjectPolicy, portabilityPolicy, persistenceAdapter, persistenceAdapterIsolation, httpApiBinding, introspectionBinding, coreOperations, customOperation, operationsConfiguration, } = params;
1786
+ subjectErasureLane, transpositionPolicy, retentionPolicy, dataSubjectPolicy, retentionBinding: authoredRetentionBinding, portabilityPolicy,
1787
+ // #1598: `true` makes every row of this resource a CASE a model call can be attributed to. No default
1788
+ // beyond `false`: a case is a product decision, and an unset flag means the resource is not one.
1789
+ workUnit = false, persistenceAdapter, persistenceAdapterIsolation, httpApiBinding, introspectionBinding, coreOperations, customOperation, operationsConfiguration, } = params;
1594
1790
  /**
1595
1791
  * HTTP_API ↔ binding coherence — enforced at AUTHORING, both directions, because each half
1596
1792
  * alone is a contradiction the backend could only discover later and worse:
@@ -1699,7 +1895,13 @@ export function createResourceConfiguration_Initialization(params) {
1699
1895
  catch (error) {
1700
1896
  refuse(describeCaughtError(error));
1701
1897
  }
1898
+ // #1679 / #1690 — whether the binding may open writes is the declaration's own coherence (an INBOUND pipeline
1899
+ // refuses them, an OUTBOUND one requires them), checked above by `assertExternalDataPipelineDeclarationCoherence`.
1702
1900
  const shape = getZodObjectShape(mainSchema);
1901
+ if (declaration.direction === ExternalDataPipelineDirection.OUTBOUND) {
1902
+ validateExternalDataOutboundDeclarationAgainstSchema(declaration, shape, params.externalDataPipeline, refuse);
1903
+ return declaration;
1904
+ }
1703
1905
  const requireMappedTarget = (fieldName, context) => {
1704
1906
  const fieldSchema = shape[fieldName];
1705
1907
  if (!fieldSchema)
@@ -1759,9 +1961,38 @@ export function createResourceConfiguration_Initialization(params) {
1759
1961
  refuse(`${label}: '${partitionField}' must be optional or nullable. A row whose remote partition field is unset is SHARED — it belongs to every caller and to no unit — and this stamp lands null on it, so a required target rejects exactly the rows every caller is entitled to see.`);
1760
1962
  }
1761
1963
  }
1964
+ /*
1965
+ * #1723 — a BIDIRECTIONAL pipeline's fields each have an OWNER, and the ownership rules follow it: a REMOTE field is
1966
+ * the system of record's (excluded from caller writes, exactly as on an INBOUND pipeline); a LOCAL or BOTH field is
1967
+ * the application's too, so callers must be able to write it — excluding it from both create and update would make
1968
+ * the pipeline send a value nobody decided, the OUTBOUND rule.
1969
+ */
1970
+ const requireSentTarget = (fieldName, context) => {
1971
+ const fieldSchema = shape[fieldName];
1972
+ if (!fieldSchema)
1973
+ refuse(`${context}: local field '${fieldName}' does not exist on mainSchema.`);
1974
+ if (isExcludedFromCreate(fieldSchema) && isExcludedFromUpdate(fieldSchema)) {
1975
+ refuse(`${context}: '${fieldName}' is sent to the system of record (owner LOCAL or BOTH) and is declared .excludeFromCreate() and `
1976
+ + '.excludeFromUpdate(), so no caller can ever set it and the pipeline would send a value nobody decided. Let callers write it, or declare it owner: REMOTE.');
1977
+ }
1978
+ return fieldSchema;
1979
+ };
1980
+ if (declaration.direction === ExternalDataPipelineDirection.BIDIRECTIONAL) {
1981
+ // Rows born locally have no remote key until their create is sent, and "no key" must stay out of the unique index
1982
+ // on every store: absent, never null (MongoDB indexes an explicit null) — the OUTBOUND rule (#2039 review).
1983
+ if (keyFieldSchema.safeParse(null).success) {
1984
+ refuse(`remoteKeyLocalField: '${declaration.remoteKeyLocalField}' accepts null. Declare it .optional(), not .nullable(): its unique index ignores a row with no key only while "no key" is ABSENT.`);
1985
+ }
1986
+ if (declaration.population === ExternalDataDestinationPopulation.OPEN && unwrapSchema(keyFieldSchema) === keyFieldSchema) {
1987
+ refuse(`remoteKeyLocalField: '${declaration.remoteKeyLocalField}' must be optional — population OPEN lets rows be born here, and such a row has no remote key until its create is sent.`);
1988
+ }
1989
+ }
1762
1990
  for (const entry of declaration.mapping) {
1763
- const targetSchema = requireMappedTarget(entry.localField, `mapping('${entry.localField}')`);
1764
- if (entry.kind === ExternalDataMappingEntryKind.REMOTE_FIELD) {
1991
+ const owner = resolveExternalDataFieldOwner(entry);
1992
+ const targetSchema = owner === ExternalDataFieldOwner.REMOTE
1993
+ ? requireMappedTarget(entry.localField, `mapping('${entry.localField}')`)
1994
+ : requireSentTarget(entry.localField, `mapping('${entry.localField}')`);
1995
+ if (entry.kind === ExternalDataMappingEntryKind.REMOTE_FIELD && owner !== ExternalDataFieldOwner.LOCAL) {
1765
1996
  if (!entry.required && unwrapSchema(targetSchema) === targetSchema) {
1766
1997
  refuse(`mapping('${entry.localField}'): a non-required remote field can be ABSENT on a row, and absence lands as null — the target must be optional/nullable/defaulted, or declare required: true (absent rows are then rejected and reported per row).`);
1767
1998
  }
@@ -1780,6 +2011,31 @@ export function createResourceConfiguration_Initialization(params) {
1780
2011
  entry.coercion = ExternalDataFieldCoercion.ODOO_FALSE_AS_NULL;
1781
2012
  }
1782
2013
  }
2014
+ /*
2015
+ * #1684 — a REMOTE_REFERENCE writes a LOCAL foreign key, resolved after the load.
2016
+ *
2017
+ * STRING, because the value is a local row id (a pipeline target) or a synthesized key (a virtual
2018
+ * target), and both are strings. ABSENCE-CAPABLE, because an empty remote reference and an unresolved
2019
+ * one both leave it empty — a required target would make every row whose parent is not loaded yet
2020
+ * unwritable. The relationship half (the field IS a declared foreign key to the target) is checked
2021
+ * below, once relationships are compiled; whether the target is a pipeline destination or a virtual
2022
+ * resource on the same system of record needs the TARGET's configuration, which only the resources
2023
+ * registry holds, so it is refused at startup.
2024
+ *
2025
+ * The value shape defaults from the dialect HERE, like the Odoo false→null coercion above: this is the
2026
+ * one place both the dialect and the author's silence are known, and the runtime reads only the
2027
+ * resolved value.
2028
+ */
2029
+ if (entry.kind === ExternalDataMappingEntryKind.REMOTE_REFERENCE) {
2030
+ if (!(unwrapSchema(targetSchema) instanceof z.ZodString)) {
2031
+ refuse(`mapping('${entry.localField}'): a REMOTE_REFERENCE writes a local foreign key, so its target must be a STRING field.`);
2032
+ }
2033
+ if (unwrapSchema(targetSchema) === targetSchema) {
2034
+ refuse(`mapping('${entry.localField}'): a REMOTE_REFERENCE leaves its foreign key EMPTY while the reference is empty or its target is not loaded yet, so the field must be optional or nullable.`);
2035
+ }
2036
+ entry.valueShape = resolveExternalDataRemoteReferenceValueShape(entry, declaration.binding.dialect);
2037
+ }
2038
+ validateExternalDataExpressionAgainstTarget(entry, targetSchema, declaration.binding.dialect, refuse);
1783
2039
  }
1784
2040
  if (declaration.population === ExternalDataDestinationPopulation.CLOSED) {
1785
2041
  // Enumerate by the operation's EFFECTIVE semantics, never by its identifier: a CORE operation
@@ -1960,6 +2216,34 @@ export function createResourceConfiguration_Initialization(params) {
1960
2216
  }
1961
2217
  }
1962
2218
  // ========================================
2219
+ // HTTP_API × WRITES — what a writable read-through resource must declare (#1679)
2220
+ // ========================================
2221
+ //
2222
+ // Everything decidable from this one file: the verbs the binding opens against the operations that
2223
+ // perform them, no bulk write, INLINE only, no `Idempotency-Key: accepted`. (The erasure-stance rule
2224
+ // that used to sit here is the #2010 check just above, which covers reads as well.) The rules and their reasons live on
2225
+ // `assertHttpApiWriteDeclarationCoherence`. What needs the saas configuration (the instance's
2226
+ // partition field) or the engine's dialect registry (whether the dialect can write at all) is
2227
+ // checked at boot registration instead.
2228
+ if (resolvedHttpApiBinding !== undefined) {
2229
+ // #2010: a read-through resource's fields ARE the remote row's, so personal-data categories on them contradict a
2230
+ // NO_SUBJECT_DATA stance whether or not the binding writes. The rule and its remedy live on the util.
2231
+ const personalFields = personalFieldsContradictingNoSubjectDataStance({ stance: resolvedHttpApiBinding.erasure.stance, mainSchema });
2232
+ if (personalFields.length > 0) {
2233
+ throw createConfigurationError(`[${resourceIdentifier}] invalid httpApiBinding erasure stance: ${describeNoSubjectDataStanceContradiction({ system: resolvedHttpApiBinding.system, personalFields })}`);
2234
+ }
2235
+ try {
2236
+ assertHttpApiWriteDeclarationCoherence({
2237
+ binding: resolvedHttpApiBinding,
2238
+ operations: collectHttpApiWriteOperationFacts(coreOperations, operationsConfiguration),
2239
+ mainSchema,
2240
+ });
2241
+ }
2242
+ catch (error) {
2243
+ throw createConfigurationError(`[${resourceIdentifier}] invalid httpApiBinding write declaration: ${describeCaughtError(error)}`);
2244
+ }
2245
+ }
2246
+ // ========================================
1963
2247
  // EXTERNAL-DATA PIPELINE × PRIMARY SCOPE — the destination is ORGANIZATIONS-owned, and the ENGINE
1964
2248
  // supplies the tenant
1965
2249
  // ========================================
@@ -1996,6 +2280,20 @@ export function createResourceConfiguration_Initialization(params) {
1996
2280
  // `application-creation-directive.md` sets for a refusal. None of them asks anyone to decide
1997
2281
  // anything: each names the one shape that works.
1998
2282
  if (externalDataPipeline !== undefined) {
2283
+ // #2010: the fields a pipeline copies are what its source holds, so personal-data categories on them contradict
2284
+ // a NO_SUBJECT_DATA stance on its binding. A CONSTANT entry reads nothing from the source; an unmapped field is
2285
+ // the application's own. The same fields the privacy notice's source statement counts.
2286
+ const copiedFields = new Set(externalDataPipeline.mapping
2287
+ .filter((entry) => entry.kind !== ExternalDataMappingEntryKind.CONSTANT)
2288
+ .map((entry) => entry.localField));
2289
+ const copiedPersonalFields = personalFieldsContradictingNoSubjectDataStance({
2290
+ stance: externalDataPipeline.binding.erasure.stance,
2291
+ mainSchema,
2292
+ sourcedFields: copiedFields,
2293
+ });
2294
+ if (copiedPersonalFields.length > 0) {
2295
+ throw createConfigurationError(`[${resourceIdentifier}] invalid externalDataPipeline erasure stance: ${describeNoSubjectDataStanceContradiction({ system: externalDataPipeline.binding.system, personalFields: copiedPersonalFields })}`);
2296
+ }
1999
2297
  const pipelineDestinationRefusal = (reason) => {
2000
2298
  throw createConfigurationError(`[${resourceIdentifier}] invalid externalDataPipeline declaration: ${reason}
2001
2299
  `
@@ -2093,6 +2391,32 @@ export function createResourceConfiguration_Initialization(params) {
2093
2391
  * create-shaped custom operations, and the admission of a declared caller CREATE. Those pins live
2094
2392
  * in `external-data-pipeline-coherence.test.ts` and still pass.
2095
2393
  */
2394
+ /*
2395
+ * (g) #1684 — every REMOTE_REFERENCE writes the foreign key of a DECLARED relationship to its target.
2396
+ *
2397
+ * The relationship is what makes the written value a foreign key to the rest of the framework — a
2398
+ * picker, a nested read, a cascade — rather than a string that happens to hold a row id. So a reference
2399
+ * whose local field is not the `foreignKeyField` of a relationship between this resource and the target
2400
+ * would write a value nothing treats as a link: refused. A self-reference (Odoo `res.partner.parent_id`)
2401
+ * is a relationship whose two ends are this resource.
2402
+ *
2403
+ * Checked here, where relationships are compiled; the target's own kind (pipeline destination or virtual
2404
+ * resource on the same system of record) and the orphan-cascade acknowledgement need the TARGET's
2405
+ * configuration and are refused at startup by the resources registry.
2406
+ */
2407
+ for (const entry of externalDataPipeline.mapping) {
2408
+ if (entry.kind !== ExternalDataMappingEntryKind.REMOTE_REFERENCE)
2409
+ continue;
2410
+ const declaresEdge = relevantRelationships.some((relationship) => relationship.foreignKeyField === entry.localField
2411
+ && (relationship.resourceType1 === entry.targetResourceType || relationship.resourceType2 === entry.targetResourceType)
2412
+ && (relationship.resourceType1 === resourceIdentifier || relationship.resourceType2 === resourceIdentifier));
2413
+ if (!declaresEdge) {
2414
+ throw createConfigurationError(`[${resourceIdentifier}] invalid externalDataPipeline declaration: mapping('${entry.localField}') is a REMOTE_REFERENCE to `
2415
+ + `'${entry.targetResourceType}', and no relationship between '${String(resourceIdentifier)}' and '${entry.targetResourceType}' `
2416
+ + `names '${entry.localField}' as its foreignKeyField. Declare the relationship (a self-reference is a relationship whose two `
2417
+ + 'ends are this resource) so the resolved value is a foreign key the rest of the framework follows, not a bare id.');
2418
+ }
2419
+ }
2096
2420
  }
2097
2421
  // ========================================
2098
2422
  // isAnonymizable VALIDATION & ENRICHMENT (W7.3a)
@@ -2489,6 +2813,153 @@ export function createResourceConfiguration_Initialization(params) {
2489
2813
  seeRetained: ResourceSystemAccessMode.ALLOWED,
2490
2814
  };
2491
2815
  }
2816
+ // ========================================
2817
+ // retentionBinding VALIDATION & ENRICHMENT (#1613 — how long a row is kept)
2818
+ // ========================================
2819
+ //
2820
+ // A separate axis from `retentionPolicy` above: that one is what an ERASURE does to a row, this one
2821
+ // is how long the row lives. Every refusal here is about the binding being UNENFORCEABLE as written —
2822
+ // a clock that reads a field the row does not have, or two retention authorities on one row — and
2823
+ // each names the exact fix, because the alternative is a period the application publishes and the
2824
+ // sweep silently cannot honour.
2825
+ //
2826
+ // assurance-control: WILDO.PRIVACY.STORAGE_LIMITATION — a declared retention class is refused at
2827
+ // configuration build unless the sweep can actually compute when each row expires.
2828
+ // A tenant's rows never expire by `.ttl()` (#1634). MongoDB deletes a TTL row itself, with no application code
2829
+ // running, so no legal hold, cascade or file release could ever reach it — and a hold on an organization claims
2830
+ // to suspend EVERY deletion of that organization's data. `.ttl()` is for application-scoped framework plumbing
2831
+ // (job executions, job payloads); a tenant resource binds a retention class, whose sweep asks the hold.
2832
+ if (resourcePrimaryScope === ResourcePrimaryScope.ORGANIZATIONS) {
2833
+ const tenantTtlFields = collectRowTtlPolicies(effectiveMainSchema).map((policy) => policy.fieldName);
2834
+ if (tenantTtlFields.length > 0) {
2835
+ throw createConfigurationError(`[${resourceIdentifier}] is scoped to an organization and declares .ttl() on [${tenantTtlFields.join(', ')}]. ` +
2836
+ `A tenant's rows are never expired by the database's own TTL, which no legal hold can suspend: bind a ` +
2837
+ `retentionBinding instead (its sweep deletes through the service layer and skips held rows).`);
2838
+ }
2839
+ }
2840
+ let retentionBinding;
2841
+ if (authoredRetentionBinding !== undefined) {
2842
+ const parsedBinding = ResourceRetentionBindingSchema.safeParse(authoredRetentionBinding);
2843
+ if (!parsedBinding.success) {
2844
+ throw createConfigurationError(`[${resourceIdentifier}] retentionBinding is invalid: ${parsedBinding.error.issues.map((issue) => `${issue.path.join('.') || '(root)'}: ${issue.message}`).join('; ')}.`);
2845
+ }
2846
+ retentionBinding = parsedBinding.data;
2847
+ if (!isZodObject(effectiveMainSchema)) {
2848
+ throw createConfigurationError(`[${resourceIdentifier}] retentionBinding requires a ZodObject mainSchema: the retention clock is a field of the row.`);
2849
+ }
2850
+ const bindingShape = getZodObjectShape(effectiveMainSchema);
2851
+ // One row, one retention authority. `.ttl()` expires the row by a fixed number of seconds, and on
2852
+ // MongoDB natively with no application code running — so no cascade, file release or hold could
2853
+ // ever run for it. Two authorities on one row also means two answers to "when does this go".
2854
+ const ttlFields = collectRowTtlPolicies(effectiveMainSchema).map((policy) => policy.fieldName);
2855
+ if (ttlFields.length > 0) {
2856
+ throw createConfigurationError(`[${resourceIdentifier}] declares BOTH retentionBinding (${retentionBinding.retentionClass}) and .ttl() on ` +
2857
+ `[${ttlFields.join(', ')}]. One row takes one retention authority: remove the .ttl() and let the class ` +
2858
+ `period apply (the retention sweep deletes through the service layer, so cascades, files and RAG chunks ` +
2859
+ `go with the row), or drop retentionBinding if this is framework plumbing that holds no business data.`);
2860
+ }
2861
+ const namesClosureField = retentionBinding.closureFieldName !== undefined;
2862
+ const isClosureEvent = retentionBinding.startPoint === RetentionStartPoint.CLOSURE_EVENT;
2863
+ if (isClosureEvent !== namesClosureField) {
2864
+ throw createConfigurationError(isClosureEvent
2865
+ ? `[${resourceIdentifier}] retentionBinding.startPoint CLOSURE_EVENT requires closureFieldName: the date field ` +
2866
+ `whose value is the closure instant. While it is null the row never expires.`
2867
+ : `[${resourceIdentifier}] retentionBinding.closureFieldName is only meaningful with startPoint CLOSURE_EVENT ` +
2868
+ `(got ${retentionBinding.startPoint}). Remove it, or use CLOSURE_EVENT.`);
2869
+ }
2870
+ if (retentionBinding.startPoint === RetentionStartPoint.SCOPE_DELETED) {
2871
+ // The clock is the ORGANIZATION's deletion, so the row must name an organization.
2872
+ if (!bindingShape.organizationId) {
2873
+ throw createConfigurationError(`[${resourceIdentifier}] retentionBinding.startPoint SCOPE_DELETED counts from the row's organization being ` +
2874
+ `marked for deletion, but this resource has no organizationId field. Use CREATED, LAST_UPDATED or CLOSURE_EVENT.`);
2875
+ }
2876
+ if (bindingShape[RETENTION_STARTED_AT_FIELD_NAME]) {
2877
+ throw createConfigurationError(`[${resourceIdentifier}] retentionBinding SCOPE_DELETED injects a reserved '${RETENTION_STARTED_AT_FIELD_NAME}' ` +
2878
+ `field, but this resource already declares one. Rename that field (the retention clock is factory-injected).`);
2879
+ }
2880
+ // The ONE stored retention instant. Nothing on the row records when its organization was marked,
2881
+ // and the organization row itself is destroyed by the purge, so the purge stamps it here first.
2882
+ // Server-owned in every direction: no caller can author it on create or update, it never leaves the
2883
+ // backend, and it is indexed because the sweep queries it on every run.
2884
+ effectiveMainSchema = effectiveMainSchema.extend({
2885
+ [RETENTION_STARTED_AT_FIELD_NAME]: z.date()
2886
+ .optional()
2887
+ .isDBIndexed()
2888
+ .excludeFromCreate()
2889
+ .excludeFromUpdate()
2890
+ .isBackendOnly()
2891
+ .isHidden(),
2892
+ });
2893
+ }
2894
+ else {
2895
+ // Every other start point READS an instant the row already carries, so that field must exist,
2896
+ // be a date, and — for the closure field the author chose — be indexed (the sweep queries it on
2897
+ // every run). `createdAt`/`updatedAt` are indexed by convention and maintained by both adapters.
2898
+ const startFieldName = resolveRetentionStartFieldName(retentionBinding);
2899
+ const startFieldSchema = bindingShape[startFieldName];
2900
+ if (!startFieldSchema || getZodType(unwrapSchema(startFieldSchema)) !== 'date') {
2901
+ throw createConfigurationError(`[${resourceIdentifier}] retentionBinding.startPoint ${retentionBinding.startPoint} reads the row's ` +
2902
+ `'${startFieldName}', which must be a date field of this resource${startFieldSchema ? ' (it is not a date)' : ' (it does not exist)'}.` +
2903
+ (isClosureEvent ? ' Name a z.date() field that is set when the record closes.' : ` Declare ${startFieldName}: z.date() on the schema.`));
2904
+ }
2905
+ if (isClosureEvent && !isDBIndexed(startFieldSchema)) {
2906
+ throw createConfigurationError(`[${resourceIdentifier}] retentionBinding closure field '${startFieldName}' must be .isDBIndexed(): the ` +
2907
+ `retention sweep selects expired rows by it on every run, and an unindexed scan grows with the table.`);
2908
+ }
2909
+ }
2910
+ }
2911
+ // ========================================
2912
+ // retentionPolicy.statutoryRetention (#1635 — a statute keeps the row through an erasure)
2913
+ // ========================================
2914
+ //
2915
+ // Read AFTER both axes above are resolved, because every rule here is a relation BETWEEN them: the
2916
+ // ground lives on the erasure treatment (`retentionPolicy`), and the period it lasts for lives on the
2917
+ // binding (`retentionBinding`). Each refusal names the declaration that would make it true.
2918
+ //
2919
+ // assurance-control: WILDO.PRIVACY.STORAGE_LIMITATION — a row kept through an erasure on a statutory ground
2920
+ // must be bound to the period that ground lasts for, and to a start point whose clock a restricted row can reach.
2921
+ const statutoryRetention = retentionPolicy?.mode ? retentionPolicy.statutoryRetention : undefined;
2922
+ if (retentionBinding?.retentionClass === DataRetentionClass.BUSINESS_RECORDS && !statutoryRetention) {
2923
+ // Invariant 1 of #1635. A BUSINESS_RECORDS row is kept because the law says so; without the ground an
2924
+ // erasure would treat it as the author's choice (or, with no retentionPolicy at all, reach it through the
2925
+ // delete cascade's default) and could not tell the data subject why it was kept or until when.
2926
+ throw createConfigurationError(`[${resourceIdentifier}] binds retention class BUSINESS_RECORDS, whose period is a statutory minimum, but declares no ` +
2927
+ `retentionPolicy.statutoryRetention. Declare retentionPolicy: { mode, statutoryRetention: { ground: ` +
2928
+ `StatutoryRetentionGround.LEGAL_OBLIGATION, rationale: '<the statute>' } } (and a dataSubjectPolicy), so a subject ` +
2929
+ `erasure RESTRICTS these rows until their period ends instead of deleting records the law requires kept. If no ` +
2930
+ `statute applies, bind RESOURCE_DATA instead.`);
2931
+ }
2932
+ if (statutoryRetention) {
2933
+ if (!Object.values(StatutoryRetentionGround).includes(statutoryRetention.ground)) {
2934
+ throw createConfigurationError(`[${resourceIdentifier}] retentionPolicy.statutoryRetention.ground '${String(statutoryRetention.ground)}' is not a ` +
2935
+ `StatutoryRetentionGround (${Object.values(StatutoryRetentionGround).join(', ')}).`);
2936
+ }
2937
+ if (typeof statutoryRetention.rationale !== 'string' || statutoryRetention.rationale.trim().length === 0) {
2938
+ throw createConfigurationError(`[${resourceIdentifier}] retentionPolicy.statutoryRetention.rationale is empty. Name the statute that requires these ` +
2939
+ `rows kept — an operator answering a data subject has to be able to say which law, and a ground with no law named ` +
2940
+ `is a claim nobody can check.`);
2941
+ }
2942
+ if (retentionBinding?.retentionClass !== DataRetentionClass.BUSINESS_RECORDS) {
2943
+ // The PERIOD the ground lasts for is the BUSINESS_RECORDS class period: without that binding there is no end,
2944
+ // and a statutory ground with no end is a standing retention nobody decided.
2945
+ throw createConfigurationError(`[${resourceIdentifier}] declares retentionPolicy.statutoryRetention but ${retentionBinding ? `binds ${retentionBinding.retentionClass}` : 'declares no retentionBinding'}. ` +
2946
+ `A statutory ground lasts for the statutory period, which is dataRetention[BUSINESS_RECORDS]: bind ` +
2947
+ `retentionBinding: { retentionClass: DataRetentionClass.BUSINESS_RECORDS, startPoint: RetentionStartPoint.END_OF_CALENDAR_YEAR }.`);
2948
+ }
2949
+ if (retentionBinding.startPoint === RetentionStartPoint.CLOSURE_EVENT || retentionBinding.startPoint === RetentionStartPoint.LAST_UPDATED) {
2950
+ // Both clocks are ones a RESTRICTED row cannot keep honestly. A restricted row is frozen — every ordinary write is
2951
+ // refused — so a CLOSURE_EVENT row that is still open when its subject is erased can never be closed, and would be
2952
+ // kept forever. And the restriction is itself a write, which moves `updatedAt`, so a LAST_UPDATED clock would be
2953
+ // RESTARTED by the very erasure that reports when it ends. Neither is how a statute counts: HGB §257(5) and
2954
+ // AO §147(4) count from the end of the calendar year.
2955
+ throw createConfigurationError(`[${resourceIdentifier}] declares retentionPolicy.statutoryRetention with retentionBinding.startPoint ` +
2956
+ `${retentionBinding.startPoint}, a clock a restricted row cannot keep: ` +
2957
+ (retentionBinding.startPoint === RetentionStartPoint.CLOSURE_EVENT
2958
+ ? `an erasure freezes the row, so a record still open when its subject is erased could never be closed and would be kept forever. `
2959
+ : `the restriction write moves updatedAt, so the erasure would restart the period it reports. `) +
2960
+ `Use END_OF_CALENDAR_YEAR (how commercial and tax statutes count), CREATED, or SCOPE_DELETED.`);
2961
+ }
2962
+ }
2492
2963
  // ── dataSubjectPolicy: WHO the row is, and whose session an erasure ends ──────────────────────
2493
2964
  //
2494
2965
  // Placed AFTER the retention operation contract on purpose: a config can be wrong in several ways
@@ -2643,13 +3114,19 @@ export function createResourceConfiguration_Initialization(params) {
2643
3114
  * and a row of a partition no operator has assigned (E3). Declaring it required would make both
2644
3115
  * states illegal in a contract that serves them.
2645
3116
  *
2646
- * ## Both are excluded from CREATE and UPDATE
3117
+ * ## Neither can be changed, and only the unit can be NAMED — on a create (#1679)
3118
+ *
3119
+ * `organizationId` is excluded from CREATE and UPDATE, for the reason the pipeline lane states about
3120
+ * its own tenant stamp: a caller who could send it could hand rows to another organization, and one
3121
+ * who could update it could move them. The owner is the application's, never a caller's.
2647
3122
  *
2648
- * For the reason the pipeline lane states about its own tenant stamp: a caller who could send this
2649
- * field could hand rows to another organization, and one who could update it could move them.
2650
- * Writes are refused on an HTTP_API resource anyway, so this is the second lock rather than the
2651
- * first — and it is the one that keeps the fields out of the request DTOs, where they would read
2652
- * as something a client is invited to supply.
3123
+ * `organizationUnitId` is excluded from UPDATE for the same reason — a row's partition never moves —
3124
+ * and is ADMITTED on CREATE, because on a writable resource it is how a caller says which unit's
3125
+ * partition a new row belongs to. It is never sent to the remote system: the repository resolves the
3126
+ * unit to its assigned partition key, checks it against the caller's grant, and writes the PARTITION
3127
+ * field itself (#1679). A member confined to one unit need not send it at all; an organization-wide
3128
+ * caller, or a member of several units, must. On a resource with no CREATE operation the admission is
3129
+ * inert, since there is no create DTO for it to appear in.
2653
3130
  */
2654
3131
  if (persistenceAdapter === PersistenceAdapter.HTTP_API) {
2655
3132
  // EXPLICIT object check, for the reason the retention injection above records: `getZodObjectShape`
@@ -2724,8 +3201,9 @@ export function createResourceConfiguration_Initialization(params) {
2724
3201
  */
2725
3202
  [READ_THROUGH_ORGANIZATION_UNIT_FIELD_NAME]: z.string()
2726
3203
  .optional()
2727
- .excludeFromCreate()
2728
- .excludeFromUpdate(),
3204
+ .excludeFromUpdate()
3205
+ // Described here because no application authors this field (#1625): every read-through resource gets it.
3206
+ .describe('The organization unit that owns the part of the external system this record lives in. Absent for a record every unit shares, or one in a part no unit has been assigned. On a create it names the unit the new record goes to; it never changes afterwards.'),
2729
3207
  });
2730
3208
  }
2731
3209
  if (isZodObject(effectiveMainSchema)) {
@@ -2895,7 +3373,7 @@ export function createResourceConfiguration_Initialization(params) {
2895
3373
  // ── Dev-time guardrail: custom op borrowing a NON-object envelope verb ──
2896
3374
  // A custom operation that borrows DELETE / DELETE_MANY / COUNT via
2897
3375
  // `resourceOperationLike` inherits that verb's DEFAULT response envelope
2898
- // (`{ id, deletedAt? }` / `{ deletedIds, deletedCount }` / `{ count }`) as
3376
+ // (`{ id }` / `{ deletedIds, deletedCount }` / `{ count }`) as
2899
3377
  // its responseDto AND internalDto. That envelope is almost never what a
2900
3378
  // custom op actually returns, so at runtime the service output fails
2901
3379
  // `transformOutput`'s `internalDto.parse` → HTTP 500
@@ -3009,8 +3487,15 @@ export function createResourceConfiguration_Initialization(params) {
3009
3487
  // failure mode the flag exists to prevent.
3010
3488
  requiresStepUpAuthentication: variantParams.requiresStepUpAuthentication,
3011
3489
  // Forwarded for the same reason: the controller, the service tier and the frontend client all read it off the
3012
- // RUNTIME operation, so an unforwarded declaration would refuse every keyed request as undeclared.
3013
- idempotencyKey: variantParams.idempotencyKey,
3490
+ // RUNTIME operation, so an unforwarded declaration would refuse every keyed request as undeclared. On a
3491
+ // read-through WRITE it is DERIVED as REQUIRED (#1679): a remote write cannot be rolled back, so every retry
3492
+ // must replay the first outcome — see `resolveHttpApiWriteIdempotencyKeyRequirement`.
3493
+ idempotencyKey: resolveHttpApiWriteIdempotencyKeyRequirement(variantParams.idempotencyKey, persistenceAdapter === PersistenceAdapter.HTTP_API
3494
+ && resolveHttpApiWriteVerb(isCustomOperation ? (variantParams.resourceOperationLike ?? operation) : operation) !== undefined),
3495
+ // Forwarded for the same reason (#1985): `doOperation` asks the challenge off the RUNTIME operation, and the OpenAPI
3496
+ // projector documents the header from it. An unforwarded declaration would leave a public form unprotected while
3497
+ // its configuration says otherwise. A bulk twin inherits it with the rest of these fields.
3498
+ submissionChallenge: variantParams.submissionChallenge,
3014
3499
  admitsCrossTenantPlatformAdministration: variantParams.admitsCrossTenantPlatformAdministration,
3015
3500
  // Same forwarding obligation as its cross-tenant sibling: the authorizer reads this off the
3016
3501
  // RUNTIME operation, so dropping it here would silently re-close the admin surface.
@@ -3038,6 +3523,7 @@ export function createResourceConfiguration_Initialization(params) {
3038
3523
  // REVOKED partnership both admitting a share.)
3039
3524
  referenceConstraints: variantParams.referenceConstraints,
3040
3525
  };
3526
+ assertSubmissionChallengeDeclaration(String(operation), variantParams.variantType, variantParams.submissionChallenge);
3041
3527
  if (isUrlisableOperationVariantType(variantParams.variantType)) {
3042
3528
  const apiCallParams = variantParams;
3043
3529
  const isCallbackVariant = apiCallParams.variantType === ResourceOperationVariantType.API_CALL_WITH_CALLBACK;
@@ -3080,6 +3566,35 @@ export function createResourceConfiguration_Initialization(params) {
3080
3566
  throw createConfigurationError(`Operation '${operation}' cannot revoke tokens before a CREATE operation because no current resource state exists. `
3081
3567
  + 'Move token revocation to an operation that addresses an existing resource.');
3082
3568
  }
3569
+ /*
3570
+ * (After the token-state checks, so a declaration that breaks both is told about the token rule too.)
3571
+ *
3572
+ * A client-facing core UPDATE_MANY or DELETE_MANY is a route that can never succeed, so it is refused
3573
+ * (#1793).
3574
+ *
3575
+ * This loop builds it as a NON-bulk operation (`isBulkOperation: false` below) mounted on the
3576
+ * collection path, and only a bulk operation has its selector lifted out of the body — `_ids` by the
3577
+ * service's `doOperation`, `_match` by the controller. So no request shape can reach
3578
+ * `updateMany` / `deleteMany` with a target, and the route answers every call with
3579
+ * `service_resource_validation_failed`. Measured on a running stack against an escalation-policy
3580
+ * collection before its variant moved: `{}`, `{ _ids: [...] }`, a filter and a field patch were all
3581
+ * refused, while GET on the same collection answered 200.
3582
+ *
3583
+ * The two working doors are named in the message: INTERNAL_CALL keeps the operation as the service
3584
+ * capability retention scrubs and anonymous-ownership transfer call with an explicit target, and a
3585
+ * `haveBulkOperation: true` variant on UPDATE / DELETE (or a custom operation) is the client bulk door,
3586
+ * with its selector, its max-selection limit and its place in the bulk bar. Scoped to the CORE
3587
+ * identifiers: a custom operation that borrows `resourceOperationLike: UPDATE_MANY` has its own request
3588
+ * and implementation and is unaffected. CREATE_MANY's `{ data: row[] }` form works and is untouched.
3589
+ */
3590
+ if (!isCustomOperation
3591
+ && (operation === CoreResourceOperation.UPDATE_MANY || operation === CoreResourceOperation.DELETE_MANY)) {
3592
+ throw createConfigurationError(`Operation '${operation}' cannot be declared ${apiCallParams.variantType}: a client-facing core ${operation} is mounted `
3593
+ + 'as a non-bulk route, no selector ever reaches it, and it refuses every request. '
3594
+ + `Declare it ${ResourceOperationVariantType.INTERNAL_CALL} for a service-side capability, or give `
3595
+ + `${operation === CoreResourceOperation.UPDATE_MANY ? CoreResourceOperation.UPDATE : CoreResourceOperation.DELETE} `
3596
+ + 'a `haveBulkOperation: true` variant for a client bulk action.');
3597
+ }
3083
3598
  // Determine HTTP verb - for custom operations, use resourceOperationLike
3084
3599
  let httpVerb;
3085
3600
  if (isCustomOperation) {
@@ -3133,6 +3648,16 @@ export function createResourceConfiguration_Initialization(params) {
3133
3648
  || variantParams.resourceOperationLike === CoreResourceOperation.SEARCH;
3134
3649
  const isListLike = operation === CoreResourceOperation.LIST
3135
3650
  || variantParams.resourceOperationLike === CoreResourceOperation.LIST;
3651
+ if (isSearchLike || isListLike) {
3652
+ assertCollectionFieldsNameResourceFields({
3653
+ resourceIdentifier: String(resourceIdentifier),
3654
+ operationLabel: `operation "${String(operation)}"${apiCallParams.variantKey ? ` (variant "${apiCallParams.variantKey}")` : ''}`,
3655
+ schemaShape: getZodObjectShape(effectiveMainSchema),
3656
+ filterFields: variantParams.filterFields,
3657
+ sortFields: variantParams.sortFields,
3658
+ searchableFields: isSearchLike ? variantParams.searchableFields : undefined,
3659
+ });
3660
+ }
3136
3661
  if (isSearchLike) {
3137
3662
  const pageSize = variantParams.pageSize ?? 20;
3138
3663
  const isSearchable = variantParams.isSearchable !== false;
@@ -3141,12 +3666,9 @@ export function createResourceConfiguration_Initialization(params) {
3141
3666
  const rawFilterFields = variantParams.filterFields || {};
3142
3667
  const sortFields = variantParams.sortFields || [];
3143
3668
  const maxPaginatedResultPerPageLimit = variantParams.maxPaginatedResultPerPageLimit || DEFAULT_SEARCH_PAGE_CEILING;
3144
- const filterFields = {};
3145
- Object.entries(rawFilterFields).forEach(([key, value]) => {
3146
- if (typeof value !== 'function') {
3147
- filterFields[key] = value;
3148
- }
3149
- });
3669
+ // Every entry is a Zod type by now: `assertCollectionFieldsNameResourceFields` refused the
3670
+ // function-valued slot above.
3671
+ const filterFields = rawFilterFields;
3150
3672
  const searchQueryRequestSchema = createResourceSearchQueryRequestSchema({
3151
3673
  filterFields,
3152
3674
  allowedSortFields: sortFields,
@@ -3160,6 +3682,12 @@ export function createResourceConfiguration_Initialization(params) {
3160
3682
  validateArrayConstraints: true,
3161
3683
  maxResultsPerPageLimit: maxPaginatedResultPerPageLimit
3162
3684
  });
3685
+ // An author's `customResponseDto` wins here exactly as it does for every other operation
3686
+ // (`deriveResponseDto` above). This block used to overwrite it with the generated schema and
3687
+ // stamp `hasCustomResponseDto: false`, so a searchable variant silently lost the contract it
3688
+ // declared — found when inbound deliveries declared one to keep the raw payload out of a page
3689
+ // (#1596). A custom DTO must carry the same page ceiling as this variant.
3690
+ const customSearchResponseDto = variantParams.customResponseDto;
3163
3691
  Object.assign(apiCallOperationFields, {
3164
3692
  pageSize,
3165
3693
  isSearchable,
@@ -3169,8 +3697,8 @@ export function createResourceConfiguration_Initialization(params) {
3169
3697
  sortFields,
3170
3698
  maxPaginatedResultPerPageLimit,
3171
3699
  searchQueryRequestSchema,
3172
- responseDto: paginatedResponseSchema,
3173
- hasCustomResponseDto: false,
3700
+ responseDto: customSearchResponseDto ?? paginatedResponseSchema,
3701
+ hasCustomResponseDto: customSearchResponseDto !== undefined,
3174
3702
  });
3175
3703
  }
3176
3704
  if (isListLike) {
@@ -3315,6 +3843,8 @@ export function createResourceConfiguration_Initialization(params) {
3315
3843
  requiresStepUpAuthentication: defaultApiCallVariant.requiresStepUpAuthentication,
3316
3844
  // Inherited like step-up: an auto-variant projects the default variant's contract, header included.
3317
3845
  idempotencyKey: defaultApiCallVariant.idempotencyKey,
3846
+ // Inherited like the Idempotency-Key: a projection of a protected operation asks the same challenge (#1985).
3847
+ submissionChallenge: defaultApiCallVariant.submissionChallenge,
3318
3848
  admitsCrossTenantPlatformAdministration: defaultApiCallVariant.admitsCrossTenantPlatformAdministration,
3319
3849
  // Inherited for the same reason as the cross-tenant flag: an auto-variant is a PROJECTION of
3320
3850
  // the default operation and must make the same addressing claim, or it would refuse the very
@@ -3560,6 +4090,25 @@ export function createResourceConfiguration_Initialization(params) {
3560
4090
  `its transport group — a lone variant marked \`isDefault: false\` leaves the group with NO default.`);
3561
4091
  }
3562
4092
  }
4093
+ // ── RESOLVABILITY of the retention-class sweep's delete (#1613) ───────────
4094
+ //
4095
+ // The class sweep deletes expired rows through the SERVICE layer — so cascades, file release and RAG
4096
+ // chunk removal run — preferring a DELETE_MANY and falling back to per-row DELETE, exactly the
4097
+ // anonymous-session cleanup's disjunction. A binding with neither resolvable would boot green and then
4098
+ // fail the first sweep that found an expired row, which is a published period nothing can enforce.
4099
+ if (retentionBinding) {
4100
+ const deleteAlternatives = [CoreResourceOperation.DELETE_MANY, CoreResourceOperation.DELETE];
4101
+ if (!deleteAlternatives.some((alternative) => operations.some((candidate) => isServiceResolvableDefaultOperation(candidate, alternative)))) {
4102
+ const declaredVariants = operations
4103
+ .filter((candidate) => deleteAlternatives.includes(candidate.operationIdentifier))
4104
+ .map((candidate) => `${String(candidate.operationIdentifier)}/${candidate.variantType}${candidate.isOperationDefault ? ' (default)' : ''}`);
4105
+ throw createConfigurationError(`[${resourceIdentifier}] retentionBinding requires DELETE_MANY or DELETE to be SERVICE-RESOLVABLE: the retention ` +
4106
+ `sweep deletes expired rows through the service layer so cascades, files and RAG chunks go with them. ` +
4107
+ `Declared variants: [${declaredVariants.length > 0 ? declaredVariants.join(', ') : 'none'}]. Declare one as the ` +
4108
+ `default ${ResourceOperationVariantType.INTERNAL_CALL} variant (route-less and service-resolvable); ` +
4109
+ `REPOSITORY_ONLY is served by a different transport and does not resolve.`);
4110
+ }
4111
+ }
3563
4112
  // ── RESOLVABILITY half of the ANONYMIZABLE operation contract ───────────
3564
4113
  //
3565
4114
  // Same two-halves shape as retention above, for the other dynamic-loop capability. The presence
@@ -3625,11 +4174,14 @@ export function createResourceConfiguration_Initialization(params) {
3625
4174
  retentionPolicy: retentionPolicy?.mode ? retentionPolicy : undefined,
3626
4175
  // Paired with `retentionPolicy` by the guards above, so these two are present together or not at all.
3627
4176
  dataSubjectPolicy: retentionPolicy?.mode ? dataSubjectPolicy : undefined,
4177
+ // Validated and parsed above, so the resolved value is exactly the strict-parsed declaration.
4178
+ retentionBinding,
3628
4179
  // Normalize (mirror retentionPolicy): the resolved portabilityPolicy is present IFF the
3629
4180
  // resource actually declared a default. An absent `defaultProvenance` is a policy-shaped
3630
4181
  // opt-out, and shipping a truthy-but-empty object would make an Art. 20 export believe a
3631
4182
  // default exists and silently include fields nobody classified.
3632
4183
  portabilityPolicy: portabilityPolicy?.defaultProvenance ? portabilityPolicy : undefined,
4184
+ workUnit,
3633
4185
  operations: operations // Temporary - will be replaced
3634
4186
  };
3635
4187
  // Pre-compute all DTOs for each operation using buildAllOperationDtos
@@ -3637,6 +4189,27 @@ export function createResourceConfiguration_Initialization(params) {
3637
4189
  // If needed, the registry can be passed as a parameter to the factory function
3638
4190
  const resourceRegistry = new Map();
3639
4191
  const operationsWithDtos = operations.map(operation => ResourcesConfigOperationsDtosBuilderUtils.buildAllOperationDtos(operation, resourceConfig, resourceRegistry));
4192
+ // ── A closure clock is SERVER-OWNED (#1613 review F1) ─────────────────
4193
+ //
4194
+ // `CLOSURE_EVENT` deletes a row the declared period after its closure date. If ANY client-routed
4195
+ // operation's request can carry that date, a caller can backdate it and the next sweep deletes an OPEN
4196
+ // record — without DELETE permission and without the period passing. Checked HERE, against the FINAL
4197
+ // request DTOs, so it covers every shape uniformly: create, create_many, update, update_many and every
4198
+ // custom operation with its own request schema (a "close" operation taking the date is the same hole).
4199
+ // Route-less variants (INTERNAL_CALL, REPOSITORY_ONLY) are the owning code's own writes and pass; the
4200
+ // handlers that own the field declare it in `authoritativeFields`. `isNotEditable()` enforces nothing here.
4201
+ if (retentionBinding?.startPoint === RetentionStartPoint.CLOSURE_EVENT && retentionBinding.closureFieldName) {
4202
+ const closureFieldName = retentionBinding.closureFieldName;
4203
+ const clientRouted = new Set([ResourceOperationVariantType.API_CALL, ResourceOperationVariantType.API_CALL_WITH_CALLBACK]);
4204
+ const writers = operationsWithDtos.filter((operation) => clientRouted.has(operation.variantType) && requestSchemaCarriesField(operation.requestDto, closureFieldName));
4205
+ if (writers.length > 0) {
4206
+ throw createConfigurationError(`[${resourceIdentifier}] retentionBinding closure field '${closureFieldName}' is writable by a client-routed ` +
4207
+ `${[...new Set(writers.map((writer) => String(writer.operationIdentifier)))].join('/')}: a caller could backdate ` +
4208
+ `it and the retention sweep would delete an open record. Mark it .excludeFromCreate().excludeFromUpdate(), keep it ` +
4209
+ `out of any custom request schema, and set it in the owning handlers, declaring it in authoritativeFields so their ` +
4210
+ `write survives the re-parse.`);
4211
+ }
4212
+ }
3640
4213
  return {
3641
4214
  isDisabled: params.isDisabled ?? false,
3642
4215
  resourcePrimaryScope,
@@ -3665,12 +4238,219 @@ export function createResourceConfiguration_Initialization(params) {
3665
4238
  retentionPolicy: retentionPolicy?.mode ? retentionPolicy : undefined,
3666
4239
  // Paired with `retentionPolicy` by the guards above, so these two are present together or not at all.
3667
4240
  dataSubjectPolicy: retentionPolicy?.mode ? dataSubjectPolicy : undefined,
4241
+ // Validated and parsed above, so the resolved value is exactly the strict-parsed declaration.
4242
+ retentionBinding,
3668
4243
  // Normalize (mirror retentionPolicy): the resolved portabilityPolicy is present IFF the
3669
4244
  // resource actually declared a default. An absent `defaultProvenance` is a policy-shaped
3670
4245
  // opt-out, and shipping a truthy-but-empty object would make an Art. 20 export believe a
3671
4246
  // default exists and silently include fields nobody classified.
3672
4247
  portabilityPolicy: portabilityPolicy?.defaultProvenance ? portabilityPolicy : undefined,
4248
+ workUnit,
3673
4249
  operations: operationsWithDtos
3674
4250
  };
3675
4251
  }
4252
+ /**
4253
+ * Why a declared constant cannot be written to a local field, or `null` when it can (#1685). The field's own Zod type
4254
+ * decides: an enum takes only its members, a string / number / boolean field only that primitive. Any other field
4255
+ * type cannot be checked from here, and an expression writing an unchecked value is refused rather than trusted.
4256
+ */
4257
+ function describeExternalDataConstantMisfit(value, targetSchema) {
4258
+ const inner = unwrapSchema(targetSchema);
4259
+ if (inner instanceof z.ZodEnum) {
4260
+ const members = inner.options;
4261
+ return members.includes(value) ? null : `${JSON.stringify(value)} is not a member of the field's enum (${members.map((member) => JSON.stringify(member)).join(', ')})`;
4262
+ }
4263
+ if (inner instanceof z.ZodString)
4264
+ return typeof value === 'string' ? null : `${JSON.stringify(value)} is not a string`;
4265
+ if (inner instanceof z.ZodNumber)
4266
+ return typeof value === 'number' ? null : `${JSON.stringify(value)} is not a number`;
4267
+ if (inner instanceof z.ZodBoolean)
4268
+ return typeof value === 'boolean' ? null : `${JSON.stringify(value)} is not a boolean`;
4269
+ return `a declared value cannot be checked against this field's type (${getZodType(inner)})`;
4270
+ }
4271
+ /**
4272
+ * The destination-schema half of an OUTBOUND pipeline's coherence (#1690) — the arrows of the INBOUND rules reversed.
4273
+ *
4274
+ * - every SENT field (a mapping entry's `localField`) exists and is the application's own: a field declared
4275
+ * `.excludeFromCreate()` AND `.excludeFromUpdate()` is one no caller can ever set, so sending it would send a value
4276
+ * nobody decided. (Excluded from one of the two is fine — a field set once on create and never changed is common.)
4277
+ * - `remoteKeyLocalField` exists, is a STRING, ACCEPTS ABSENCE (a row is created locally before the system of record
4278
+ * has assigned it a key) and is excluded from create and update: the engine writes it, once, from the create's
4279
+ * answer, and a caller that could write it could point a local row at any remote record. No `.isBusinessKey()` or
4280
+ * `.isUnique()` is required: nothing upserts on it, and the engine never writes one key to two rows.
4281
+ * - `partitionUnitLocalField`, when declared, exists, is a STRING and accepts absence — the unit a row belongs to,
4282
+ * which decides the partition it is created in. A row with no unit is not sent on a partitioned instance.
4283
+ * - a REMOTE_REFERENCE's local foreign key is a STRING that accepts absence (it is the caller's link, possibly empty),
4284
+ * and its value shape is resolved from the dialect exactly as for an inbound entry, because the reverse translation
4285
+ * sends the target's key in that shape.
4286
+ * - `population` and `orphanPolicy` describe an INBOUND load and are refused when AUTHORED with anything but their
4287
+ * default. Both carry defaults, so the parsed declaration cannot tell a written value from an omitted one; the
4288
+ * authored object can. A value EQUAL to the default is let through, because a declaration that was parsed once
4289
+ * already (a configuration re-materialized from its own parsed pipeline) carries both, and it declares nothing an
4290
+ * inbound load would read differently.
4291
+ */
4292
+ function validateExternalDataOutboundDeclarationAgainstSchema(declaration, shape, authored, refuse) {
4293
+ const defaults = { population: ExternalDataDestinationPopulation.CLOSED, orphanPolicy: ExternalDataOrphanPolicy.REPORT };
4294
+ for (const field of ['population', 'orphanPolicy']) {
4295
+ if (authored[field] !== undefined && authored[field] !== defaults[field]) {
4296
+ refuse(`${field}: describes the rows an INBOUND pass loads, and an OUTBOUND pipeline loads none — it sends the destination's own rows. Remove it.`);
4297
+ }
4298
+ }
4299
+ const requireStringAcceptingAbsence = (fieldName, context) => {
4300
+ const fieldSchema = shape[fieldName];
4301
+ if (!fieldSchema)
4302
+ refuse(`${context}: local field '${fieldName}' does not exist on mainSchema.`);
4303
+ if (!(unwrapSchema(fieldSchema) instanceof z.ZodString))
4304
+ refuse(`${context}: '${fieldName}' must be a STRING field.`);
4305
+ if (unwrapSchema(fieldSchema) === fieldSchema)
4306
+ refuse(`${context}: '${fieldName}' must be optional or nullable — a row can exist locally without it.`);
4307
+ return fieldSchema;
4308
+ };
4309
+ const keySchema = requireStringAcceptingAbsence(declaration.remoteKeyLocalField, 'remoteKeyLocalField');
4310
+ /*
4311
+ * ONE RECORD, ONE ROW (#2039 review) — made a property of the STORE rather than of each code path that writes the key.
4312
+ *
4313
+ * A remote key names one record of the system of record, so two local rows holding it would each send their edits to
4314
+ * that record, overwriting each other's. The pass cannot make that (the system of record mints a fresh key per create),
4315
+ * but an operator's answer to an unknown create can, and a check at the door is a read-then-write any concurrent writer
4316
+ * slips past. A UNIQUE index cannot be slipped past, on any path.
4317
+ *
4318
+ * It must IGNORE rows with no key yet — every row before its first send has none. `.isUnique()` gives exactly that on
4319
+ * both stores: its default is sparse, which MongoDB builds as a sparse (or, on a retention-governed resource, a
4320
+ * `$exists`-partial) unique index and PostgreSQL plans with NULLs distinct. MongoDB's one blind spot is an EXPLICIT null,
4321
+ * which a sparse index still indexes — so the field must also refuse null: `.optional()`, never `.nullable()`, which
4322
+ * makes "absent" the only empty state a validated write can store.
4323
+ *
4324
+ * Checked rather than applied by the factory, for the inbound rule's reason (the same field there must be declared
4325
+ * `.isUnique()`, "boot-CHECKED, not factory-mutated"): the application's own schema file shows the index it gets, and
4326
+ * the migration its planner writes is the one its author reads.
4327
+ */
4328
+ const uniqueParams = getUniqueFieldParams(keySchema);
4329
+ if (uniqueParams === undefined || uniqueParams.sparse === false || (uniqueParams.scope !== undefined && uniqueParams.scope !== 'global') || uniqueParams.compoundWith !== undefined) {
4330
+ refuse(`remoteKeyLocalField: '${declaration.remoteKeyLocalField}' must be declared .isUnique() — one remote record, one local row: two rows holding `
4331
+ + 'one key would each overwrite the other\'s record. Plain `.isUnique()` (global, sparse, the default) ignores the rows not yet sent.');
4332
+ }
4333
+ if (keySchema.safeParse(null).success) {
4334
+ refuse(`remoteKeyLocalField: '${declaration.remoteKeyLocalField}' accepts null. Declare it .optional(), not .nullable(): its unique index ignores a row `
4335
+ + 'with no key only while "no key" is ABSENT — MongoDB indexes an explicit null, so a second unsent row would collide with the first.');
4336
+ }
4337
+ if (!isExcludedFromCreate(keySchema) || !isExcludedFromUpdate(keySchema)) {
4338
+ refuse(`remoteKeyLocalField: '${declaration.remoteKeyLocalField}' must be declared .excludeFromCreate() and .excludeFromUpdate() — the engine `
4339
+ + 'writes it once, from the key the system of record answers a create with, and a caller that could write it could point a local row '
4340
+ + 'at any remote record.');
4341
+ }
4342
+ if (declaration.partitionUnitLocalField !== undefined) {
4343
+ requireStringAcceptingAbsence(declaration.partitionUnitLocalField, 'partitionUnitLocalField');
4344
+ }
4345
+ for (const entry of declaration.mapping) {
4346
+ const context = `mapping('${entry.localField}')`;
4347
+ const fieldSchema = shape[entry.localField];
4348
+ if (!fieldSchema)
4349
+ refuse(`${context}: local field '${entry.localField}' does not exist on mainSchema.`);
4350
+ if (isExcludedFromCreate(fieldSchema) && isExcludedFromUpdate(fieldSchema)) {
4351
+ refuse(`${context}: '${entry.localField}' is declared .excludeFromCreate() and .excludeFromUpdate(), so no caller can ever set it and an OUTBOUND `
4352
+ + 'pipeline would send a value nobody decided. A field this pipeline SENDS is the application\'s own: let callers write it.');
4353
+ }
4354
+ if (entry.kind === ExternalDataMappingEntryKind.REMOTE_REFERENCE) {
4355
+ requireStringAcceptingAbsence(entry.localField, context);
4356
+ entry.valueShape = resolveExternalDataRemoteReferenceValueShape(entry, declaration.binding.dialect);
4357
+ }
4358
+ }
4359
+ }
4360
+ /**
4361
+ * The destination-schema half of a declared expression's validation (#1685): what the local field must be for the
4362
+ * expression to write it — and, for a plain CONSTANT, whether the constant fits an enum or primitive field. The schema-independent half (duplicate codes, identity arithmetic, a concatenation of
4363
+ * literals) is `assertExternalDataPipelineDeclarationCoherence`'s.
4364
+ *
4365
+ * Runs where every other mapping target is checked — the resource factory, at module load, i.e. at startup — so a
4366
+ * renamed enum member, a mistyped constant or an expression pointed at the wrong kind of field stops the boot with
4367
+ * the entry named, instead of rejecting every row of every run. A remote field that does not exist cannot be known
4368
+ * here, offline; the extraction requests every field an expression reads, so the SOURCE refuses it on the first run
4369
+ * (Odoo raises "Invalid field", an OData service refuses an unknown `$select` property) rather than every row landing
4370
+ * null.
4371
+ *
4372
+ * Also RESOLVES, as for a `REMOTE_FIELD` entry, Odoo's absent-as-false coercion on a `CONDITIONAL` outcome that
4373
+ * copies a remote field: this is the one place the dialect and the target type are both known.
4374
+ */
4375
+ function validateExternalDataExpressionAgainstTarget(entry, targetSchema, dialect, refuse) {
4376
+ const at = `mapping('${entry.localField}')`;
4377
+ const inner = unwrapSchema(targetSchema);
4378
+ const acceptsAbsence = inner !== targetSchema;
4379
+ // `required` exists on every expression but CONDITIONAL, whose strict shape refuses it — so only the others may
4380
+ // be told to declare it.
4381
+ const requireAbsenceCapable = (why) => {
4382
+ if (acceptsAbsence)
4383
+ return;
4384
+ refuse(entry.kind === ExternalDataMappingEntryKind.CONDITIONAL
4385
+ ? `${at}: ${why}, so the field must be optional or nullable.`
4386
+ : `${at}: ${why}, so the field must be optional or nullable — or declare required: true (such rows are then rejected and reported).`);
4387
+ };
4388
+ switch (entry.kind) {
4389
+ /*
4390
+ * A CONSTANT, checked where a check is possible (#1685 review): a member the enum does not have, or a value of the
4391
+ * wrong primitive type, fails the boot rather than every row's load. A field of another type (a date, an object)
4392
+ * is left alone: a constant cannot express one, and refusing it would refuse declarations nothing proves wrong.
4393
+ */
4394
+ case ExternalDataMappingEntryKind.CONSTANT: {
4395
+ if (inner instanceof z.ZodEnum || inner instanceof z.ZodString || inner instanceof z.ZodNumber || inner instanceof z.ZodBoolean) {
4396
+ const misfit = describeExternalDataConstantMisfit(entry.constant, targetSchema);
4397
+ if (misfit !== null)
4398
+ refuse(`${at}.constant: ${misfit}.`);
4399
+ }
4400
+ return;
4401
+ }
4402
+ case ExternalDataMappingEntryKind.ENUM_MAP: {
4403
+ if (!(inner instanceof z.ZodEnum))
4404
+ refuse(`${at}: an ENUM_MAP writes a member of a local enum, so its target must be an enum field.`);
4405
+ for (const { remoteValue, localValue } of entry.values) {
4406
+ const misfit = describeExternalDataConstantMisfit(localValue, targetSchema);
4407
+ if (misfit !== null)
4408
+ refuse(`${at}.values: the code ${JSON.stringify(remoteValue)} maps to ${misfit}.`);
4409
+ }
4410
+ if (entry.unmapped.policy === ExternalDataUnmappedValuePolicy.USE_DEFAULT) {
4411
+ const misfit = describeExternalDataConstantMisfit(entry.unmapped.localValue, targetSchema);
4412
+ if (misfit !== null)
4413
+ refuse(`${at}.unmapped.localValue: ${misfit}.`);
4414
+ }
4415
+ if (!entry.required)
4416
+ requireAbsenceCapable('an absent remote code lands null');
4417
+ return;
4418
+ }
4419
+ case ExternalDataMappingEntryKind.CONCATENATION:
4420
+ if (!(inner instanceof z.ZodString))
4421
+ refuse(`${at}: a CONCATENATION writes a string, so its target must be a string field.`);
4422
+ if (!entry.required)
4423
+ requireAbsenceCapable('a row whose every remote part is absent lands null');
4424
+ return;
4425
+ case ExternalDataMappingEntryKind.ARITHMETIC:
4426
+ if (!(inner instanceof z.ZodNumber))
4427
+ refuse(`${at}: an ARITHMETIC entry writes a number, so its target must be a number field.`);
4428
+ if (!entry.required)
4429
+ requireAbsenceCapable('an absent remote value lands null');
4430
+ return;
4431
+ case ExternalDataMappingEntryKind.CONDITIONAL: {
4432
+ const outcomes = [...entry.cases.map((entryCase) => entryCase.then), entry.otherwise];
4433
+ for (const outcome of outcomes) {
4434
+ if (outcome.kind === ExternalDataConditionalOutcomeKind.CONSTANT) {
4435
+ const misfit = describeExternalDataConstantMisfit(outcome.constant, targetSchema);
4436
+ if (misfit !== null)
4437
+ refuse(`${at}: an outcome writes ${misfit}.`);
4438
+ continue;
4439
+ }
4440
+ requireAbsenceCapable(`the outcome copying '${outcome.remoteField}' lands null when that field is absent`);
4441
+ // As for a REMOTE_FIELD entry: the timestamp coercion produces a Date, so it targets a date field.
4442
+ if (outcome.coercion === ExternalDataFieldCoercion.ISO_STRING_TO_DATE && !(inner instanceof z.ZodDate)) {
4443
+ refuse(`${at}: the outcome copying '${outcome.remoteField}' declares ISO_STRING_TO_DATE, which targets a date field.`);
4444
+ }
4445
+ // Odoo's false→null default, resolved as for a REMOTE_FIELD entry: a genuine boolean target keeps its false.
4446
+ if (dialect === HttpApiTransportDialect.ODOO_JSONRPC && outcome.coercion === ExternalDataFieldCoercion.NONE && !(inner instanceof z.ZodBoolean)) {
4447
+ outcome.coercion = ExternalDataFieldCoercion.ODOO_FALSE_AS_NULL;
4448
+ }
4449
+ }
4450
+ return;
4451
+ }
4452
+ default:
4453
+ return;
4454
+ }
4455
+ }
3676
4456
  //# sourceMappingURL=resources-config.shared.factory.js.map