@wildo-ai/saas-models 1.1.4 → 1.1.5

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 (1032) hide show
  1. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  2. package/dist/esm/_inspect.d.ts.map +1 -1
  3. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts +1 -1
  4. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
  5. package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts +1 -1
  7. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  8. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +2 -2
  9. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
  10. package/dist/esm/applications/applications-context.schemas.d.ts +236 -18
  11. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  12. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts +1 -0
  13. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  14. package/dist/esm/applications/applications.shared.resources-config.schemas.js +1 -1
  15. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  16. package/dist/esm/applications/applications.shared.schemas.d.ts +3 -2
  17. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  18. package/dist/esm/applications/applications.shared.schemas.js +40 -5
  19. package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
  20. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +1 -2
  21. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  22. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +1 -2
  23. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
  24. package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
  25. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  26. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  27. package/dist/esm/billing/billing-enums.shared.schemas.d.ts +87 -5
  28. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  29. package/dist/esm/billing/billing-enums.shared.schemas.js +91 -5
  30. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  31. package/dist/esm/billing/billing-types.shared.schemas.d.ts +24 -4
  32. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  33. package/dist/esm/billing/billing-types.shared.schemas.js +24 -8
  34. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  35. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  36. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  37. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
  38. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
  39. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
  40. package/dist/esm/billing/price.shared.resources-config.schemas.js +32 -2
  41. package/dist/esm/billing/price.shared.resources-config.schemas.js.map +1 -1
  42. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  43. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  44. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  45. package/dist/esm/billing/product-behavior-policy.shared.schemas.js +1 -1
  46. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  47. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  48. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  49. package/dist/esm/billing/product.shared.resources-config.schemas.js +32 -2
  50. package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
  51. package/dist/esm/billing/product.shared.schemas.d.ts +1 -0
  52. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  53. package/dist/esm/billing/product.shared.schemas.js +3 -0
  54. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  55. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
  56. package/dist/esm/billing/promotions.shared.resources-config.schemas.js +33 -3
  57. package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
  58. package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
  59. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  60. package/dist/esm/billing/referral.shared.resources-config.schemas.js +22 -2
  61. package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
  62. package/dist/esm/billing/referral.shared.schemas.d.ts +1 -0
  63. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  64. package/dist/esm/billing/referral.shared.schemas.js +3 -0
  65. package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
  66. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +23 -1
  67. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  68. package/dist/esm/billing/subscription.shared.resources-config.schemas.js +48 -2
  69. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  70. package/dist/esm/billing/subscription.shared.schemas.d.ts +1 -0
  71. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  72. package/dist/esm/billing/subscription.shared.schemas.js +3 -0
  73. package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
  74. package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts +49 -0
  75. package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts.map +1 -0
  76. package/dist/esm/billing/usage-flush-evidence.shared.schemas.js +48 -0
  77. package/dist/esm/billing/usage-flush-evidence.shared.schemas.js.map +1 -0
  78. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
  79. package/dist/esm/billing/usage-record.shared.schemas.d.ts +1 -0
  80. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  81. package/dist/esm/billing/usage-record.shared.schemas.js +3 -0
  82. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  83. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
  84. package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
  85. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +7 -1
  86. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  87. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  88. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
  89. package/dist/esm/companion-exports.d.ts.map +1 -1
  90. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +14 -3
  91. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  92. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +21 -7
  93. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
  94. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts +450 -0
  95. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -0
  96. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js +723 -0
  97. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -0
  98. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
  99. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +2 -2
  100. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  101. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +8 -0
  102. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  103. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +15 -0
  104. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  105. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +610 -16
  106. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  107. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +769 -38
  108. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  109. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  110. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +29 -0
  111. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  112. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts +463 -0
  113. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts.map +1 -0
  114. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js +526 -0
  115. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js.map +1 -0
  116. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts +539 -15
  117. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
  118. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js +402 -14
  119. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -1
  120. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts +18 -0
  121. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts.map +1 -0
  122. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js +89 -0
  123. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js.map +1 -0
  124. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts +47 -0
  125. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts.map +1 -0
  126. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js +73 -0
  127. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js.map +1 -0
  128. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +21 -0
  129. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
  130. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js +39 -1
  131. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
  132. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts +33 -0
  133. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts.map +1 -0
  134. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js +30 -0
  135. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js.map +1 -0
  136. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts +6 -5
  137. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
  138. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js +15 -5
  139. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -1
  140. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts +127 -0
  141. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts.map +1 -0
  142. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js +94 -0
  143. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js.map +1 -0
  144. package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts +125 -0
  145. package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts.map +1 -0
  146. package/dist/esm/compliance/privacy/consent-purposes.shared.js +136 -0
  147. package/dist/esm/compliance/privacy/consent-purposes.shared.js.map +1 -0
  148. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +1 -1
  149. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts +91 -0
  150. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -0
  151. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +123 -0
  152. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -0
  153. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
  154. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
  155. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
  156. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
  157. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +68 -25
  158. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
  159. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +74 -22
  160. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
  161. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
  162. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
  163. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +9 -17
  164. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  165. package/dist/esm/compliance/privacy/privacy.shared.schemas.js +74 -31
  166. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  167. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  168. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  169. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
  170. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts +47 -0
  171. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts.map +1 -0
  172. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js +98 -0
  173. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js.map +1 -0
  174. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +368 -35
  175. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
  176. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +403 -17
  177. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
  178. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
  179. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  180. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  181. package/dist/esm/compliance/review-cadence.shared.schemas.d.ts +56 -0
  182. package/dist/esm/compliance/review-cadence.shared.schemas.d.ts.map +1 -0
  183. package/dist/esm/compliance/review-cadence.shared.schemas.js +71 -0
  184. package/dist/esm/compliance/review-cadence.shared.schemas.js.map +1 -0
  185. package/dist/esm/compliance/risk-posture.shared.schemas.d.ts +161 -0
  186. package/dist/esm/compliance/risk-posture.shared.schemas.d.ts.map +1 -0
  187. package/dist/esm/compliance/risk-posture.shared.schemas.js +166 -0
  188. package/dist/esm/compliance/risk-posture.shared.schemas.js.map +1 -0
  189. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +4 -3
  190. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  191. package/dist/esm/config/analytics-value-moments.shared.schemas.js +4 -3
  192. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  193. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +222 -9
  194. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  195. package/dist/esm/config/app-configuration-shared.shared.schemas.js +232 -9
  196. package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
  197. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +75 -3
  198. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  199. package/dist/esm/config/auth-config-resolution.shared.utils.js +93 -4
  200. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  201. package/dist/esm/config/brand-assets.shared.schemas.d.ts +5 -4
  202. package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
  203. package/dist/esm/config/brand-assets.shared.schemas.js +14 -4
  204. package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -1
  205. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +463 -19
  206. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  207. package/dist/esm/config/entity-identity-config.shared.schemas.js +535 -28
  208. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  209. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +24 -24
  210. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
  211. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
  212. package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
  213. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +21 -17
  214. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  215. package/dist/esm/config/frontend/navigation.shared.schemas.js +58 -40
  216. package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
  217. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts +90 -133
  218. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
  219. package/dist/esm/config/frontend/onboarding.shared.schemas.js +148 -100
  220. package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
  221. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
  222. package/dist/esm/config-authoring.entry.d.ts.map +1 -1
  223. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
  224. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
  225. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +140 -43
  226. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  227. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +141 -42
  228. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  229. package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
  230. package/dist/esm/errors/errors.shared.definitions.js +1 -1
  231. package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
  232. package/dist/esm/errors/errors.shared.schemas.d.ts +29 -40
  233. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  234. package/dist/esm/errors/errors.shared.schemas.js +37 -54
  235. package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
  236. package/dist/esm/errors/errors.shared.utils.d.ts +24 -0
  237. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  238. package/dist/esm/errors/errors.shared.utils.js +39 -0
  239. package/dist/esm/errors/errors.shared.utils.js.map +1 -1
  240. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts +27 -0
  241. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -0
  242. package/dist/esm/errors/thrown-value-description.shared.utils.js +67 -0
  243. package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -0
  244. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +48 -73
  245. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  246. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js +103 -9
  247. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  248. package/dist/esm/external-data.exports.d.ts +1 -0
  249. package/dist/esm/external-data.exports.d.ts.map +1 -1
  250. package/dist/esm/external-data.exports.js +1 -0
  251. package/dist/esm/external-data.exports.js.map +1 -1
  252. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
  253. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +11 -12
  254. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  255. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +11 -12
  256. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  257. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts +5 -3
  258. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  259. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +5 -3
  260. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  261. package/dist/esm/external-providers/engine-capability-surface.shared.d.ts +77 -0
  262. package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -0
  263. package/dist/esm/external-providers/engine-capability-surface.shared.js +173 -0
  264. package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -0
  265. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts +2 -0
  266. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
  267. package/dist/esm/external-providers/external-providers.shared.schemas.js +21 -0
  268. package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
  269. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +129 -9
  270. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  271. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +114 -0
  272. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
  273. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +148 -0
  274. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
  275. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
  276. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
  277. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +54 -3
  278. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  279. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +58 -1
  280. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  281. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts +12 -3
  282. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -1
  283. package/dist/esm/external-providers/frontend-provider-public-config.shared.js +14 -5
  284. package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -1
  285. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts +30 -0
  286. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts.map +1 -0
  287. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js +32 -0
  288. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js.map +1 -0
  289. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts +86 -0
  290. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -0
  291. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js +85 -0
  292. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -0
  293. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +14 -13
  294. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  295. package/dist/esm/external-providers/provider-capability.shared.schemas.js +10 -10
  296. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  297. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  298. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  299. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -1
  300. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -1
  301. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +7 -5
  302. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
  303. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +7 -5
  304. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
  305. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +8 -5
  306. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
  307. package/dist/esm/external-providers/provider-metadata.shared.schemas.js +5 -2
  308. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
  309. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  310. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
  311. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -1
  312. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -1
  313. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
  314. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +2 -0
  315. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
  316. package/dist/esm/features/application-features.shared.resources-config.schemas.js +30 -3
  317. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
  318. package/dist/esm/features/connected-feature.example.d.ts +64 -0
  319. package/dist/esm/features/connected-feature.example.d.ts.map +1 -0
  320. package/dist/esm/features/connected-feature.example.js +86 -0
  321. package/dist/esm/features/connected-feature.example.js.map +1 -0
  322. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  323. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  324. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  325. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  326. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  327. package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
  328. package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
  329. package/dist/esm/features/scope-features.shared.schemas.d.ts +53 -0
  330. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  331. package/dist/esm/features/scope-features.shared.schemas.js +37 -0
  332. package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
  333. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +1 -1
  334. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
  335. package/dist/esm/features/user-features.shared.resources-config.schemas.js +34 -52
  336. package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
  337. package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -1
  338. package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -1
  339. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
  340. package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
  341. package/dist/esm/files/files.shared.resources-config.schemas.d.ts +3 -3
  342. package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
  343. package/dist/esm/files/files.shared.resources-config.schemas.js +3 -3
  344. package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
  345. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  346. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  347. package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
  348. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  349. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
  350. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
  351. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
  352. package/dist/esm/flows-actors/actors.shared.schemas.d.ts +152 -129
  353. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  354. package/dist/esm/flows-actors/actors.shared.schemas.js +99 -2
  355. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  356. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +6 -0
  357. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
  358. package/dist/esm/flows-actors/agents.shared.schemas.d.ts +3 -3
  359. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  360. package/dist/esm/flows-actors/agents.shared.schemas.js +11 -5
  361. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  362. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +13 -0
  363. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
  364. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
  365. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts +45 -0
  366. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts.map +1 -0
  367. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js +51 -0
  368. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js.map +1 -0
  369. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
  370. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +31 -0
  371. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  372. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +61 -3
  373. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  374. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
  375. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts +2 -2
  376. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
  377. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +16 -8
  378. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  379. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +23 -11
  380. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  381. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts +0 -189
  382. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  383. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js +14 -50
  384. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
  385. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts +0 -3
  386. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  387. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js +0 -1
  388. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
  389. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  390. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  391. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
  392. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +1 -67
  393. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  394. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +1 -2
  395. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  396. package/dist/esm/flows-actors/flows.shared.schemas.d.ts +0 -1
  397. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  398. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  399. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts +121 -0
  400. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -0
  401. package/dist/esm/flows-actors/human-decision.shared.schemas.js +252 -0
  402. package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -0
  403. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
  404. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +4 -2
  405. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
  406. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
  407. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts +24 -0
  408. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -0
  409. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js +80 -0
  410. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -0
  411. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts +123 -0
  412. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -0
  413. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js +181 -0
  414. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -0
  415. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +58 -81
  416. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  417. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js +75 -38
  418. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
  419. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +106 -1
  420. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
  421. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +117 -0
  422. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -1
  423. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts +106 -24
  424. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
  425. package/dist/esm/guidance/guidance-flow.shared.schemas.js +152 -14
  426. package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
  427. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
  428. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  429. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
  430. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
  431. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
  432. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
  433. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts +0 -6
  434. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
  435. package/dist/esm/guidance/lifecycle-state.shared.schemas.js +0 -19
  436. package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
  437. package/dist/esm/guidance/milestone-builders.shared.d.ts +4 -2
  438. package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
  439. package/dist/esm/guidance/milestone-builders.shared.js +4 -2
  440. package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
  441. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts +66 -4
  442. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
  443. package/dist/esm/guidance/milestone-definition.shared.schemas.js +50 -0
  444. package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
  445. package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts +71 -0
  446. package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts.map +1 -0
  447. package/dist/esm/guidance/progression-presentation.shared.schemas.js +72 -0
  448. package/dist/esm/guidance/progression-presentation.shared.schemas.js.map +1 -0
  449. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +2 -0
  450. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  451. package/dist/esm/guidance/progression-state.shared.schemas.d.ts +4 -0
  452. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  453. package/dist/esm/guidance/progression-state.shared.schemas.js +5 -0
  454. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  455. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
  456. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js +2 -1
  457. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -1
  458. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +181 -412
  459. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  460. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +249 -199
  461. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
  462. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts +107 -0
  463. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -0
  464. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js +108 -0
  465. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -0
  466. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts +38 -0
  467. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts.map +1 -0
  468. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js +42 -0
  469. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js.map +1 -0
  470. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
  471. package/dist/esm/index.d.ts +41 -4
  472. package/dist/esm/index.d.ts.map +1 -1
  473. package/dist/esm/index.js +71 -16
  474. package/dist/esm/index.js.map +1 -1
  475. package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -0
  476. package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -0
  477. package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -0
  478. package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -0
  479. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts +130 -0
  480. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts.map +1 -0
  481. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js +104 -0
  482. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js.map +1 -0
  483. package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -0
  484. package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -0
  485. package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/decisions.meta-workflows.shared.schemas.d.ts +64 -0
  486. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -0
  487. package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/decisions.meta-workflows.shared.schemas.js +47 -0
  488. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -0
  489. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +544 -0
  490. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -0
  491. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +638 -0
  492. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -0
  493. package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/portable-primitives.meta-workflows.shared.schemas.d.ts +15 -8
  494. package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -0
  495. package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/portable-primitives.meta-workflows.shared.schemas.js +15 -8
  496. package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -0
  497. package/dist/esm/meta-workflows.exports.d.ts +21 -25
  498. package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
  499. package/dist/esm/meta-workflows.exports.js +21 -25
  500. package/dist/esm/meta-workflows.exports.js.map +1 -1
  501. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
  502. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
  503. package/dist/esm/notifications/email/email-submission.shared.enums.d.ts +16 -0
  504. package/dist/esm/notifications/email/email-submission.shared.enums.d.ts.map +1 -0
  505. package/dist/esm/notifications/email/email-submission.shared.enums.js +17 -0
  506. package/dist/esm/notifications/email/email-submission.shared.enums.js.map +1 -0
  507. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +36 -0
  508. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  509. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js +50 -3
  510. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  511. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
  512. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
  513. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
  514. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  515. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js +4 -1
  516. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
  517. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts +2 -1
  518. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
  519. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js +3 -2
  520. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -1
  521. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  522. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +44 -3
  523. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  524. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  525. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  526. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  527. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  528. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  529. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  530. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts +1 -1
  531. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
  532. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js +12 -33
  533. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
  534. package/dist/esm/notifications/notifications.shared.schemas.d.ts +19 -8
  535. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  536. package/dist/esm/notifications/notifications.shared.schemas.js +19 -8
  537. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  538. package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts +145 -0
  539. package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts.map +1 -0
  540. package/dist/esm/organizations/application-owner-organization.shared.schemas.js +146 -0
  541. package/dist/esm/organizations/application-owner-organization.shared.schemas.js.map +1 -0
  542. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +2 -0
  543. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
  544. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +26 -3
  545. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  546. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +1 -1
  547. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  548. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +18 -14
  549. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
  550. package/dist/esm/organizations/organization-members.shared.schemas.d.ts +1 -1
  551. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  552. package/dist/esm/organizations/organization-members.shared.schemas.js +9 -1
  553. package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
  554. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
  555. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  556. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  557. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  558. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +2 -1
  559. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  560. package/dist/esm/organizations/organization-preferences.shared.schemas.js +3 -0
  561. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  562. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  563. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +3 -1
  564. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  565. package/dist/esm/organizations/organization-profile.shared.schemas.js +4 -2
  566. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  567. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
  568. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
  569. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
  570. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
  571. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
  572. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +29 -2
  573. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  574. package/dist/esm/organizations/organization-unit-narrowing.shared.js +27 -0
  575. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  576. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts +2 -0
  577. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  578. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js +3 -0
  579. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
  580. package/dist/esm/organizations/organization-units.shared.schemas.d.ts +17 -5
  581. package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
  582. package/dist/esm/organizations/organization-units.shared.schemas.js +65 -5
  583. package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
  584. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +51 -7
  585. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  586. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +151 -7
  587. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  588. package/dist/esm/organizations/organizations.shared.schemas.d.ts +18 -83
  589. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  590. package/dist/esm/organizations/organizations.shared.schemas.js +37 -19
  591. package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
  592. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
  593. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
  594. package/dist/esm/provider-registration-runtime.exports.d.ts +1 -0
  595. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
  596. package/dist/esm/provider-registration-runtime.exports.js +1 -0
  597. package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
  598. package/dist/esm/public-runtime/index.d.ts +39 -10
  599. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  600. package/dist/esm/public-runtime/index.js +39 -10
  601. package/dist/esm/public-runtime/index.js.map +1 -1
  602. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +7 -8
  603. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  604. package/dist/esm/queue/jobs.shared.resources-config.schemas.js +30 -6
  605. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  606. package/dist/esm/queue/jobs.shared.schemas.d.ts +388 -2
  607. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  608. package/dist/esm/queue/jobs.shared.schemas.js +315 -11
  609. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  610. package/dist/esm/queue/jobs.shared.utils.d.ts +6 -4
  611. package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
  612. package/dist/esm/queue/jobs.shared.utils.js +5 -4
  613. package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
  614. package/dist/esm/queue/queues.shared.schemas.d.ts +20 -8
  615. package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
  616. package/dist/esm/queue/queues.shared.schemas.js +23 -18
  617. package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
  618. package/dist/esm/queue/queues.shared.utils.d.ts +4 -2
  619. package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
  620. package/dist/esm/queue/queues.shared.utils.js +4 -2
  621. package/dist/esm/queue/queues.shared.utils.js.map +1 -1
  622. package/dist/esm/rag/rag-retrieval-health.shared.d.ts +27 -0
  623. package/dist/esm/rag/rag-retrieval-health.shared.d.ts.map +1 -0
  624. package/dist/esm/rag/rag-retrieval-health.shared.js +29 -0
  625. package/dist/esm/rag/rag-retrieval-health.shared.js.map +1 -0
  626. package/dist/esm/requests/header-keys.shared.d.ts +6 -0
  627. package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
  628. package/dist/esm/requests/header-keys.shared.js +7 -0
  629. package/dist/esm/requests/header-keys.shared.js.map +1 -1
  630. package/dist/esm/requests/idempotency-key.shared.d.ts +76 -0
  631. package/dist/esm/requests/idempotency-key.shared.d.ts.map +1 -0
  632. package/dist/esm/requests/idempotency-key.shared.js +112 -0
  633. package/dist/esm/requests/idempotency-key.shared.js.map +1 -0
  634. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
  635. package/dist/esm/requests/manual-controllers-routes-documentation.js +218 -17
  636. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
  637. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +87 -0
  638. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  639. package/dist/esm/requests/manual-controllers-routes-urls.js +102 -0
  640. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  641. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  642. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  643. package/dist/esm/requests/websocket.shared.schemas.d.ts +200 -24
  644. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  645. package/dist/esm/requests/websocket.shared.schemas.js +219 -5
  646. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  647. package/dist/esm/resources/child-operations.shared.schemas.d.ts +56 -5
  648. package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
  649. package/dist/esm/resources/child-operations.shared.schemas.js +97 -5
  650. package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
  651. package/dist/esm/resources/context-policy.shared.schemas.d.ts +20 -0
  652. package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
  653. package/dist/esm/resources/context-policy.shared.schemas.js +3 -0
  654. package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
  655. package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
  656. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  657. package/dist/esm/resources/resources-config.shared.factory.js +498 -29
  658. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  659. package/dist/esm/resources/resources-config.shared.schemas.d.ts +623 -45
  660. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  661. package/dist/esm/resources/resources-config.shared.schemas.js +315 -22
  662. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  663. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  664. package/dist/esm/resources/resources-registry.shared.core.definitions.js +377 -69
  665. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  666. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  667. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  668. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
  669. package/dist/esm/resources/resources.shared.core.definitions.d.ts +19 -0
  670. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  671. package/dist/esm/resources/resources.shared.core.definitions.js +28 -0
  672. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  673. package/dist/esm/resources/resources.shared.schemas.d.ts +256 -10
  674. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  675. package/dist/esm/resources/resources.shared.schemas.js +209 -9
  676. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  677. package/dist/esm/resources/resources.shared.utils.d.ts +3 -2
  678. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  679. package/dist/esm/resources/resources.shared.utils.js +38 -6
  680. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  681. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
  682. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts +44 -12
  683. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
  684. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js +46 -23
  685. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -1
  686. package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
  687. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
  688. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts +61 -0
  689. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts.map +1 -0
  690. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js +79 -0
  691. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js.map +1 -0
  692. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
  693. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -1
  694. package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -1
  695. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts +60 -0
  696. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts.map +1 -0
  697. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js +80 -0
  698. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js.map +1 -0
  699. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
  700. package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts +21 -0
  701. package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -0
  702. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js +159 -0
  703. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -0
  704. package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
  705. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
  706. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
  707. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  708. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
  709. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
  710. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
  711. package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
  712. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
  713. package/dist/esm/resources/utils/resources-config-naming.utils.d.ts +15 -0
  714. package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
  715. package/dist/esm/resources/utils/resources-config-naming.utils.js +56 -11
  716. package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
  717. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +51 -1
  718. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  719. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +210 -51
  720. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
  721. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
  722. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts +34 -0
  723. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
  724. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js +45 -1
  725. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
  726. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
  727. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  728. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  729. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  730. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
  731. package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
  732. package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
  733. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
  734. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts +29 -0
  735. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  736. package/dist/esm/resources/utils/shared-persistence-collection.utils.js +30 -0
  737. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  738. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
  739. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js +49 -11
  740. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -1
  741. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  742. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  743. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  744. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  745. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +4 -1
  746. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  747. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  748. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +4 -1
  749. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  750. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  751. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
  752. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +128 -16
  753. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  754. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +160 -6
  755. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  756. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +324 -9
  757. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  758. package/dist/esm/security/authentications/authentication.shared.schemas.js +411 -8
  759. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  760. package/dist/esm/security/authentications/authentication.shared.utils.d.ts +87 -4
  761. package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
  762. package/dist/esm/security/authentications/authentication.shared.utils.js +95 -6
  763. package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
  764. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts +23 -1
  765. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
  766. package/dist/esm/security/authentications/consumable-token.shared.schemas.js +23 -1
  767. package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
  768. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts +7 -1
  769. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
  770. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js +7 -1
  771. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -1
  772. package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts +74 -0
  773. package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts.map +1 -0
  774. package/dist/esm/security/authentications/password-blocklist.shared.utils.js +122 -0
  775. package/dist/esm/security/authentications/password-blocklist.shared.utils.js.map +1 -0
  776. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
  777. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +88 -2
  778. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/registration.shared.dto.schemas.js +149 -2
  780. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  781. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts +57 -11
  782. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +44 -11
  784. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -1
  785. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  786. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js +20 -7
  787. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
  788. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +16 -2
  789. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  790. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +32 -2
  791. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  792. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
  793. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js +7 -1
  794. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
  795. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  796. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  797. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js +4 -1
  798. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
  799. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
  800. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts +27 -0
  801. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts.map +1 -0
  802. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js +109 -0
  803. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js.map +1 -0
  804. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts +66 -0
  805. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts.map +1 -0
  806. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js +107 -0
  807. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js.map +1 -0
  808. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
  809. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
  810. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts +19 -0
  811. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
  812. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js +50 -13
  813. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
  814. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts +18 -6
  815. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
  816. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +133 -4
  817. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
  818. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +26 -0
  819. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  820. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +46 -17
  821. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  822. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts +0 -40
  823. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  824. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +100 -26
  825. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  826. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts +9 -1
  827. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  828. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js +9 -1
  829. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
  830. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +6 -2
  831. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  832. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +76 -4
  833. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  834. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +5 -4
  835. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
  836. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +5 -4
  837. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
  838. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts +4 -0
  839. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  840. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +8 -0
  841. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -1
  842. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts +44 -0
  843. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -1
  844. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js +52 -0
  845. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -1
  846. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  847. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  848. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
  849. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
  850. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  851. package/dist/esm/security/authorizations/roles.shared.defaults.js +6 -0
  852. package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
  853. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +14 -0
  854. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  855. package/dist/esm/security/authorizations/roles.shared.schemas.js +19 -0
  856. package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
  857. package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
  858. package/dist/esm/security/authorizations/roles.shared.utils.js +2 -0
  859. package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -1
  860. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +4 -1
  861. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
  862. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
  863. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +5 -2
  864. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
  865. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +13 -42
  866. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -1
  867. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +201 -14
  868. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -1
  869. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +237 -49
  870. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
  871. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +6 -3
  872. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  873. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +74 -4
  874. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
  875. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +5 -2
  876. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
  877. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +105 -3
  878. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  879. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  880. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  881. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
  882. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
  883. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
  884. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
  885. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts +67 -0
  886. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -0
  887. package/dist/esm/security/outbound-target-control.shared.schemas.js +69 -0
  888. package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -0
  889. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts +159 -0
  890. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts.map +1 -0
  891. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js +164 -0
  892. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js.map +1 -0
  893. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts +209 -0
  894. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -0
  895. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js +150 -0
  896. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -0
  897. package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts +79 -0
  898. package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts.map +1 -0
  899. package/dist/esm/systems-of-record/system-of-record-env.shared.js +116 -0
  900. package/dist/esm/systems-of-record/system-of-record-env.shared.js.map +1 -0
  901. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts +145 -0
  902. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -0
  903. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js +146 -0
  904. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -0
  905. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts +478 -0
  906. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -0
  907. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js +619 -0
  908. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -0
  909. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts +31 -0
  910. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -0
  911. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js +232 -0
  912. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -0
  913. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts +127 -0
  914. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts.map +1 -0
  915. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js +204 -0
  916. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js.map +1 -0
  917. package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
  918. package/dist/esm/testing/resource-config-builders.js +10 -4
  919. package/dist/esm/testing/resource-config-builders.js.map +1 -1
  920. package/dist/esm/testing.d.ts.map +1 -1
  921. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts +2 -1
  922. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
  923. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js +2 -1
  924. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -1
  925. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +139 -24
  926. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  927. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js +255 -0
  928. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
  929. package/dist/esm/users/anonymous-users.shared.schema.d.ts +5 -3
  930. package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
  931. package/dist/esm/users/anonymous-users.shared.schema.js +18 -1
  932. package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
  933. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts +2 -1
  934. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
  935. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +23 -0
  936. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
  937. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts +2 -1
  938. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
  939. package/dist/esm/users/user-consent-decision.shared.utils.d.ts +127 -0
  940. package/dist/esm/users/user-consent-decision.shared.utils.d.ts.map +1 -0
  941. package/dist/esm/users/user-consent-decision.shared.utils.js +189 -0
  942. package/dist/esm/users/user-consent-decision.shared.utils.js.map +1 -0
  943. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
  944. package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
  945. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts +1 -0
  946. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
  947. package/dist/esm/users/user-identity-links.shared.schemas.d.ts +1 -0
  948. package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
  949. package/dist/esm/users/user-identity-links.shared.schemas.js +30 -0
  950. package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
  951. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts +6 -6
  952. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
  953. package/dist/esm/users/user-preferences-reset.shared.utils.js +6 -6
  954. package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -1
  955. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +74 -29
  956. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  957. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js +99 -0
  958. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
  959. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  960. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js +25 -9
  961. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
  962. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +4 -4
  963. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  964. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js +12 -1
  965. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
  966. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  967. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts +1 -0
  968. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  969. package/dist/esm/users/user-self.shared.resources-config.schemas.js +2 -2
  970. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  971. package/dist/esm/users/users.shared.resources-config.schemas.d.ts +1 -0
  972. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  973. package/dist/esm/users/users.shared.resources-config.schemas.js +2 -2
  974. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  975. package/dist/esm/users/users.shared.schemas.d.ts +11 -9
  976. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  977. package/dist/esm/users/users.shared.schemas.js +68 -9
  978. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  979. package/dist/tsconfig.build.tsbuildinfo +1 -1
  980. package/package.json +14 -35
  981. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts +0 -19
  982. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts.map +0 -1
  983. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js +0 -35
  984. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js.map +0 -1
  985. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +0 -213
  986. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts.map +0 -1
  987. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js +0 -287
  988. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js.map +0 -1
  989. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts +0 -236
  990. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts.map +0 -1
  991. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js +0 -212
  992. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js.map +0 -1
  993. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +0 -1
  994. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.js.map +0 -1
  995. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +0 -17
  996. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +0 -1
  997. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +0 -31
  998. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +0 -1
  999. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +0 -1
  1000. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +0 -1
  1001. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +0 -1
  1002. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +0 -1
  1003. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts +0 -28
  1004. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts.map +0 -1
  1005. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js +0 -28
  1006. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js.map +0 -1
  1007. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +0 -1
  1008. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +0 -1
  1009. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +0 -100
  1010. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +0 -1
  1011. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +0 -232
  1012. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +0 -1
  1013. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts +0 -29
  1014. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts.map +0 -1
  1015. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js +0 -58
  1016. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js.map +0 -1
  1017. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +0 -1
  1018. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +0 -1
  1019. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts +0 -81
  1020. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts.map +0 -1
  1021. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js +0 -82
  1022. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js.map +0 -1
  1023. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.d.ts +0 -2
  1024. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.d.ts.map +0 -1
  1025. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js +0 -1
  1026. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js.map +0 -1
  1027. /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/actions.meta-workflows.shared.schemas.d.ts +0 -0
  1028. /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/actions.meta-workflows.shared.schemas.js +0 -0
  1029. /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/catalog.meta-workflows.shared.schemas.d.ts +0 -0
  1030. /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/catalog.meta-workflows.shared.schemas.js +0 -0
  1031. /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/context-selection.meta-workflows.shared.schemas.d.ts +0 -0
  1032. /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/context-selection.meta-workflows.shared.schemas.js +0 -0
