@wildo-ai/saas-models 1.1.8 → 1.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (951) hide show
  1. package/dist/esm/_inspect.d.ts.map +1 -1
  2. package/dist/esm/_inspect.js.map +1 -1
  3. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
  4. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js.map +1 -1
  5. package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/application-subject.shared.schemas.js.map +1 -1
  7. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  8. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
  9. package/dist/esm/applications/applications-context.schemas.d.ts +68 -2
  10. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  11. package/dist/esm/applications/applications-context.schemas.js.map +1 -1
  12. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  13. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  14. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  15. package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
  16. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  17. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
  18. package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
  19. package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
  20. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  21. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  22. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  23. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  24. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  25. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  26. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  27. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
  28. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  29. package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
  30. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
  31. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
  32. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
  33. package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
  34. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
  35. package/dist/esm/billing/price.shared.resources-config.schemas.js.map +1 -1
  36. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  37. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  38. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  39. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  40. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  41. package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
  42. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  43. package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
  44. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  45. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  46. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
  47. package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
  48. package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
  49. package/dist/esm/billing/promotions.shared.schemas.js.map +1 -1
  50. package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts.map +1 -1
  51. package/dist/esm/billing/public-pricing-catalog.shared.atoms.js.map +1 -1
  52. package/dist/esm/billing/public-pricing-catalog.shared.d.ts.map +1 -1
  53. package/dist/esm/billing/public-pricing-catalog.shared.js.map +1 -1
  54. package/dist/esm/billing/referral-reward.shared.schemas.d.ts.map +1 -1
  55. package/dist/esm/billing/referral-reward.shared.schemas.js.map +1 -1
  56. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  57. package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
  58. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  59. package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
  60. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  61. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  62. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  63. package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
  64. package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts.map +1 -1
  65. package/dist/esm/billing/usage-flush-evidence.shared.schemas.js.map +1 -1
  66. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
  67. package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
  68. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  69. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  70. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
  71. package/dist/esm/charts/aggregation-query.shared.schemas.js.map +1 -1
  72. package/dist/esm/charts/aggregation.shared.definitions.d.ts.map +1 -1
  73. package/dist/esm/charts/aggregation.shared.definitions.js.map +1 -1
  74. package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
  75. package/dist/esm/charts/chart-definition-builder.shared.js.map +1 -1
  76. package/dist/esm/companion/artifact-placement.shared.definitions.d.ts.map +1 -1
  77. package/dist/esm/companion/artifact-placement.shared.definitions.js.map +1 -1
  78. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +13 -0
  79. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  80. package/dist/esm/companion/provider-discovery.shared.schemas.js +13 -0
  81. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  82. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
  83. package/dist/esm/companion/shared-library-companion.shared.definitions.js.map +1 -1
  84. package/dist/esm/companion-exports.d.ts.map +1 -1
  85. package/dist/esm/companion-exports.js.map +1 -1
  86. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +1 -1
  87. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  88. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +5 -2
  89. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
  90. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -1
  91. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -1
  92. package/dist/esm/compliance/audit-trails/audit-event-classification.shared.d.ts +28 -0
  93. package/dist/esm/compliance/audit-trails/audit-event-classification.shared.d.ts.map +1 -0
  94. package/dist/esm/compliance/audit-trails/audit-event-classification.shared.js +30 -0
  95. package/dist/esm/compliance/audit-trails/audit-event-classification.shared.js.map +1 -0
  96. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -1
  97. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -1
  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-log-sink.shared.schemas.js.map +1 -1
  100. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +1 -1
  101. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  102. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +2 -1
  103. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
  104. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +20 -0
  105. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  106. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +40 -0
  107. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  108. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +1 -14
  109. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  110. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +1 -16
  111. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  112. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts +17 -4
  113. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  114. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +25 -5
  115. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  116. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts.map +1 -1
  117. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js.map +1 -1
  118. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts.map +1 -1
  119. package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js.map +1 -1
  120. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts +0 -50
  121. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
  122. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js +4 -51
  123. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -1
  124. package/dist/esm/compliance/documents/public-governed-documents.shared.d.ts +67 -0
  125. package/dist/esm/compliance/documents/public-governed-documents.shared.d.ts.map +1 -0
  126. package/dist/esm/compliance/documents/public-governed-documents.shared.js +69 -0
  127. package/dist/esm/compliance/documents/public-governed-documents.shared.js.map +1 -0
  128. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts.map +1 -1
  129. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js.map +1 -1
  130. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts.map +1 -1
  131. package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js.map +1 -1
  132. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
  133. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
  134. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts.map +1 -1
  135. package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js.map +1 -1
  136. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
  137. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -1
  138. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts.map +1 -1
  139. package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js.map +1 -1
  140. package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts.map +1 -1
  141. package/dist/esm/compliance/privacy/consent-purposes.shared.js.map +1 -1
  142. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -1
  143. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +1 -1
  144. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -1
  145. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
  146. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -1
  147. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
  148. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
  149. package/dist/esm/compliance/privacy/jurisdiction-containment.shared.d.ts +32 -0
  150. package/dist/esm/compliance/privacy/jurisdiction-containment.shared.d.ts.map +1 -0
  151. package/dist/esm/compliance/privacy/jurisdiction-containment.shared.js +46 -0
  152. package/dist/esm/compliance/privacy/jurisdiction-containment.shared.js.map +1 -0
  153. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts.map +1 -1
  154. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js.map +1 -1
  155. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts.map +1 -1
  156. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js.map +1 -1
  157. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts.map +1 -1
  158. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js.map +1 -1
  159. package/dist/esm/compliance/privacy/legal-notice-obligation.shared.d.ts +47 -0
  160. package/dist/esm/compliance/privacy/legal-notice-obligation.shared.d.ts.map +1 -0
  161. package/dist/esm/compliance/privacy/legal-notice-obligation.shared.js +54 -0
  162. package/dist/esm/compliance/privacy/legal-notice-obligation.shared.js.map +1 -0
  163. package/dist/esm/compliance/privacy/legal-notice.shared.d.ts +105 -0
  164. package/dist/esm/compliance/privacy/legal-notice.shared.d.ts.map +1 -0
  165. package/dist/esm/compliance/privacy/legal-notice.shared.js +112 -0
  166. package/dist/esm/compliance/privacy/legal-notice.shared.js.map +1 -0
  167. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +1 -27
  168. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
  169. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +2 -41
  170. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
  171. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +83 -1
  172. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
  173. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +97 -0
  174. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
  175. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
  176. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js.map +1 -1
  177. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
  178. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js.map +1 -1
  179. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  180. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  181. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts.map +1 -1
  182. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js.map +1 -1
  183. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts.map +1 -1
  184. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js.map +1 -1
  185. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  186. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  187. package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts.map +1 -1
  188. package/dist/esm/compliance/privacy/retention-binding.shared.utils.js.map +1 -1
  189. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts.map +1 -1
  190. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js.map +1 -1
  191. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts +8 -8
  192. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts.map +1 -1
  193. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js.map +1 -1
  194. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
  195. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -1
  196. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts.map +1 -1
  197. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js.map +1 -1
  198. package/dist/esm/compliance/privacy/sharing.shared.schemas.d.ts.map +1 -1
  199. package/dist/esm/compliance/privacy/sharing.shared.schemas.js.map +1 -1
  200. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts.map +1 -1
  201. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js.map +1 -1
  202. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts.map +1 -1
  203. package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js.map +1 -1
  204. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
  205. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
  206. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
  207. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -1
  208. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  209. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  210. package/dist/esm/compliance/review-cadence.shared.schemas.d.ts.map +1 -1
  211. package/dist/esm/compliance/review-cadence.shared.schemas.js.map +1 -1
  212. package/dist/esm/compliance/risk-posture.shared.schemas.d.ts +15 -3
  213. package/dist/esm/compliance/risk-posture.shared.schemas.d.ts.map +1 -1
  214. package/dist/esm/compliance/risk-posture.shared.schemas.js +14 -2
  215. package/dist/esm/compliance/risk-posture.shared.schemas.js.map +1 -1
  216. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  217. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  218. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +63 -1
  219. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  220. package/dist/esm/config/app-configuration-shared.shared.schemas.js +11 -0
  221. package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
  222. package/dist/esm/config/app-frontend-type.shared.schemas.d.ts.map +1 -1
  223. package/dist/esm/config/app-frontend-type.shared.schemas.js.map +1 -1
  224. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  225. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  226. package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
  227. package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -1
  228. package/dist/esm/config/configuration-validation.shared.schemas.d.ts.map +1 -1
  229. package/dist/esm/config/configuration-validation.shared.schemas.js.map +1 -1
  230. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  231. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  232. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +16 -16
  233. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
  234. package/dist/esm/config/frontend/chart-definition.shared.schemas.js.map +1 -1
  235. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
  236. package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
  237. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  238. package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
  239. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
  240. package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
  241. package/dist/esm/config/postgresql.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/config/postgresql.shared.schemas.js.map +1 -1
  243. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
  244. package/dist/esm/config/registration-acquisition-policy.shared.utils.js.map +1 -1
  245. package/dist/esm/config-authoring.entry.d.ts.map +1 -1
  246. package/dist/esm/config-authoring.entry.js.map +1 -1
  247. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
  248. package/dist/esm/crdt/crdt-merge.shared.utils.js.map +1 -1
  249. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
  250. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js.map +1 -1
  251. package/dist/esm/errors/caught-error-description.shared.utils.d.ts +5 -1
  252. package/dist/esm/errors/caught-error-description.shared.utils.d.ts.map +1 -1
  253. package/dist/esm/errors/caught-error-description.shared.utils.js +48 -4
  254. package/dist/esm/errors/caught-error-description.shared.utils.js.map +1 -1
  255. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  256. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  257. package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
  258. package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
  259. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  260. package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
  261. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  262. package/dist/esm/errors/errors.shared.utils.js.map +1 -1
  263. package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts.map +1 -1
  264. package/dist/esm/errors/resource-access-forbidden.shared.error.js.map +1 -1
  265. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -1
  266. package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -1
  267. package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts.map +1 -1
  268. package/dist/esm/errors/zod-issue-formatting.shared.utils.js.map +1 -1
  269. package/dist/esm/exports/tabular-csv.shared.utils.d.ts.map +1 -1
  270. package/dist/esm/exports/tabular-csv.shared.utils.js.map +1 -1
  271. package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts.map +1 -1
  272. package/dist/esm/external-data/external-data-pipeline-description.shared.js.map +1 -1
  273. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts.map +1 -1
  274. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js.map +1 -1
  275. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  276. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  277. package/dist/esm/external-data/external-data-provenance.shared.d.ts.map +1 -1
  278. package/dist/esm/external-data/external-data-provenance.shared.js.map +1 -1
  279. package/dist/esm/external-data.exports.d.ts.map +1 -1
  280. package/dist/esm/external-data.exports.js.map +1 -1
  281. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
  282. package/dist/esm/external-providers/compose-provider-registry.shared.js.map +1 -1
  283. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  284. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  285. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  286. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  287. package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -1
  288. package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -1
  289. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
  290. package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
  291. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +34 -1
  292. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  293. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js.map +1 -1
  294. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
  295. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
  296. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
  297. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
  298. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  299. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  300. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -1
  301. package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -1
  302. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts.map +1 -1
  303. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js.map +1 -1
  304. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts.map +1 -1
  305. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js.map +1 -1
  306. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts.map +1 -1
  307. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js.map +1 -1
  308. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts.map +1 -1
  309. package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js.map +1 -1
  310. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -1
  311. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -1
  312. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  313. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  314. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  315. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  316. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -1
  317. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -1
  318. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
  319. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
  320. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
  321. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
  322. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts.map +1 -1
  323. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js.map +1 -1
  324. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  325. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
  326. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts.map +1 -1
  327. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js.map +1 -1
  328. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts.map +1 -1
  329. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js.map +1 -1
  330. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -1
  331. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -1
  332. package/dist/esm/external-providers/provider-usage-cost.shared.d.ts.map +1 -1
  333. package/dist/esm/external-providers/provider-usage-cost.shared.js.map +1 -1
  334. package/dist/esm/external-providers/provider-usage-pricing.example.d.ts.map +1 -1
  335. package/dist/esm/external-providers/provider-usage-pricing.example.js.map +1 -1
  336. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
  337. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -1
  338. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
  339. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
  340. package/dist/esm/features/connected-feature.example.d.ts.map +1 -1
  341. package/dist/esm/features/connected-feature.example.js.map +1 -1
  342. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  343. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  344. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  345. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  346. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  347. package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
  348. package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
  349. package/dist/esm/features/feature-registry.shared.js.map +1 -1
  350. package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
  351. package/dist/esm/features/feature-resolution.shared.schemas.js.map +1 -1
  352. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  353. package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
  354. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
  355. package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
  356. package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -1
  357. package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -1
  358. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
  359. package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
  360. package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
  361. package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
  362. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  363. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  364. package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
  365. package/dist/esm/files/files.shared.utils.js.map +1 -1
  366. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  367. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -1
  368. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
  369. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -1
  370. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
  371. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -1
  372. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
  373. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js.map +1 -1
  374. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  375. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  376. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
  377. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -1
  378. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts.map +1 -1
  379. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js.map +1 -1
  380. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts.map +1 -1
  381. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js.map +1 -1
  382. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  383. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  384. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts.map +1 -1
  385. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js.map +1 -1
  386. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +2 -1
  387. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
  388. package/dist/esm/flows-actors/deliberation.shared.schemas.js +2 -1
  389. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
  390. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts.map +1 -1
  391. package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js.map +1 -1
  392. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
  393. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -1
  394. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  395. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  396. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
  397. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -1
  398. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
  399. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -1
  400. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  401. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  402. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  403. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
  404. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  405. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
  406. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  407. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  408. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
  409. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js.map +1 -1
  410. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  411. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  412. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  413. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  414. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -1
  415. package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -1
  416. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
  417. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
  418. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts.map +1 -1
  419. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js.map +1 -1
  420. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts.map +1 -1
  421. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js.map +1 -1
  422. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts.map +1 -1
  423. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js.map +1 -1
  424. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts.map +1 -1
  425. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js.map +1 -1
  426. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts.map +1 -1
  427. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js.map +1 -1
  428. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
  429. package/dist/esm/flows-actors/prompt-ir.shared.schemas.js.map +1 -1
  430. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -1
  431. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -1
  432. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -1
  433. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -1
  434. package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/review-deadlines.shared.schemas.js.map +1 -1
  436. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  437. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
  438. package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts.map +1 -1
  439. package/dist/esm/flows-actors/work-attribution.shared.schemas.js.map +1 -1
  440. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
  441. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
  442. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
  443. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -1
  444. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
  445. package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
  446. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
  447. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
  448. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  449. package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
  450. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
  451. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
  452. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts +2 -2
  453. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
  454. package/dist/esm/guidance/lifecycle-config.shared.schemas.js.map +1 -1
  455. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
  456. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
  457. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
  458. package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
  459. package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
  460. package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
  461. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
  462. package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
  463. package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts.map +1 -1
  464. package/dist/esm/guidance/progression-presentation.shared.schemas.js.map +1 -1
  465. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  466. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
  467. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  468. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  469. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
  470. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -1
  471. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  472. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
  473. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts.map +1 -1
  474. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js.map +1 -1
  475. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts.map +1 -1
  476. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js.map +1 -1
  477. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -1
  478. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -1
  479. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts.map +1 -1
  480. package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js.map +1 -1
  481. package/dist/esm/i18n/application-config-vocabulary.shared.d.ts.map +1 -1
  482. package/dist/esm/i18n/application-config-vocabulary.shared.js.map +1 -1
  483. package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts.map +1 -1
  484. package/dist/esm/i18n/engine-open-vocabulary-values.shared.js.map +1 -1
  485. package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts.map +1 -1
  486. package/dist/esm/i18n/engine-open-vocabulary.shared.js.map +1 -1
  487. package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts.map +1 -1
  488. package/dist/esm/i18n/interpolate-label-params.shared.utils.js.map +1 -1
  489. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
  490. package/dist/esm/i18n/labelling.dto.shared.schemas.js.map +1 -1
  491. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts.map +1 -1
  492. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js.map +1 -1
  493. package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts.map +1 -1
  494. package/dist/esm/inbound/conversation-threads.shared.schemas.js.map +1 -1
  495. package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts.map +1 -1
  496. package/dist/esm/inbound/inbound-channels.shared.schemas.js.map +1 -1
  497. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts.map +1 -1
  498. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js.map +1 -1
  499. package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts.map +1 -1
  500. package/dist/esm/inbound/inbound-delivery.shared.schemas.js.map +1 -1
  501. package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts.map +1 -1
  502. package/dist/esm/inbound/inbound-endpoint-env.shared.js.map +1 -1
  503. package/dist/esm/index.d.ts +5 -0
  504. package/dist/esm/index.d.ts.map +1 -1
  505. package/dist/esm/index.js +5 -0
  506. package/dist/esm/index.js.map +1 -1
  507. package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -1
  508. package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -1
  509. package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -1
  510. package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -1
  511. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts.map +1 -1
  512. package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js.map +1 -1
  513. package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
  514. package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
  515. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
  516. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
  517. package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.d.ts +128 -0
  518. package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.d.ts.map +1 -0
  519. package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.js +136 -0
  520. package/dist/esm/meta-workflows/elicitation-depth.meta-workflows.shared.schemas.js.map +1 -0
  521. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +45 -1
  522. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -1
  523. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +87 -2
  524. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -1
  525. package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -1
  526. package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -1
  527. package/dist/esm/meta-workflows.exports.d.ts +1 -0
  528. package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
  529. package/dist/esm/meta-workflows.exports.js +1 -0
  530. package/dist/esm/meta-workflows.exports.js.map +1 -1
  531. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
  532. package/dist/esm/monitoring/monitoring.shared.schemas.js.map +1 -1
  533. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
  534. package/dist/esm/notifications/email/email-context.shared.schemas.js.map +1 -1
  535. package/dist/esm/notifications/email/email-submission.shared.enums.d.ts.map +1 -1
  536. package/dist/esm/notifications/email/email-submission.shared.enums.js.map +1 -1
  537. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  538. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  539. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
  540. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
  541. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts.map +1 -1
  542. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js.map +1 -1
  543. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts.map +1 -1
  544. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js.map +1 -1
  545. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
  546. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.js.map +1 -1
  547. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  548. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
  549. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
  550. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -1
  551. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  552. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  553. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  554. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  555. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  556. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  557. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  558. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  559. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
  560. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
  561. package/dist/esm/notifications/notifications.shared.schemas.d.ts +5 -3
  562. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  563. package/dist/esm/notifications/notifications.shared.schemas.js +5 -3
  564. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  565. package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts.map +1 -1
  566. package/dist/esm/organizations/application-owner-organization.shared.schemas.js.map +1 -1
  567. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
  568. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  569. package/dist/esm/organizations/organization-features.shared.schemas.d.ts.map +1 -1
  570. package/dist/esm/organizations/organization-features.shared.schemas.js.map +1 -1
  571. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  572. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
  573. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  574. package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
  575. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
  576. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js.map +1 -1
  577. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  578. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  579. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  580. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js.map +1 -1
  581. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  582. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  583. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  584. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js.map +1 -1
  585. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  586. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  587. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
  588. package/dist/esm/organizations/organization-unit-inheritance.shared.js.map +1 -1
  589. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
  590. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -1
  591. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
  592. package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -1
  593. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
  594. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -1
  595. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
  596. package/dist/esm/organizations/organization-unit-narrowing.example.js.map +1 -1
  597. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  598. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  599. package/dist/esm/organizations/organization-units.shared.path.d.ts.map +1 -1
  600. package/dist/esm/organizations/organization-units.shared.path.js.map +1 -1
  601. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  602. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
  603. package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
  604. package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
  605. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  606. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  607. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  608. package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
  609. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts.map +1 -1
  610. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js.map +1 -1
  611. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts.map +1 -1
  612. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js.map +1 -1
  613. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts.map +1 -1
  614. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js.map +1 -1
  615. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts.map +1 -1
  616. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js.map +1 -1
  617. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts.map +1 -1
  618. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js.map +1 -1
  619. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts.map +1 -1
  620. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js.map +1 -1
  621. package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts.map +1 -1
  622. package/dist/esm/organizations/service-provider-relationships.shared.schemas.js.map +1 -1
  623. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
  624. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
  625. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
  626. package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
  627. package/dist/esm/public-runtime/index.d.ts +13 -0
  628. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  629. package/dist/esm/public-runtime/index.js +13 -0
  630. package/dist/esm/public-runtime/index.js.map +1 -1
  631. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  632. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  633. package/dist/esm/queue/jobs.shared.schemas.d.ts +71 -2
  634. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  635. package/dist/esm/queue/jobs.shared.schemas.js +85 -2
  636. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  637. package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
  638. package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
  639. package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
  640. package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
  641. package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
  642. package/dist/esm/queue/queues.shared.utils.js.map +1 -1
  643. package/dist/esm/queue/rabbitmq-queue-args.shared.d.ts.map +1 -1
  644. package/dist/esm/queue/rabbitmq-queue-args.shared.js.map +1 -1
  645. package/dist/esm/rag/rag-retrieval-health.shared.d.ts.map +1 -1
  646. package/dist/esm/rag/rag-retrieval-health.shared.js.map +1 -1
  647. package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
  648. package/dist/esm/requests/header-keys.shared.js.map +1 -1
  649. package/dist/esm/requests/http-requests.shared.d.ts.map +1 -1
  650. package/dist/esm/requests/http-requests.shared.js.map +1 -1
  651. package/dist/esm/requests/idempotency-key.shared.d.ts.map +1 -1
  652. package/dist/esm/requests/idempotency-key.shared.js.map +1 -1
  653. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
  654. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
  655. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  656. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  657. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  658. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  659. package/dist/esm/requests/websocket.shared.schemas.d.ts +2 -2
  660. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  661. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  662. package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
  663. package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
  664. package/dist/esm/resources/collection-query-parameters.shared.d.ts.map +1 -1
  665. package/dist/esm/resources/collection-query-parameters.shared.js.map +1 -1
  666. package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
  667. package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
  668. package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts.map +1 -1
  669. package/dist/esm/resources/embedded-resource-mark.shared.utils.js.map +1 -1
  670. package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
  671. package/dist/esm/resources/relationship-display.shared.schemas.js.map +1 -1
  672. package/dist/esm/resources/resource-status-lifecycle.example.d.ts +100 -0
  673. package/dist/esm/resources/resource-status-lifecycle.example.d.ts.map +1 -0
  674. package/dist/esm/resources/resource-status-lifecycle.example.js +156 -0
  675. package/dist/esm/resources/resource-status-lifecycle.example.js.map +1 -0
  676. package/dist/esm/resources/resources-config.shared.factory.d.ts +25 -1
  677. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  678. package/dist/esm/resources/resources-config.shared.factory.js +31 -8
  679. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  680. package/dist/esm/resources/resources-config.shared.schemas.d.ts +33 -0
  681. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  682. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  683. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  684. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  685. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  686. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  687. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
  688. package/dist/esm/resources/resources-serialization.shared.schemas.js.map +1 -1
  689. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  690. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  691. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  692. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  693. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  694. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  695. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
  696. package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -1
  697. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
  698. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -1
  699. package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
  700. package/dist/esm/resources/utils/composition-seedability.validation.js.map +1 -1
  701. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
  702. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js.map +1 -1
  703. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts.map +1 -1
  704. package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js.map +1 -1
  705. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
  706. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js.map +1 -1
  707. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -1
  708. package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -1
  709. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts.map +1 -1
  710. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js.map +1 -1
  711. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts.map +1 -1
  712. package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js.map +1 -1
  713. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts.map +1 -1
  714. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js.map +1 -1
  715. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
  716. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js.map +1 -1
  717. package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -1
  718. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -1
  719. package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
  720. package/dist/esm/resources/utils/repository-dto-builder.utils.js.map +1 -1
  721. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts.map +1 -1
  722. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js.map +1 -1
  723. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
  724. package/dist/esm/resources/utils/required-fk-fillability.validation.js.map +1 -1
  725. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
  726. package/dist/esm/resources/utils/resource-operation-type-guards.utils.js.map +1 -1
  727. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  728. package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
  729. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
  730. package/dist/esm/resources/utils/resource-polymorphism.relationships.js.map +1 -1
  731. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
  732. package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
  733. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
  734. package/dist/esm/resources/utils/resource-polymorphism.utils.js.map +1 -1
  735. package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
  736. package/dist/esm/resources/utils/resource-subtree.utils.js.map +1 -1
  737. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
  738. package/dist/esm/resources/utils/resources-config-context-needs.utils.js.map +1 -1
  739. package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
  740. package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
  741. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +25 -0
  742. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  743. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +47 -19
  744. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
  745. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
  746. package/dist/esm/resources/utils/resources-config-operations.path.utils.js.map +1 -1
  747. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
  748. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
  749. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
  750. package/dist/esm/resources/utils/resources-config-operations.utils.js.map +1 -1
  751. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  752. package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
  753. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  754. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  755. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
  756. package/dist/esm/resources/utils/schema-family-builder.utils.js.map +1 -1
  757. package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
  758. package/dist/esm/resources/utils/schema-type-inference.utils.js.map +1 -1
  759. package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
  760. package/dist/esm/resources/utils/schema-type-utils.js.map +1 -1
  761. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
  762. package/dist/esm/resources/utils/schema-variant-resolver.utils.js.map +1 -1
  763. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  764. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  765. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
  766. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -1
  767. package/dist/esm/resources/work-unit.shared.schemas.d.ts.map +1 -1
  768. package/dist/esm/resources/work-unit.shared.schemas.js.map +1 -1
  769. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  770. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  771. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  772. package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
  773. package/dist/esm/runtime/runtime.shared.schemas.d.ts.map +1 -1
  774. package/dist/esm/runtime/runtime.shared.schemas.js.map +1 -1
  775. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  776. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  777. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  778. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  779. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  780. package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
  781. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
  782. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js.map +1 -1
  783. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  784. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  785. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  786. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  787. package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
  788. package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
  789. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
  790. package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
  791. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
  792. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -1
  793. package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts.map +1 -1
  794. package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js.map +1 -1
  795. package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts.map +1 -1
  796. package/dist/esm/security/authentications/password-blocklist.shared.utils.js.map +1 -1
  797. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
  798. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js.map +1 -1
  799. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  800. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  801. package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/same-origin-redirect-path.shared.js.map +1 -1
  803. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
  804. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -1
  805. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
  807. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  808. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  809. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
  811. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  812. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
  813. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts.map +1 -1
  814. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js.map +1 -1
  815. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  816. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
  817. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
  818. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js.map +1 -1
  819. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts.map +1 -1
  820. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js.map +1 -1
  821. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts.map +1 -1
  822. package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js.map +1 -1
  823. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
  824. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
  825. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
  826. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
  827. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
  828. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
  829. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  830. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  831. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  832. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  833. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  834. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
  835. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  836. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  837. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
  838. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
  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.map +1 -1
  841. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -1
  842. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -1
  843. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  844. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  845. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
  846. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
  847. package/dist/esm/security/authorizations/roles.application-roles.example.d.ts +37 -0
  848. package/dist/esm/security/authorizations/roles.application-roles.example.d.ts.map +1 -0
  849. package/dist/esm/security/authorizations/roles.application-roles.example.js +50 -0
  850. package/dist/esm/security/authorizations/roles.application-roles.example.js.map +1 -0
  851. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts +13 -0
  852. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  853. package/dist/esm/security/authorizations/roles.shared.defaults.js +13 -0
  854. package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
  855. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +29 -0
  856. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  857. package/dist/esm/security/authorizations/roles.shared.schemas.js +28 -0
  858. package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
  859. package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
  860. package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -1
  861. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts.map +1 -1
  862. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js.map +1 -1
  863. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
  864. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
  865. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
  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.map +1 -1
  868. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
  869. package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts.map +1 -1
  870. package/dist/esm/security/credential-rotation-grace.shared.utils.js.map +1 -1
  871. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.d.ts.map +1 -1
  872. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js.map +1 -1
  873. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  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.map +1 -1
  876. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  877. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  878. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  879. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
  880. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -1
  881. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
  882. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
  883. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
  884. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js.map +1 -1
  885. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -1
  886. package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -1
  887. package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts.map +1 -1
  888. package/dist/esm/security/submission-challenge/submission-challenge.shared.js.map +1 -1
  889. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts.map +1 -1
  890. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js.map +1 -1
  891. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts.map +1 -1
  892. package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js.map +1 -1
  893. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -1
  894. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -1
  895. package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts.map +1 -1
  896. package/dist/esm/systems-of-record/system-of-record-env.shared.js.map +1 -1
  897. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -1
  898. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -1
  899. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -1
  900. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -1
  901. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -1
  902. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -1
  903. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts.map +1 -1
  904. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js.map +1 -1
  905. package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
  906. package/dist/esm/testing/resource-config-builders.js.map +1 -1
  907. package/dist/esm/testing.d.ts.map +1 -1
  908. package/dist/esm/testing.js.map +1 -1
  909. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
  910. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -1
  911. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  912. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
  913. package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
  914. package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
  915. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
  916. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +2 -0
  917. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
  918. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
  919. package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
  920. package/dist/esm/users/user-consent-decision.shared.utils.d.ts.map +1 -1
  921. package/dist/esm/users/user-consent-decision.shared.utils.js.map +1 -1
  922. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
  923. package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
  924. package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
  925. package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
  926. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
  927. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
  928. package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
  929. package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
  930. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
  931. package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -1
  932. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  933. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
  934. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  935. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
  936. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  937. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
  938. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  939. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
  940. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  941. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  942. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  943. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  944. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  945. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  946. package/dist/tsconfig.build.tsbuildinfo +1 -1
  947. package/package.json +4 -4
  948. package/dist/esm/__tests__/setup.d.ts +0 -2
  949. package/dist/esm/__tests__/setup.d.ts.map +0 -1
  950. package/dist/esm/__tests__/setup.js +0 -19
  951. package/dist/esm/__tests__/setup.js.map +0 -1