@@ -64,8 +64,9 @@ export const UserNotificationChannelSchema = z.union([
64
64
  * - **the category switch suppresses the notification entirely**, whether or not an address is
65
65
  * configured. A tenant that turns billing notifications off means it for the members too.
66
66
  *
67
- * `ORGANIZATION` and `ORGANIZATION_USERS` are tenant-wide and belong to no category, so no switch can
68
- * silence them; a tenant-wide default address still redirects them.
67
+ * `ORGANIZATION` belongs to no category, so no category switch silences it; the tenant-wide
68
+ * `defaultEmailAddress` can redirect it. `ORGANIZATION_USERS` always keeps its member fan-out:
69
+ * neither a category switch nor the tenant-wide default address redirects or suppresses that target.
69
70
  *
70
71
  * This applies to EMAIL only. The websocket and in-product paths always fan out to the members.
71
72
  */
@@ -152,11 +153,18 @@ export const UserNotificationTargetSchema = z.union([
152
153
  // =====================================================
153
154
  // Celebration & Next-Step Enums (Phase 1a)
154
155
  // =====================================================
156
+ /** @wildo_source:part:start saas.models.milestone-celebration */
155
157
  /**
156
- * How the frontend renders a celebration after a successful operation.
157
- * - OVERLAY: Full-screen overlay with animation (e.g., confetti + message)
158
- * - CONFETTI: Lightweight confetti burst (no overlay)
159
- * - LOTTIE: Custom Lottie animation (resolved by notification identifier)
158
+ * How the frontend renders a celebration after a successful operation — the value a milestone's
159
+ * `celebrationMode` takes. Import from `@wildo-ai/saas-models`.
160
+ * - CONFETTI: a lightweight, non-blocking confetti burst over the page. Decorative only: no message,
161
+ * no next step, nothing to dismiss.
162
+ * - OVERLAY: a dialog carrying the celebration animation, the milestone's title, the message, an
163
+ * optional next-step action and a dismiss.
164
+ * - LOTTIE: in the framework's DEFAULT celebration overlay, identical to OVERLAY — the same dialog
165
+ * and the same animation. It is the mode to use when the application's OWN celebration-overlay
166
+ * preset draws something distinct for it, such as a per-milestone animation chosen from the
167
+ * notification identifier the preset receives.
160
168
  */
161
169
  export var CelebrationDisplayMode;
162
170
  (function (CelebrationDisplayMode) {
@@ -164,6 +172,7 @@ export var CelebrationDisplayMode;
164
172
  CelebrationDisplayMode["CONFETTI"] = "confetti";
165
173
  CelebrationDisplayMode["LOTTIE"] = "lottie";
166
174
  })(CelebrationDisplayMode || (CelebrationDisplayMode = {}));
175
+ /** @wildo_source:part:end saas.models.milestone-celebration */
167
176
  /**
168
177
  * Type of next-step suggestion attached to a notification.
169
178
  * - OPERATION: Navigate to and/or trigger a resource operation
@@ -227,8 +236,10 @@ export const FrontendDisplayHintsSchema = z.object({
227
236
  * - a recipient with NO preferences row at all, because preferences are created lazily and a missing
228
237
  * record must never read as "everything off".
229
238
  *
230
- * The `inApp` switch governs the notification CENTRE on the frontend rather than the socket frame —
231
- * suppressing the frame would also suppress the live UI updates that ride the same channel.
239
+ * The `inApp` switch suppresses optional personal message presentation (toast, centre and celebration),
240
+ * not the socket frame. Declarative frames carry target and alwaysDeliver to the frontend gate;
241
+ * required and responsibility-addressed messages remain visible. Local operation feedback and
242
+ * resource refresh events are independent of this personal-message preference.
232
243
  *
233
244
  * ## `condition` gates the notification, not the operation
234
245
  *
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.shared.schemas.js","sourceRoot":"","sources":["../../../src/notifications/notifications.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport { ResourcePrimaryScope } from \"../resources/resources.shared.schemas\";\n\n\nexport enum CoreUserNotificationChannel {\n EMAIL = 'email',\n SMS = 'sms',\n PUSH = 'push',\n WEBSOCKET = 'websocket',\n FRONT_END_SUCCESS = 'front_end_success',\n}\n\nexport enum UserNotificationLevel {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n\nexport const UserNotificationChannelSchema = z.union([\n z.enum(CoreUserNotificationChannel),\n z.string().min(1)\n]);\n\n\n/** @wildo_source:part:start saas.models.notifications.targets facet:layer:shared facet:audience:app-developer */\n/**\n * WHO a declared `userNotifications` entry reaches — and, on the EMAIL channel, whether the tenant\n * gets to redirect or silence it.\n *\n * Imported from `@wildo-ai/saas-models`. The target is the single most consequential field of a\n * notification declaration, because it decides three separate things at once:\n *\n * 1. **the recipients** — resolved per member below;\n * 2. **whether the recipient's own channel preference can suppress it** — only `USER_SELF` and\n * `USERS_CUSTOM` are suppressible, because only they reach a person about their own affairs. Every\n * other target reaches somebody because of a ROLE they hold, and a personal switch must not\n * silently disable a tenant's administrative monitoring. See\n * {@link userNotificationTargetIsSuppressibleByRecipientPreference};\n * 3. **whether `userRoles` is read at all** — see {@link userNotificationTargetReadsUserRoles}. On the\n * two tenant-wide targets the field is REFUSED rather than ignored, because \"everyone in the\n * tenant\" is not a set a role list may narrow.\n *\n * ## Who each target resolves to\n *\n * | target | recipients |\n * |---|---|\n * | `USER_SELF` | the initiator of the operation |\n * | `USERS_CUSTOM` | whatever your `userIdsSelector` returns. Without that function the target resolves nobody |\n * | `ORGANIZATION`, `ORGANIZATION_USERS` | every member of the initiator's tenant. `userRoles` is refused here |\n * | `ORGANIZATION_BILLING`, `ORGANIZATION_SECURITY`, `ORGANIZATION_USER_MANAGEMENT`, `ORGANIZATION_ADMINISTRATIVE` | members of the tenant holding `ORG_OWNER` or `ORG_ADMIN`, unless `userRoles` names a different set |\n * | `APPLICATION_BILLING` | holders of `APP_ADMIN_BILLING_MANAGER` or `APP_ADMIN_SUPER_ADMIN`, application-wide |\n * | `APPLICATION_ADMIN_VIEWER` | holders of `APP_ADMIN_VIEWER` or `APP_ADMIN_SUPER_ADMIN` |\n * | every other `APPLICATION_*` | holders of `APP_ADMIN_SUPER_ADMIN` |\n * | `INBOUND_CONTACT` | nobody, deliberately. The recipient is not a user of your application, so this target is only usable with an EMAIL notification declaring `recipientEmailField` |\n *\n * A target the dispatcher has no rule for resolves nobody and logs a warning — so a custom target\n * string (the schema accepts one) sends nothing on the email and websocket paths.\n *\n * ## The tenant can redirect or silence an ORGANIZATION-flavoured EMAIL, and you cannot override it\n *\n * Each tenant owns a notification-settings record with a per-category switch and a per-category\n * address, and the category is DERIVED from the target — `ORGANIZATION_BILLING` to `billing`,\n * `ORGANIZATION_SECURITY` to `security`, and so on. Two consequences to design around:\n *\n * - **a configured address REPLACES the member fan-out**, it does not add to it. A tenant routing\n * security mail to a monitoring address is saying where that mail goes, not asking for a copy;\n * - **the category switch suppresses the notification entirely**, whether or not an address is\n * configured. A tenant that turns billing notifications off means it for the members too.\n *\n * `ORGANIZATION` and `ORGANIZATION_USERS` are tenant-wide and belong to no category, so no switch can\n * silence them; a tenant-wide default address still redirects them.\n *\n * This applies to EMAIL only. The websocket and in-product paths always fan out to the members.\n */\nexport enum CoreUserNotificationTarget {\n APPLICATION_ADMINISTRATOR = 'application_administrator',\n APPLICATION_BILLING = 'application_billing',\n APPLICATION_USER_MANAGEMENT = 'application_user_management',\n APPLICATION_SECURITY = 'application_security',\n APPLICATION_SUPPORT = 'application_support',\n APPLICATION_OTHER = 'application_other',\n APPLICATION_ADMIN_VIEWER = 'application_admin_viewer',\n ORGANIZATION = 'organization',\n ORGANIZATION_USERS = 'organization_users',\n ORGANIZATION_BILLING = 'organization_billing',\n ORGANIZATION_USER_MANAGEMENT = 'organization_user_management',\n ORGANIZATION_ADMINISTRATIVE = 'organization_administrative',\n ORGANIZATION_SECURITY = 'organization_security',\n USER_SELF = 'user_self',\n USERS_CUSTOM = 'users_custom',\n INBOUND_CONTACT = 'inbound_contact',\n}\n\n/**\n * Whether a notification aimed at this target may be SUPPRESSED by the recipient's own channel\n * preference (`UserPreferences.notifications.email` / `.sms` / `.push` / `.inApp`).\n *\n * DERIVED from the target rather than declared per notification, because the target already carries\n * the distinction and a second field would be one more thing to get wrong on 87 declarations.\n *\n * `USER_SELF` and `USERS_CUSTOM` reach a PERSON about their own affairs — those are the messages a\n * person is choosing about when they turn a channel off, and honouring that choice is the whole\n * point of the switch existing (#409).\n *\n * Every other target reaches somebody because of a ROLE they hold: an application administrator, an\n * organization's security or billing contact. A personal channel preference must not silently\n * disable a tenant's or an application's administrative monitoring — the recipient did not choose to\n * receive those as a person and cannot switch them off as one. A tenant that wants role mail\n * elsewhere routes it, which is what the organization notification-settings record is for.\n *\n * Nothing here reaches account RECOVERY. Password reset, magic link and email verification are sent\n * directly through the email service and never pass through the notification dispatcher, so no\n * channel preference can lock a person out of their own account. That measurement is what made\n * suppression safe to implement at all.\n */\nexport function userNotificationTargetIsSuppressibleByRecipientPreference(target: string): boolean {\n return target === CoreUserNotificationTarget.USER_SELF\n || target === CoreUserNotificationTarget.USERS_CUSTOM;\n}\n\n/**\n * The targets on which `userRoles` MEANS anything (#495).\n *\n * `userRoles` is not a recipient FILTER, which is how its name reads and how it has been authored. It\n * is the role-SELECTION override for the eleven role-scoped targets: `mapOrganizationTargetToRoles`\n * and `mapApplicationTargetToRoles` take it in place of their per-target default, and nothing else\n * anywhere reads it.\n *\n * On every other target it is inert, and inert in three different ways that all looked the same to an\n * author: `USER_SELF` addresses the initiator, `USERS_CUSTOM` goes straight to `userIdsSelector`, and\n * `ORGANIZATION`/`ORGANIZATION_USERS` mean everyone in the tenant by definition. Declaring it there\n * is a filter that silently does nothing, which is what the refinement below now refuses.\n *\n * Scoped as a POSITIVE list of targets that read it rather than a rule about one target, because the\n * defect was never specific to `USERS_CUSTOM` — refusing it there alone would leave the other three\n * free to mislead the next author in exactly the same way.\n */\nexport function userNotificationTargetReadsUserRoles(target: string): boolean {\n return target === CoreUserNotificationTarget.ORGANIZATION_BILLING\n || target === CoreUserNotificationTarget.ORGANIZATION_USER_MANAGEMENT\n || target === CoreUserNotificationTarget.ORGANIZATION_ADMINISTRATIVE\n || target === CoreUserNotificationTarget.ORGANIZATION_SECURITY\n || target === CoreUserNotificationTarget.APPLICATION_ADMINISTRATOR\n || target === CoreUserNotificationTarget.APPLICATION_BILLING\n || target === CoreUserNotificationTarget.APPLICATION_USER_MANAGEMENT\n || target === CoreUserNotificationTarget.APPLICATION_SECURITY\n || target === CoreUserNotificationTarget.APPLICATION_SUPPORT\n || target === CoreUserNotificationTarget.APPLICATION_OTHER\n || target === CoreUserNotificationTarget.APPLICATION_ADMIN_VIEWER;\n}\n/** @wildo_source:part:end saas.models.notifications.targets */\n\nexport const UserNotificationTargetSchema = z.union([\n z.enum(CoreUserNotificationTarget),\n z.string().min(1)\n]);\n\n\n\n// =====================================================\n// Celebration & Next-Step Enums (Phase 1a)\n// =====================================================\n\n/**\n * How the frontend renders a celebration after a successful operation.\n * - OVERLAY: Full-screen overlay with animation (e.g., confetti + message)\n * - CONFETTI: Lightweight confetti burst (no overlay)\n * - LOTTIE: Custom Lottie animation (resolved by notification identifier)\n */\nexport enum CelebrationDisplayMode {\n OVERLAY = 'overlay',\n CONFETTI = 'confetti',\n LOTTIE = 'lottie',\n}\n\n/**\n * Type of next-step suggestion attached to a notification.\n * - OPERATION: Navigate to and/or trigger a resource operation\n * - URL: Navigate to an arbitrary URL (internal or external)\n */\nexport enum NotificationNextStepType {\n OPERATION = 'operation',\n URL = 'url',\n}\n\n// =====================================================\n// Frontend Display Hints Schema (reusable)\n// =====================================================\n\nexport const FrontendDisplayHintsCelebrationSchema = z.object({\n mode: z.enum(CelebrationDisplayMode).default(CelebrationDisplayMode.OVERLAY),\n});\nexport type FrontendDisplayHintsCelebration = z.infer<typeof FrontendDisplayHintsCelebrationSchema>;\n\nexport const FrontendDisplayHintsNextStepSchema = z.object({\n /** Operation path (e.g., \"TASKS.CREATE.default\") or URL */\n operationRef: z.string(),\n type: z.enum(NotificationNextStepType).default(NotificationNextStepType.OPERATION),\n});\nexport type FrontendDisplayHintsNextStep = z.infer<typeof FrontendDisplayHintsNextStepSchema>;\n\nexport const FrontendDisplayHintsSchema = z.object({\n celebration: FrontendDisplayHintsCelebrationSchema.optional(),\n nextStep: FrontendDisplayHintsNextStepSchema.optional(),\n});\nexport type FrontendDisplayHints = z.infer<typeof FrontendDisplayHintsSchema>;\n\n// =====================================================\n// UserNotificationDefinition — Discriminated Union on `channel`\n// =====================================================\n\n/**\n * @wildo_source:part:start saas.models.notifications.user-notification-definition facet:layer:shared facet:audience:app-developer\n *\n * One notification an operation sends. Declared as `userNotifications` on a resource operation, in\n * the resource config — an array, so one operation may send several.\n *\n * ```ts\n * userNotifications: [\n * { target: CoreUserNotificationTarget.USER_SELF, channel: CoreUserNotificationChannel.EMAIL,\n * condition: ({ currentObject }) => currentObject.status === 'INVITED' },\n * { target: CoreUserNotificationTarget.ORGANIZATION_USERS, channel: CoreUserNotificationChannel.WEBSOCKET },\n * ]\n * ```\n *\n * ## What actually sends\n *\n * `EMAIL`, `WEBSOCKET` and `FRONT_END_SUCCESS` deliver. **`SMS` and `PUSH` are declaration vocabulary\n * only** — the dispatcher's branch for them logs and returns without sending. The framework does have\n * an SMS transport (authentication's one-time codes use it) and this dispatcher is not wired to it,\n * so declaring an SMS notification is inert rather than pending.\n *\n * For an EMAIL, create the template directory the reference names. The startup validator resolves\n * every declared reference through the configured locale chain before the application takes traffic,\n * and prints the exact directory to create when one is missing.\n *\n * ## The recipient's preferences are honoured, and three things override them\n *\n * A recipient who has switched a channel off does not receive it. Three deliberate exceptions:\n *\n * - a ROLE-addressed target — the recipient did not choose to receive it as a person;\n * - `alwaysDeliver: true` — declare it on a security notice a compromised account's owner must still\n * receive;\n * - a recipient with NO preferences row at all, because preferences are created lazily and a missing\n * record must never read as \"everything off\".\n *\n * The `inApp` switch governs the notification CENTRE on the frontend rather than the socket frame —\n * suppressing the frame would also suppress the live UI updates that ride the same channel.\n *\n * ## `condition` gates the notification, not the operation\n *\n * The predicate goes on the notification. It decides only whether this one message is sent; refusing\n * the CALL is a separate declaration on the operation variant, and the two are independent — a\n * variant can be enabled while its notification is gated off, and the reverse. The form deliberately\n * matches an operation variant's `enabledCondition` so both read the same way.\n *\n * ## Emailing somebody who is not a user\n *\n * `recipientEmailField` names a TOP-LEVEL field on the record holding the address. There is no\n * recipient, so there are no recipient preferences and no recipient language: the message goes out in\n * the application's default locale. A nested address cannot be named, nor a list — the path sends\n * exactly one message per notification. Pair it with a `condition` when the same operation also\n * serves rows whose address belongs to somebody who must not be written to.\n *\n * Base fields shared by all user notification channel variants.\n */\nexport const UserNotificationDefinition_BaseSchema = z.object({\n identifier: z.string().min(1),\n target: z.string(),\n level: z.enum(UserNotificationLevel).optional(),\n primaryScope: z.enum(ResourcePrimaryScope),\n /**\n * Role-SELECTION override for a role-scoped target — NOT a recipient filter. See\n * {@link userNotificationTargetReadsUserRoles}, which is also what refuses it elsewhere.\n */\n userRoles: z.array(z.string()).optional(),\n userIdsSelector: z.custom<\n (params: {\n currentObject: any;\n inputDto: any;\n objectContext: { parents: Record<string, any>; children: Record<string, any> };\n initiatorIds: { userId?: string; organizationId?: string; applicationId?: string };\n }) => string[]\n >((val) => typeof val === 'function').optional(),\n /**\n * Optional gate — dispatch this notification ONLY when the predicate returns truthy\n * against the post-operation context. Absent = always dispatches (backward compatible).\n * Evaluated per-notification BEFORE channel resolution, so it uniformly gates every\n * channel (email/websocket/front-end-success/…).\n *\n * The canonical use is a POLYMORPHIC operation whose notification must fire for only one\n * branch: the org-member CREATE op serves both INVITE (`status` INVITED — send the invite\n * email to `userEmail`) and DIRECT-ADD (`status` ACTIVE — founder / SSO-JIT / SCIM, whose\n * `userEmail` is the member's OWN address, so an \"you've been invited\" email is a\n * misdelivery). Keying on `currentObject.status === INVITED` fires the invite email for\n * invites only.\n *\n * Params mirror `userIdsSelector` (its sibling), so an author writes the same\n * `({ currentObject }) => …` form used by the operation-variant `enabledCondition`.\n *\n * @example `({ currentObject }) => currentObject.status === OrganizationMemberStatus.INVITED`\n */\n condition: z.custom<\n (params: {\n currentObject: any;\n inputDto: any;\n objectContext: { parents: Record<string, any>; children: Record<string, any> };\n initiatorIds: { userId?: string; organizationId?: string; applicationId?: string };\n }) => boolean\n >((val) => typeof val === 'function').optional(),\n /**\n * Custom notification reference for disambiguating multiple notifications of the same type.\n *\n * REQUIRED when:\n * - There are 2+ notifications with the same target in the same operation\n * - Example: 2+ USERS_CUSTOM notifications (one for creator, one for assignee)\n *\n * This allows distinguishing between multiple similar notifications\n * in the same operation (e.g., \"notify-creator\" vs \"notify-assignee\").\n *\n * Format: lowercase-kebab-case (e.g., \"notify-creator\", \"task-assigned\")\n * Will be appended to auto-generated identifier for notification/template lookup.\n */\n customNotificationRef: z.string().min(1).optional(),\n /**\n * Deliver this notification even when the recipient has switched its channel OFF.\n *\n * Only meaningful on a target that is suppressible in the first place — `USER_SELF` and\n * `USERS_CUSTOM` (see `userNotificationTargetIsSuppressibleByRecipientPreference`). On a\n * role-addressed target the preference never applied, so this flag changes nothing there.\n *\n * The narrow escape, for the case the target axis cannot express: a message that reaches a\n * person about their OWN affairs and is nevertheless a security notice they should not be able\n * to silence — a credential minted or destroyed on their account, an authentication factor\n * changed. Those are the alerts a person most needs when they did NOT perform the action.\n *\n * Author it with the reason at the site. It is deliberately not a default and deliberately not\n * derived: \"is this alert one a compromised account's owner must still receive?\" is a judgement\n * about the message, and inventing a rule for it would be a rule nobody could check.\n */\n alwaysDeliver: z.boolean().optional(),\n});\n\n// --- Channel-specific variants ---\n\n/** EMAIL channel — template-oriented (email-specific fields handled by email templates) */\nexport const UserNotificationDefinition_EmailSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.EMAIL),\n /**\n * Deliver this email to a raw address read from the current object, rather than\n * to a resolved platform user.\n *\n * When set, the recipient is `currentObject[recipientEmailField]` (a top-level\n * string field — e.g. `'email'`). The dispatcher sends a single email directly to\n * that address using the application's default locale, BYPASSING the `userId`-based\n * `target` resolution entirely.\n *\n * This is the framework's mechanism for notifying a party who is **not (yet) a\n * platform user** — an organization-invitation invitee, an inbound lead — for whom\n * no `userId` exists. Without it, the only email recipients the dispatcher can\n * resolve are members/initiators by id (`fetchUserContext(userId).email`).\n *\n * When this is set, `target` no longer selects the recipient; it is retained only\n * to (a) classify the notification, (b) drive the email `templateRef` derivation,\n * and (c) route the dashboard URL (admin app vs main app). Choose a `target` whose\n * dashboard-routing class matches the recipient (e.g. `USER_SELF` for a main-app\n * link).\n *\n * All other context is built identically to a user-targeted email (organization\n * name, initiator name, and the token `acceptUrl` enricher), so token-bearing\n * emails such as invitations still carry their `<frontendBase><emailLinkPath>?token=`\n * acceptance link.\n */\n recipientEmailField: z.string().trim().min(1).optional(),\n});\n\n/** WEBSOCKET channel — pure WebSocket push (no frontend display) */\nexport const UserNotificationDefinition_WebSocketSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.WEBSOCKET),\n});\n\n/**\n * FRONT_END_SUCCESS channel — frontend display with optional celebration + nextStep.\n *\n * `celebration`: Tells the frontend to render richer feedback than a simple toast.\n * `nextStep`: Suggested next action rendered as a CTA button in the toast or celebration overlay.\n *\n * Example usage in operation config:\n * ```\n * userNotifications: [{\n * identifier: 'first-document-created',\n * target: CoreUserNotificationTarget.USER_SELF,\n * channel: CoreUserNotificationChannel.FRONT_END_SUCCESS,\n * primaryScope: ResourcePrimaryScope.ORGANIZATIONS,\n * celebration: { mode: CelebrationDisplayMode.OVERLAY },\n * nextStep: { operationRef: 'DOCUMENTS.LIST.default', type: NotificationNextStepType.OPERATION },\n * }]\n * ```\n */\nexport const UserNotificationDefinition_FrontEndSuccessSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.FRONT_END_SUCCESS),\n /** Celebration display hints — triggers richer frontend feedback (overlay/confetti/lottie) */\n celebration: FrontendDisplayHintsCelebrationSchema.optional(),\n /** Suggested next action after operation completes — rendered as CTA in toast or celebration */\n nextStep: FrontendDisplayHintsNextStepSchema.optional(),\n});\n\n/** SMS channel — not yet implemented, plain base */\nexport const UserNotificationDefinition_SMSSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.SMS),\n});\n\n/** PUSH channel — not yet implemented, plain base */\nexport const UserNotificationDefinition_PushSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.PUSH),\n});\n\n/** Catch-all for custom channels (any string not matching core channels) */\nexport const UserNotificationDefinition_CustomChannelSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.string().min(1),\n});\n\n/**\n * Final union of all notification channel variants.\n * Uses z.union() (not z.discriminatedUnion) because the catch-all custom channel\n * uses z.string() which is not a literal discriminant.\n * Order matters: specific literals are tried before the catch-all string.\n */\nexport const UserNotificationDefinitionSchema = z.union([\n UserNotificationDefinition_EmailSchema,\n UserNotificationDefinition_WebSocketSchema,\n UserNotificationDefinition_FrontEndSuccessSchema,\n UserNotificationDefinition_SMSSchema,\n UserNotificationDefinition_PushSchema,\n UserNotificationDefinition_CustomChannelSchema,\n])\n /**\n * `userRoles` on a target that never reads it is a filter that silently does nothing (#495).\n *\n * Refined on the UNION rather than on the base object, deliberately: the base is `.extend()`ed by\n * six channel variants, and a refinement there would be dropped by every one of them — the shape of\n * bug this refinement exists to prevent.\n */\n .superRefine((notification, context) => {\n if (notification.userRoles !== undefined && !userNotificationTargetReadsUserRoles(notification.target)) {\n context.addIssue({\n code: 'custom',\n path: ['userRoles'],\n message: `userRoles is only read for a role-scoped target and would be inert on \"${notification.target}\". `\n + 'It selects WHICH roles a role-scoped target reaches; it does not filter the recipients of any other '\n + 'target. Remove it, or address the notification to a role-scoped target.',\n });\n }\n });\nexport type UserNotificationDefinition = z.infer<typeof UserNotificationDefinitionSchema>;\n/** @wildo_source:part:end saas.models.notifications.user-notification-definition */\n\n/**\n * M2M Notification Channels\n */\n\n\n\nexport enum M2MNotificationLevel {\n INFO = 'info',\n SUCCESS = 'success',\n ERROR = 'error',\n }\n\nexport enum CoreM2MNotificationChannel {\n WEBHOOK_ORGANIZATION = 'webhook_organization',\n WEBHOOK_APPLICATION = 'webhook_application',\n}\n\nexport const M2MNotificationChannelSchema = z.union([\n z.enum(CoreM2MNotificationChannel),\n z.string().min(1)\n]);\n\nexport const M2MNotificationDefinitionSchema = z.object({\n identifier: z.string().min(1),\n channel: z.string(),\n level: z.enum(M2MNotificationLevel).optional(),\n});\nexport type M2MNotificationDefinition = z.infer<typeof M2MNotificationDefinitionSchema>;\n\n/**\n * Inferred types (interfaces defined above for isolatedDeclarations compatibility)\n */\n\nexport type UserNotificationTarget = string;\nexport type NotificationChannel = string;\nexport type M2MNotificationChannel = string;\n"]}
1
+ {"version":3,"file":"notifications.shared.schemas.js","sourceRoot":"","sources":["../../../../src/notifications/notifications.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport { ResourcePrimaryScope } from \"../resources/resources.shared.schemas\";\n\n\nexport enum CoreUserNotificationChannel {\n EMAIL = 'email',\n SMS = 'sms',\n PUSH = 'push',\n WEBSOCKET = 'websocket',\n FRONT_END_SUCCESS = 'front_end_success',\n}\n\nexport enum UserNotificationLevel {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n\nexport const UserNotificationChannelSchema = z.union([\n z.enum(CoreUserNotificationChannel),\n z.string().min(1)\n]);\n\n\n/** @wildo_source:part:start saas.models.notifications.targets facet:layer:shared facet:audience:app-developer */\n/**\n * WHO a declared `userNotifications` entry reaches — and, on the EMAIL channel, whether the tenant\n * gets to redirect or silence it.\n *\n * Imported from `@wildo-ai/saas-models`. The target is the single most consequential field of a\n * notification declaration, because it decides three separate things at once:\n *\n * 1. **the recipients** — resolved per member below;\n * 2. **whether the recipient's own channel preference can suppress it** — only `USER_SELF` and\n * `USERS_CUSTOM` are suppressible, because only they reach a person about their own affairs. Every\n * other target reaches somebody because of a ROLE they hold, and a personal switch must not\n * silently disable a tenant's administrative monitoring. See\n * {@link userNotificationTargetIsSuppressibleByRecipientPreference};\n * 3. **whether `userRoles` is read at all** — see {@link userNotificationTargetReadsUserRoles}. On the\n * two tenant-wide targets the field is REFUSED rather than ignored, because \"everyone in the\n * tenant\" is not a set a role list may narrow.\n *\n * ## Who each target resolves to\n *\n * | target | recipients |\n * |---|---|\n * | `USER_SELF` | the initiator of the operation |\n * | `USERS_CUSTOM` | whatever your `userIdsSelector` returns. Without that function the target resolves nobody |\n * | `ORGANIZATION`, `ORGANIZATION_USERS` | every member of the initiator's tenant. `userRoles` is refused here |\n * | `ORGANIZATION_BILLING`, `ORGANIZATION_SECURITY`, `ORGANIZATION_USER_MANAGEMENT`, `ORGANIZATION_ADMINISTRATIVE` | members of the tenant holding `ORG_OWNER` or `ORG_ADMIN`, unless `userRoles` names a different set |\n * | `APPLICATION_BILLING` | holders of `APP_ADMIN_BILLING_MANAGER` or `APP_ADMIN_SUPER_ADMIN`, application-wide |\n * | `APPLICATION_ADMIN_VIEWER` | holders of `APP_ADMIN_VIEWER` or `APP_ADMIN_SUPER_ADMIN` |\n * | every other `APPLICATION_*` | holders of `APP_ADMIN_SUPER_ADMIN` |\n * | `INBOUND_CONTACT` | nobody, deliberately. The recipient is not a user of your application, so this target is only usable with an EMAIL notification declaring `recipientEmailField` |\n *\n * A target the dispatcher has no rule for resolves nobody and logs a warning — so a custom target\n * string (the schema accepts one) sends nothing on the email and websocket paths.\n *\n * ## The tenant can redirect or silence an ORGANIZATION-flavoured EMAIL, and you cannot override it\n *\n * Each tenant owns a notification-settings record with a per-category switch and a per-category\n * address, and the category is DERIVED from the target — `ORGANIZATION_BILLING` to `billing`,\n * `ORGANIZATION_SECURITY` to `security`, and so on. Two consequences to design around:\n *\n * - **a configured address REPLACES the member fan-out**, it does not add to it. A tenant routing\n * security mail to a monitoring address is saying where that mail goes, not asking for a copy;\n * - **the category switch suppresses the notification entirely**, whether or not an address is\n * configured. A tenant that turns billing notifications off means it for the members too.\n *\n * `ORGANIZATION` belongs to no category, so no category switch silences it; the tenant-wide\n * `defaultEmailAddress` can redirect it. `ORGANIZATION_USERS` always keeps its member fan-out:\n * neither a category switch nor the tenant-wide default address redirects or suppresses that target.\n *\n * This applies to EMAIL only. The websocket and in-product paths always fan out to the members.\n */\nexport enum CoreUserNotificationTarget {\n APPLICATION_ADMINISTRATOR = 'application_administrator',\n APPLICATION_BILLING = 'application_billing',\n APPLICATION_USER_MANAGEMENT = 'application_user_management',\n APPLICATION_SECURITY = 'application_security',\n APPLICATION_SUPPORT = 'application_support',\n APPLICATION_OTHER = 'application_other',\n APPLICATION_ADMIN_VIEWER = 'application_admin_viewer',\n ORGANIZATION = 'organization',\n ORGANIZATION_USERS = 'organization_users',\n ORGANIZATION_BILLING = 'organization_billing',\n ORGANIZATION_USER_MANAGEMENT = 'organization_user_management',\n ORGANIZATION_ADMINISTRATIVE = 'organization_administrative',\n ORGANIZATION_SECURITY = 'organization_security',\n USER_SELF = 'user_self',\n USERS_CUSTOM = 'users_custom',\n INBOUND_CONTACT = 'inbound_contact',\n}\n\n/**\n * Whether a notification aimed at this target may be SUPPRESSED by the recipient's own channel\n * preference (`UserPreferences.notifications.email` / `.sms` / `.push` / `.inApp`).\n *\n * DERIVED from the target rather than declared per notification, because the target already carries\n * the distinction and a second field would be one more thing to get wrong on 87 declarations.\n *\n * `USER_SELF` and `USERS_CUSTOM` reach a PERSON about their own affairs — those are the messages a\n * person is choosing about when they turn a channel off, and honouring that choice is the whole\n * point of the switch existing (#409).\n *\n * Every other target reaches somebody because of a ROLE they hold: an application administrator, an\n * organization's security or billing contact. A personal channel preference must not silently\n * disable a tenant's or an application's administrative monitoring — the recipient did not choose to\n * receive those as a person and cannot switch them off as one. A tenant that wants role mail\n * elsewhere routes it, which is what the organization notification-settings record is for.\n *\n * Nothing here reaches account RECOVERY. Password reset, magic link and email verification are sent\n * directly through the email service and never pass through the notification dispatcher, so no\n * channel preference can lock a person out of their own account. That measurement is what made\n * suppression safe to implement at all.\n */\nexport function userNotificationTargetIsSuppressibleByRecipientPreference(target: string): boolean {\n return target === CoreUserNotificationTarget.USER_SELF\n || target === CoreUserNotificationTarget.USERS_CUSTOM;\n}\n\n/**\n * The targets on which `userRoles` MEANS anything (#495).\n *\n * `userRoles` is not a recipient FILTER, which is how its name reads and how it has been authored. It\n * is the role-SELECTION override for the eleven role-scoped targets: `mapOrganizationTargetToRoles`\n * and `mapApplicationTargetToRoles` take it in place of their per-target default, and nothing else\n * anywhere reads it.\n *\n * On every other target it is inert, and inert in three different ways that all looked the same to an\n * author: `USER_SELF` addresses the initiator, `USERS_CUSTOM` goes straight to `userIdsSelector`, and\n * `ORGANIZATION`/`ORGANIZATION_USERS` mean everyone in the tenant by definition. Declaring it there\n * is a filter that silently does nothing, which is what the refinement below now refuses.\n *\n * Scoped as a POSITIVE list of targets that read it rather than a rule about one target, because the\n * defect was never specific to `USERS_CUSTOM` — refusing it there alone would leave the other three\n * free to mislead the next author in exactly the same way.\n */\nexport function userNotificationTargetReadsUserRoles(target: string): boolean {\n return target === CoreUserNotificationTarget.ORGANIZATION_BILLING\n || target === CoreUserNotificationTarget.ORGANIZATION_USER_MANAGEMENT\n || target === CoreUserNotificationTarget.ORGANIZATION_ADMINISTRATIVE\n || target === CoreUserNotificationTarget.ORGANIZATION_SECURITY\n || target === CoreUserNotificationTarget.APPLICATION_ADMINISTRATOR\n || target === CoreUserNotificationTarget.APPLICATION_BILLING\n || target === CoreUserNotificationTarget.APPLICATION_USER_MANAGEMENT\n || target === CoreUserNotificationTarget.APPLICATION_SECURITY\n || target === CoreUserNotificationTarget.APPLICATION_SUPPORT\n || target === CoreUserNotificationTarget.APPLICATION_OTHER\n || target === CoreUserNotificationTarget.APPLICATION_ADMIN_VIEWER;\n}\n/** @wildo_source:part:end saas.models.notifications.targets */\n\nexport const UserNotificationTargetSchema = z.union([\n z.enum(CoreUserNotificationTarget),\n z.string().min(1)\n]);\n\n\n\n// =====================================================\n// Celebration & Next-Step Enums (Phase 1a)\n// =====================================================\n\n/** @wildo_source:part:start saas.models.milestone-celebration */\n/**\n * How the frontend renders a celebration after a successful operation — the value a milestone's\n * `celebrationMode` takes. Import from `@wildo-ai/saas-models`.\n * - CONFETTI: a lightweight, non-blocking confetti burst over the page. Decorative only: no message,\n * no next step, nothing to dismiss.\n * - OVERLAY: a dialog carrying the celebration animation, the milestone's title, the message, an\n * optional next-step action and a dismiss.\n * - LOTTIE: in the framework's DEFAULT celebration overlay, identical to OVERLAY — the same dialog\n * and the same animation. It is the mode to use when the application's OWN celebration-overlay\n * preset draws something distinct for it, such as a per-milestone animation chosen from the\n * notification identifier the preset receives.\n */\nexport enum CelebrationDisplayMode {\n OVERLAY = 'overlay',\n CONFETTI = 'confetti',\n LOTTIE = 'lottie',\n}\n/** @wildo_source:part:end saas.models.milestone-celebration */\n\n/**\n * Type of next-step suggestion attached to a notification.\n * - OPERATION: Navigate to and/or trigger a resource operation\n * - URL: Navigate to an arbitrary URL (internal or external)\n */\nexport enum NotificationNextStepType {\n OPERATION = 'operation',\n URL = 'url',\n}\n\n// =====================================================\n// Frontend Display Hints Schema (reusable)\n// =====================================================\n\nexport const FrontendDisplayHintsCelebrationSchema = z.object({\n mode: z.enum(CelebrationDisplayMode).default(CelebrationDisplayMode.OVERLAY),\n});\nexport type FrontendDisplayHintsCelebration = z.infer<typeof FrontendDisplayHintsCelebrationSchema>;\n\nexport const FrontendDisplayHintsNextStepSchema = z.object({\n /** Operation path (e.g., \"TASKS.CREATE.default\") or URL */\n operationRef: z.string(),\n type: z.enum(NotificationNextStepType).default(NotificationNextStepType.OPERATION),\n});\nexport type FrontendDisplayHintsNextStep = z.infer<typeof FrontendDisplayHintsNextStepSchema>;\n\nexport const FrontendDisplayHintsSchema = z.object({\n celebration: FrontendDisplayHintsCelebrationSchema.optional(),\n nextStep: FrontendDisplayHintsNextStepSchema.optional(),\n});\nexport type FrontendDisplayHints = z.infer<typeof FrontendDisplayHintsSchema>;\n\n// =====================================================\n// UserNotificationDefinition — Discriminated Union on `channel`\n// =====================================================\n\n/**\n * @wildo_source:part:start saas.models.notifications.user-notification-definition facet:layer:shared facet:audience:app-developer\n *\n * One notification an operation sends. Declared as `userNotifications` on a resource operation, in\n * the resource config — an array, so one operation may send several.\n *\n * ```ts\n * userNotifications: [\n * { target: CoreUserNotificationTarget.USER_SELF, channel: CoreUserNotificationChannel.EMAIL,\n * condition: ({ currentObject }) => currentObject.status === 'INVITED' },\n * { target: CoreUserNotificationTarget.ORGANIZATION_USERS, channel: CoreUserNotificationChannel.WEBSOCKET },\n * ]\n * ```\n *\n * ## What actually sends\n *\n * `EMAIL`, `WEBSOCKET` and `FRONT_END_SUCCESS` deliver. **`SMS` and `PUSH` are declaration vocabulary\n * only** — the dispatcher's branch for them logs and returns without sending. The framework does have\n * an SMS transport (authentication's one-time codes use it) and this dispatcher is not wired to it,\n * so declaring an SMS notification is inert rather than pending.\n *\n * For an EMAIL, create the template directory the reference names. The startup validator resolves\n * every declared reference through the configured locale chain before the application takes traffic,\n * and prints the exact directory to create when one is missing.\n *\n * ## The recipient's preferences are honoured, and three things override them\n *\n * A recipient who has switched a channel off does not receive it. Three deliberate exceptions:\n *\n * - a ROLE-addressed target — the recipient did not choose to receive it as a person;\n * - `alwaysDeliver: true` — declare it on a security notice a compromised account's owner must still\n * receive;\n * - a recipient with NO preferences row at all, because preferences are created lazily and a missing\n * record must never read as \"everything off\".\n *\n * The `inApp` switch suppresses optional personal message presentation (toast, centre and celebration),\n * not the socket frame. Declarative frames carry target and alwaysDeliver to the frontend gate;\n * required and responsibility-addressed messages remain visible. Local operation feedback and\n * resource refresh events are independent of this personal-message preference.\n *\n * ## `condition` gates the notification, not the operation\n *\n * The predicate goes on the notification. It decides only whether this one message is sent; refusing\n * the CALL is a separate declaration on the operation variant, and the two are independent — a\n * variant can be enabled while its notification is gated off, and the reverse. The form deliberately\n * matches an operation variant's `enabledCondition` so both read the same way.\n *\n * ## Emailing somebody who is not a user\n *\n * `recipientEmailField` names a TOP-LEVEL field on the record holding the address. There is no\n * recipient, so there are no recipient preferences and no recipient language: the message goes out in\n * the application's default locale. A nested address cannot be named, nor a list — the path sends\n * exactly one message per notification. Pair it with a `condition` when the same operation also\n * serves rows whose address belongs to somebody who must not be written to.\n *\n * Base fields shared by all user notification channel variants.\n */\nexport const UserNotificationDefinition_BaseSchema = z.object({\n identifier: z.string().min(1),\n target: z.string(),\n level: z.enum(UserNotificationLevel).optional(),\n primaryScope: z.enum(ResourcePrimaryScope),\n /**\n * Role-SELECTION override for a role-scoped target — NOT a recipient filter. See\n * {@link userNotificationTargetReadsUserRoles}, which is also what refuses it elsewhere.\n */\n userRoles: z.array(z.string()).optional(),\n userIdsSelector: z.custom<\n (params: {\n currentObject: any;\n inputDto: any;\n objectContext: { parents: Record<string, any>; children: Record<string, any> };\n initiatorIds: { userId?: string; organizationId?: string; applicationId?: string };\n }) => string[]\n >((val) => typeof val === 'function').optional(),\n /**\n * Optional gate — dispatch this notification ONLY when the predicate returns truthy\n * against the post-operation context. Absent = always dispatches (backward compatible).\n * Evaluated per-notification BEFORE channel resolution, so it uniformly gates every\n * channel (email/websocket/front-end-success/…).\n *\n * The canonical use is a POLYMORPHIC operation whose notification must fire for only one\n * branch: the org-member CREATE op serves both INVITE (`status` INVITED — send the invite\n * email to `userEmail`) and DIRECT-ADD (`status` ACTIVE — founder / SSO-JIT / SCIM, whose\n * `userEmail` is the member's OWN address, so an \"you've been invited\" email is a\n * misdelivery). Keying on `currentObject.status === INVITED` fires the invite email for\n * invites only.\n *\n * Params mirror `userIdsSelector` (its sibling), so an author writes the same\n * `({ currentObject }) => …` form used by the operation-variant `enabledCondition`.\n *\n * @example `({ currentObject }) => currentObject.status === OrganizationMemberStatus.INVITED`\n */\n condition: z.custom<\n (params: {\n currentObject: any;\n inputDto: any;\n objectContext: { parents: Record<string, any>; children: Record<string, any> };\n initiatorIds: { userId?: string; organizationId?: string; applicationId?: string };\n }) => boolean\n >((val) => typeof val === 'function').optional(),\n /**\n * Custom notification reference for disambiguating multiple notifications of the same type.\n *\n * REQUIRED when:\n * - There are 2+ notifications with the same target in the same operation\n * - Example: 2+ USERS_CUSTOM notifications (one for creator, one for assignee)\n *\n * This allows distinguishing between multiple similar notifications\n * in the same operation (e.g., \"notify-creator\" vs \"notify-assignee\").\n *\n * Format: lowercase-kebab-case (e.g., \"notify-creator\", \"task-assigned\")\n * Will be appended to auto-generated identifier for notification/template lookup.\n */\n customNotificationRef: z.string().min(1).optional(),\n /**\n * Deliver this notification even when the recipient has switched its channel OFF.\n *\n * Only meaningful on a target that is suppressible in the first place — `USER_SELF` and\n * `USERS_CUSTOM` (see `userNotificationTargetIsSuppressibleByRecipientPreference`). On a\n * role-addressed target the preference never applied, so this flag changes nothing there.\n *\n * The narrow escape, for the case the target axis cannot express: a message that reaches a\n * person about their OWN affairs and is nevertheless a security notice they should not be able\n * to silence — a credential minted or destroyed on their account, an authentication factor\n * changed. Those are the alerts a person most needs when they did NOT perform the action.\n *\n * Author it with the reason at the site. It is deliberately not a default and deliberately not\n * derived: \"is this alert one a compromised account's owner must still receive?\" is a judgement\n * about the message, and inventing a rule for it would be a rule nobody could check.\n */\n alwaysDeliver: z.boolean().optional(),\n});\n\n// --- Channel-specific variants ---\n\n/** EMAIL channel — template-oriented (email-specific fields handled by email templates) */\nexport const UserNotificationDefinition_EmailSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.EMAIL),\n /**\n * Deliver this email to a raw address read from the current object, rather than\n * to a resolved platform user.\n *\n * When set, the recipient is `currentObject[recipientEmailField]` (a top-level\n * string field — e.g. `'email'`). The dispatcher sends a single email directly to\n * that address using the application's default locale, BYPASSING the `userId`-based\n * `target` resolution entirely.\n *\n * This is the framework's mechanism for notifying a party who is **not (yet) a\n * platform user** — an organization-invitation invitee, an inbound lead — for whom\n * no `userId` exists. Without it, the only email recipients the dispatcher can\n * resolve are members/initiators by id (`fetchUserContext(userId).email`).\n *\n * When this is set, `target` no longer selects the recipient; it is retained only\n * to (a) classify the notification, (b) drive the email `templateRef` derivation,\n * and (c) route the dashboard URL (admin app vs main app). Choose a `target` whose\n * dashboard-routing class matches the recipient (e.g. `USER_SELF` for a main-app\n * link).\n *\n * All other context is built identically to a user-targeted email (organization\n * name, initiator name, and the token `acceptUrl` enricher), so token-bearing\n * emails such as invitations still carry their `<frontendBase><emailLinkPath>?token=`\n * acceptance link.\n */\n recipientEmailField: z.string().trim().min(1).optional(),\n});\n\n/** WEBSOCKET channel — pure WebSocket push (no frontend display) */\nexport const UserNotificationDefinition_WebSocketSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.WEBSOCKET),\n});\n\n/**\n * FRONT_END_SUCCESS channel — frontend display with optional celebration + nextStep.\n *\n * `celebration`: Tells the frontend to render richer feedback than a simple toast.\n * `nextStep`: Suggested next action rendered as a CTA button in the toast or celebration overlay.\n *\n * Example usage in operation config:\n * ```\n * userNotifications: [{\n * identifier: 'first-document-created',\n * target: CoreUserNotificationTarget.USER_SELF,\n * channel: CoreUserNotificationChannel.FRONT_END_SUCCESS,\n * primaryScope: ResourcePrimaryScope.ORGANIZATIONS,\n * celebration: { mode: CelebrationDisplayMode.OVERLAY },\n * nextStep: { operationRef: 'DOCUMENTS.LIST.default', type: NotificationNextStepType.OPERATION },\n * }]\n * ```\n */\nexport const UserNotificationDefinition_FrontEndSuccessSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.FRONT_END_SUCCESS),\n /** Celebration display hints — triggers richer frontend feedback (overlay/confetti/lottie) */\n celebration: FrontendDisplayHintsCelebrationSchema.optional(),\n /** Suggested next action after operation completes — rendered as CTA in toast or celebration */\n nextStep: FrontendDisplayHintsNextStepSchema.optional(),\n});\n\n/** SMS channel — not yet implemented, plain base */\nexport const UserNotificationDefinition_SMSSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.SMS),\n});\n\n/** PUSH channel — not yet implemented, plain base */\nexport const UserNotificationDefinition_PushSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.literal(CoreUserNotificationChannel.PUSH),\n});\n\n/** Catch-all for custom channels (any string not matching core channels) */\nexport const UserNotificationDefinition_CustomChannelSchema = UserNotificationDefinition_BaseSchema.extend({\n channel: z.string().min(1),\n});\n\n/**\n * Final union of all notification channel variants.\n * Uses z.union() (not z.discriminatedUnion) because the catch-all custom channel\n * uses z.string() which is not a literal discriminant.\n * Order matters: specific literals are tried before the catch-all string.\n */\nexport const UserNotificationDefinitionSchema = z.union([\n UserNotificationDefinition_EmailSchema,\n UserNotificationDefinition_WebSocketSchema,\n UserNotificationDefinition_FrontEndSuccessSchema,\n UserNotificationDefinition_SMSSchema,\n UserNotificationDefinition_PushSchema,\n UserNotificationDefinition_CustomChannelSchema,\n])\n /**\n * `userRoles` on a target that never reads it is a filter that silently does nothing (#495).\n *\n * Refined on the UNION rather than on the base object, deliberately: the base is `.extend()`ed by\n * six channel variants, and a refinement there would be dropped by every one of them — the shape of\n * bug this refinement exists to prevent.\n */\n .superRefine((notification, context) => {\n if (notification.userRoles !== undefined && !userNotificationTargetReadsUserRoles(notification.target)) {\n context.addIssue({\n code: 'custom',\n path: ['userRoles'],\n message: `userRoles is only read for a role-scoped target and would be inert on \"${notification.target}\". `\n + 'It selects WHICH roles a role-scoped target reaches; it does not filter the recipients of any other '\n + 'target. Remove it, or address the notification to a role-scoped target.',\n });\n }\n });\nexport type UserNotificationDefinition = z.infer<typeof UserNotificationDefinitionSchema>;\n/** @wildo_source:part:end saas.models.notifications.user-notification-definition */\n\n/**\n * M2M Notification Channels\n */\n\n\n\nexport enum M2MNotificationLevel {\n INFO = 'info',\n SUCCESS = 'success',\n ERROR = 'error',\n }\n\nexport enum CoreM2MNotificationChannel {\n WEBHOOK_ORGANIZATION = 'webhook_organization',\n WEBHOOK_APPLICATION = 'webhook_application',\n}\n\nexport const M2MNotificationChannelSchema = z.union([\n z.enum(CoreM2MNotificationChannel),\n z.string().min(1)\n]);\n\nexport const M2MNotificationDefinitionSchema = z.object({\n identifier: z.string().min(1),\n channel: z.string(),\n level: z.enum(M2MNotificationLevel).optional(),\n});\nexport type M2MNotificationDefinition = z.infer<typeof M2MNotificationDefinitionSchema>;\n\n/**\n * Inferred types (interfaces defined above for isolatedDeclarations compatibility)\n */\n\nexport type UserNotificationTarget = string;\nexport type NotificationChannel = string;\nexport type M2MNotificationChannel = string;\n"]}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * The application-owner organization — refusal codes and the operator promotion contract (#1054).
3
+ *
4
+ * An application whose `organizationTypes` declare `ownsApplication` on one type has an OWNER
5
+ * ORGANIZATION: the single organization of that type, the one that operates the application. Its
6
+ * singularity is protected at three moments — it cannot be created through an ordinary door, it
7
+ * cannot be promoted into while one exists, and it cannot be deleted — and every refusal carries a
8
+ * stable, client-branchable code declared here.
9
+ *
10
+ * assurance-control: WILDO.ACCESS.ADMINISTRATIVE_CONTINUITY — the organization that operates the
11
+ * application is singular, and the doors that could create a second one, or destroy the only one,
12
+ * refuse rather than leave the application with no operator.
13
+ *
14
+ * ## Why these codes are a shared enum rather than a `reason` string
15
+ *
16
+ * The refusals are `ErrorType.CONFLICT`, and `sanitizeErrorForClient` keeps only an ALLOWLIST of
17
+ * context keys on a CONFLICT — `reason` is not on it. The backend-side `reason` stays (it is the log
18
+ * and audit identity, richer than the wire and free to stay so), but a CLIENT wanting to tell these
19
+ * apart from any other 409 has only the stable `code` key, sourced from an enum in
20
+ * `@wildo-ai/saas-models` so backend and frontend share one definition.
21
+ *
22
+ * This is the trap `organizationMembers.grantOwnership` fell into and the reason the allowlist's own
23
+ * documented rule exists: its two CONFLICTs carry only `reason`, so they are invisible to every
24
+ * client and a caller must regex-parse a message that is free to be reworded.
25
+ *
26
+ * @see AdministrativeContinuityErrorCode — the sibling enum for the two authority floors. Distinct
27
+ * populations: those protect a scope's ADMINISTRATORS, these protect the identity of the
28
+ * organization that owns the application itself.
29
+ */
30
+ /** @wildo_source:part:start saas.models.organizations.application-owner-codes facet:layer:shared facet:audience:app-developer */
31
+ /**
32
+ * Why a write against the application-owner organization was refused.
33
+ *
34
+ * Imported from `@wildo-ai/saas-models`. A closed vocabulary with one named runtime source: the
35
+ * refusals, the resource specification's error scenarios and any client branch all derive from this
36
+ * enum rather than re-typing the literals.
37
+ *
38
+ * ## Where you meet it
39
+ *
40
+ * Each refusal is HTTP **409 CONFLICT** and the value rides under the response's stable `code` key.
41
+ * Branch on `code`, never on the message — the message is a human remedy and is free to be reworded,
42
+ * and every other field a backend might have used to carry the reason is stripped from a CONFLICT
43
+ * before it reaches a client.
44
+ *
45
+ * `409` and not `403`/`400` in every case, deliberately: the caller IS authorised and the payload IS
46
+ * valid — the type named is declared, the organization addressed exists. What forbids the write is a
47
+ * fact about the APPLICATION: it is operated by exactly one organization, and that singularity is what
48
+ * each of these writes would break.
49
+ *
50
+ * `403` was the alternative for the creation refusal and is wrong twice over. It would say the caller
51
+ * lacks authority, which is false — a super-administrator is refused by the same rule as a registrant,
52
+ * because the door is the thing that is shut and not the principal. And `sanitizeErrorForClient`
53
+ * strips the whole context from an AUTHORIZATION error, so the `code` below would never reach a
54
+ * client and this enum would be decorative.
55
+ */
56
+ export declare enum ApplicationOwnerOrganizationErrorCode {
57
+ /**
58
+ * The application already has an organization of the type that declares `ownsApplication`, and this
59
+ * write would produce a second one.
60
+ *
61
+ * An application is operated by ONE organization; two would make every question that resolves
62
+ * through the marker — whose rows these are, whose credentials were spent — a choice nobody
63
+ * declared. Remedy: use the existing owner organization. If the existing one is the wrong one, that
64
+ * is a data-repair question rather than a creation question, and there is no operation that
65
+ * demotes an owner.
66
+ */
67
+ APPLICATION_OWNER_ORGANIZATION_EXISTS = "APPLICATION_OWNER_ORGANIZATION_EXISTS",
68
+ /**
69
+ * The organization is the application's owner and may not be put on the deletion path.
70
+ *
71
+ * Refused for `requestDeletion` (both variants), for the purge `delete` (both variants), and by the
72
+ * purge batch. Everything the application owns as an operator — the rows its systems of record
73
+ * project, the pipelines that load them — belongs to this organization, so purging it strands them
74
+ * with no tenant and nothing that could re-create one: `Organization.type` is creation-time
75
+ * identity, and there is no door that mints a second owner.
76
+ *
77
+ * SUSPENSION is deliberately NOT refused. Halting the owner organization is incident response, and
78
+ * every read through it then refuses at the ordinary status gate — the same asymmetry the
79
+ * organization-owner floor is built on: a suspended tenant is recoverable, a purged one is not, so
80
+ * the refusal belongs on the irreversible act only.
81
+ *
82
+ * Remedy: if the application is genuinely being decommissioned, remove the `ownsApplication` marker
83
+ * from the declaration first — the refusal is about what the application currently says it needs.
84
+ */
85
+ OWNER_ORGANIZATION_CANNOT_BE_DELETED = "OWNER_ORGANIZATION_CANNOT_BE_DELETED",
86
+ /**
87
+ * An organization of the owner type cannot be created through this door.
88
+ *
89
+ * The refusal is by DOOR, not by count: **no** service-tier `CREATE` may produce the owner
90
+ * organization, whether or not one exists yet. Two doors make one — the platform's bootstrap, which
91
+ * seeds the first administrator's organization when the application is initialised, and
92
+ * `organizations.promoteToOwnerOrganization`, which re-types an existing organization under audit.
93
+ *
94
+ * Counting instead would have left a real hole: the marked type declares no `creationPolicy` (the
95
+ * configuration refuses one), the default `CREATE` variant is open to `APP_USER`, and the creation
96
+ * prefix restricts only types that HAVE a creation policy. So before the bootstrap ran, any
97
+ * registrant could have created the owner organization and become its founding owner.
98
+ *
99
+ * Remedy: create an ordinary organization of a non-owner type, or ask a super-administrator to
100
+ * promote an existing organization.
101
+ */
102
+ OWNER_ORGANIZATION_TYPE_NOT_CREATABLE = "OWNER_ORGANIZATION_TYPE_NOT_CREATABLE",
103
+ /**
104
+ * A promotion was asked for and the declaration does not name exactly ONE owner organization type, so
105
+ * there is nothing unambiguous to promote INTO.
106
+ *
107
+ * Its own code rather than a reuse of the three above, because the remedy is in a different place:
108
+ * those are about which ROWS exist, this is about what the DECLARATION says.
109
+ *
110
+ * ONE code, two opposite remedies, and the refusal message says which one you hit: either NO type
111
+ * carries `ownsApplication` (declare one) or SEVERAL do (remove the marker from all but one). They
112
+ * share a code because a client branches identically on both — the declaration is wrong and no
113
+ * promotion can proceed — while a human needs the distinction, which is what the message carries.
114
+ * Reporting the second as "no type declares it" would send an operator to add a third.
115
+ */
116
+ APPLICATION_DECLARES_NO_OWNER_ORGANIZATION_TYPE = "APPLICATION_DECLARES_NO_OWNER_ORGANIZATION_TYPE",
117
+ /**
118
+ * The organization cannot be promoted because the owner type would change what its members are or
119
+ * may hold — a dependent policy surface the promotion refuses rather than reconciles.
120
+ *
121
+ * Three mismatches carry this code, and the refusal names which one it hit and the exact values:
122
+ * the owner type grants fewer `userTypes` than the organization's current type (promoting would
123
+ * revoke a global grant from every member); a membership holds a role the owner type does not list
124
+ * in `availableOrgRoles`; or THIS organization is actively managed by a directory — the
125
+ * `DIRECTORY_PROVISIONING` feature is enabled for it and a live SCIM token exists — and the owner
126
+ * type does not declare `scimProvisioning`, so promoting would stop it being reconciled by its IdP.
127
+ *
128
+ * Note the third asks about the ORGANIZATION, not about the two type definitions.
129
+ * `scimProvisioning.enabled` on a type is only the application-wide MOUNT gate (the engine mounts the
130
+ * SCIM controllers when at least one declared type carries it) and says nothing about whether any one
131
+ * tenant is directory-managed — so comparing the two flags would refuse a promotion for every tenant
132
+ * with no directory wired at all, which is most of them.
133
+ *
134
+ * Why refuse rather than revoke-and-regrant: a promotion that changed what people can do while
135
+ * calling itself a re-typing is the kind of silent authority change an access review cannot see.
136
+ * The operation changes the tenant's identity and touches nobody's authority, and this refusal is
137
+ * what keeps that true.
138
+ *
139
+ * Remedy: widen the owner type in `organizationTypes` (add the user types, the roles, or the SCIM
140
+ * binding), run `wildo config reapply-declaration`, then retry.
141
+ */
142
+ OWNER_PROMOTION_INCOMPATIBLE_WITH_TARGET_TYPE = "OWNER_PROMOTION_INCOMPATIBLE_WITH_TARGET_TYPE"
143
+ }
144
+ /** @wildo_source:part:end saas.models.organizations.application-owner-codes */
145
+ //# sourceMappingURL=application-owner-organization.shared.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-owner-organization.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/organizations/application-owner-organization.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,iIAAiI;AACjI;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,oBAAY,qCAAqC;IAC/C;;;;;;;;;OASG;IACH,qCAAqC,0CAA0C;IAE/E;;;;;;;;;;;;;;;;OAgBG;IACH,oCAAoC,yCAAyC;IAE7E;;;;;;;;;;;;;;;OAeG;IACH,qCAAqC,0CAA0C;IAE/E;;;;;;;;;;;;OAYG;IACH,+CAA+C,oDAAoD;IAEnG;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,6CAA6C,kDAAkD;CAChG;AACD,+EAA+E"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * The application-owner organization — refusal codes and the operator promotion contract (#1054).
3
+ *
4
+ * An application whose `organizationTypes` declare `ownsApplication` on one type has an OWNER
5
+ * ORGANIZATION: the single organization of that type, the one that operates the application. Its
6
+ * singularity is protected at three moments — it cannot be created through an ordinary door, it
7
+ * cannot be promoted into while one exists, and it cannot be deleted — and every refusal carries a
8
+ * stable, client-branchable code declared here.
9
+ *
10
+ * assurance-control: WILDO.ACCESS.ADMINISTRATIVE_CONTINUITY — the organization that operates the
11
+ * application is singular, and the doors that could create a second one, or destroy the only one,
12
+ * refuse rather than leave the application with no operator.
13
+ *
14
+ * ## Why these codes are a shared enum rather than a `reason` string
15
+ *
16
+ * The refusals are `ErrorType.CONFLICT`, and `sanitizeErrorForClient` keeps only an ALLOWLIST of
17
+ * context keys on a CONFLICT — `reason` is not on it. The backend-side `reason` stays (it is the log
18
+ * and audit identity, richer than the wire and free to stay so), but a CLIENT wanting to tell these
19
+ * apart from any other 409 has only the stable `code` key, sourced from an enum in
20
+ * `@wildo-ai/saas-models` so backend and frontend share one definition.
21
+ *
22
+ * This is the trap `organizationMembers.grantOwnership` fell into and the reason the allowlist's own
23
+ * documented rule exists: its two CONFLICTs carry only `reason`, so they are invisible to every
24
+ * client and a caller must regex-parse a message that is free to be reworded.
25
+ *
26
+ * @see AdministrativeContinuityErrorCode — the sibling enum for the two authority floors. Distinct
27
+ * populations: those protect a scope's ADMINISTRATORS, these protect the identity of the
28
+ * organization that owns the application itself.
29
+ */
30
+ /** @wildo_source:part:start saas.models.organizations.application-owner-codes facet:layer:shared facet:audience:app-developer */
31
+ /**
32
+ * Why a write against the application-owner organization was refused.
33
+ *
34
+ * Imported from `@wildo-ai/saas-models`. A closed vocabulary with one named runtime source: the
35
+ * refusals, the resource specification's error scenarios and any client branch all derive from this
36
+ * enum rather than re-typing the literals.
37
+ *
38
+ * ## Where you meet it
39
+ *
40
+ * Each refusal is HTTP **409 CONFLICT** and the value rides under the response's stable `code` key.
41
+ * Branch on `code`, never on the message — the message is a human remedy and is free to be reworded,
42
+ * and every other field a backend might have used to carry the reason is stripped from a CONFLICT
43
+ * before it reaches a client.
44
+ *
45
+ * `409` and not `403`/`400` in every case, deliberately: the caller IS authorised and the payload IS
46
+ * valid — the type named is declared, the organization addressed exists. What forbids the write is a
47
+ * fact about the APPLICATION: it is operated by exactly one organization, and that singularity is what
48
+ * each of these writes would break.
49
+ *
50
+ * `403` was the alternative for the creation refusal and is wrong twice over. It would say the caller
51
+ * lacks authority, which is false — a super-administrator is refused by the same rule as a registrant,
52
+ * because the door is the thing that is shut and not the principal. And `sanitizeErrorForClient`
53
+ * strips the whole context from an AUTHORIZATION error, so the `code` below would never reach a
54
+ * client and this enum would be decorative.
55
+ */
56
+ export var ApplicationOwnerOrganizationErrorCode;
57
+ (function (ApplicationOwnerOrganizationErrorCode) {
58
+ /**
59
+ * The application already has an organization of the type that declares `ownsApplication`, and this
60
+ * write would produce a second one.
61
+ *
62
+ * An application is operated by ONE organization; two would make every question that resolves
63
+ * through the marker — whose rows these are, whose credentials were spent — a choice nobody
64
+ * declared. Remedy: use the existing owner organization. If the existing one is the wrong one, that
65
+ * is a data-repair question rather than a creation question, and there is no operation that
66
+ * demotes an owner.
67
+ */
68
+ ApplicationOwnerOrganizationErrorCode["APPLICATION_OWNER_ORGANIZATION_EXISTS"] = "APPLICATION_OWNER_ORGANIZATION_EXISTS";
69
+ /**
70
+ * The organization is the application's owner and may not be put on the deletion path.
71
+ *
72
+ * Refused for `requestDeletion` (both variants), for the purge `delete` (both variants), and by the
73
+ * purge batch. Everything the application owns as an operator — the rows its systems of record
74
+ * project, the pipelines that load them — belongs to this organization, so purging it strands them
75
+ * with no tenant and nothing that could re-create one: `Organization.type` is creation-time
76
+ * identity, and there is no door that mints a second owner.
77
+ *
78
+ * SUSPENSION is deliberately NOT refused. Halting the owner organization is incident response, and
79
+ * every read through it then refuses at the ordinary status gate — the same asymmetry the
80
+ * organization-owner floor is built on: a suspended tenant is recoverable, a purged one is not, so
81
+ * the refusal belongs on the irreversible act only.
82
+ *
83
+ * Remedy: if the application is genuinely being decommissioned, remove the `ownsApplication` marker
84
+ * from the declaration first — the refusal is about what the application currently says it needs.
85
+ */
86
+ ApplicationOwnerOrganizationErrorCode["OWNER_ORGANIZATION_CANNOT_BE_DELETED"] = "OWNER_ORGANIZATION_CANNOT_BE_DELETED";
87
+ /**
88
+ * An organization of the owner type cannot be created through this door.
89
+ *
90
+ * The refusal is by DOOR, not by count: **no** service-tier `CREATE` may produce the owner
91
+ * organization, whether or not one exists yet. Two doors make one — the platform's bootstrap, which
92
+ * seeds the first administrator's organization when the application is initialised, and
93
+ * `organizations.promoteToOwnerOrganization`, which re-types an existing organization under audit.
94
+ *
95
+ * Counting instead would have left a real hole: the marked type declares no `creationPolicy` (the
96
+ * configuration refuses one), the default `CREATE` variant is open to `APP_USER`, and the creation
97
+ * prefix restricts only types that HAVE a creation policy. So before the bootstrap ran, any
98
+ * registrant could have created the owner organization and become its founding owner.
99
+ *
100
+ * Remedy: create an ordinary organization of a non-owner type, or ask a super-administrator to
101
+ * promote an existing organization.
102
+ */
103
+ ApplicationOwnerOrganizationErrorCode["OWNER_ORGANIZATION_TYPE_NOT_CREATABLE"] = "OWNER_ORGANIZATION_TYPE_NOT_CREATABLE";
104
+ /**
105
+ * A promotion was asked for and the declaration does not name exactly ONE owner organization type, so
106
+ * there is nothing unambiguous to promote INTO.
107
+ *
108
+ * Its own code rather than a reuse of the three above, because the remedy is in a different place:
109
+ * those are about which ROWS exist, this is about what the DECLARATION says.
110
+ *
111
+ * ONE code, two opposite remedies, and the refusal message says which one you hit: either NO type
112
+ * carries `ownsApplication` (declare one) or SEVERAL do (remove the marker from all but one). They
113
+ * share a code because a client branches identically on both — the declaration is wrong and no
114
+ * promotion can proceed — while a human needs the distinction, which is what the message carries.
115
+ * Reporting the second as "no type declares it" would send an operator to add a third.
116
+ */
117
+ ApplicationOwnerOrganizationErrorCode["APPLICATION_DECLARES_NO_OWNER_ORGANIZATION_TYPE"] = "APPLICATION_DECLARES_NO_OWNER_ORGANIZATION_TYPE";
118
+ /**
119
+ * The organization cannot be promoted because the owner type would change what its members are or
120
+ * may hold — a dependent policy surface the promotion refuses rather than reconciles.
121
+ *
122
+ * Three mismatches carry this code, and the refusal names which one it hit and the exact values:
123
+ * the owner type grants fewer `userTypes` than the organization's current type (promoting would
124
+ * revoke a global grant from every member); a membership holds a role the owner type does not list
125
+ * in `availableOrgRoles`; or THIS organization is actively managed by a directory — the
126
+ * `DIRECTORY_PROVISIONING` feature is enabled for it and a live SCIM token exists — and the owner
127
+ * type does not declare `scimProvisioning`, so promoting would stop it being reconciled by its IdP.
128
+ *
129
+ * Note the third asks about the ORGANIZATION, not about the two type definitions.
130
+ * `scimProvisioning.enabled` on a type is only the application-wide MOUNT gate (the engine mounts the
131
+ * SCIM controllers when at least one declared type carries it) and says nothing about whether any one
132
+ * tenant is directory-managed — so comparing the two flags would refuse a promotion for every tenant
133
+ * with no directory wired at all, which is most of them.
134
+ *
135
+ * Why refuse rather than revoke-and-regrant: a promotion that changed what people can do while
136
+ * calling itself a re-typing is the kind of silent authority change an access review cannot see.
137
+ * The operation changes the tenant's identity and touches nobody's authority, and this refusal is
138
+ * what keeps that true.
139
+ *
140
+ * Remedy: widen the owner type in `organizationTypes` (add the user types, the roles, or the SCIM
141
+ * binding), run `wildo config reapply-declaration`, then retry.
142
+ */
143
+ ApplicationOwnerOrganizationErrorCode["OWNER_PROMOTION_INCOMPATIBLE_WITH_TARGET_TYPE"] = "OWNER_PROMOTION_INCOMPATIBLE_WITH_TARGET_TYPE";
144
+ })(ApplicationOwnerOrganizationErrorCode || (ApplicationOwnerOrganizationErrorCode = {}));
145
+ /** @wildo_source:part:end saas.models.organizations.application-owner-codes */
146
+ //# sourceMappingURL=application-owner-organization.shared.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-owner-organization.shared.schemas.js","sourceRoot":"","sources":["../../../../src/organizations/application-owner-organization.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,iIAAiI;AACjI;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAN,IAAY,qCA2FX;AA3FD,WAAY,qCAAqC;IAC/C;;;;;;;;;OASG;IACH,wHAA+E,CAAA;IAE/E;;;;;;;;;;;;;;;;OAgBG;IACH,sHAA6E,CAAA;IAE7E;;;;;;;;;;;;;;;OAeG;IACH,wHAA+E,CAAA;IAE/E;;;;;;;;;;;;OAYG;IACH,4IAAmG,CAAA;IAEnG;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,wIAA+F,CAAA;AACjG,CAAC,EA3FW,qCAAqC,KAArC,qCAAqC,QA2FhD;AACD,+EAA+E","sourcesContent":["/**\n * The application-owner organization — refusal codes and the operator promotion contract (#1054).\n *\n * An application whose `organizationTypes` declare `ownsApplication` on one type has an OWNER\n * ORGANIZATION: the single organization of that type, the one that operates the application. Its\n * singularity is protected at three moments — it cannot be created through an ordinary door, it\n * cannot be promoted into while one exists, and it cannot be deleted — and every refusal carries a\n * stable, client-branchable code declared here.\n *\n * assurance-control: WILDO.ACCESS.ADMINISTRATIVE_CONTINUITY — the organization that operates the\n * application is singular, and the doors that could create a second one, or destroy the only one,\n * refuse rather than leave the application with no operator.\n *\n * ## Why these codes are a shared enum rather than a `reason` string\n *\n * The refusals are `ErrorType.CONFLICT`, and `sanitizeErrorForClient` keeps only an ALLOWLIST of\n * context keys on a CONFLICT — `reason` is not on it. The backend-side `reason` stays (it is the log\n * and audit identity, richer than the wire and free to stay so), but a CLIENT wanting to tell these\n * apart from any other 409 has only the stable `code` key, sourced from an enum in\n * `@wildo-ai/saas-models` so backend and frontend share one definition.\n *\n * This is the trap `organizationMembers.grantOwnership` fell into and the reason the allowlist's own\n * documented rule exists: its two CONFLICTs carry only `reason`, so they are invisible to every\n * client and a caller must regex-parse a message that is free to be reworded.\n *\n * @see AdministrativeContinuityErrorCode — the sibling enum for the two authority floors. Distinct\n * populations: those protect a scope's ADMINISTRATORS, these protect the identity of the\n * organization that owns the application itself.\n */\n\n/** @wildo_source:part:start saas.models.organizations.application-owner-codes facet:layer:shared facet:audience:app-developer */\n/**\n * Why a write against the application-owner organization was refused.\n *\n * Imported from `@wildo-ai/saas-models`. A closed vocabulary with one named runtime source: the\n * refusals, the resource specification's error scenarios and any client branch all derive from this\n * enum rather than re-typing the literals.\n *\n * ## Where you meet it\n *\n * Each refusal is HTTP **409 CONFLICT** and the value rides under the response's stable `code` key.\n * Branch on `code`, never on the message — the message is a human remedy and is free to be reworded,\n * and every other field a backend might have used to carry the reason is stripped from a CONFLICT\n * before it reaches a client.\n *\n * `409` and not `403`/`400` in every case, deliberately: the caller IS authorised and the payload IS\n * valid — the type named is declared, the organization addressed exists. What forbids the write is a\n * fact about the APPLICATION: it is operated by exactly one organization, and that singularity is what\n * each of these writes would break.\n *\n * `403` was the alternative for the creation refusal and is wrong twice over. It would say the caller\n * lacks authority, which is false — a super-administrator is refused by the same rule as a registrant,\n * because the door is the thing that is shut and not the principal. And `sanitizeErrorForClient`\n * strips the whole context from an AUTHORIZATION error, so the `code` below would never reach a\n * client and this enum would be decorative.\n */\nexport enum ApplicationOwnerOrganizationErrorCode {\n /**\n * The application already has an organization of the type that declares `ownsApplication`, and this\n * write would produce a second one.\n *\n * An application is operated by ONE organization; two would make every question that resolves\n * through the marker — whose rows these are, whose credentials were spent — a choice nobody\n * declared. Remedy: use the existing owner organization. If the existing one is the wrong one, that\n * is a data-repair question rather than a creation question, and there is no operation that\n * demotes an owner.\n */\n APPLICATION_OWNER_ORGANIZATION_EXISTS = 'APPLICATION_OWNER_ORGANIZATION_EXISTS',\n\n /**\n * The organization is the application's owner and may not be put on the deletion path.\n *\n * Refused for `requestDeletion` (both variants), for the purge `delete` (both variants), and by the\n * purge batch. Everything the application owns as an operator — the rows its systems of record\n * project, the pipelines that load them — belongs to this organization, so purging it strands them\n * with no tenant and nothing that could re-create one: `Organization.type` is creation-time\n * identity, and there is no door that mints a second owner.\n *\n * SUSPENSION is deliberately NOT refused. Halting the owner organization is incident response, and\n * every read through it then refuses at the ordinary status gate — the same asymmetry the\n * organization-owner floor is built on: a suspended tenant is recoverable, a purged one is not, so\n * the refusal belongs on the irreversible act only.\n *\n * Remedy: if the application is genuinely being decommissioned, remove the `ownsApplication` marker\n * from the declaration first — the refusal is about what the application currently says it needs.\n */\n OWNER_ORGANIZATION_CANNOT_BE_DELETED = 'OWNER_ORGANIZATION_CANNOT_BE_DELETED',\n\n /**\n * An organization of the owner type cannot be created through this door.\n *\n * The refusal is by DOOR, not by count: **no** service-tier `CREATE` may produce the owner\n * organization, whether or not one exists yet. Two doors make one — the platform's bootstrap, which\n * seeds the first administrator's organization when the application is initialised, and\n * `organizations.promoteToOwnerOrganization`, which re-types an existing organization under audit.\n *\n * Counting instead would have left a real hole: the marked type declares no `creationPolicy` (the\n * configuration refuses one), the default `CREATE` variant is open to `APP_USER`, and the creation\n * prefix restricts only types that HAVE a creation policy. So before the bootstrap ran, any\n * registrant could have created the owner organization and become its founding owner.\n *\n * Remedy: create an ordinary organization of a non-owner type, or ask a super-administrator to\n * promote an existing organization.\n */\n OWNER_ORGANIZATION_TYPE_NOT_CREATABLE = 'OWNER_ORGANIZATION_TYPE_NOT_CREATABLE',\n\n /**\n * A promotion was asked for and the declaration does not name exactly ONE owner organization type, so\n * there is nothing unambiguous to promote INTO.\n *\n * Its own code rather than a reuse of the three above, because the remedy is in a different place:\n * those are about which ROWS exist, this is about what the DECLARATION says.\n *\n * ONE code, two opposite remedies, and the refusal message says which one you hit: either NO type\n * carries `ownsApplication` (declare one) or SEVERAL do (remove the marker from all but one). They\n * share a code because a client branches identically on both — the declaration is wrong and no\n * promotion can proceed — while a human needs the distinction, which is what the message carries.\n * Reporting the second as \"no type declares it\" would send an operator to add a third.\n */\n APPLICATION_DECLARES_NO_OWNER_ORGANIZATION_TYPE = 'APPLICATION_DECLARES_NO_OWNER_ORGANIZATION_TYPE',\n\n /**\n * The organization cannot be promoted because the owner type would change what its members are or\n * may hold — a dependent policy surface the promotion refuses rather than reconciles.\n *\n * Three mismatches carry this code, and the refusal names which one it hit and the exact values:\n * the owner type grants fewer `userTypes` than the organization's current type (promoting would\n * revoke a global grant from every member); a membership holds a role the owner type does not list\n * in `availableOrgRoles`; or THIS organization is actively managed by a directory — the\n * `DIRECTORY_PROVISIONING` feature is enabled for it and a live SCIM token exists — and the owner\n * type does not declare `scimProvisioning`, so promoting would stop it being reconciled by its IdP.\n *\n * Note the third asks about the ORGANIZATION, not about the two type definitions.\n * `scimProvisioning.enabled` on a type is only the application-wide MOUNT gate (the engine mounts the\n * SCIM controllers when at least one declared type carries it) and says nothing about whether any one\n * tenant is directory-managed — so comparing the two flags would refuse a promotion for every tenant\n * with no directory wired at all, which is most of them.\n *\n * Why refuse rather than revoke-and-regrant: a promotion that changed what people can do while\n * calling itself a re-typing is the kind of silent authority change an access review cannot see.\n * The operation changes the tenant's identity and touches nobody's authority, and this refusal is\n * what keeps that true.\n *\n * Remedy: widen the owner type in `organizationTypes` (add the user types, the roles, or the SCIM\n * binding), run `wildo config reapply-declaration`, then retry.\n */\n OWNER_PROMOTION_INCOMPATIBLE_WITH_TARGET_TYPE = 'OWNER_PROMOTION_INCOMPATIBLE_WITH_TARGET_TYPE',\n}\n/** @wildo_source:part:end saas.models.organizations.application-owner-codes */\n"]}
@@ -33,6 +33,8 @@ export declare const organizationFeaturesResourceConfiguration_InitializationFac
33
33
  removedFeatures: z.ZodDefault<z.ZodArray<z.ZodString>>;
34
34
  limitOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
35
35
  }, z.core.$strip>>>;
36
+ _id: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
37
+ organizationId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>>>>;
36
38
  }, z.core.$strip>>;
37
39
  export {};
38
40
  //# sourceMappingURL=organization-features.shared.resources-config.schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"organization-features.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/organizations/organization-features.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAGrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAoD,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAU/H,oBAAY,+BAA+B;IACzC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;CAClC;AAED,eAAO,MAAM,iDAAiD;;;iBAG5D,CAAC;AAEH,eAAO,MAAM,kDAAkD;;;iBAG7D,CAAC;AAEH,eAAO,MAAM,iDAAiD;;iBAE5D,CAAC;AAQH,KAAK,kCAAkC,GACnC,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,CAAC;AAKjC,eAAO,MAAM,+DAA+D,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;kBA0J5H,CAAC"}
1
+ {"version":3,"file":"organization-features.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/organizations/organization-features.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAGrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAoF,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAW/J,oBAAY,+BAA+B;IACzC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;CAClC;AAED,eAAO,MAAM,iDAAiD;;;iBAG5D,CAAC;AAEH,eAAO,MAAM,kDAAkD;;;iBAG7D,CAAC;AAEH,eAAO,MAAM,iDAAiD;;iBAE5D,CAAC;AAQH,KAAK,kCAAkC,GACnC,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,CAAC;AAKjC,eAAO,MAAM,+DAA+D,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;;;kBAiL5H,CAAC"}
@@ -6,11 +6,12 @@
6
6
  */
7
7
  import { z } from 'zod';
8
8
  import { CoreFeature } from './organization-features.shared.schemas.js';
9
- import { ScopeFeaturesWithOverridesSchema } from '../features/scope-features.shared.schemas.js';
9
+ import { OrganizationFeaturesSchema, ScopeFeaturesWithOverridesSchema } from '../features/scope-features.shared.schemas.js';
10
10
  import { CoreResourceOperation } from '../resources/resources.shared.core.definitions.js';
11
- import { ResourceOperationRiskLevel } from '../resources/resources.shared.schemas.js';
11
+ import { ResourceOperationRiskLevel, ResourceOperationReversibility } from '../resources/resources.shared.schemas.js';
12
12
  import { CoreResourceType, coreResourceShared_FieldIdentifier } from '../resources/resources.shared.core.definitions.js';
13
13
  import { ResourceOperationVariantType } from '../resources/resources.shared.schemas.js';
14
+ import { ResourceSystemAccessMode } from '../resources/resources-config.shared.schemas.js';
14
15
  import { createResourceConfiguration_Initialization } from '../resources/resources-config.shared.factory.js';
15
16
  import { CORE_APP_ROLES, CORE_ORG_ROLES } from '../security/authorizations/roles.shared.schemas.js';
16
17
  // Custom operations enum for organization features
@@ -39,11 +40,30 @@ const ORGANIZATION_FEATURES_FILTER_FIELDS = {
39
40
  Organization Features Resource Configuration Factory
40
41
  */
41
42
  export const organizationFeaturesResourceConfiguration_InitializationFactory = (resourcesRelationships) => createResourceConfiguration_Initialization({
42
- mainSchema: ScopeFeaturesWithOverridesSchema,
43
+ mainSchema: OrganizationFeaturesSchema,
43
44
  resourceIdentifier: CoreResourceType.ORGANIZATION_FEATURES,
44
45
  resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.ORGANIZATION_FEATURES],
45
46
  resourceRelationships: resourcesRelationships,
46
47
  isSystemResource: true,
48
+ /*
49
+ * The framework may materialise this scope's row on a caller's behalf — the same opt-in, for the
50
+ * same reason, as the APPLICATION_FEATURES twin beside it.
51
+ *
52
+ * `systemAccessPolicy.create: ALLOWED` is what #1179's seam reads before materialising a
53
+ * context-addressed singleton the caller never named, so an administrator can START setting a
54
+ * tenant's entitlement overrides instead of being 404ed for the framework's own omission. The row
55
+ * written is the scope foreign key and nothing else; this resource's schema fills the rest.
56
+ *
57
+ * NOTE, measured 2026-09-19: this does NOT make a READ materialise. That seam is reached for
58
+ * UPDATE and DELETE only — extending it to READ was tried and reverted, because a probe of the
59
+ * running backend showed the read route never enters it. A tenant whose row is still absent
60
+ * therefore still 404s when the Entitlements pane reads it; making that row EXIST is a seeding
61
+ * question, not an access-policy one.
62
+ */
63
+ systemAccessPolicy: {
64
+ read: ResourceSystemAccessMode.ALLOWED,
65
+ create: ResourceSystemAccessMode.ALLOWED,
66
+ },
47
67
  coreOperations: [
48
68
  CoreResourceOperation.CREATE,
49
69
  CoreResourceOperation.READ,
@@ -171,6 +191,9 @@ export const organizationFeaturesResourceConfiguration_InitializationFactory = (
171
191
  isDefault: true,
172
192
  roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], // Only super admins can reset features
173
193
  riskLevel: ResourceOperationRiskLevel.CRITICAL,
194
+ // IRREVERSIBLE: Clears every override on the organization. No backup of the list exists.
195
+ // This is what admits it to the danger zone; risk alone no longer does.
196
+ reversibility: ResourceOperationReversibility.IRREVERSIBLE,
174
197
  resourceOperationLike: CoreResourceOperation.UPDATE_MANY,
175
198
  requestDto: OrganizationFeaturesResetFeaturesRequestDtoSchema,
176
199
  customResponseDto: ScopeFeaturesWithOverridesSchema,