@@ -41,6 +41,7 @@ export * from './meta-workflows/catalog.meta-workflows.shared.schemas.js';
41
41
  export * from './meta-workflows/coding-tasks.meta-workflows.shared.schemas.js';
42
42
  export * from './meta-workflows/context-selection.meta-workflows.shared.schemas.js';
43
43
  export * from './meta-workflows/decisions.meta-workflows.shared.schemas.js';
44
+ export * from './meta-workflows/elicitation-depth.meta-workflows.shared.schemas.js';
44
45
  export * from './meta-workflows/orchestration.meta-workflows.shared.schemas.js';
45
46
  export * from './meta-workflows/portable-primitives.meta-workflows.shared.schemas.js';
46
47
  //# sourceMappingURL=meta-workflows.exports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-workflows.exports.js","sourceRoot":"","sources":["../../../src/meta-workflows.exports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,cAAc,wDAAwD,CAAC;AACvE,cAAc,wDAAwD,CAAC;AACvE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,kEAAkE,CAAC;AACjF,cAAc,0DAA0D,CAAC;AACzE,cAAc,8DAA8D,CAAC;AAC7E,cAAc,oEAAoE,CAAC","sourcesContent":["/**\n * Meta-workflow contracts — the portable vocabulary for playbooks, decisions, actions, execution\n * bindings and application continuity.\n *\n * ## Why this is a subpath and not part of the package root\n *\n * These symbols are consumed by exactly one audience: the application-creation runtime, the\n * companion, the CLI's framework-knowledge tooling and the verification harness. They are meta-\n * workflow authoring and continuity contracts, not the general resource/schema vocabulary that the\n * `@wildo-ai/saas-models` root exists to publish. Carrying them at the root put a whole domain in\n * front of every consumer that only wanted a resource schema, and made the root barrel the de-facto\n * home of everything.\n *\n * The domain is DEFINED here — it belongs to this package and shares its primitives — but it is\n * reachable ONLY through this door. That is the distinction the repository is standardising on:\n * separating concerns without minting a package per concern.\n *\n * @see `.claude/rules/package-public-entrypoints.md`\n * @see `.claude/plans/package-entrypoint-barrel-discipline.md`\n *\n * ## Composition note\n *\n * The `meta-workflows/**` modules below own the portable meta-workflow vocabulary,\n * including the separately versioned budget authorities added after the original root split.\n * The execution-binding and continuity-identifier modules are GONE, not merely absent. Measured\n * 2026-09-19: `execution-binding-common` was published by no door and BOTH its importers used zero\n * of its exports, so the vocabularies and branded ids only it referenced were dead with it. That\n * whole cluster — the `Continuum` / `WorkCycle` / `ContextFrame` / `Treatment` identity vocabulary\n * of the layer demolished on 2026-08-23 — was removed. `meta-workflows-entrypoint-boundary.public.test.ts`\n * pins its absence from both doors so a revival is deliberate.\n *\n * `AppsBlueprint_AgentPersonas` was published here too, on the grounds that it was \"the vocabulary\n * playbook definitions key on\". It was not: no playbook authored a persona, its only consumer was a\n * prompt library in `platform-core` that turned out to be commented out, and the whole\n * `apps-blueprint` tree went on 2026-09-19. The generic persona field is and stays an open\n * `z.string()` on `FlowsActors_Agent_PromptSpec` — a closed persona list was never an engine\n * concept.\n */\n\nexport * from './meta-workflows/actions.meta-workflows.shared.schemas';\nexport * from './meta-workflows/catalog.meta-workflows.shared.schemas';\nexport * from './meta-workflows/coding-tasks.meta-workflows.shared.schemas';\nexport * from './meta-workflows/context-selection.meta-workflows.shared.schemas';\nexport * from './meta-workflows/decisions.meta-workflows.shared.schemas';\nexport * from './meta-workflows/orchestration.meta-workflows.shared.schemas';\nexport * from './meta-workflows/portable-primitives.meta-workflows.shared.schemas';\n"]}
1
+ {"version":3,"file":"meta-workflows.exports.js","sourceRoot":"","sources":["../../src/meta-workflows.exports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,cAAc,wDAAwD,CAAC;AACvE,cAAc,wDAAwD,CAAC;AACvE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,kEAAkE,CAAC;AACjF,cAAc,0DAA0D,CAAC;AACzE,cAAc,kEAAkE,CAAC;AACjF,cAAc,8DAA8D,CAAC;AAC7E,cAAc,oEAAoE,CAAC","sourcesContent":["/**\n * Meta-workflow contracts — the portable vocabulary for playbooks, decisions, actions, execution\n * bindings and application continuity.\n *\n * ## Why this is a subpath and not part of the package root\n *\n * These symbols are consumed by exactly one audience: the application-creation runtime, the\n * companion, the CLI's framework-knowledge tooling and the verification harness. They are meta-\n * workflow authoring and continuity contracts, not the general resource/schema vocabulary that the\n * `@wildo-ai/saas-models` root exists to publish. Carrying them at the root put a whole domain in\n * front of every consumer that only wanted a resource schema, and made the root barrel the de-facto\n * home of everything.\n *\n * The domain is DEFINED here — it belongs to this package and shares its primitives — but it is\n * reachable ONLY through this door. That is the distinction the repository is standardising on:\n * separating concerns without minting a package per concern.\n *\n * @see `.claude/rules/package-public-entrypoints.md`\n * @see `.claude/plans/package-entrypoint-barrel-discipline.md`\n *\n * ## Composition note\n *\n * The `meta-workflows/**` modules below own the portable meta-workflow vocabulary,\n * including the separately versioned budget authorities added after the original root split.\n * The execution-binding and continuity-identifier modules are GONE, not merely absent. Measured\n * 2026-09-19: `execution-binding-common` was published by no door and BOTH its importers used zero\n * of its exports, so the vocabularies and branded ids only it referenced were dead with it. That\n * whole cluster — the `Continuum` / `WorkCycle` / `ContextFrame` / `Treatment` identity vocabulary\n * of the layer demolished on 2026-08-23 — was removed. `meta-workflows-entrypoint-boundary.public.test.ts`\n * pins its absence from both doors so a revival is deliberate.\n *\n * `AppsBlueprint_AgentPersonas` was published here too, on the grounds that it was \"the vocabulary\n * playbook definitions key on\". It was not: no playbook authored a persona, its only consumer was a\n * prompt library in `platform-core` that turned out to be commented out, and the whole\n * `apps-blueprint` tree went on 2026-09-19. The generic persona field is and stays an open\n * `z.string()` on `FlowsActors_Agent_PromptSpec` — a closed persona list was never an engine\n * concept.\n */\n\nexport * from './meta-workflows/actions.meta-workflows.shared.schemas';\nexport * from './meta-workflows/catalog.meta-workflows.shared.schemas';\nexport * from './meta-workflows/coding-tasks.meta-workflows.shared.schemas';\nexport * from './meta-workflows/context-selection.meta-workflows.shared.schemas';\nexport * from './meta-workflows/decisions.meta-workflows.shared.schemas';\nexport * from './meta-workflows/elicitation-depth.meta-workflows.shared.schemas';\nexport * from './meta-workflows/orchestration.meta-workflows.shared.schemas';\nexport * from './meta-workflows/portable-primitives.meta-workflows.shared.schemas';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/monitoring/monitoring.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAKD,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;iBAW5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;iBAQ9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAsBhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqB,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;iBAsB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;iBAYnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"monitoring.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/monitoring/monitoring.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAKD,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;iBAW5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;iBAQ9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAsBhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqB,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;iBAsB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;iBAYnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring.shared.schemas.js","sourceRoot":"","sources":["../../../../src/monitoring/monitoring.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Monitoring System Shared Schemas\n * \n * Shared monitoring schemas for system health and performance tracking\n */\n\nimport { z } from 'zod';\n\n\n/**\n * Log level enum\n */\nexport enum LogLevel {\n TRACE = 'trace',\n DEBUG = 'debug',\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error',\n FATAL = 'fatal'\n}\n\n/**\n * Log format enum\n */\nexport enum LogFormat {\n JSON = 'json',\n PRETTY = 'pretty'\n}\n\n\n\n// Real TypeScript enum for monitoring status\nexport enum MonitoringStatus {\n HEALTHY = 'healthy',\n UNHEALTHY = 'unhealthy',\n DEGRADED = 'degraded',\n UNKNOWN = 'unknown'\n}\n\nexport const HealthCheckSchema = z.object({\n status: z.enum(['healthy', 'unhealthy', 'degraded']),\n services: z.record(z.string(), z.object({\n status: z.enum(['healthy', 'unhealthy', 'degraded']),\n responseTime: z.number().optional(),\n error: z.string().optional(),\n lastChecked: z.date().optional()\n })),\n timestamp: z.date().default(() => new Date()),\n uptime: z.number().optional(),\n version: z.string().optional()\n});\nexport type HealthCheck = z.infer<typeof HealthCheckSchema>;\n\nexport const ServiceHealthSchema = z.object({\n name: z.string().min(1),\n status: z.enum(MonitoringStatus),\n version: z.string().optional(),\n message: z.string().optional(),\n timestamp: z.date(),\n responseTime: z.number().optional(),\n uptime: z.number().optional()\n});\nexport type ServiceHealth = z.infer<typeof ServiceHealthSchema>;\n\nconst systemHealthSchema = z.object({\n overall: z.enum(MonitoringStatus),\n services: z.array(ServiceHealthSchema),\n database: z.object({\n status: z.enum(MonitoringStatus),\n connectionCount: z.number().optional(),\n responseTime: z.number().optional()\n }),\n cache: z.object({\n status: z.enum(MonitoringStatus),\n hitRate: z.number().min(0).max(100).optional(),\n memoryUsage: z.number().optional()\n }).optional(),\n storage: z.object({\n status: z.enum(MonitoringStatus),\n usedSpace: z.number().optional(),\n totalSpace: z.number().optional()\n }).optional()\n});\n\nexport const SystemHealthSchema = systemHealthSchema;\nexport type SystemHealth = z.infer<typeof SystemHealthSchema>;\n\nexport const SystemMetricsSchema = z.object({\n timestamp: z.date().default(() => new Date()),\n cpu: z.object({\n usage: z.number().min(0).max(100), // Percentage\n cores: z.number().positive().optional()\n }).optional(),\n memory: z.object({\n used: z.number().min(0), // Bytes\n total: z.number().min(0), // Bytes\n percentage: z.number().min(0).max(100)\n }).optional(),\n disk: z.object({\n used: z.number().min(0), // Bytes\n total: z.number().min(0), // Bytes\n percentage: z.number().min(0).max(100)\n }).optional(),\n network: z.object({\n bytesIn: z.number().min(0),\n bytesOut: z.number().min(0),\n packetsIn: z.number().min(0),\n packetsOut: z.number().min(0)\n }).optional()\n});\nexport type SystemMetrics = z.infer<typeof SystemMetricsSchema>;\n\nexport const PerformanceMetricsSchema = z.object({\n timestamp: z.date(),\n metrics: z.object({\n cpu: z.number().min(0).max(100).optional(),\n memory: z.number().min(0).max(100).optional(),\n disk: z.number().min(0).max(100).optional(),\n network: z.object({\n bytesIn: z.number().optional(),\n bytesOut: z.number().optional()\n }).optional()\n }),\n customMetrics: z.record(z.string(), z.number()).optional()\n});\nexport type PerformanceMetrics = z.infer<typeof PerformanceMetricsSchema>; "]}
1
+ {"version":3,"file":"monitoring.shared.schemas.js","sourceRoot":"","sources":["../../../src/monitoring/monitoring.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Monitoring System Shared Schemas\n * \n * Shared monitoring schemas for system health and performance tracking\n */\n\nimport { z } from 'zod';\n\n\n/**\n * Log level enum\n */\nexport enum LogLevel {\n TRACE = 'trace',\n DEBUG = 'debug',\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error',\n FATAL = 'fatal'\n}\n\n/**\n * Log format enum\n */\nexport enum LogFormat {\n JSON = 'json',\n PRETTY = 'pretty'\n}\n\n\n\n// Real TypeScript enum for monitoring status\nexport enum MonitoringStatus {\n HEALTHY = 'healthy',\n UNHEALTHY = 'unhealthy',\n DEGRADED = 'degraded',\n UNKNOWN = 'unknown'\n}\n\nexport const HealthCheckSchema = z.object({\n status: z.enum(['healthy', 'unhealthy', 'degraded']),\n services: z.record(z.string(), z.object({\n status: z.enum(['healthy', 'unhealthy', 'degraded']),\n responseTime: z.number().optional(),\n error: z.string().optional(),\n lastChecked: z.date().optional()\n })),\n timestamp: z.date().default(() => new Date()),\n uptime: z.number().optional(),\n version: z.string().optional()\n});\nexport type HealthCheck = z.infer<typeof HealthCheckSchema>;\n\nexport const ServiceHealthSchema = z.object({\n name: z.string().min(1),\n status: z.enum(MonitoringStatus),\n version: z.string().optional(),\n message: z.string().optional(),\n timestamp: z.date(),\n responseTime: z.number().optional(),\n uptime: z.number().optional()\n});\nexport type ServiceHealth = z.infer<typeof ServiceHealthSchema>;\n\nconst systemHealthSchema = z.object({\n overall: z.enum(MonitoringStatus),\n services: z.array(ServiceHealthSchema),\n database: z.object({\n status: z.enum(MonitoringStatus),\n connectionCount: z.number().optional(),\n responseTime: z.number().optional()\n }),\n cache: z.object({\n status: z.enum(MonitoringStatus),\n hitRate: z.number().min(0).max(100).optional(),\n memoryUsage: z.number().optional()\n }).optional(),\n storage: z.object({\n status: z.enum(MonitoringStatus),\n usedSpace: z.number().optional(),\n totalSpace: z.number().optional()\n }).optional()\n});\n\nexport const SystemHealthSchema = systemHealthSchema;\nexport type SystemHealth = z.infer<typeof SystemHealthSchema>;\n\nexport const SystemMetricsSchema = z.object({\n timestamp: z.date().default(() => new Date()),\n cpu: z.object({\n usage: z.number().min(0).max(100), // Percentage\n cores: z.number().positive().optional()\n }).optional(),\n memory: z.object({\n used: z.number().min(0), // Bytes\n total: z.number().min(0), // Bytes\n percentage: z.number().min(0).max(100)\n }).optional(),\n disk: z.object({\n used: z.number().min(0), // Bytes\n total: z.number().min(0), // Bytes\n percentage: z.number().min(0).max(100)\n }).optional(),\n network: z.object({\n bytesIn: z.number().min(0),\n bytesOut: z.number().min(0),\n packetsIn: z.number().min(0),\n packetsOut: z.number().min(0)\n }).optional()\n});\nexport type SystemMetrics = z.infer<typeof SystemMetricsSchema>;\n\nexport const PerformanceMetricsSchema = z.object({\n timestamp: z.date(),\n metrics: z.object({\n cpu: z.number().min(0).max(100).optional(),\n memory: z.number().min(0).max(100).optional(),\n disk: z.number().min(0).max(100).optional(),\n network: z.object({\n bytesIn: z.number().optional(),\n bytesOut: z.number().optional()\n }).optional()\n }),\n customMetrics: z.record(z.string(), z.number()).optional()\n});\nexport type PerformanceMetrics = z.infer<typeof PerformanceMetricsSchema>; "]}
@@ -1 +1 @@
1
- {"version":3,"file":"email-context.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/email/email-context.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;iBAoBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM5E;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;iBAsB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAsBjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMtE;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB,CACnC,cAAc,GAAG,OAAO,EACxB,cAAc,SAAS,aAAa,GAAG,aAAa,EACpD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,kBAAkB,GAAG,OAAO;IAE5B;;;;;OAKG;IACH,aAAa,EAAE,cAAc,CAAC;IAE9B;;;;OAIG;IACH,aAAa,EAAE,cAAc,CAAC;IAE9B;;;;OAIG;IACH,WAAW,EAAE,YAAY,CAAC;IAE1B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAMD;;;GAGG;AACH,MAAM,WAAW,0BAA0B,CACzC,UAAU,GAAG,OAAO,EACpB,cAAc,SAAS,aAAa,GAAG,aAAa,EACpD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB;IAExD,4DAA4D;IAC5D,SAAS,EAAE,UAAU,CAAC;IACtB,6CAA6C;IAC7C,aAAa,EAAE,cAAc,CAAC;IAC9B,6BAA6B;IAC7B,WAAW,EAAE,YAAY,CAAC;CAC3B;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAoJR;AAED;;;;;GAKG;AACH,wBAAgB,wCAAwC,CACtD,mBAAmB,EAAE,CAAC,CAAC,UAAU,EACjC,kBAAkB,EAAE,MAAM,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,kBAAkB,EAAE,MAAM,GACzB;IACD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CA0DA"}
1
+ {"version":3,"file":"email-context.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/notifications/email/email-context.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;iBAoBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM5E;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;iBAsB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAsBjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMtE;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB,CACnC,cAAc,GAAG,OAAO,EACxB,cAAc,SAAS,aAAa,GAAG,aAAa,EACpD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,kBAAkB,GAAG,OAAO;IAE5B;;;;;OAKG;IACH,aAAa,EAAE,cAAc,CAAC;IAE9B;;;;OAIG;IACH,aAAa,EAAE,cAAc,CAAC;IAE9B;;;;OAIG;IACH,WAAW,EAAE,YAAY,CAAC;IAE1B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAMD;;;GAGG;AACH,MAAM,WAAW,0BAA0B,CACzC,UAAU,GAAG,OAAO,EACpB,cAAc,SAAS,aAAa,GAAG,aAAa,EACpD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB;IAExD,4DAA4D;IAC5D,SAAS,EAAE,UAAU,CAAC;IACtB,6CAA6C;IAC7C,aAAa,EAAE,cAAc,CAAC;IAC9B,6BAA6B;IAC7B,WAAW,EAAE,YAAY,CAAC;CAC3B;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAoJR;AAED;;;;;GAKG;AACH,wBAAgB,wCAAwC,CACtD,mBAAmB,EAAE,CAAC,CAAC,UAAU,EACjC,kBAAkB,EAAE,MAAM,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,kBAAkB,EAAE,MAAM,GACzB;IACD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CA0DA"}
@@ -1 +1 @@
1
- {"version":3,"file":"email-context.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/notifications/email/email-context.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Email Context Schemas\n * \n * Defines the context types that are passed to email templates at render time.\n * These types are serialized to TypeScript text for LLM context during template generation.\n */\n\nimport { z } from 'zod';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// PRIMARY SCOPE CONTEXT SCHEMA\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Primary scope context - information about the application and organization\n * This is available in all email templates via objectContext.primaryScopeContext\n */\nexport const PrimaryScopeContextSchema = z.object({\n /** Application name */\n appName: z.string(),\n /** Application ID */\n applicationId: z.string(),\n /** Organization name (if organization-scoped) */\n organizationName: z.string().optional(),\n /** Organization ID (if organization-scoped) */\n organizationId: z.string().optional(),\n /**\n * Application logo — backend-populated from config brandAssets via\n * `resolveBrandLogoUrl` (EMAIL purpose, LOCKUP/PRIMARY fallback). `z.string()`\n * (not `z.url()`) because a RuntimeBrandAsset.url may be a servable URL OR an\n * app-relative path.\n */\n logoUrl: z.string().optional(),\n /** Application primary URL */\n appUrl: z.url().optional(),\n /** Support email address */\n supportEmail: z.email().optional(),\n});\nexport type PrimaryScopeContext = z.infer<typeof PrimaryScopeContextSchema>;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// OBJECT CONTEXT SCHEMA\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Object context - broader context including primary scope and operation metadata\n * Built by ResourceContextBackendService for resource-based emails\n */\nexport const ObjectContextSchema = z.object({\n /** Primary scope context (app/org info) */\n primaryScopeContext: PrimaryScopeContextSchema,\n \n /** Parent resources context (populated based on relationships) */\n parents: z.record(z.string(), z.unknown()).optional(),\n \n /** Operation metadata */\n operation: z.object({\n /** Operation identifier (e.g., \"create\", \"update\", \"change-status\") */\n operationIdentifier: z.string(),\n /** Resource identifier (e.g., \"todos\", \"users\") */\n resourceIdentifier: z.string(),\n /** Operation timestamp */\n timestamp: z.coerce.date(),\n /** User who performed the operation (if available) */\n performedBy: z.object({\n userId: z.string(),\n userName: z.string().optional(),\n userEmail: z.email().optional(),\n }).optional(),\n }).optional(),\n});\nexport type ObjectContext = z.infer<typeof ObjectContextSchema>;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// USER CONTEXT SCHEMA\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * User context - recipient-specific information\n * This CHANGES for each recipient when sending to multiple users\n */\nexport const EmailUserContextSchema = z.object({\n /** User ID */\n userId: z.string(),\n /** User email (recipient address) */\n email: z.email(),\n /** User display name */\n name: z.string().optional(),\n /** First name */\n firstName: z.string().optional(),\n /** Last name */\n lastName: z.string().optional(),\n /** User's preferred locale */\n locale: z.string().optional(),\n /** User's timezone */\n timezone: z.string().optional(),\n /** User preferences for notifications */\n notificationPreferences: z.object({\n /** Whether user wants marketing emails */\n marketingEmails: z.boolean().optional(),\n /** Whether user wants product update emails */\n productUpdates: z.boolean().optional(),\n }).optional(),\n});\nexport type EmailUserContext = z.infer<typeof EmailUserContextSchema>;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE CONTEXT INTERFACE\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Email Template Input Context\n * \n * This is the context passed to email templates at render time.\n * The template receives these objects and can access any field within them.\n * \n * CALCULATION FLOW:\n * - currentObject, objectContext, additionalContext: calculated ONCE per operation\n * - userContext: changes FOR EACH RECIPIENT (when sending to multiple users)\n */\nexport interface EmailTemplateContext<\n TCurrentObject = unknown,\n TObjectContext extends ObjectContext = ObjectContext,\n TUserContext extends EmailUserContext = EmailUserContext,\n TAdditionalContext = unknown\n> {\n /** \n * The resource being operated on (e.g., the Todo that was updated).\n * Type is the resource's mainSchema type.\n * Calculated once per operation.\n * For system templates, this is the eventData.\n */\n currentObject: TCurrentObject;\n \n /**\n * Context about the resource scope and environment.\n * Contains primaryScopeContext with appName, organizationName, etc.\n * Calculated once per operation.\n */\n objectContext: TObjectContext;\n \n /**\n * The recipient user's context.\n * Contains user info including email, name, preferences.\n * CHANGES for each recipient when sending to multiple users.\n */\n userContext: TUserContext;\n \n /**\n * Optional additional context from custom service implementation.\n * Follows customServiceImplementation pattern - can access platform-wide services.\n * Calculated once per operation.\n */\n additionalContext?: TAdditionalContext;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SYSTEM EMAIL TEMPLATE CONTEXT\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Context for system email templates (non-resource based)\n * Uses eventData instead of currentObject\n */\nexport interface SystemEmailTemplateContext<\n TEventData = unknown,\n TObjectContext extends ObjectContext = ObjectContext,\n TUserContext extends EmailUserContext = EmailUserContext\n> {\n /** Event-specific data (varies per system template type) */\n eventData: TEventData;\n /** Object context with primary scope info */\n objectContext: TObjectContext;\n /** Recipient user context */\n userContext: TUserContext;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// TYPE GENERATION UTILITIES\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Serialize a Zod schema to TypeScript interface text\n * Used to provide type context to LLM for template generation\n * \n * Note: This is a simplified version for basic schema serialization.\n * For full Zod 4 compatible schema serialization, use the utilities in\n * @wildo-ai/saas-backend-lib email/utils/zod-to-typescript.utils.ts\n * \n * @param schema - The Zod schema to serialize\n * @param typeName - The name for the generated interface\n * @returns TypeScript interface text\n */\nexport function serializeZodSchemaToTypeScript(\n schema: z.ZodTypeAny,\n typeName: string\n): string {\n const lines: string[] = [`interface ${typeName} {`];\n \n // Helper to get Zod type name using Zod 4 compatible approach\n function getZodTypeName(s: z.ZodTypeAny): string {\n if (!s || typeof s !== 'object') return 'unknown';\n // Zod 4: type is on def.type or _zod.type\n const sAny = s as unknown as Record<string, unknown>;\n const def = sAny.def || sAny._def || {};\n return (def as Record<string, unknown>).type as string || '';\n }\n \n // Helper to get object shape\n function getObjectShape(s: z.ZodTypeAny): Record<string, z.ZodTypeAny> | null {\n if (s && typeof s === 'object' && 'shape' in s) {\n const sAny = s as unknown as Record<string, unknown>;\n if (typeof sAny.shape === 'object') {\n return sAny.shape as Record<string, z.ZodTypeAny>;\n }\n }\n return null;\n }\n \n // Helper to check if optional\n function isOptionalSchema(s: z.ZodTypeAny): boolean {\n if (!s || typeof s !== 'object') return false;\n const sAny = s as unknown as Record<string, unknown>;\n if (typeof sAny.isOptional === 'function') {\n return (sAny as { isOptional: () => boolean }).isOptional();\n }\n return getZodTypeName(s) === 'optional';\n }\n \n // Helper to unwrap optional/nullable\n function unwrapSchema(s: z.ZodTypeAny): z.ZodTypeAny {\n const typeName = getZodTypeName(s);\n if (typeName === 'optional' || typeName === 'nullable') {\n const sAny = s as unknown as Record<string, unknown>;\n const def = sAny.def || sAny._def || {};\n const innerType = (def as Record<string, unknown>).innerType as z.ZodTypeAny | undefined;\n if (innerType) return unwrapSchema(innerType);\n }\n return s;\n }\n \n // Helper to get def property safely\n function getDef(s: z.ZodTypeAny): Record<string, unknown> {\n const sAny = s as unknown as Record<string, unknown>;\n return (sAny.def || sAny._def || {}) as Record<string, unknown>;\n }\n \n function getTypeString(s: z.ZodTypeAny): string {\n const unwrapped = unwrapSchema(s);\n const typeName = getZodTypeName(unwrapped);\n const def = getDef(unwrapped);\n \n switch (typeName) {\n case 'string': return 'string';\n case 'number':\n case 'int': return 'number';\n case 'boolean': return 'boolean';\n case 'date': return 'Date';\n \n case 'array': {\n // Zod 4: array element is on def.element (def.type is the type name string, not the element schema)\n const itemType = def.element as z.ZodTypeAny | undefined;\n if (itemType) return `${getTypeString(itemType)}[]`;\n return 'unknown[]';\n }\n \n case 'record': {\n const valType = def.valueType as z.ZodTypeAny | undefined;\n if (valType) return `Record<string, ${getTypeString(valType)}>`;\n return 'Record<string, unknown>';\n }\n \n case 'enum': {\n // Zod 4: enum values are on schema.options or schema.enum\n const unwrappedAny = unwrapped as unknown as Record<string, unknown>;\n const values = unwrappedAny.options as string[] | undefined \n || unwrappedAny.enum as string[] | undefined;\n if (Array.isArray(values)) {\n return values.map(v => `'${v}'`).join(' | ');\n }\n return 'string';\n }\n \n case 'object': {\n const shape = getObjectShape(unwrapped);\n if (shape) {\n const fields = Object.entries(shape).map(([key, value]) => {\n const fieldSchema = value;\n const isOpt = isOptionalSchema(fieldSchema);\n const typeStr = getTypeString(fieldSchema);\n const optionalMark = isOpt ? '?' : '';\n return `${key}${optionalMark}: ${typeStr}`;\n });\n return `{ ${fields.join('; ')} }`;\n }\n return 'object';\n }\n \n case 'literal': {\n // Zod 4: literal uses 'values' array, not 'value'\n const values = def.values as unknown[] | undefined;\n if (Array.isArray(values) && values.length > 0) {\n const val = values[0];\n return typeof val === 'string' ? `'${val}'` : String(val);\n }\n return 'unknown';\n }\n \n case 'union': {\n const options = def.options as z.ZodTypeAny[] | undefined;\n if (Array.isArray(options)) {\n return options.map(o => getTypeString(o)).join(' | ');\n }\n return 'unknown';\n }\n \n default:\n return 'unknown';\n }\n }\n \n function processSchema(s: z.ZodTypeAny, indent: number = 2): string[] {\n const result: string[] = [];\n const padding = ' '.repeat(indent);\n \n // Handle ZodObject using .shape property\n const shape = getObjectShape(s);\n if (shape) {\n for (const [key, value] of Object.entries(shape)) {\n const fieldSchema = value;\n const isOpt = isOptionalSchema(fieldSchema);\n const typeStr = getTypeString(fieldSchema);\n const optionalMark = isOpt ? '?' : '';\n result.push(`${padding}${key}${optionalMark}: ${typeStr};`);\n }\n }\n \n return result;\n }\n \n lines.push(...processSchema(schema));\n lines.push('}');\n \n return lines.join('\\n');\n}\n\n/**\n * Build email template context type definitions for LLM\n * \n * Serializes the Zod schemas to TypeScript-like text representation\n * so the LLM can understand available fields when generating templates.\n */\nexport function buildEmailTemplateContextTypeDefinitions(\n currentObjectSchema: z.ZodTypeAny,\n resourceIdentifier: string,\n operationIdentifier: string,\n notificationTarget: string\n): {\n typeDefinitions: string;\n description: string;\n} {\n // Serialize currentObject type from operation's mainSchema\n const currentObjectTypeDef = serializeZodSchemaToTypeScript(\n currentObjectSchema,\n 'CurrentObject'\n );\n \n // Serialize objectContext type (includes primaryScopeContext)\n const objectContextTypeDef = serializeZodSchemaToTypeScript(\n ObjectContextSchema,\n 'ObjectContext'\n );\n \n // Serialize userContext type (user info with email, name, etc.)\n const userContextTypeDef = serializeZodSchemaToTypeScript(\n EmailUserContextSchema,\n 'UserContext'\n );\n \n const description = `Email notification for ${resourceIdentifier} ${operationIdentifier} operation, targeting ${notificationTarget}`;\n \n // Combine into full type definition text for LLM\n const typeDefinitions = `\n// ═══════════════════════════════════════════════════════════════════════════\n// EMAIL TEMPLATE CONTEXT TYPES\n// These types describe the data available in your email template.\n// ═══════════════════════════════════════════════════════════════════════════\n\n// IMPORTANT: \n// - currentObject, objectContext, additionalContext are calculated ONCE per operation\n// - userContext CHANGES for each recipient (when sending to multiple users)\n\n${currentObjectTypeDef}\n\n${objectContextTypeDef}\n\n${userContextTypeDef}\n\n// The template receives this context:\ninterface EmailTemplateProps {\n currentObject: CurrentObject;\n objectContext: ObjectContext;\n userContext: UserContext;\n additionalContext?: Record<string, unknown>; // Optional custom data\n}\n\n// Common access patterns:\n// - Recipient email: userContext.email\n// - Recipient name: userContext.name || userContext.firstName\n// - App name: objectContext.primaryScopeContext.appName\n// - Organization name: objectContext.primaryScopeContext.organizationName\n// - Resource data: currentObject.{fieldName} (e.g., currentObject.title)\n`;\n \n return {\n typeDefinitions,\n description,\n };\n}\n"]}
1
+ {"version":3,"file":"email-context.shared.schemas.js","sourceRoot":"","sources":["../../../../src/notifications/email/email-context.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Email Context Schemas\n * \n * Defines the context types that are passed to email templates at render time.\n * These types are serialized to TypeScript text for LLM context during template generation.\n */\n\nimport { z } from 'zod';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// PRIMARY SCOPE CONTEXT SCHEMA\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Primary scope context - information about the application and organization\n * This is available in all email templates via objectContext.primaryScopeContext\n */\nexport const PrimaryScopeContextSchema = z.object({\n /** Application name */\n appName: z.string(),\n /** Application ID */\n applicationId: z.string(),\n /** Organization name (if organization-scoped) */\n organizationName: z.string().optional(),\n /** Organization ID (if organization-scoped) */\n organizationId: z.string().optional(),\n /**\n * Application logo — backend-populated from config brandAssets via\n * `resolveBrandLogoUrl` (EMAIL purpose, LOCKUP/PRIMARY fallback). `z.string()`\n * (not `z.url()`) because a RuntimeBrandAsset.url may be a servable URL OR an\n * app-relative path.\n */\n logoUrl: z.string().optional(),\n /** Application primary URL */\n appUrl: z.url().optional(),\n /** Support email address */\n supportEmail: z.email().optional(),\n});\nexport type PrimaryScopeContext = z.infer<typeof PrimaryScopeContextSchema>;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// OBJECT CONTEXT SCHEMA\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Object context - broader context including primary scope and operation metadata\n * Built by ResourceContextBackendService for resource-based emails\n */\nexport const ObjectContextSchema = z.object({\n /** Primary scope context (app/org info) */\n primaryScopeContext: PrimaryScopeContextSchema,\n \n /** Parent resources context (populated based on relationships) */\n parents: z.record(z.string(), z.unknown()).optional(),\n \n /** Operation metadata */\n operation: z.object({\n /** Operation identifier (e.g., \"create\", \"update\", \"change-status\") */\n operationIdentifier: z.string(),\n /** Resource identifier (e.g., \"todos\", \"users\") */\n resourceIdentifier: z.string(),\n /** Operation timestamp */\n timestamp: z.coerce.date(),\n /** User who performed the operation (if available) */\n performedBy: z.object({\n userId: z.string(),\n userName: z.string().optional(),\n userEmail: z.email().optional(),\n }).optional(),\n }).optional(),\n});\nexport type ObjectContext = z.infer<typeof ObjectContextSchema>;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// USER CONTEXT SCHEMA\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * User context - recipient-specific information\n * This CHANGES for each recipient when sending to multiple users\n */\nexport const EmailUserContextSchema = z.object({\n /** User ID */\n userId: z.string(),\n /** User email (recipient address) */\n email: z.email(),\n /** User display name */\n name: z.string().optional(),\n /** First name */\n firstName: z.string().optional(),\n /** Last name */\n lastName: z.string().optional(),\n /** User's preferred locale */\n locale: z.string().optional(),\n /** User's timezone */\n timezone: z.string().optional(),\n /** User preferences for notifications */\n notificationPreferences: z.object({\n /** Whether user wants marketing emails */\n marketingEmails: z.boolean().optional(),\n /** Whether user wants product update emails */\n productUpdates: z.boolean().optional(),\n }).optional(),\n});\nexport type EmailUserContext = z.infer<typeof EmailUserContextSchema>;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE CONTEXT INTERFACE\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Email Template Input Context\n * \n * This is the context passed to email templates at render time.\n * The template receives these objects and can access any field within them.\n * \n * CALCULATION FLOW:\n * - currentObject, objectContext, additionalContext: calculated ONCE per operation\n * - userContext: changes FOR EACH RECIPIENT (when sending to multiple users)\n */\nexport interface EmailTemplateContext<\n TCurrentObject = unknown,\n TObjectContext extends ObjectContext = ObjectContext,\n TUserContext extends EmailUserContext = EmailUserContext,\n TAdditionalContext = unknown\n> {\n /** \n * The resource being operated on (e.g., the Todo that was updated).\n * Type is the resource's mainSchema type.\n * Calculated once per operation.\n * For system templates, this is the eventData.\n */\n currentObject: TCurrentObject;\n \n /**\n * Context about the resource scope and environment.\n * Contains primaryScopeContext with appName, organizationName, etc.\n * Calculated once per operation.\n */\n objectContext: TObjectContext;\n \n /**\n * The recipient user's context.\n * Contains user info including email, name, preferences.\n * CHANGES for each recipient when sending to multiple users.\n */\n userContext: TUserContext;\n \n /**\n * Optional additional context from custom service implementation.\n * Follows customServiceImplementation pattern - can access platform-wide services.\n * Calculated once per operation.\n */\n additionalContext?: TAdditionalContext;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SYSTEM EMAIL TEMPLATE CONTEXT\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Context for system email templates (non-resource based)\n * Uses eventData instead of currentObject\n */\nexport interface SystemEmailTemplateContext<\n TEventData = unknown,\n TObjectContext extends ObjectContext = ObjectContext,\n TUserContext extends EmailUserContext = EmailUserContext\n> {\n /** Event-specific data (varies per system template type) */\n eventData: TEventData;\n /** Object context with primary scope info */\n objectContext: TObjectContext;\n /** Recipient user context */\n userContext: TUserContext;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// TYPE GENERATION UTILITIES\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Serialize a Zod schema to TypeScript interface text\n * Used to provide type context to LLM for template generation\n * \n * Note: This is a simplified version for basic schema serialization.\n * For full Zod 4 compatible schema serialization, use the utilities in\n * @wildo-ai/saas-backend-lib email/utils/zod-to-typescript.utils.ts\n * \n * @param schema - The Zod schema to serialize\n * @param typeName - The name for the generated interface\n * @returns TypeScript interface text\n */\nexport function serializeZodSchemaToTypeScript(\n schema: z.ZodTypeAny,\n typeName: string\n): string {\n const lines: string[] = [`interface ${typeName} {`];\n \n // Helper to get Zod type name using Zod 4 compatible approach\n function getZodTypeName(s: z.ZodTypeAny): string {\n if (!s || typeof s !== 'object') return 'unknown';\n // Zod 4: type is on def.type or _zod.type\n const sAny = s as unknown as Record<string, unknown>;\n const def = sAny.def || sAny._def || {};\n return (def as Record<string, unknown>).type as string || '';\n }\n \n // Helper to get object shape\n function getObjectShape(s: z.ZodTypeAny): Record<string, z.ZodTypeAny> | null {\n if (s && typeof s === 'object' && 'shape' in s) {\n const sAny = s as unknown as Record<string, unknown>;\n if (typeof sAny.shape === 'object') {\n return sAny.shape as Record<string, z.ZodTypeAny>;\n }\n }\n return null;\n }\n \n // Helper to check if optional\n function isOptionalSchema(s: z.ZodTypeAny): boolean {\n if (!s || typeof s !== 'object') return false;\n const sAny = s as unknown as Record<string, unknown>;\n if (typeof sAny.isOptional === 'function') {\n return (sAny as { isOptional: () => boolean }).isOptional();\n }\n return getZodTypeName(s) === 'optional';\n }\n \n // Helper to unwrap optional/nullable\n function unwrapSchema(s: z.ZodTypeAny): z.ZodTypeAny {\n const typeName = getZodTypeName(s);\n if (typeName === 'optional' || typeName === 'nullable') {\n const sAny = s as unknown as Record<string, unknown>;\n const def = sAny.def || sAny._def || {};\n const innerType = (def as Record<string, unknown>).innerType as z.ZodTypeAny | undefined;\n if (innerType) return unwrapSchema(innerType);\n }\n return s;\n }\n \n // Helper to get def property safely\n function getDef(s: z.ZodTypeAny): Record<string, unknown> {\n const sAny = s as unknown as Record<string, unknown>;\n return (sAny.def || sAny._def || {}) as Record<string, unknown>;\n }\n \n function getTypeString(s: z.ZodTypeAny): string {\n const unwrapped = unwrapSchema(s);\n const typeName = getZodTypeName(unwrapped);\n const def = getDef(unwrapped);\n \n switch (typeName) {\n case 'string': return 'string';\n case 'number':\n case 'int': return 'number';\n case 'boolean': return 'boolean';\n case 'date': return 'Date';\n \n case 'array': {\n // Zod 4: array element is on def.element (def.type is the type name string, not the element schema)\n const itemType = def.element as z.ZodTypeAny | undefined;\n if (itemType) return `${getTypeString(itemType)}[]`;\n return 'unknown[]';\n }\n \n case 'record': {\n const valType = def.valueType as z.ZodTypeAny | undefined;\n if (valType) return `Record<string, ${getTypeString(valType)}>`;\n return 'Record<string, unknown>';\n }\n \n case 'enum': {\n // Zod 4: enum values are on schema.options or schema.enum\n const unwrappedAny = unwrapped as unknown as Record<string, unknown>;\n const values = unwrappedAny.options as string[] | undefined \n || unwrappedAny.enum as string[] | undefined;\n if (Array.isArray(values)) {\n return values.map(v => `'${v}'`).join(' | ');\n }\n return 'string';\n }\n \n case 'object': {\n const shape = getObjectShape(unwrapped);\n if (shape) {\n const fields = Object.entries(shape).map(([key, value]) => {\n const fieldSchema = value;\n const isOpt = isOptionalSchema(fieldSchema);\n const typeStr = getTypeString(fieldSchema);\n const optionalMark = isOpt ? '?' : '';\n return `${key}${optionalMark}: ${typeStr}`;\n });\n return `{ ${fields.join('; ')} }`;\n }\n return 'object';\n }\n \n case 'literal': {\n // Zod 4: literal uses 'values' array, not 'value'\n const values = def.values as unknown[] | undefined;\n if (Array.isArray(values) && values.length > 0) {\n const val = values[0];\n return typeof val === 'string' ? `'${val}'` : String(val);\n }\n return 'unknown';\n }\n \n case 'union': {\n const options = def.options as z.ZodTypeAny[] | undefined;\n if (Array.isArray(options)) {\n return options.map(o => getTypeString(o)).join(' | ');\n }\n return 'unknown';\n }\n \n default:\n return 'unknown';\n }\n }\n \n function processSchema(s: z.ZodTypeAny, indent: number = 2): string[] {\n const result: string[] = [];\n const padding = ' '.repeat(indent);\n \n // Handle ZodObject using .shape property\n const shape = getObjectShape(s);\n if (shape) {\n for (const [key, value] of Object.entries(shape)) {\n const fieldSchema = value;\n const isOpt = isOptionalSchema(fieldSchema);\n const typeStr = getTypeString(fieldSchema);\n const optionalMark = isOpt ? '?' : '';\n result.push(`${padding}${key}${optionalMark}: ${typeStr};`);\n }\n }\n \n return result;\n }\n \n lines.push(...processSchema(schema));\n lines.push('}');\n \n return lines.join('\\n');\n}\n\n/**\n * Build email template context type definitions for LLM\n * \n * Serializes the Zod schemas to TypeScript-like text representation\n * so the LLM can understand available fields when generating templates.\n */\nexport function buildEmailTemplateContextTypeDefinitions(\n currentObjectSchema: z.ZodTypeAny,\n resourceIdentifier: string,\n operationIdentifier: string,\n notificationTarget: string\n): {\n typeDefinitions: string;\n description: string;\n} {\n // Serialize currentObject type from operation's mainSchema\n const currentObjectTypeDef = serializeZodSchemaToTypeScript(\n currentObjectSchema,\n 'CurrentObject'\n );\n \n // Serialize objectContext type (includes primaryScopeContext)\n const objectContextTypeDef = serializeZodSchemaToTypeScript(\n ObjectContextSchema,\n 'ObjectContext'\n );\n \n // Serialize userContext type (user info with email, name, etc.)\n const userContextTypeDef = serializeZodSchemaToTypeScript(\n EmailUserContextSchema,\n 'UserContext'\n );\n \n const description = `Email notification for ${resourceIdentifier} ${operationIdentifier} operation, targeting ${notificationTarget}`;\n \n // Combine into full type definition text for LLM\n const typeDefinitions = `\n// ═══════════════════════════════════════════════════════════════════════════\n// EMAIL TEMPLATE CONTEXT TYPES\n// These types describe the data available in your email template.\n// ═══════════════════════════════════════════════════════════════════════════\n\n// IMPORTANT: \n// - currentObject, objectContext, additionalContext are calculated ONCE per operation\n// - userContext CHANGES for each recipient (when sending to multiple users)\n\n${currentObjectTypeDef}\n\n${objectContextTypeDef}\n\n${userContextTypeDef}\n\n// The template receives this context:\ninterface EmailTemplateProps {\n currentObject: CurrentObject;\n objectContext: ObjectContext;\n userContext: UserContext;\n additionalContext?: Record<string, unknown>; // Optional custom data\n}\n\n// Common access patterns:\n// - Recipient email: userContext.email\n// - Recipient name: userContext.name || userContext.firstName\n// - App name: objectContext.primaryScopeContext.appName\n// - Organization name: objectContext.primaryScopeContext.organizationName\n// - Resource data: currentObject.{fieldName} (e.g., currentObject.title)\n`;\n \n return {\n typeDefinitions,\n description,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"email-submission.shared.enums.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/email/email-submission.shared.enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,sBAAsB;IAChC,oFAAoF;IACpF,aAAa,kBAAkB;IAC/B,mHAAmH;IACnH,aAAa,kBAAkB;IAC/B,2FAA2F;IAC3F,iBAAiB,sBAAsB;IACvC,sDAAsD;IACtD,iBAAiB,sBAAsB;IACvC,8EAA8E;IAC9E,kBAAkB,uBAAuB;CAC1C"}
1
+ {"version":3,"file":"email-submission.shared.enums.d.ts","sourceRoot":"","sources":["../../../../src/notifications/email/email-submission.shared.enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,sBAAsB;IAChC,oFAAoF;IACpF,aAAa,kBAAkB;IAC/B,mHAAmH;IACnH,aAAa,kBAAkB;IAC/B,2FAA2F;IAC3F,iBAAiB,sBAAsB;IACvC,sDAAsD;IACtD,iBAAiB,sBAAsB;IACvC,8EAA8E;IAC9E,kBAAkB,uBAAuB;CAC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"email-submission.shared.enums.js","sourceRoot":"","sources":["../../../../../src/notifications/email/email-submission.shared.enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,sBAWX;AAXD,WAAY,sBAAsB;IAChC,oFAAoF;IACpF,yDAA+B,CAAA;IAC/B,mHAAmH;IACnH,yDAA+B,CAAA;IAC/B,2FAA2F;IAC3F,iEAAuC,CAAA;IACvC,sDAAsD;IACtD,iEAAuC,CAAA;IACvC,8EAA8E;IAC9E,mEAAyC,CAAA;AAC3C,CAAC,EAXW,sBAAsB,KAAtB,sBAAsB,QAWjC","sourcesContent":["/** Outcomes of the application email sender, shared by backend and developer tooling.\n * Provider acceptance establishes submission only, never inbox delivery.\n */\nexport enum EmailSubmissionOutcome {\n /** No provider submission was attempted; inspect the failure and retryable flag. */\n NOT_SUBMITTED = 'not_submitted',\n /** Rendered and logged locally, without network submission. Successful and not retryable; no provider receipts. */\n LOCAL_PREVIEW = 'local_preview',\n /** The provider confirmed accepting the submission, possibly with native deduplication. */\n PROVIDER_ACCEPTED = 'provider_accepted',\n /** The provider explicitly refused the submission. */\n PROVIDER_REJECTED = 'provider_rejected',\n /** Submission may have reached the provider; retry can duplicate delivery. */\n ACCEPTANCE_UNKNOWN = 'acceptance_unknown',\n}\n"]}
1
+ {"version":3,"file":"email-submission.shared.enums.js","sourceRoot":"","sources":["../../../../src/notifications/email/email-submission.shared.enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,sBAWX;AAXD,WAAY,sBAAsB;IAChC,oFAAoF;IACpF,yDAA+B,CAAA;IAC/B,mHAAmH;IACnH,yDAA+B,CAAA;IAC/B,2FAA2F;IAC3F,iEAAuC,CAAA;IACvC,sDAAsD;IACtD,iEAAuC,CAAA;IACvC,8EAA8E;IAC9E,mEAAyC,CAAA;AAC3C,CAAC,EAXW,sBAAsB,KAAtB,sBAAsB,QAWjC","sourcesContent":["/** Outcomes of the application email sender, shared by backend and developer tooling.\n * Provider acceptance establishes submission only, never inbox delivery.\n */\nexport enum EmailSubmissionOutcome {\n /** No provider submission was attempted; inspect the failure and retryable flag. */\n NOT_SUBMITTED = 'not_submitted',\n /** Rendered and logged locally, without network submission. Successful and not retryable; no provider receipts. */\n LOCAL_PREVIEW = 'local_preview',\n /** The provider confirmed accepting the submission, possibly with native deduplication. */\n PROVIDER_ACCEPTED = 'provider_accepted',\n /** The provider explicitly refused the submission. */\n PROVIDER_REJECTED = 'provider_rejected',\n /** Submission may have reached the provider; retry can duplicate delivery. */\n ACCEPTANCE_UNKNOWN = 'acceptance_unknown',\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"email-template-registry.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/email/email-template-registry.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAQvC;;;GAGG;AACH,oBAAY,sBAAsB;IAEhC,aAAa,yBAAyB;IACtC,cAAc,0BAA0B;IACxC,kBAAkB,8BAA8B;IAChD,SAAS,qBAAqB;IAC9B,UAAU,sBAAsB;IAGhC,uBAAuB,mCAAmC;IAC1D,2BAA2B,uCAAuC;IAGlE,yBAAyB,qCAAqC;IAC9D,sBAAsB,kCAAkC;IACxD,cAAc,0BAA0B;IAGxC,cAAc,0BAA0B;IACxC,gBAAgB,4BAA4B;IAG5C;;;;OAIG;IACH,uBAAuB,mCAAmC;CAC3D;AAED;;;;;;GAMG;AACH,oBAAY,iBAAiB;IAC3B,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B;;;;;;;;;;OAUG;IACH,mBAAmB,wBAAwB;IAC3C;;;;;;;;OAQG;IACH,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;CAChB;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,6BAA6B;IAC5C,iCAAiC;IACjC,WAAW,EAAE,sBAAsB,CAAC;IACpC,uCAAuC;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,0CAA0C;IAC1C,SAAS,EAAE,sBAAsB,CAAC;IAClC,wCAAwC;IACxC,KAAK,EAAE,kBAAkB,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;CACrC;AAMD,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CA8LrG,CAAC;AAMF,oCAAoC;AACpC,wBAAgB,wBAAwB,IAAI,sBAAsB,EAAE,CAEnE;AAED,6CAA6C;AAC7C,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,sBAAsB,GAAG,6BAA6B,CAEtG;AAED,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,IAAI,sBAAsB,CAG9F"}
1
+ {"version":3,"file":"email-template-registry.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/notifications/email/email-template-registry.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAQvC;;;GAGG;AACH,oBAAY,sBAAsB;IAEhC,aAAa,yBAAyB;IACtC,cAAc,0BAA0B;IACxC,kBAAkB,8BAA8B;IAChD,SAAS,qBAAqB;IAC9B,UAAU,sBAAsB;IAGhC,uBAAuB,mCAAmC;IAC1D,2BAA2B,uCAAuC;IAGlE,yBAAyB,qCAAqC;IAC9D,sBAAsB,kCAAkC;IACxD,cAAc,0BAA0B;IAGxC,cAAc,0BAA0B;IACxC,gBAAgB,4BAA4B;IAG5C;;;;OAIG;IACH,uBAAuB,mCAAmC;CAC3D;AAED;;;;;;GAMG;AACH,oBAAY,iBAAiB;IAC3B,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B;;;;;;;;;;OAUG;IACH,mBAAmB,wBAAwB;IAC3C;;;;;;;;OAQG;IACH,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;CAChB;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,6BAA6B;IAC5C,iCAAiC;IACjC,WAAW,EAAE,sBAAsB,CAAC;IACpC,uCAAuC;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,0CAA0C;IAC1C,SAAS,EAAE,sBAAsB,CAAC;IAClC,wCAAwC;IACxC,KAAK,EAAE,kBAAkB,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;CACrC;AAMD,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CA8LrG,CAAC;AAMF,oCAAoC;AACpC,wBAAgB,wBAAwB,IAAI,sBAAsB,EAAE,CAEnE;AAED,6CAA6C;AAC7C,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,sBAAsB,GAAG,6BAA6B,CAEtG;AAED,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,IAAI,sBAAsB,CAG9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"email-template-registry.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/notifications/email/email-template-registry.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * System Email Template Registry\n *\n * Runtime identity contract for system-level (non-resource-attached) email\n * templates. Carries only mechanical information: `templateRef`, routing\n * classifications (`type`, `frequency`, `scope`), and the Zod schema for the\n * event payload.\n *\n * **All human-readable / spec-oriented content (purpose prose, tone, text\n * slots, event-data field narration) lives in\n * `@wildo-ai/saas-specifications`** — specifically in\n * `SystemEmailTemplateSpecificationConfig` under\n * `src/engine/notifications/system-emails/`. The runtime registry must stay\n * free of i18n/spec prose so the companion translation/transposition\n * pipeline owns the single source of truth for authored semantics.\n */\n\nimport { z } from 'zod';\nimport {\n EmailTemplateType,\n EmailTemplateFrequency,\n EmailTemplateScope,\n} from './email-template.shared.enums';\nimport { AuthMethod } from '../../security/authentications/authentication.shared.schemas';\nimport { ReviewDeadlineStage } from '../../flows-actors/human-decision.shared.schemas';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SYSTEM EMAIL TEMPLATE REF ENUM\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * System email template registry — non-resource related.\n * Uses dot notation for namespacing (`system.*`).\n */\nexport enum SystemEmailTemplateRef {\n // ─── Authentication ───────────────────────────────────────────\n WELCOME_EMAIL = \"system.welcome_email\",\n PASSWORD_RESET = \"system.password_reset\",\n EMAIL_VERIFICATION = \"system.email_verification\",\n EMAIL_OTP = \"system.email_otp\",\n MAGIC_LINK = \"system.magic_link\",\n\n // ─── Organization ─────────────────────────────────────────────\n ORGANIZATION_INVITATION = \"system.organization_invitation\",\n ORGANIZATION_MEMBER_REMOVED = \"system.organization_member_removed\",\n\n // ─── Subscription & Billing ───────────────────────────────────\n SUBSCRIPTION_CONFIRMATION = \"system.subscription_confirmation\",\n SUBSCRIPTION_CANCELLED = \"system.subscription_cancelled\",\n PAYMENT_FAILED = \"system.payment_failed\",\n\n // ─── Security ─────────────────────────────────────────────────\n SECURITY_ALERT = \"system.security_alert\",\n NEW_DEVICE_LOGIN = \"system.new_device_login\",\n\n // ─── Human decisions (#1628) ──────────────────────────────────\n /**\n * A pending decision on an agent's action reached a deadline stage, or a deadline's rule moved it to the\n * recipient. One template for every stage: the words for each come from its labels, keyed by\n * `ReviewDeadlineStage`, so a stage added to the vocabulary without words is a compile error there.\n */\n HUMAN_DECISION_DEADLINE = \"system.human_decision_deadline\",\n}\n\n/**\n * What happened, in a `SystemEmailTemplateRef.SECURITY_ALERT` email.\n *\n * One named vocabulary so each member can carry its own authored WORDS in the template's labels —\n * the template used to turn the wire value into text by swapping its underscores for spaces, which produced\n * \"authenticator added\" in English for every locale and could not be worded by anyone.\n */\nexport enum SecurityAlertType {\n SUSPICIOUS_LOGIN = 'suspicious_login',\n PASSWORD_CHANGED = 'password_changed',\n MFA_DISABLED = 'mfa_disabled',\n NEW_API_KEY = 'new_api_key',\n /**\n * An authenticator was bound to the account: a passkey registered, TOTP confirmed, a phone\n * confirmed, a password set, or a sign-in identity linked (a social account auto-linked by its\n * verified email, or an enterprise identity linked to an existing account). Sent on every successful\n * binding, to the account's email — a channel independent of the\n * browser session that did the binding, which is what NIST SP 800-63B-4 Sec. 4.1.2.1 requires: \"When\n * an authenticator is added, the CSP SHALL notify the subscriber via a mechanism independent of the\n * transaction binding the new authenticator\".\n * spec-cite: NIST SP 800-63B-4 Sec. 4.1.2.1, fetched 2026-09-21 from\n * https://pages.nist.gov/800-63-4/sp800-63b/events/\n */\n AUTHENTICATOR_ADDED = 'authenticator_added',\n /**\n * A way to sign in was removed by the account holder: a passkey removed or a linked identity\n * unlinked. Turning TOTP off is `MFA_DISABLED`, which names the stronger consequence. NIST SP\n * 800-63B-4 Sec. 4.5: \"The CSP SHOULD notify the subscriber when an authenticator is invalidated\".\n * Removal is where a stolen session quietly takes a way in AWAY from the account holder, so the email\n * is how they find out.\n * spec-cite: NIST SP 800-63B-4 Sec. 4.5, fetched 2026-09-21 from\n * https://pages.nist.gov/800-63-4/sp800-63b/events/\n */\n AUTHENTICATOR_REMOVED = 'authenticator_removed',\n OTHER = 'other',\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SYSTEM TEMPLATE DEFINITION INTERFACE\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Runtime identity for a system email template.\n *\n * System templates use the same context structure as resource-based templates:\n * - `objectContext`: contains `primaryScopeContext` (appName, organizationName, etc.)\n * - `userContext`: recipient info (email, name, preferences) — changes per recipient\n * - `eventData`: system-event-specific payload (replaces `currentObject` for\n * non-resource emails).\n *\n * ⚠️ Nothing parses a send against `eventDataSchema`. The payload travels in the untyped\n * `additionalContext` slot of the send request and each template casts it, so a misspelled or\n * missing field renders as empty text rather than being refused. Treat the schema below as the\n * DOCUMENTED shape a caller is expected to supply, not as a check that it did.\n */\nexport interface SystemEmailTemplateDefinition {\n /** Unique template reference. */\n templateRef: SystemEmailTemplateRef;\n /** Email type for provider routing. */\n type: EmailTemplateType;\n /** Frequency for lifecycle management. */\n frequency: EmailTemplateFrequency;\n /** Scope for header/footer behavior. */\n scope: EmailTemplateScope;\n /**\n * Zod schema DOCUMENTING the event-specific payload (`eventData`).\n *\n * This is the system-event payload, NOT a flattened input DTO.\n * Common fields (appName, recipientEmail) come from\n * `objectContext` / `userContext`.\n *\n * It is declarative: no send path parses against it. Keep it accurate anyway, because it is the\n * only statement of what a template needs, and a caller that disagrees with it produces a blank\n * region in the rendered email instead of an error.\n */\n eventDataSchema: z.ZodType<unknown>;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SYSTEM TEMPLATE REGISTRY\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Registry of all system templates. */\nexport const SystemEmailTemplateRegistry: Record<SystemEmailTemplateRef, SystemEmailTemplateDefinition> = {\n [SystemEmailTemplateRef.WELCOME_EMAIL]: {\n templateRef: SystemEmailTemplateRef.WELCOME_EMAIL,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n loginUrl: z.url(),\n }),\n },\n\n [SystemEmailTemplateRef.PASSWORD_RESET]: {\n templateRef: SystemEmailTemplateRef.PASSWORD_RESET,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n resetUrl: z.url(),\n expiresInMinutes: z.number().int().positive(),\n }),\n },\n\n [SystemEmailTemplateRef.EMAIL_VERIFICATION]: {\n templateRef: SystemEmailTemplateRef.EMAIL_VERIFICATION,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n verifyUrl: z.url(),\n expiresInHours: z.number().int().positive().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.EMAIL_OTP]: {\n templateRef: SystemEmailTemplateRef.EMAIL_OTP,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n otpCode: z.string().min(4).max(8),\n expiresInMinutes: z.number().int().positive(),\n }),\n },\n\n [SystemEmailTemplateRef.MAGIC_LINK]: {\n templateRef: SystemEmailTemplateRef.MAGIC_LINK,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n magicLinkUrl: z.url(),\n tokenValue: z.string(),\n expiresInMinutes: z.number().int().positive(),\n }),\n },\n\n [SystemEmailTemplateRef.ORGANIZATION_INVITATION]: {\n templateRef: SystemEmailTemplateRef.ORGANIZATION_INVITATION,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.ORGANIZATION,\n eventDataSchema: z.object({\n inviterName: z.string(),\n organizationName: z.string(),\n role: z.string(),\n acceptUrl: z.url(),\n expiresInDays: z.number().int().positive(),\n }),\n },\n\n [SystemEmailTemplateRef.ORGANIZATION_MEMBER_REMOVED]: {\n templateRef: SystemEmailTemplateRef.ORGANIZATION_MEMBER_REMOVED,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.ORGANIZATION,\n eventDataSchema: z.object({\n organizationName: z.string(),\n removedByName: z.string().optional(),\n reason: z.string().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.SUBSCRIPTION_CONFIRMATION]: {\n templateRef: SystemEmailTemplateRef.SUBSCRIPTION_CONFIRMATION,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n planName: z.string(),\n amount: z.number().positive(),\n currency: z.string().length(3),\n billingPeriod: z.enum(['monthly', 'yearly']),\n nextBillingDate: z.coerce.date(),\n dashboardUrl: z.url(),\n }),\n },\n\n [SystemEmailTemplateRef.SUBSCRIPTION_CANCELLED]: {\n templateRef: SystemEmailTemplateRef.SUBSCRIPTION_CANCELLED,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n planName: z.string(),\n effectiveDate: z.coerce.date(),\n reactivateUrl: z.url().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.PAYMENT_FAILED]: {\n templateRef: SystemEmailTemplateRef.PAYMENT_FAILED,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n amount: z.number().positive(),\n currency: z.string().length(3),\n lastFourDigits: z.string().length(4),\n retryDate: z.coerce.date(),\n updatePaymentUrl: z.url(),\n }),\n },\n\n [SystemEmailTemplateRef.SECURITY_ALERT]: {\n templateRef: SystemEmailTemplateRef.SECURITY_ALERT,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n alertType: z.enum(SecurityAlertType),\n /**\n * Which authenticator was added, for `AUTHENTICATOR_ADDED`. There is no free-text description\n * any more: the words for each alert come from the template's labels, so they can be translated\n * and worded by whoever owns the copy. A caller-written sentence could be neither.\n */\n authMethod: z.enum(AuthMethod).optional(),\n timestamp: z.coerce.date(),\n ipAddress: z.string().optional(),\n location: z.string().optional(),\n /**\n * Optional: the notification matters more than the link, so it is still sent when the frontend\n * the request came from cannot be resolved.\n */\n securitySettingsUrl: z.url().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.HUMAN_DECISION_DEADLINE]: {\n templateRef: SystemEmailTemplateRef.HUMAN_DECISION_DEADLINE,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n /** Which deadline stage fired. */\n stage: z.enum(ReviewDeadlineStage),\n /** True when the stage's REASSIGN rule moved the decision to the recipient. */\n reassignedToYou: z.boolean(),\n /**\n * True when the recipient is the person whose request is waiting (the gate's owner at a DECISION\n * stage) rather than someone who can answer it — they are told it is waiting, never asked to answer.\n */\n forRequester: z.boolean(),\n /** The decision id, for the link into the inbox. Never the tool's arguments. */\n decisionRef: z.string(),\n /** The gated action, by its tool name. */\n toolName: z.string().optional(),\n /** The deadline this stage is about (for a warning, the deadline it warns of). */\n deadlineAt: z.coerce.date(),\n /** When the decision ends LAPSED if nobody answers. */\n lapsesAt: z.coerce.date().optional(),\n /** The application's address, when its default frontend can be resolved. The decision is in the recipient's inbox there. */\n appUrl: z.url().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.NEW_DEVICE_LOGIN]: {\n templateRef: SystemEmailTemplateRef.NEW_DEVICE_LOGIN,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n deviceType: z.string(),\n browser: z.string(),\n operatingSystem: z.string(),\n ipAddress: z.string(),\n location: z.string().optional(),\n loginTime: z.coerce.date(),\n revokeAccessUrl: z.url(),\n }),\n },\n};\n\n// ─────────────────────────────────────────────────────────────────────────────\n// HELPER FUNCTIONS\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Get all system template refs. */\nexport function getAllSystemTemplateRefs(): SystemEmailTemplateRef[] {\n return Object.values(SystemEmailTemplateRef);\n}\n\n/** Get system template definition by ref. */\nexport function getSystemTemplateDefinition(ref: SystemEmailTemplateRef): SystemEmailTemplateDefinition {\n return SystemEmailTemplateRegistry[ref];\n}\n\n/** Check if a templateRef is a system template. */\nexport function isSystemTemplateRef(templateRef: string): templateRef is SystemEmailTemplateRef {\n return templateRef.startsWith('system.') &&\n Object.values(SystemEmailTemplateRef).includes(templateRef as SystemEmailTemplateRef);\n}\n"]}
1
+ {"version":3,"file":"email-template-registry.shared.schemas.js","sourceRoot":"","sources":["../../../../src/notifications/email/email-template-registry.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * System Email Template Registry\n *\n * Runtime identity contract for system-level (non-resource-attached) email\n * templates. Carries only mechanical information: `templateRef`, routing\n * classifications (`type`, `frequency`, `scope`), and the Zod schema for the\n * event payload.\n *\n * **All human-readable / spec-oriented content (purpose prose, tone, text\n * slots, event-data field narration) lives in\n * `@wildo-ai/saas-specifications`** — specifically in\n * `SystemEmailTemplateSpecificationConfig` under\n * `src/engine/notifications/system-emails/`. The runtime registry must stay\n * free of i18n/spec prose so the companion translation/transposition\n * pipeline owns the single source of truth for authored semantics.\n */\n\nimport { z } from 'zod';\nimport {\n EmailTemplateType,\n EmailTemplateFrequency,\n EmailTemplateScope,\n} from './email-template.shared.enums';\nimport { AuthMethod } from '../../security/authentications/authentication.shared.schemas';\nimport { ReviewDeadlineStage } from '../../flows-actors/human-decision.shared.schemas';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SYSTEM EMAIL TEMPLATE REF ENUM\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * System email template registry — non-resource related.\n * Uses dot notation for namespacing (`system.*`).\n */\nexport enum SystemEmailTemplateRef {\n // ─── Authentication ───────────────────────────────────────────\n WELCOME_EMAIL = \"system.welcome_email\",\n PASSWORD_RESET = \"system.password_reset\",\n EMAIL_VERIFICATION = \"system.email_verification\",\n EMAIL_OTP = \"system.email_otp\",\n MAGIC_LINK = \"system.magic_link\",\n\n // ─── Organization ─────────────────────────────────────────────\n ORGANIZATION_INVITATION = \"system.organization_invitation\",\n ORGANIZATION_MEMBER_REMOVED = \"system.organization_member_removed\",\n\n // ─── Subscription & Billing ───────────────────────────────────\n SUBSCRIPTION_CONFIRMATION = \"system.subscription_confirmation\",\n SUBSCRIPTION_CANCELLED = \"system.subscription_cancelled\",\n PAYMENT_FAILED = \"system.payment_failed\",\n\n // ─── Security ─────────────────────────────────────────────────\n SECURITY_ALERT = \"system.security_alert\",\n NEW_DEVICE_LOGIN = \"system.new_device_login\",\n\n // ─── Human decisions (#1628) ──────────────────────────────────\n /**\n * A pending decision on an agent's action reached a deadline stage, or a deadline's rule moved it to the\n * recipient. One template for every stage: the words for each come from its labels, keyed by\n * `ReviewDeadlineStage`, so a stage added to the vocabulary without words is a compile error there.\n */\n HUMAN_DECISION_DEADLINE = \"system.human_decision_deadline\",\n}\n\n/**\n * What happened, in a `SystemEmailTemplateRef.SECURITY_ALERT` email.\n *\n * One named vocabulary so each member can carry its own authored WORDS in the template's labels —\n * the template used to turn the wire value into text by swapping its underscores for spaces, which produced\n * \"authenticator added\" in English for every locale and could not be worded by anyone.\n */\nexport enum SecurityAlertType {\n SUSPICIOUS_LOGIN = 'suspicious_login',\n PASSWORD_CHANGED = 'password_changed',\n MFA_DISABLED = 'mfa_disabled',\n NEW_API_KEY = 'new_api_key',\n /**\n * An authenticator was bound to the account: a passkey registered, TOTP confirmed, a phone\n * confirmed, a password set, or a sign-in identity linked (a social account auto-linked by its\n * verified email, or an enterprise identity linked to an existing account). Sent on every successful\n * binding, to the account's email — a channel independent of the\n * browser session that did the binding, which is what NIST SP 800-63B-4 Sec. 4.1.2.1 requires: \"When\n * an authenticator is added, the CSP SHALL notify the subscriber via a mechanism independent of the\n * transaction binding the new authenticator\".\n * spec-cite: NIST SP 800-63B-4 Sec. 4.1.2.1, fetched 2026-09-21 from\n * https://pages.nist.gov/800-63-4/sp800-63b/events/\n */\n AUTHENTICATOR_ADDED = 'authenticator_added',\n /**\n * A way to sign in was removed by the account holder: a passkey removed or a linked identity\n * unlinked. Turning TOTP off is `MFA_DISABLED`, which names the stronger consequence. NIST SP\n * 800-63B-4 Sec. 4.5: \"The CSP SHOULD notify the subscriber when an authenticator is invalidated\".\n * Removal is where a stolen session quietly takes a way in AWAY from the account holder, so the email\n * is how they find out.\n * spec-cite: NIST SP 800-63B-4 Sec. 4.5, fetched 2026-09-21 from\n * https://pages.nist.gov/800-63-4/sp800-63b/events/\n */\n AUTHENTICATOR_REMOVED = 'authenticator_removed',\n OTHER = 'other',\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SYSTEM TEMPLATE DEFINITION INTERFACE\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Runtime identity for a system email template.\n *\n * System templates use the same context structure as resource-based templates:\n * - `objectContext`: contains `primaryScopeContext` (appName, organizationName, etc.)\n * - `userContext`: recipient info (email, name, preferences) — changes per recipient\n * - `eventData`: system-event-specific payload (replaces `currentObject` for\n * non-resource emails).\n *\n * ⚠️ Nothing parses a send against `eventDataSchema`. The payload travels in the untyped\n * `additionalContext` slot of the send request and each template casts it, so a misspelled or\n * missing field renders as empty text rather than being refused. Treat the schema below as the\n * DOCUMENTED shape a caller is expected to supply, not as a check that it did.\n */\nexport interface SystemEmailTemplateDefinition {\n /** Unique template reference. */\n templateRef: SystemEmailTemplateRef;\n /** Email type for provider routing. */\n type: EmailTemplateType;\n /** Frequency for lifecycle management. */\n frequency: EmailTemplateFrequency;\n /** Scope for header/footer behavior. */\n scope: EmailTemplateScope;\n /**\n * Zod schema DOCUMENTING the event-specific payload (`eventData`).\n *\n * This is the system-event payload, NOT a flattened input DTO.\n * Common fields (appName, recipientEmail) come from\n * `objectContext` / `userContext`.\n *\n * It is declarative: no send path parses against it. Keep it accurate anyway, because it is the\n * only statement of what a template needs, and a caller that disagrees with it produces a blank\n * region in the rendered email instead of an error.\n */\n eventDataSchema: z.ZodType<unknown>;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SYSTEM TEMPLATE REGISTRY\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Registry of all system templates. */\nexport const SystemEmailTemplateRegistry: Record<SystemEmailTemplateRef, SystemEmailTemplateDefinition> = {\n [SystemEmailTemplateRef.WELCOME_EMAIL]: {\n templateRef: SystemEmailTemplateRef.WELCOME_EMAIL,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n loginUrl: z.url(),\n }),\n },\n\n [SystemEmailTemplateRef.PASSWORD_RESET]: {\n templateRef: SystemEmailTemplateRef.PASSWORD_RESET,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n resetUrl: z.url(),\n expiresInMinutes: z.number().int().positive(),\n }),\n },\n\n [SystemEmailTemplateRef.EMAIL_VERIFICATION]: {\n templateRef: SystemEmailTemplateRef.EMAIL_VERIFICATION,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n verifyUrl: z.url(),\n expiresInHours: z.number().int().positive().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.EMAIL_OTP]: {\n templateRef: SystemEmailTemplateRef.EMAIL_OTP,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n otpCode: z.string().min(4).max(8),\n expiresInMinutes: z.number().int().positive(),\n }),\n },\n\n [SystemEmailTemplateRef.MAGIC_LINK]: {\n templateRef: SystemEmailTemplateRef.MAGIC_LINK,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n magicLinkUrl: z.url(),\n tokenValue: z.string(),\n expiresInMinutes: z.number().int().positive(),\n }),\n },\n\n [SystemEmailTemplateRef.ORGANIZATION_INVITATION]: {\n templateRef: SystemEmailTemplateRef.ORGANIZATION_INVITATION,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.ORGANIZATION,\n eventDataSchema: z.object({\n inviterName: z.string(),\n organizationName: z.string(),\n role: z.string(),\n acceptUrl: z.url(),\n expiresInDays: z.number().int().positive(),\n }),\n },\n\n [SystemEmailTemplateRef.ORGANIZATION_MEMBER_REMOVED]: {\n templateRef: SystemEmailTemplateRef.ORGANIZATION_MEMBER_REMOVED,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.ORGANIZATION,\n eventDataSchema: z.object({\n organizationName: z.string(),\n removedByName: z.string().optional(),\n reason: z.string().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.SUBSCRIPTION_CONFIRMATION]: {\n templateRef: SystemEmailTemplateRef.SUBSCRIPTION_CONFIRMATION,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n planName: z.string(),\n amount: z.number().positive(),\n currency: z.string().length(3),\n billingPeriod: z.enum(['monthly', 'yearly']),\n nextBillingDate: z.coerce.date(),\n dashboardUrl: z.url(),\n }),\n },\n\n [SystemEmailTemplateRef.SUBSCRIPTION_CANCELLED]: {\n templateRef: SystemEmailTemplateRef.SUBSCRIPTION_CANCELLED,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n planName: z.string(),\n effectiveDate: z.coerce.date(),\n reactivateUrl: z.url().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.PAYMENT_FAILED]: {\n templateRef: SystemEmailTemplateRef.PAYMENT_FAILED,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n amount: z.number().positive(),\n currency: z.string().length(3),\n lastFourDigits: z.string().length(4),\n retryDate: z.coerce.date(),\n updatePaymentUrl: z.url(),\n }),\n },\n\n [SystemEmailTemplateRef.SECURITY_ALERT]: {\n templateRef: SystemEmailTemplateRef.SECURITY_ALERT,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n alertType: z.enum(SecurityAlertType),\n /**\n * Which authenticator was added, for `AUTHENTICATOR_ADDED`. There is no free-text description\n * any more: the words for each alert come from the template's labels, so they can be translated\n * and worded by whoever owns the copy. A caller-written sentence could be neither.\n */\n authMethod: z.enum(AuthMethod).optional(),\n timestamp: z.coerce.date(),\n ipAddress: z.string().optional(),\n location: z.string().optional(),\n /**\n * Optional: the notification matters more than the link, so it is still sent when the frontend\n * the request came from cannot be resolved.\n */\n securitySettingsUrl: z.url().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.HUMAN_DECISION_DEADLINE]: {\n templateRef: SystemEmailTemplateRef.HUMAN_DECISION_DEADLINE,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n /** Which deadline stage fired. */\n stage: z.enum(ReviewDeadlineStage),\n /** True when the stage's REASSIGN rule moved the decision to the recipient. */\n reassignedToYou: z.boolean(),\n /**\n * True when the recipient is the person whose request is waiting (the gate's owner at a DECISION\n * stage) rather than someone who can answer it — they are told it is waiting, never asked to answer.\n */\n forRequester: z.boolean(),\n /** The decision id, for the link into the inbox. Never the tool's arguments. */\n decisionRef: z.string(),\n /** The gated action, by its tool name. */\n toolName: z.string().optional(),\n /** The deadline this stage is about (for a warning, the deadline it warns of). */\n deadlineAt: z.coerce.date(),\n /** When the decision ends LAPSED if nobody answers. */\n lapsesAt: z.coerce.date().optional(),\n /** The application's address, when its default frontend can be resolved. The decision is in the recipient's inbox there. */\n appUrl: z.url().optional(),\n }),\n },\n\n [SystemEmailTemplateRef.NEW_DEVICE_LOGIN]: {\n templateRef: SystemEmailTemplateRef.NEW_DEVICE_LOGIN,\n type: EmailTemplateType.TRANSACTIONAL,\n frequency: EmailTemplateFrequency.RECURRENT,\n scope: EmailTemplateScope.APPLICATION,\n eventDataSchema: z.object({\n deviceType: z.string(),\n browser: z.string(),\n operatingSystem: z.string(),\n ipAddress: z.string(),\n location: z.string().optional(),\n loginTime: z.coerce.date(),\n revokeAccessUrl: z.url(),\n }),\n },\n};\n\n// ─────────────────────────────────────────────────────────────────────────────\n// HELPER FUNCTIONS\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Get all system template refs. */\nexport function getAllSystemTemplateRefs(): SystemEmailTemplateRef[] {\n return Object.values(SystemEmailTemplateRef);\n}\n\n/** Get system template definition by ref. */\nexport function getSystemTemplateDefinition(ref: SystemEmailTemplateRef): SystemEmailTemplateDefinition {\n return SystemEmailTemplateRegistry[ref];\n}\n\n/** Check if a templateRef is a system template. */\nexport function isSystemTemplateRef(templateRef: string): templateRef is SystemEmailTemplateRef {\n return templateRef.startsWith('system.') &&\n Object.values(SystemEmailTemplateRef).includes(templateRef as SystemEmailTemplateRef);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"email-template.shared.enums.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/email/email-template.shared.enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAM/F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,oBAAY,iBAAiB;IAC3B,uEAAuE;IACvE,aAAa,wBAAuC;IACpD,6DAA6D;IAC7D,SAAS,oBAAmC;CAC7C;AACD,6DAA6D;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,EAAE,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAG5F,CAAC;AAMF;;;;;;;;;GASG;AACH,oBAAY,sBAAsB;IAChC;;;;;OAKG;IACH,SAAS,cAAc;IACvB;;;;;OAKG;IACH,SAAS,cAAc;CACxB;AAMD;;;;;;;;;;GAUG;AACH,oBAAY,mBAAmB;IAC7B,wDAAwD;IACxD,KAAK,UAAU;IACf,oDAAoD;IACpD,SAAS,cAAc;IACvB,+CAA+C;IAC/C,QAAQ,aAAa;CACtB;AAMD;;;;;;;;;;;;GAYG;AACH,oBAAY,kBAAkB;IAC5B,2DAA2D;IAC3D,WAAW,gBAAgB;IAC3B,uEAAuE;IACvE,YAAY,iBAAiB;CAC9B"}
1
+ {"version":3,"file":"email-template.shared.enums.d.ts","sourceRoot":"","sources":["../../../../src/notifications/email/email-template.shared.enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAM/F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,oBAAY,iBAAiB;IAC3B,uEAAuE;IACvE,aAAa,wBAAuC;IACpD,6DAA6D;IAC7D,SAAS,oBAAmC;CAC7C;AACD,6DAA6D;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,EAAE,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAG5F,CAAC;AAMF;;;;;;;;;GASG;AACH,oBAAY,sBAAsB;IAChC;;;;;OAKG;IACH,SAAS,cAAc;IACvB;;;;;OAKG;IACH,SAAS,cAAc;CACxB;AAMD;;;;;;;;;;GAUG;AACH,oBAAY,mBAAmB;IAC7B,wDAAwD;IACxD,KAAK,UAAU;IACf,oDAAoD;IACpD,SAAS,cAAc;IACvB,+CAA+C;IAC/C,QAAQ,aAAa;CACtB;AAMD;;;;;;;;;;;;GAYG;AACH,oBAAY,kBAAkB;IAC5B,2DAA2D;IAC3D,WAAW,gBAAgB;IAC3B,uEAAuE;IACvE,YAAY,iBAAiB;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"email-template.shared.enums.js","sourceRoot":"","sources":["../../../../../src/notifications/email/email-template.shared.enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAE/F,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,uEAAuE;IACvE,0DAAoD,CAAA;IACpD,6DAA6D;IAC7D,kDAA4C,CAAA;AAC9C,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AACD,6DAA6D;AAE7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAgD;IAC/F,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,mBAAmB;IACvE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,eAAe;CAChE,CAAC;AAEF,gFAAgF;AAChF,sDAAsD;AACtD,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,CAAN,IAAY,sBAeX;AAfD,WAAY,sBAAsB;IAChC;;;;;OAKG;IACH,iDAAuB,CAAA;IACvB;;;;;OAKG;IACH,iDAAuB,CAAA;AACzB,CAAC,EAfW,sBAAsB,KAAtB,sBAAsB,QAejC;AAED,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,CAAN,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,wDAAwD;IACxD,sCAAe,CAAA;IACf,oDAAoD;IACpD,8CAAuB,CAAA;IACvB,+CAA+C;IAC/C,4CAAqB,CAAA;AACvB,CAAC,EAPW,mBAAmB,KAAnB,mBAAmB,QAO9B;AAED,gFAAgF;AAChF,gDAAgD;AAChD,gFAAgF;AAEhF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,2DAA2D;IAC3D,iDAA2B,CAAA;IAC3B,uEAAuE;IACvE,mDAA6B,CAAA;AAC/B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B","sourcesContent":["/**\n * Email Template Classification Enums\n *\n * Surviving classification vocabulary for the **file-based** email template\n * pipeline. These enums classify a template's runtime intent — not a database\n * row. Post-Step-4 (`email-templates-deprecate-db-backed.md`), the DB-backed\n * `EMAIL_TEMPLATES` `CoreResourceType` was removed end-to-end and the runtime\n * sender pipeline reads templates exclusively from the filesystem registry\n * (`EmailTemplateRegistryBackendService` + `scanEmailTemplateDirectory`).\n *\n * ## Why this file exists separately from `email-template.shared.schemas.ts`\n *\n * Step 6 of the deprecation plan split these enums out of the DB-backed\n * `EmailTemplateSchema` file **before** deleting that file. The split was\n * required because consumers of these enums survive the schema deletion:\n *\n * - `email-template-registry.shared.schemas.ts` declares\n * `SystemEmailTemplateDefinition` and the `SystemEmailTemplateRegistry` map\n * keyed by `EmailTemplateType` / `EmailTemplateFrequency` / `EmailTemplateScope`.\n * - `engine/saas-backend-lib/src/notifications/email/models/email-template-definition.ts`\n * types `EmailTemplateDefinition<L>.type?` as `EmailTemplateType`.\n * - The runtime sender pipeline (`EmailBackendService`) routes to a provider\n * via `EmailTemplateType_ToEngineCapability[type]`.\n * - The auth services (`auth-registration`, `auth-password-reset`,\n * `authentication-controller`) and the dispatcher\n * (`notifications-dispatcher.backend.service`) emit\n * `EmailTemplateType.TRANSACTIONAL` when enqueuing send jobs.\n * - The wonder-todos dev companion (`email-template.companion.service.ts`)\n * tags scaffolded templates as `EmailTemplateType.TRANSACTIONAL`.\n *\n * Splitting the enums into their own module keeps these consumers compiling\n * after `EmailTemplateSchema` and `EmailHeaderFooterTemplateSchema` are\n * deleted; before the split, every importer would have to migrate to a new\n * source path simultaneously, which is a much larger blast radius for the\n * same eventual outcome.\n *\n * ## What this file intentionally does NOT carry\n *\n * - `EmailTemplateGenerationSource` — only existed to classify rows in the\n * deleted `EmailTemplateSchema.generationSource` and\n * `EmailHeaderFooterTemplateSchema.generationSource` fields.\n * - `EmailTemplatePropDefinitionSchema` / `EmailTemplatePropDefinition` —\n * only existed to type the deleted `EmailTemplateSchema.propsDefinition`\n * field.\n * - `EmailTemplateSchema` / `EmailTemplate` — the DB row shape itself.\n * - `EmailTemplateType_ToPlatformCapability` — `@deprecated` alias of\n * `EmailTemplateType_ToEngineCapability` with zero callers; deleted in the\n * same pass to remove dead aliases.\n * - `deriveResourceEmailTemplateRef` — helper for the DB-backed authoring\n * surface; zero external callers; deleted in the same pass.\n *\n * If any of those symbols come back as a future requirement they should land\n * in a new module with a clear runtime owner, not be re-introduced here.\n */\n\nimport { EngineCapability } from '../../external-providers/engine-capabilities.shared.schemas';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE TYPE (provider routing)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.models.email.template-type facet:layer:shared facet:audience:app-developer\n *\n * ⚠️ **A template's `type` decides WHICH VENDOR ships it.** It is not a label: each member maps to a\n * distinct engine capability, and the sender resolves the provider configured against THAT\n * capability. A newsletter left at the default is dispatched through the transactional vendor, on\n * the transactional reputation and quota, and nothing reports it.\n *\n * Declare it on the file-based `EmailTemplateDefinition<L>.type` slot, or inside the system template\n * registry definition.\n *\n * Setting `MARKETING` therefore requires a vendor declared against the marketing capability and named\n * as its primary — otherwise the send has no provider to resolve. Nothing else in the send path\n * changes.\n *\n * Dispatch class for an email template — maps 1:1 with `EngineCapability`\n * for provider routing inside `EmailBackendService`.\n *\n * Templates declare their dispatch class on the file-based\n * `EmailTemplateDefinition<L>.type?` slot or inside the\n * `SystemEmailTemplateRegistry` definition; the runtime sender uses\n * {@link EmailTemplateType_ToEngineCapability} to resolve which configured\n * provider should ship the message.\n */\nexport enum EmailTemplateType {\n /** Transactional emails — password resets, receipts, notifications. */\n TRANSACTIONAL = EngineCapability.EMAIL_TRANSACTIONAL,\n /** Marketing emails — newsletters, promotions, campaigns. */\n MARKETING = EngineCapability.EMAIL_MARKETING,\n}\n/** @wildo_source:part:end saas.models.email.template-type */\n\n/**\n * Total `Record<EmailTemplateType, EngineCapability>` used by\n * `EmailBackendService` to pick the configured provider for a given template\n * dispatch class. Kept in this enums module (not in the runtime sender)\n * because it is data, not behavior, and because it stays in lock-step with\n * the {@link EmailTemplateType} enum — adding a new variant requires an\n * entry here in the same edit.\n */\nexport const EmailTemplateType_ToEngineCapability: Record<EmailTemplateType, EngineCapability> = {\n [EmailTemplateType.TRANSACTIONAL]: EngineCapability.EMAIL_TRANSACTIONAL,\n [EmailTemplateType.MARKETING]: EngineCapability.EMAIL_MARKETING,\n};\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE FREQUENCY (lifecycle classification)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Lifecycle classification for an email template from the application's\n * authoring perspective. This is about how the template is used by the\n * system — not how often a user receives it.\n *\n * Surfaced on `SystemEmailTemplateDefinition.frequency`; the runtime sender\n * pipeline does not branch on this value today, but it is preserved as a\n * canonical authoring slot so the dev companion can render it (e.g. in\n * preview metadata) and so future lifecycle automation can key off it.\n */\nexport enum EmailTemplateFrequency {\n /**\n * Template used once or a few times in the application's lifetime.\n * Examples: migration announcements, CVE security alerts, T&C updates,\n * one-time campaigns. These templates may be archived after their\n * purpose is fulfilled.\n */\n EPHEMERAL = \"EPHEMERAL\",\n /**\n * Template used repeatedly throughout the application's lifetime.\n * Examples: welcome emails, password reset, order confirmations,\n * verification emails. These templates are permanent fixtures of the\n * application.\n */\n RECURRENT = \"RECURRENT\",\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE STATUS (workflow state)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Workflow state for a template artifact.\n *\n * Pre-Step-4 this enum drove a DRAFT/PUBLISHED versioning workflow on the\n * deleted `EmailTemplateSchema.status` field. Post-Step-4 it survives only\n * because the dev companion preview surface and authoring tooling may\n * still want a workflow vocabulary for in-progress edits before they land\n * in the filesystem registry. Today no live runtime branches on it; if it\n * ends up unused after Step 8 (companion-preview integration test) the\n * cleanup pass should consider deleting it outright.\n */\nexport enum EmailTemplateStatus {\n /** Template is in draft state, not used for sending. */\n DRAFT = \"DRAFT\",\n /** Template is published and active for sending. */\n PUBLISHED = \"PUBLISHED\",\n /** Template is archived and no longer used. */\n ARCHIVED = \"ARCHIVED\",\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE SCOPE (header/footer behavior)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Scope marker for a template — `APPLICATION` vs `ORGANIZATION`. Aligned\n * with `ResourcePrimaryScope` but intentionally narrower: email scope only\n * needs the application/organization split; user-self / anonymous scopes\n * have no header/footer semantics in the email pipeline.\n *\n * Surfaced on `SystemEmailTemplateDefinition.scope`. The header/footer\n * runtime never reads the deleted `EmailHeaderFooterTemplateSchema` —\n * post-Step-4 header/footer composition lives entirely inside the\n * file-based template (`template.tsx` consumes header/footer React\n * components directly), and this scope marker only informs companion\n * preview rendering and any future per-scope provider-selection logic.\n */\nexport enum EmailTemplateScope {\n /** Application-level template (uses app header/footer). */\n APPLICATION = \"APPLICATION\",\n /** Organization-level template (uses org header/footer if defined). */\n ORGANIZATION = \"ORGANIZATION\",\n}\n"]}
1
+ {"version":3,"file":"email-template.shared.enums.js","sourceRoot":"","sources":["../../../../src/notifications/email/email-template.shared.enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAE/F,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,uEAAuE;IACvE,0DAAoD,CAAA;IACpD,6DAA6D;IAC7D,kDAA4C,CAAA;AAC9C,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AACD,6DAA6D;AAE7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAgD;IAC/F,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,mBAAmB;IACvE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,eAAe;CAChE,CAAC;AAEF,gFAAgF;AAChF,sDAAsD;AACtD,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,CAAN,IAAY,sBAeX;AAfD,WAAY,sBAAsB;IAChC;;;;;OAKG;IACH,iDAAuB,CAAA;IACvB;;;;;OAKG;IACH,iDAAuB,CAAA;AACzB,CAAC,EAfW,sBAAsB,KAAtB,sBAAsB,QAejC;AAED,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,CAAN,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,wDAAwD;IACxD,sCAAe,CAAA;IACf,oDAAoD;IACpD,8CAAuB,CAAA;IACvB,+CAA+C;IAC/C,4CAAqB,CAAA;AACvB,CAAC,EAPW,mBAAmB,KAAnB,mBAAmB,QAO9B;AAED,gFAAgF;AAChF,gDAAgD;AAChD,gFAAgF;AAEhF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,2DAA2D;IAC3D,iDAA2B,CAAA;IAC3B,uEAAuE;IACvE,mDAA6B,CAAA;AAC/B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B","sourcesContent":["/**\n * Email Template Classification Enums\n *\n * Surviving classification vocabulary for the **file-based** email template\n * pipeline. These enums classify a template's runtime intent — not a database\n * row. Post-Step-4 (`email-templates-deprecate-db-backed.md`), the DB-backed\n * `EMAIL_TEMPLATES` `CoreResourceType` was removed end-to-end and the runtime\n * sender pipeline reads templates exclusively from the filesystem registry\n * (`EmailTemplateRegistryBackendService` + `scanEmailTemplateDirectory`).\n *\n * ## Why this file exists separately from `email-template.shared.schemas.ts`\n *\n * Step 6 of the deprecation plan split these enums out of the DB-backed\n * `EmailTemplateSchema` file **before** deleting that file. The split was\n * required because consumers of these enums survive the schema deletion:\n *\n * - `email-template-registry.shared.schemas.ts` declares\n * `SystemEmailTemplateDefinition` and the `SystemEmailTemplateRegistry` map\n * keyed by `EmailTemplateType` / `EmailTemplateFrequency` / `EmailTemplateScope`.\n * - `engine/saas-backend-lib/src/notifications/email/models/email-template-definition.ts`\n * types `EmailTemplateDefinition<L>.type?` as `EmailTemplateType`.\n * - The runtime sender pipeline (`EmailBackendService`) routes to a provider\n * via `EmailTemplateType_ToEngineCapability[type]`.\n * - The auth services (`auth-registration`, `auth-password-reset`,\n * `authentication-controller`) and the dispatcher\n * (`notifications-dispatcher.backend.service`) emit\n * `EmailTemplateType.TRANSACTIONAL` when enqueuing send jobs.\n * - The wonder-todos dev companion (`email-template.companion.service.ts`)\n * tags scaffolded templates as `EmailTemplateType.TRANSACTIONAL`.\n *\n * Splitting the enums into their own module keeps these consumers compiling\n * after `EmailTemplateSchema` and `EmailHeaderFooterTemplateSchema` are\n * deleted; before the split, every importer would have to migrate to a new\n * source path simultaneously, which is a much larger blast radius for the\n * same eventual outcome.\n *\n * ## What this file intentionally does NOT carry\n *\n * - `EmailTemplateGenerationSource` — only existed to classify rows in the\n * deleted `EmailTemplateSchema.generationSource` and\n * `EmailHeaderFooterTemplateSchema.generationSource` fields.\n * - `EmailTemplatePropDefinitionSchema` / `EmailTemplatePropDefinition` —\n * only existed to type the deleted `EmailTemplateSchema.propsDefinition`\n * field.\n * - `EmailTemplateSchema` / `EmailTemplate` — the DB row shape itself.\n * - `EmailTemplateType_ToPlatformCapability` — `@deprecated` alias of\n * `EmailTemplateType_ToEngineCapability` with zero callers; deleted in the\n * same pass to remove dead aliases.\n * - `deriveResourceEmailTemplateRef` — helper for the DB-backed authoring\n * surface; zero external callers; deleted in the same pass.\n *\n * If any of those symbols come back as a future requirement they should land\n * in a new module with a clear runtime owner, not be re-introduced here.\n */\n\nimport { EngineCapability } from '../../external-providers/engine-capabilities.shared.schemas';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE TYPE (provider routing)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.models.email.template-type facet:layer:shared facet:audience:app-developer\n *\n * ⚠️ **A template's `type` decides WHICH VENDOR ships it.** It is not a label: each member maps to a\n * distinct engine capability, and the sender resolves the provider configured against THAT\n * capability. A newsletter left at the default is dispatched through the transactional vendor, on\n * the transactional reputation and quota, and nothing reports it.\n *\n * Declare it on the file-based `EmailTemplateDefinition<L>.type` slot, or inside the system template\n * registry definition.\n *\n * Setting `MARKETING` therefore requires a vendor declared against the marketing capability and named\n * as its primary — otherwise the send has no provider to resolve. Nothing else in the send path\n * changes.\n *\n * Dispatch class for an email template — maps 1:1 with `EngineCapability`\n * for provider routing inside `EmailBackendService`.\n *\n * Templates declare their dispatch class on the file-based\n * `EmailTemplateDefinition<L>.type?` slot or inside the\n * `SystemEmailTemplateRegistry` definition; the runtime sender uses\n * {@link EmailTemplateType_ToEngineCapability} to resolve which configured\n * provider should ship the message.\n */\nexport enum EmailTemplateType {\n /** Transactional emails — password resets, receipts, notifications. */\n TRANSACTIONAL = EngineCapability.EMAIL_TRANSACTIONAL,\n /** Marketing emails — newsletters, promotions, campaigns. */\n MARKETING = EngineCapability.EMAIL_MARKETING,\n}\n/** @wildo_source:part:end saas.models.email.template-type */\n\n/**\n * Total `Record<EmailTemplateType, EngineCapability>` used by\n * `EmailBackendService` to pick the configured provider for a given template\n * dispatch class. Kept in this enums module (not in the runtime sender)\n * because it is data, not behavior, and because it stays in lock-step with\n * the {@link EmailTemplateType} enum — adding a new variant requires an\n * entry here in the same edit.\n */\nexport const EmailTemplateType_ToEngineCapability: Record<EmailTemplateType, EngineCapability> = {\n [EmailTemplateType.TRANSACTIONAL]: EngineCapability.EMAIL_TRANSACTIONAL,\n [EmailTemplateType.MARKETING]: EngineCapability.EMAIL_MARKETING,\n};\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE FREQUENCY (lifecycle classification)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Lifecycle classification for an email template from the application's\n * authoring perspective. This is about how the template is used by the\n * system — not how often a user receives it.\n *\n * Surfaced on `SystemEmailTemplateDefinition.frequency`; the runtime sender\n * pipeline does not branch on this value today, but it is preserved as a\n * canonical authoring slot so the dev companion can render it (e.g. in\n * preview metadata) and so future lifecycle automation can key off it.\n */\nexport enum EmailTemplateFrequency {\n /**\n * Template used once or a few times in the application's lifetime.\n * Examples: migration announcements, CVE security alerts, T&C updates,\n * one-time campaigns. These templates may be archived after their\n * purpose is fulfilled.\n */\n EPHEMERAL = \"EPHEMERAL\",\n /**\n * Template used repeatedly throughout the application's lifetime.\n * Examples: welcome emails, password reset, order confirmations,\n * verification emails. These templates are permanent fixtures of the\n * application.\n */\n RECURRENT = \"RECURRENT\",\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE STATUS (workflow state)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Workflow state for a template artifact.\n *\n * Pre-Step-4 this enum drove a DRAFT/PUBLISHED versioning workflow on the\n * deleted `EmailTemplateSchema.status` field. Post-Step-4 it survives only\n * because the dev companion preview surface and authoring tooling may\n * still want a workflow vocabulary for in-progress edits before they land\n * in the filesystem registry. Today no live runtime branches on it; if it\n * ends up unused after Step 8 (companion-preview integration test) the\n * cleanup pass should consider deleting it outright.\n */\nexport enum EmailTemplateStatus {\n /** Template is in draft state, not used for sending. */\n DRAFT = \"DRAFT\",\n /** Template is published and active for sending. */\n PUBLISHED = \"PUBLISHED\",\n /** Template is archived and no longer used. */\n ARCHIVED = \"ARCHIVED\",\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EMAIL TEMPLATE SCOPE (header/footer behavior)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Scope marker for a template — `APPLICATION` vs `ORGANIZATION`. Aligned\n * with `ResourcePrimaryScope` but intentionally narrower: email scope only\n * needs the application/organization split; user-self / anonymous scopes\n * have no header/footer semantics in the email pipeline.\n *\n * Surfaced on `SystemEmailTemplateDefinition.scope`. The header/footer\n * runtime never reads the deleted `EmailHeaderFooterTemplateSchema` —\n * post-Step-4 header/footer composition lives entirely inside the\n * file-based template (`template.tsx` consumes header/footer React\n * components directly), and this scope marker only informs companion\n * preview rendering and any future per-scope provider-selection logic.\n */\nexport enum EmailTemplateScope {\n /** Application-level template (uses app header/footer). */\n APPLICATION = \"APPLICATION\",\n /** Organization-level template (uses org header/footer if defined). */\n ORGANIZATION = \"ORGANIZATION\",\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-email.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/inbound-email/inbound-email.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAwD,MAAM,mDAAmD,CAAC;AAChJ,OAAO,EAA4D,KAAK,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAM/I,OAAO,EAKL,kBAAkB,EAClB,gBAAgB,EAKhB,6BAA6B,EAC7B,mCAAmC,EACpC,MAAM,gCAAgC,CAAC;AAExC,KAAK,0BAA0B,GAC3B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,WAAW,GACjC,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,WAAW,CAAC;AAgCtC,eAAO,MAAM,wDAAwD,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAsDnH,CAAC;AAEL,eAAO,MAAM,mEAAmE,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA6F9H,CAAC;AAEL,KAAK,uBAAuB,GACxB,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,WAAW,GACjC,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,WAAW,CAAC;AAEtC,eAAO,MAAM,0DAA0D,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;;kBA0CrH,CAAC;AAEL,eAAO,MAAM,mEAAmE,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;kBAsB9H,CAAC"}
1
+ {"version":3,"file":"inbound-email.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/notifications/inbound-email/inbound-email.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAwD,MAAM,mDAAmD,CAAC;AAChJ,OAAO,EAA4D,KAAK,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAM/I,OAAO,EAKL,kBAAkB,EAClB,gBAAgB,EAKhB,6BAA6B,EAC7B,mCAAmC,EACpC,MAAM,gCAAgC,CAAC;AAExC,KAAK,0BAA0B,GAC3B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,WAAW,GACjC,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,WAAW,CAAC;AAgCtC,eAAO,MAAM,wDAAwD,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAsDnH,CAAC;AAEL,eAAO,MAAM,mEAAmE,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA6F9H,CAAC;AAEL,KAAK,uBAAuB,GACxB,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,WAAW,GACjC,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,WAAW,CAAC;AAEtC,eAAO,MAAM,0DAA0D,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;;kBA0CrH,CAAC;AAEL,eAAO,MAAM,mEAAmE,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;kBAsB9H,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-email.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../../src/notifications/inbound-email/inbound-email.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Receiving email (#1600) — resource configurations.\n *\n * - `inboundEmails`: the engine writes every row (the email channel's stage 1). Members of the organization\n * READ its correspondence; no route creates, updates or deletes one. The retention sweep deletes a row\n * once its statutory period has passed, and the erasure writer scrubs through `UPDATE_MANY` — both\n * route-less.\n * - `organizationEmailDomains`: an organization administrator drives the whole lifecycle through four\n * audited verbs (`claim`, `verify_ownership`, `verify`, `remove`). No generic CREATE / UPDATE / DELETE\n * route: a row that could be written directly could claim VERIFIED without proving anything.\n * - `clientMailboxes`: created by a client administrator, or by the firm on the client's behalf under an\n * ACTIVE relationship; a client administrator can always delete one.\n * - `inboundAddressTombstones`: written by the organization deletion, read by routing. No route at all.\n */\nimport { z } from 'zod';\n\nimport { CoreResourceOperation, CoreResourceType, coreResourceShared_FieldIdentifier } from '../../resources/resources.shared.core.definitions';\nimport { ResourceOperationRiskLevel, ResourceOperationVariantType, type ResourceRelationship } from '../../resources/resources.shared.schemas';\nimport { createResourceConfiguration_Initialization } from '../../resources/resources-config.shared.factory';\nimport { ResourceSystemAccessMode } from '../../resources/resources-config.shared.schemas';\nimport { CORE_APP_ROLES, CORE_ORG_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { ErasureRetentionMode, ResourceDataSubjectKind, StatutoryRetentionGround } from '../../compliance/privacy/impersonalization.shared.schemas';\nimport { DataRetentionClass, RetentionStartPoint } from '../../compliance/privacy/retention-schedule.shared.schemas';\nimport {\n ClientMailboxCreateRequestSchema,\n ClientMailboxSchema,\n InboundAddressTombstoneSchema,\n InboundEmailSchema,\n InboundEmailStatus,\n InboundRouteKind,\n OrganizationEmailDomainClaimRequestSchema,\n OrganizationEmailDomainClaimResponseSchema,\n OrganizationEmailDomainRemoveResponseSchema,\n OrganizationEmailDomainSchema,\n OrganizationEmailDomainStatus,\n OrganizationEmailDomains_Operations,\n} from './inbound-email.shared.schemas';\n\ntype InboundEmailCoreOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST\n | CoreResourceOperation.CREATE\n | CoreResourceOperation.UPDATE\n | CoreResourceOperation.UPDATE_MANY\n | CoreResourceOperation.DELETE\n | CoreResourceOperation.DELETE_MANY;\n\nconst CORE_OPERATIONS: InboundEmailCoreOperations[] = [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.UPDATE_MANY,\n CoreResourceOperation.DELETE,\n CoreResourceOperation.DELETE_MANY,\n];\n\n/**\n * The email channel reads and writes these rows on a system context BEFORE any handler authority exists: a\n * message is routed before anyone may act on it.\n */\nconst engineOwned = {\n read: ResourceSystemAccessMode.ALLOWED,\n list: ResourceSystemAccessMode.ALLOWED,\n create: ResourceSystemAccessMode.ALLOWED,\n update: ResourceSystemAccessMode.ALLOWED,\n updateMany: ResourceSystemAccessMode.ALLOWED,\n};\n\n/** The correspondent is a person with no account here, or another organization: no login is reachable from a row. */\nconst NO_PRINCIPAL = { kind: ResourceDataSubjectKind.NO_PRINCIPAL };\n\n/*\n * Operation configurations are written out per resource rather than shared through a constant: contextual typing\n * needs each variant literal in place, and a shared constant widens (or freezes) it past what the builder accepts.\n */\n\nexport const inboundEmailsResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) =>\n createResourceConfiguration_Initialization<Record<string, never>, InboundEmailCoreOperations, typeof InboundEmailSchema>({\n mainSchema: InboundEmailSchema,\n resourceIdentifier: CoreResourceType.INBOUND_EMAILS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.INBOUND_EMAILS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n systemAccessPolicy: engineOwned,\n /*\n * A received email is business correspondence, which commercial and tax statutes require kept for a period\n * counted from the end of the calendar year it was received. Inside that period an erasure RESTRICTS the\n * row rather than scrubbing it (#1613, #1635); after it the retention sweep deletes the row, and its raw\n * MIME and attachment files go with it (the file side of `BUSINESS_RECORDS`).\n *\n * `RETAIN_AND_IMPERSONALIZE`: the row holds a sender's address, bodies and headers — personal data — and\n * each such field declares what erasure writes over it.\n */\n retentionPolicy: {\n mode: ErasureRetentionMode.RETAIN_AND_IMPERSONALIZE,\n statutoryRetention: {\n ground: StatutoryRetentionGround.LEGAL_OBLIGATION,\n rationale: 'Business letters received: HGB §257(1) no. 2 and AO §147(1) no. 2 (six years from the end of the calendar year, §257(5) / §147(4)); Code de commerce L123-22 (ten years) where the correspondence is accounting evidence; Limitation Act 1980 s.14B (fifteen-year long-stop); SEC Rule 17a-4(b)(4) (three years) for broker-dealers.',\n },\n },\n retentionBinding: {\n retentionClass: DataRetentionClass.BUSINESS_RECORDS,\n startPoint: RetentionStartPoint.END_OF_CALENDAR_YEAR,\n },\n dataSubjectPolicy: NO_PRINCIPAL,\n coreOperations: CORE_OPERATIONS,\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_MEMBER], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n filterFields: {\n status: z.enum(InboundEmailStatus),\n routeKind: z.enum(InboundRouteKind),\n threadId: z.string(),\n },\n sortFields: ['receivedAt'],\n }],\n },\n [CoreResourceOperation.CREATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n // The engine moves `status` and records the thread; nothing rewrites what was received (E5).\n [CoreResourceOperation.UPDATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.UPDATE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.CRITICAL }] },\n // HIGH: deleting correspondence removes evidence of what a client sent.\n [CoreResourceOperation.DELETE]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n [CoreResourceOperation.DELETE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n },\n });\n\nexport const organizationEmailDomainsResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) =>\n createResourceConfiguration_Initialization<typeof OrganizationEmailDomains_Operations, InboundEmailCoreOperations, typeof OrganizationEmailDomainSchema>({\n mainSchema: OrganizationEmailDomainSchema,\n resourceIdentifier: CoreResourceType.ORGANIZATION_EMAIL_DOMAINS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.ORGANIZATION_EMAIL_DOMAINS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n systemAccessPolicy: { ...engineOwned, exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n /*\n * A domain names an organization's infrastructure, not a person. `RETAIN_ONLY`, and FORBIDDEN from a\n * subject export for the same reason: no field is anybody's personal data.\n */\n retentionPolicy: { mode: ErasureRetentionMode.RETAIN_ONLY },\n /*\n * Kept while it exists; removal and tenant deletion delete the row outright (and the provider's domain with\n * it), so the class's clock starts at creation only for a row nobody ever removes — the ordinary\n * `RESOURCE_DATA` period of the application.\n */\n retentionBinding: { retentionClass: DataRetentionClass.RESOURCE_DATA, startPoint: RetentionStartPoint.CREATED },\n dataSubjectPolicy: NO_PRINCIPAL,\n coreOperations: CORE_OPERATIONS,\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.LOW,\n filterFields: { status: z.enum(OrganizationEmailDomainStatus) },\n sortFields: ['createdAt'],\n }],\n },\n [CoreResourceOperation.CREATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.UPDATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.UPDATE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.CRITICAL }] },\n [CoreResourceOperation.DELETE]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n [CoreResourceOperation.DELETE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n /**\n * Mint the organization's DNS TXT ownership challenge and record the claim as OWNERSHIP_PENDING. Creates\n * nothing at the provider. Refused only when the domain is already past OWNERSHIP_PENDING for another\n * organization; a pending claim elsewhere blocks nobody.\n *\n * assurance-control: WILDO.DATA.TENANT_ISOLATION — a domain routes mail into, and sends for, only the organization that proved it controls the domain's DNS.\n */\n [OrganizationEmailDomains_Operations.CLAIM]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n resourceOperationLike: CoreResourceOperation.CREATE,\n requestDto: OrganizationEmailDomainClaimRequestSchema,\n customResponseDto: OrganizationEmailDomainClaimResponseSchema,\n }],\n },\n /** Resolve the TXT record. The first organization to prove ownership wins; only then is the domain created at the provider. */\n [OrganizationEmailDomains_Operations.VERIFY_OWNERSHIP]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.HIGH,\n resourceOperationLike: CoreResourceOperation.UPDATE,\n requestDto: z.object({}),\n enabledCondition: ({ currentObject }) => currentObject.status === OrganizationEmailDomainStatus.OWNERSHIP_PENDING,\n }],\n },\n /** Ask the provider to verify the domain's DNS records; asynchronous at the provider, so it may answer PROVIDER_PENDING again. */\n [OrganizationEmailDomains_Operations.VERIFY]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n resourceOperationLike: CoreResourceOperation.UPDATE,\n requestDto: z.object({}),\n enabledCondition: ({ currentObject }) => currentObject.status !== OrganizationEmailDomainStatus.OWNERSHIP_PENDING,\n }],\n },\n /** Delete the domain at the provider, then the row. Mail to it stops routing at once. */\n [OrganizationEmailDomains_Operations.REMOVE]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.HIGH,\n resourceOperationLike: CoreResourceOperation.DELETE,\n // Its own answer, not DELETE's `{ id }`: the caller is told whether the provider's copy went too.\n customResponseDto: OrganizationEmailDomainRemoveResponseSchema,\n }],\n },\n },\n });\n\ntype ClientMailboxOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST\n | CoreResourceOperation.CREATE\n | CoreResourceOperation.UPDATE_MANY\n | CoreResourceOperation.DELETE\n | CoreResourceOperation.DELETE_MANY;\n\nexport const clientMailboxesResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) =>\n createResourceConfiguration_Initialization<Record<string, never>, ClientMailboxOperations, typeof ClientMailboxSchema>({\n mainSchema: ClientMailboxSchema,\n resourceIdentifier: CoreResourceType.CLIENT_MAILBOXES,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.CLIENT_MAILBOXES],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n systemAccessPolicy: { ...engineOwned, exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n // An address of an organization, not of a person.\n retentionPolicy: { mode: ErasureRetentionMode.RETAIN_ONLY },\n retentionBinding: { retentionClass: DataRetentionClass.RESOURCE_DATA, startPoint: RetentionStartPoint.CREATED },\n dataSubjectPolicy: NO_PRINCIPAL,\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE_MANY,\n CoreResourceOperation.DELETE,\n CoreResourceOperation.DELETE_MANY,\n ],\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_MEMBER], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.LIST]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_MEMBER], riskLevel: ResourceOperationRiskLevel.LOW, sortFields: ['createdAt'] }] },\n /**\n * The FIRM's administrator creates a mailbox on the firm's own verified receiving domain, for a client it\n * serves. The implementation re-checks, whoever calls: the domain is VERIFIED for receiving and this\n * organization's, and the relationship is ACTIVE with this organization as its provider.\n */\n [CoreResourceOperation.CREATE]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n requestDto: ClientMailboxCreateRequestSchema,\n }],\n },\n [CoreResourceOperation.UPDATE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.CRITICAL }] },\n /** The firm's administrator deletes a mailbox on its domain. The client ends one by ending the relationship. */\n [CoreResourceOperation.DELETE]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_ADMIN], riskLevel: ResourceOperationRiskLevel.MEDIUM }] },\n [CoreResourceOperation.DELETE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n },\n });\n\nexport const inboundAddressTombstonesResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) =>\n createResourceConfiguration_Initialization<undefined,\n CoreResourceOperation.CREATE | CoreResourceOperation.READ | CoreResourceOperation.LIST,\n typeof InboundAddressTombstoneSchema\n >({\n mainSchema: InboundAddressTombstoneSchema,\n resourceIdentifier: CoreResourceType.INBOUND_ADDRESS_TOMBSTONES,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.INBOUND_ADDRESS_TOMBSTONES],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n /*\n * FORBIDDEN from a subject export and NO `retentionPolicy`: a slug names a deleted organization, not a\n * person. No retention binding either, deliberately: a tombstone that expired would route an old\n * organization's correspondents to whoever took its slug next — the one outcome it exists to prevent.\n */\n systemAccessPolicy: { read: ResourceSystemAccessMode.ALLOWED, list: ResourceSystemAccessMode.ALLOWED, create: ResourceSystemAccessMode.ALLOWED, exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n coreOperations: [CoreResourceOperation.CREATE, CoreResourceOperation.READ, CoreResourceOperation.LIST],\n operationsConfiguration: {\n [CoreResourceOperation.CREATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.READ]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.LIST]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n },\n });\n"]}
1
+ {"version":3,"file":"inbound-email.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../../src/notifications/inbound-email/inbound-email.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Receiving email (#1600) — resource configurations.\n *\n * - `inboundEmails`: the engine writes every row (the email channel's stage 1). Members of the organization\n * READ its correspondence; no route creates, updates or deletes one. The retention sweep deletes a row\n * once its statutory period has passed, and the erasure writer scrubs through `UPDATE_MANY` — both\n * route-less.\n * - `organizationEmailDomains`: an organization administrator drives the whole lifecycle through four\n * audited verbs (`claim`, `verify_ownership`, `verify`, `remove`). No generic CREATE / UPDATE / DELETE\n * route: a row that could be written directly could claim VERIFIED without proving anything.\n * - `clientMailboxes`: created by a client administrator, or by the firm on the client's behalf under an\n * ACTIVE relationship; a client administrator can always delete one.\n * - `inboundAddressTombstones`: written by the organization deletion, read by routing. No route at all.\n */\nimport { z } from 'zod';\n\nimport { CoreResourceOperation, CoreResourceType, coreResourceShared_FieldIdentifier } from '../../resources/resources.shared.core.definitions';\nimport { ResourceOperationRiskLevel, ResourceOperationVariantType, type ResourceRelationship } from '../../resources/resources.shared.schemas';\nimport { createResourceConfiguration_Initialization } from '../../resources/resources-config.shared.factory';\nimport { ResourceSystemAccessMode } from '../../resources/resources-config.shared.schemas';\nimport { CORE_APP_ROLES, CORE_ORG_ROLES } from '../../security/authorizations/roles.shared.schemas';\nimport { ErasureRetentionMode, ResourceDataSubjectKind, StatutoryRetentionGround } from '../../compliance/privacy/impersonalization.shared.schemas';\nimport { DataRetentionClass, RetentionStartPoint } from '../../compliance/privacy/retention-schedule.shared.schemas';\nimport {\n ClientMailboxCreateRequestSchema,\n ClientMailboxSchema,\n InboundAddressTombstoneSchema,\n InboundEmailSchema,\n InboundEmailStatus,\n InboundRouteKind,\n OrganizationEmailDomainClaimRequestSchema,\n OrganizationEmailDomainClaimResponseSchema,\n OrganizationEmailDomainRemoveResponseSchema,\n OrganizationEmailDomainSchema,\n OrganizationEmailDomainStatus,\n OrganizationEmailDomains_Operations,\n} from './inbound-email.shared.schemas';\n\ntype InboundEmailCoreOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST\n | CoreResourceOperation.CREATE\n | CoreResourceOperation.UPDATE\n | CoreResourceOperation.UPDATE_MANY\n | CoreResourceOperation.DELETE\n | CoreResourceOperation.DELETE_MANY;\n\nconst CORE_OPERATIONS: InboundEmailCoreOperations[] = [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.UPDATE_MANY,\n CoreResourceOperation.DELETE,\n CoreResourceOperation.DELETE_MANY,\n];\n\n/**\n * The email channel reads and writes these rows on a system context BEFORE any handler authority exists: a\n * message is routed before anyone may act on it.\n */\nconst engineOwned = {\n read: ResourceSystemAccessMode.ALLOWED,\n list: ResourceSystemAccessMode.ALLOWED,\n create: ResourceSystemAccessMode.ALLOWED,\n update: ResourceSystemAccessMode.ALLOWED,\n updateMany: ResourceSystemAccessMode.ALLOWED,\n};\n\n/** The correspondent is a person with no account here, or another organization: no login is reachable from a row. */\nconst NO_PRINCIPAL = { kind: ResourceDataSubjectKind.NO_PRINCIPAL };\n\n/*\n * Operation configurations are written out per resource rather than shared through a constant: contextual typing\n * needs each variant literal in place, and a shared constant widens (or freezes) it past what the builder accepts.\n */\n\nexport const inboundEmailsResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) =>\n createResourceConfiguration_Initialization<Record<string, never>, InboundEmailCoreOperations, typeof InboundEmailSchema>({\n mainSchema: InboundEmailSchema,\n resourceIdentifier: CoreResourceType.INBOUND_EMAILS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.INBOUND_EMAILS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n systemAccessPolicy: engineOwned,\n /*\n * A received email is business correspondence, which commercial and tax statutes require kept for a period\n * counted from the end of the calendar year it was received. Inside that period an erasure RESTRICTS the\n * row rather than scrubbing it (#1613, #1635); after it the retention sweep deletes the row, and its raw\n * MIME and attachment files go with it (the file side of `BUSINESS_RECORDS`).\n *\n * `RETAIN_AND_IMPERSONALIZE`: the row holds a sender's address, bodies and headers — personal data — and\n * each such field declares what erasure writes over it.\n */\n retentionPolicy: {\n mode: ErasureRetentionMode.RETAIN_AND_IMPERSONALIZE,\n statutoryRetention: {\n ground: StatutoryRetentionGround.LEGAL_OBLIGATION,\n rationale: 'Business letters received: HGB §257(1) no. 2 and AO §147(1) no. 2 (six years from the end of the calendar year, §257(5) / §147(4)); Code de commerce L123-22 (ten years) where the correspondence is accounting evidence; Limitation Act 1980 s.14B (fifteen-year long-stop); SEC Rule 17a-4(b)(4) (three years) for broker-dealers.',\n },\n },\n retentionBinding: {\n retentionClass: DataRetentionClass.BUSINESS_RECORDS,\n startPoint: RetentionStartPoint.END_OF_CALENDAR_YEAR,\n },\n dataSubjectPolicy: NO_PRINCIPAL,\n coreOperations: CORE_OPERATIONS,\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_MEMBER], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n filterFields: {\n status: z.enum(InboundEmailStatus),\n routeKind: z.enum(InboundRouteKind),\n threadId: z.string(),\n },\n sortFields: ['receivedAt'],\n }],\n },\n [CoreResourceOperation.CREATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n // The engine moves `status` and records the thread; nothing rewrites what was received (E5).\n [CoreResourceOperation.UPDATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.UPDATE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.CRITICAL }] },\n // HIGH: deleting correspondence removes evidence of what a client sent.\n [CoreResourceOperation.DELETE]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n [CoreResourceOperation.DELETE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n },\n });\n\nexport const organizationEmailDomainsResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) =>\n createResourceConfiguration_Initialization<typeof OrganizationEmailDomains_Operations, InboundEmailCoreOperations, typeof OrganizationEmailDomainSchema>({\n mainSchema: OrganizationEmailDomainSchema,\n resourceIdentifier: CoreResourceType.ORGANIZATION_EMAIL_DOMAINS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.ORGANIZATION_EMAIL_DOMAINS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n systemAccessPolicy: { ...engineOwned, exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n /*\n * A domain names an organization's infrastructure, not a person. `RETAIN_ONLY`, and FORBIDDEN from a\n * subject export for the same reason: no field is anybody's personal data.\n */\n retentionPolicy: { mode: ErasureRetentionMode.RETAIN_ONLY },\n /*\n * Kept while it exists; removal and tenant deletion delete the row outright (and the provider's domain with\n * it), so the class's clock starts at creation only for a row nobody ever removes — the ordinary\n * `RESOURCE_DATA` period of the application.\n */\n retentionBinding: { retentionClass: DataRetentionClass.RESOURCE_DATA, startPoint: RetentionStartPoint.CREATED },\n dataSubjectPolicy: NO_PRINCIPAL,\n coreOperations: CORE_OPERATIONS,\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.LIST]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.LOW,\n filterFields: { status: z.enum(OrganizationEmailDomainStatus) },\n sortFields: ['createdAt'],\n }],\n },\n [CoreResourceOperation.CREATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.UPDATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.UPDATE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.CRITICAL }] },\n [CoreResourceOperation.DELETE]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n [CoreResourceOperation.DELETE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n /**\n * Mint the organization's DNS TXT ownership challenge and record the claim as OWNERSHIP_PENDING. Creates\n * nothing at the provider. Refused only when the domain is already past OWNERSHIP_PENDING for another\n * organization; a pending claim elsewhere blocks nobody.\n *\n * assurance-control: WILDO.DATA.TENANT_ISOLATION — a domain routes mail into, and sends for, only the organization that proved it controls the domain's DNS.\n */\n [OrganizationEmailDomains_Operations.CLAIM]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n resourceOperationLike: CoreResourceOperation.CREATE,\n requestDto: OrganizationEmailDomainClaimRequestSchema,\n customResponseDto: OrganizationEmailDomainClaimResponseSchema,\n }],\n },\n /** Resolve the TXT record. The first organization to prove ownership wins; only then is the domain created at the provider. */\n [OrganizationEmailDomains_Operations.VERIFY_OWNERSHIP]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.HIGH,\n resourceOperationLike: CoreResourceOperation.UPDATE,\n requestDto: z.object({}),\n enabledCondition: ({ currentObject }) => currentObject.status === OrganizationEmailDomainStatus.OWNERSHIP_PENDING,\n }],\n },\n /** Ask the provider to verify the domain's DNS records; asynchronous at the provider, so it may answer PROVIDER_PENDING again. */\n [OrganizationEmailDomains_Operations.VERIFY]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n resourceOperationLike: CoreResourceOperation.UPDATE,\n requestDto: z.object({}),\n enabledCondition: ({ currentObject }) => currentObject.status !== OrganizationEmailDomainStatus.OWNERSHIP_PENDING,\n }],\n },\n /** Delete the domain at the provider, then the row. Mail to it stops routing at once. */\n [OrganizationEmailDomains_Operations.REMOVE]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.HIGH,\n resourceOperationLike: CoreResourceOperation.DELETE,\n // Its own answer, not DELETE's `{ id }`: the caller is told whether the provider's copy went too.\n customResponseDto: OrganizationEmailDomainRemoveResponseSchema,\n }],\n },\n },\n });\n\ntype ClientMailboxOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST\n | CoreResourceOperation.CREATE\n | CoreResourceOperation.UPDATE_MANY\n | CoreResourceOperation.DELETE\n | CoreResourceOperation.DELETE_MANY;\n\nexport const clientMailboxesResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) =>\n createResourceConfiguration_Initialization<Record<string, never>, ClientMailboxOperations, typeof ClientMailboxSchema>({\n mainSchema: ClientMailboxSchema,\n resourceIdentifier: CoreResourceType.CLIENT_MAILBOXES,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.CLIENT_MAILBOXES],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n systemAccessPolicy: { ...engineOwned, exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n // An address of an organization, not of a person.\n retentionPolicy: { mode: ErasureRetentionMode.RETAIN_ONLY },\n retentionBinding: { retentionClass: DataRetentionClass.RESOURCE_DATA, startPoint: RetentionStartPoint.CREATED },\n dataSubjectPolicy: NO_PRINCIPAL,\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE_MANY,\n CoreResourceOperation.DELETE,\n CoreResourceOperation.DELETE_MANY,\n ],\n operationsConfiguration: {\n [CoreResourceOperation.READ]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_MEMBER], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.LIST]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_MEMBER], riskLevel: ResourceOperationRiskLevel.LOW, sortFields: ['createdAt'] }] },\n /**\n * The FIRM's administrator creates a mailbox on the firm's own verified receiving domain, for a client it\n * serves. The implementation re-checks, whoever calls: the domain is VERIFIED for receiving and this\n * organization's, and the relationship is ACTIVE with this organization as its provider.\n */\n [CoreResourceOperation.CREATE]: {\n variants: [{\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n requestDto: ClientMailboxCreateRequestSchema,\n }],\n },\n [CoreResourceOperation.UPDATE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.CRITICAL }] },\n /** The firm's administrator deletes a mailbox on its domain. The client ends one by ending the relationship. */\n [CoreResourceOperation.DELETE]: { variants: [{ variantType: ResourceOperationVariantType.API_CALL, isDefault: true, roles: [CORE_ORG_ROLES.ORG_ADMIN], riskLevel: ResourceOperationRiskLevel.MEDIUM }] },\n [CoreResourceOperation.DELETE_MANY]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [], riskLevel: ResourceOperationRiskLevel.HIGH }] },\n },\n });\n\nexport const inboundAddressTombstonesResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) =>\n createResourceConfiguration_Initialization<undefined,\n CoreResourceOperation.CREATE | CoreResourceOperation.READ | CoreResourceOperation.LIST,\n typeof InboundAddressTombstoneSchema\n >({\n mainSchema: InboundAddressTombstoneSchema,\n resourceIdentifier: CoreResourceType.INBOUND_ADDRESS_TOMBSTONES,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.INBOUND_ADDRESS_TOMBSTONES],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n /*\n * FORBIDDEN from a subject export and NO `retentionPolicy`: a slug names a deleted organization, not a\n * person. No retention binding either, deliberately: a tombstone that expired would route an old\n * organization's correspondents to whoever took its slug next — the one outcome it exists to prevent.\n */\n systemAccessPolicy: { read: ResourceSystemAccessMode.ALLOWED, list: ResourceSystemAccessMode.ALLOWED, create: ResourceSystemAccessMode.ALLOWED, exportSubject: ResourceSystemAccessMode.FORBIDDEN },\n coreOperations: [CoreResourceOperation.CREATE, CoreResourceOperation.READ, CoreResourceOperation.LIST],\n operationsConfiguration: {\n [CoreResourceOperation.CREATE]: { variants: [{ variantType: ResourceOperationVariantType.REPOSITORY_ONLY, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.READ]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n [CoreResourceOperation.LIST]: { variants: [{ variantType: ResourceOperationVariantType.INTERNAL_CALL, isDefault: true, roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], riskLevel: ResourceOperationRiskLevel.LOW }] },\n },\n });\n"]}