@wildo-ai/saas-models 1.0.1 → 1.1.1

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 (1282) hide show
  1. package/LICENSE +34 -0
  2. package/dist/esm/.builder.pid +9 -0
  3. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  4. package/dist/esm/__tests__/setup.js +18 -3
  5. package/dist/esm/__tests__/setup.js.map +1 -1
  6. package/dist/esm/_inspect.d.ts +2 -0
  7. package/dist/esm/_inspect.d.ts.map +1 -0
  8. package/dist/esm/_inspect.js +3 -0
  9. package/dist/esm/_inspect.js.map +1 -0
  10. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts +6 -6
  11. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
  12. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js +5 -1
  13. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js.map +1 -1
  14. package/dist/esm/applications/application-subject.shared.schemas.d.ts +51 -0
  15. package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -0
  16. package/dist/esm/applications/application-subject.shared.schemas.js +56 -0
  17. package/dist/esm/applications/application-subject.shared.schemas.js.map +1 -0
  18. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts +9 -11
  19. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  20. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +42 -74
  21. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
  22. package/dist/esm/applications/applications-context.schemas.d.ts +228 -200
  23. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  24. package/dist/esm/applications/applications-context.schemas.js +1 -1
  25. package/dist/esm/applications/applications-context.schemas.js.map +1 -1
  26. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts +4 -9
  27. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  28. package/dist/esm/applications/applications.shared.resources-config.schemas.js +103 -87
  29. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  30. package/dist/esm/applications/applications.shared.schemas.d.ts +59 -5
  31. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  32. package/dist/esm/applications/applications.shared.schemas.js +80 -3
  33. package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
  34. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +4 -4
  35. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  36. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +98 -25
  37. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
  38. package/dist/esm/billing/billing-account.shared.schemas.d.ts +32 -8
  39. package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
  40. package/dist/esm/billing/billing-account.shared.schemas.js +67 -2
  41. package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
  42. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +8 -8
  43. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  44. package/dist/esm/billing/billing-configuration.shared.schemas.js +2 -3
  45. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  46. package/dist/esm/billing/billing-enums.shared.schemas.d.ts +75 -0
  47. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  48. package/dist/esm/billing/billing-enums.shared.schemas.js +78 -1
  49. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  50. package/dist/esm/billing/billing-types.shared.schemas.d.ts +204 -42
  51. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  52. package/dist/esm/billing/billing-types.shared.schemas.js +76 -1
  53. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  54. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +8 -6
  55. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  56. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js +48 -16
  57. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
  58. package/dist/esm/billing/credit-pool.shared.schemas.d.ts +9 -9
  59. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  60. package/dist/esm/billing/credit-pool.shared.schemas.js +13 -6
  61. package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
  62. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts +2 -2
  63. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
  64. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +26 -17
  65. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
  66. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts +10 -10
  67. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
  68. package/dist/esm/billing/invoice-ref.shared.schemas.js +32 -7
  69. package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
  70. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts +7 -7
  71. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
  72. package/dist/esm/billing/price.shared.resources-config.schemas.js +23 -5
  73. package/dist/esm/billing/price.shared.resources-config.schemas.js.map +1 -1
  74. package/dist/esm/billing/price.shared.schemas.d.ts +4 -4
  75. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  76. package/dist/esm/billing/price.shared.schemas.js +1 -1
  77. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  78. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts +9 -9
  79. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  80. package/dist/esm/billing/product-behavior-policy.shared.schemas.js +10 -2
  81. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  82. package/dist/esm/billing/product-definition.shared.schemas.d.ts +27 -27
  83. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  84. package/dist/esm/billing/product-definition.shared.schemas.js +39 -9
  85. package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
  86. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +22 -22
  87. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  88. package/dist/esm/billing/product.shared.resources-config.schemas.js +6 -6
  89. package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
  90. package/dist/esm/billing/product.shared.schemas.d.ts +19 -19
  91. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  92. package/dist/esm/billing/product.shared.schemas.js +1 -1
  93. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  94. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts +7 -7
  95. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
  96. package/dist/esm/billing/promotions.shared.resources-config.schemas.js +34 -6
  97. package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
  98. package/dist/esm/billing/promotions.shared.schemas.d.ts +2 -2
  99. package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
  100. package/dist/esm/billing/promotions.shared.schemas.js +1 -1
  101. package/dist/esm/billing/promotions.shared.schemas.js.map +1 -1
  102. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts +12 -12
  103. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  104. package/dist/esm/billing/referral.shared.resources-config.schemas.js +5 -5
  105. package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
  106. package/dist/esm/billing/referral.shared.schemas.d.ts +7 -7
  107. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  108. package/dist/esm/billing/referral.shared.schemas.js +36 -8
  109. package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
  110. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +6 -6
  111. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  112. package/dist/esm/billing/subscription.shared.resources-config.schemas.js +51 -24
  113. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  114. package/dist/esm/billing/subscription.shared.schemas.d.ts +13 -13
  115. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  116. package/dist/esm/billing/subscription.shared.schemas.js +37 -5
  117. package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
  118. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts +2 -2
  119. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
  120. package/dist/esm/billing/usage-record.shared.resources-config.schemas.js +23 -14
  121. package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
  122. package/dist/esm/billing/usage-record.shared.schemas.d.ts +15 -12
  123. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  124. package/dist/esm/billing/usage-record.shared.schemas.js +34 -7
  125. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  126. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts +36 -36
  127. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
  128. package/dist/esm/charts/aggregation-query.shared.schemas.js +6 -6
  129. package/dist/esm/charts/aggregation-query.shared.schemas.js.map +1 -1
  130. package/dist/esm/charts/aggregation.shared.definitions.d.ts.map +1 -1
  131. package/dist/esm/charts/aggregation.shared.definitions.js +1 -1
  132. package/dist/esm/charts/aggregation.shared.definitions.js.map +1 -1
  133. package/dist/esm/charts/chart-definition-builder.shared.d.ts +5 -3
  134. package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
  135. package/dist/esm/charts/chart-definition-builder.shared.js +4 -2
  136. package/dist/esm/charts/chart-definition-builder.shared.js.map +1 -1
  137. package/dist/esm/{runtime/companion-artifact-placement.shared.definitions.d.ts → companion/artifact-placement.shared.definitions.d.ts} +2 -3
  138. package/dist/esm/companion/artifact-placement.shared.definitions.d.ts.map +1 -0
  139. package/dist/esm/{runtime/companion-artifact-placement.shared.definitions.js → companion/artifact-placement.shared.definitions.js} +1 -2
  140. package/dist/esm/companion/artifact-placement.shared.definitions.js.map +1 -0
  141. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +131 -0
  142. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -0
  143. package/dist/esm/companion/provider-discovery.shared.schemas.js +122 -0
  144. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -0
  145. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts +6 -0
  146. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -0
  147. package/dist/esm/companion/shared-library-companion.shared.definitions.js +1 -0
  148. package/dist/esm/companion/shared-library-companion.shared.definitions.js.map +1 -0
  149. package/dist/esm/companion-exports.d.ts +4 -0
  150. package/dist/esm/companion-exports.d.ts.map +1 -0
  151. package/dist/esm/companion-exports.js +4 -0
  152. package/dist/esm/companion-exports.js.map +1 -0
  153. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts +65 -0
  154. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -0
  155. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js +68 -0
  156. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -0
  157. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts +147 -0
  158. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -0
  159. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js +20 -0
  160. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js.map +1 -0
  161. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +60 -16
  162. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  163. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +77 -10
  164. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
  165. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +58 -0
  166. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -0
  167. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +74 -0
  168. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -0
  169. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +1949 -115
  170. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  171. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +2229 -11
  172. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  173. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts +25 -10
  174. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  175. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +226 -3
  176. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  177. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts +8 -0
  178. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts.map +1 -0
  179. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js +9 -0
  180. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js.map +1 -0
  181. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts +524 -0
  182. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -0
  183. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js +482 -0
  184. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -0
  185. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +112 -0
  186. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -0
  187. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js +120 -0
  188. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -0
  189. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts +134 -0
  190. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -0
  191. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js +129 -0
  192. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -0
  193. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts +1 -1
  194. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +1 -1
  195. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js +1 -1
  196. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js.map +1 -1
  197. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts +50 -0
  198. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -0
  199. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js +98 -0
  200. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -0
  201. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +181 -0
  202. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -0
  203. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +184 -0
  204. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -0
  205. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +230 -0
  206. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -0
  207. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +232 -0
  208. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -0
  209. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts +220 -0
  210. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -0
  211. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js +252 -0
  212. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js.map +1 -0
  213. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts +75 -0
  214. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -0
  215. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js +43 -0
  216. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js.map +1 -0
  217. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +56 -43
  218. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  219. package/dist/esm/compliance/privacy/privacy.shared.schemas.js +72 -18
  220. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  221. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts +21 -3
  222. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  223. package/dist/esm/compliance/privacy/redaction.shared.schemas.js +19 -1
  224. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  225. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts +124 -0
  226. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -0
  227. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js +107 -0
  228. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -0
  229. package/dist/esm/compliance/privacy/sharing.shared.schemas.d.ts.map +1 -1
  230. package/dist/esm/compliance/privacy/sharing.shared.schemas.js +1 -1
  231. package/dist/esm/compliance/privacy/sharing.shared.schemas.js.map +1 -1
  232. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +279 -0
  233. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -0
  234. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +238 -0
  235. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -0
  236. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts +74 -0
  237. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -0
  238. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js +137 -0
  239. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -0
  240. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts +457 -0
  241. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -0
  242. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js +549 -0
  243. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -0
  244. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +13 -13
  245. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  246. package/dist/esm/config/analytics-value-moments.shared.schemas.js +1 -1
  247. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  248. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +135 -125
  249. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  250. package/dist/esm/config/app-configuration-shared.shared.schemas.js +74 -10
  251. package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
  252. package/dist/esm/config/app-frontend-type.shared.schemas.d.ts +94 -0
  253. package/dist/esm/config/app-frontend-type.shared.schemas.d.ts.map +1 -0
  254. package/dist/esm/config/app-frontend-type.shared.schemas.js +95 -0
  255. package/dist/esm/config/app-frontend-type.shared.schemas.js.map +1 -0
  256. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +35 -5
  257. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  258. package/dist/esm/config/auth-config-resolution.shared.utils.js +44 -2
  259. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  260. package/dist/esm/config/brand-assets.shared.schemas.d.ts +89 -0
  261. package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -0
  262. package/dist/esm/config/brand-assets.shared.schemas.js +99 -0
  263. package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -0
  264. package/dist/esm/config/configuration-validation.shared.schemas.d.ts +12 -1
  265. package/dist/esm/config/configuration-validation.shared.schemas.d.ts.map +1 -1
  266. package/dist/esm/config/configuration-validation.shared.schemas.js +12 -1
  267. package/dist/esm/config/configuration-validation.shared.schemas.js.map +1 -1
  268. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +170 -91
  269. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  270. package/dist/esm/config/entity-identity-config.shared.schemas.js +130 -19
  271. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  272. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +167 -166
  273. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
  274. package/dist/esm/config/frontend/chart-definition.shared.schemas.js +93 -9
  275. package/dist/esm/config/frontend/chart-definition.shared.schemas.js.map +1 -1
  276. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts +69 -0
  277. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -0
  278. package/dist/esm/config/frontend/chart-registration-alignment.shared.js +61 -0
  279. package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -0
  280. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +110 -39
  281. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  282. package/dist/esm/config/frontend/navigation.shared.schemas.js +93 -9
  283. package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
  284. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts +70 -134
  285. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
  286. package/dist/esm/config/frontend/onboarding.shared.schemas.js +27 -25
  287. package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
  288. package/dist/esm/config/postgresql.shared.schemas.d.ts.map +1 -1
  289. package/dist/esm/config/postgresql.shared.schemas.js +1 -1
  290. package/dist/esm/config/postgresql.shared.schemas.js.map +1 -1
  291. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts +24 -0
  292. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -0
  293. package/dist/esm/config/registration-acquisition-policy.shared.utils.js +62 -0
  294. package/dist/esm/config/registration-acquisition-policy.shared.utils.js.map +1 -0
  295. package/dist/esm/config-authoring.entry.d.ts +5 -0
  296. package/dist/esm/config-authoring.entry.d.ts.map +1 -0
  297. package/dist/esm/config-authoring.entry.js +7 -0
  298. package/dist/esm/config-authoring.entry.js.map +1 -0
  299. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts +1 -1
  300. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
  301. package/dist/esm/crdt/crdt-merge.shared.utils.js +1 -1
  302. package/dist/esm/crdt/crdt-merge.shared.utils.js.map +1 -1
  303. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts +66 -0
  304. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -0
  305. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js +118 -0
  306. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js.map +1 -0
  307. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +348 -1
  308. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  309. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +357 -1
  310. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  311. package/dist/esm/errors/errors.shared.definitions.d.ts +2 -2
  312. package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
  313. package/dist/esm/errors/errors.shared.definitions.js +12 -1
  314. package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
  315. package/dist/esm/errors/errors.shared.schemas.d.ts +82 -36
  316. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  317. package/dist/esm/errors/errors.shared.schemas.js +100 -3
  318. package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
  319. package/dist/esm/errors/errors.shared.utils.d.ts +1 -1
  320. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  321. package/dist/esm/errors/errors.shared.utils.js +1 -1
  322. package/dist/esm/errors/errors.shared.utils.js.map +1 -1
  323. package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts +16 -0
  324. package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts.map +1 -0
  325. package/dist/esm/errors/resource-access-forbidden.shared.error.js +18 -0
  326. package/dist/esm/errors/resource-access-forbidden.shared.error.js.map +1 -0
  327. package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts +113 -0
  328. package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts.map +1 -0
  329. package/dist/esm/errors/zod-issue-formatting.shared.utils.js +102 -0
  330. package/dist/esm/errors/zod-issue-formatting.shared.utils.js.map +1 -0
  331. package/dist/esm/exports/tabular-csv.shared.utils.d.ts +42 -0
  332. package/dist/esm/exports/tabular-csv.shared.utils.d.ts.map +1 -0
  333. package/dist/esm/exports/tabular-csv.shared.utils.js +63 -0
  334. package/dist/esm/exports/tabular-csv.shared.utils.js.map +1 -0
  335. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +347 -0
  336. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -0
  337. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js +206 -0
  338. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -0
  339. package/dist/esm/external-data.exports.d.ts +30 -0
  340. package/dist/esm/external-data.exports.d.ts.map +1 -0
  341. package/dist/esm/external-data.exports.js +30 -0
  342. package/dist/esm/external-data.exports.js.map +1 -0
  343. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts +63 -0
  344. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -0
  345. package/dist/esm/external-providers/compose-provider-registry.shared.js +102 -0
  346. package/dist/esm/external-providers/compose-provider-registry.shared.js.map +1 -0
  347. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +164 -0
  348. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -0
  349. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +194 -0
  350. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -0
  351. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts +39 -0
  352. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -0
  353. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +85 -0
  354. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -0
  355. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts +22 -22
  356. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
  357. package/dist/esm/external-providers/external-providers.shared.schemas.js +5 -5
  358. package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
  359. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +319 -0
  360. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -0
  361. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js +17 -0
  362. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js.map +1 -0
  363. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +35 -0
  364. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -0
  365. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +19 -0
  366. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -0
  367. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +135 -0
  368. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -0
  369. package/dist/esm/external-providers/provider-capability.shared.schemas.js +102 -0
  370. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -0
  371. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +175 -0
  372. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -0
  373. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +211 -0
  374. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -0
  375. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +37 -0
  376. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -0
  377. package/dist/esm/external-providers/provider-metadata.shared.schemas.js +58 -0
  378. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -0
  379. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +65 -0
  380. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -0
  381. package/dist/esm/external-providers/provider-protocol.shared.schemas.js +63 -0
  382. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -0
  383. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts +99 -0
  384. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -0
  385. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js +137 -0
  386. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -0
  387. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +39 -0
  388. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -0
  389. package/dist/esm/features/application-features.shared.resources-config.schemas.js +147 -0
  390. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -0
  391. package/dist/esm/features/core-feature-definitions.shared.d.ts +17 -2
  392. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  393. package/dist/esm/features/core-feature-definitions.shared.js +91 -3
  394. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  395. package/dist/esm/features/feature-builders.shared.d.ts +13 -2
  396. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  397. package/dist/esm/features/feature-builders.shared.js +3 -1
  398. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  399. package/dist/esm/features/feature-definition.shared.schemas.d.ts +70 -24
  400. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  401. package/dist/esm/features/feature-definition.shared.schemas.js +84 -1
  402. package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
  403. package/dist/esm/features/feature-registry.shared.d.ts +8 -9
  404. package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
  405. package/dist/esm/features/feature-registry.shared.js +5 -8
  406. package/dist/esm/features/feature-registry.shared.js.map +1 -1
  407. package/dist/esm/features/feature-resolution.shared.schemas.d.ts +1 -1
  408. package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
  409. package/dist/esm/features/feature-resolution.shared.schemas.js +1 -1
  410. package/dist/esm/features/feature-resolution.shared.schemas.js.map +1 -1
  411. package/dist/esm/features/scope-features.shared.schemas.d.ts +9 -10
  412. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  413. package/dist/esm/features/scope-features.shared.schemas.js +20 -6
  414. package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
  415. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +9 -9
  416. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
  417. package/dist/esm/features/user-features.shared.resources-config.schemas.js +35 -1
  418. package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
  419. package/dist/esm/files/files.shared.resources-config.schemas.d.ts +35 -9
  420. package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
  421. package/dist/esm/files/files.shared.resources-config.schemas.js +27 -5
  422. package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
  423. package/dist/esm/files/files.shared.schemas.d.ts +71 -13
  424. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  425. package/dist/esm/files/files.shared.schemas.js +110 -35
  426. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  427. package/dist/esm/files/files.shared.utils.d.ts +9 -5
  428. package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
  429. package/dist/esm/files/files.shared.utils.js +10 -6
  430. package/dist/esm/files/files.shared.utils.js.map +1 -1
  431. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts +40 -0
  432. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -0
  433. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js +204 -0
  434. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -0
  435. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts +113 -0
  436. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -0
  437. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js +153 -0
  438. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -0
  439. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts +61 -0
  440. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -0
  441. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js +143 -0
  442. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -0
  443. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts +77 -0
  444. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -0
  445. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js +103 -0
  446. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js.map +1 -0
  447. package/dist/esm/flows-actors/actors.shared.schemas.d.ts +339 -326
  448. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  449. package/dist/esm/flows-actors/actors.shared.schemas.js +29 -6
  450. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  451. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +237 -0
  452. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -0
  453. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js +152 -0
  454. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -0
  455. package/dist/esm/flows-actors/agents.shared.schemas.d.ts +180 -23
  456. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  457. package/dist/esm/flows-actors/agents.shared.schemas.js +69 -2
  458. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  459. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts +19 -0
  460. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts.map +1 -0
  461. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js +35 -0
  462. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js.map +1 -0
  463. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +29 -45
  464. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts.map +1 -1
  465. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js +2 -34
  466. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js.map +1 -1
  467. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts +2 -2
  468. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts.map +1 -1
  469. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js +1 -1
  470. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js.map +1 -1
  471. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +642 -0
  472. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -0
  473. package/dist/esm/flows-actors/deliberation.shared.schemas.js +604 -0
  474. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -0
  475. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts +48 -0
  476. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -0
  477. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js +179 -0
  478. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -0
  479. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +200 -0
  480. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -0
  481. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +337 -0
  482. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -0
  483. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts +59 -0
  484. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -0
  485. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js +223 -0
  486. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -0
  487. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts +426 -0
  488. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -0
  489. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js +317 -0
  490. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -0
  491. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +109 -58
  492. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  493. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +48 -1
  494. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  495. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts +62 -62
  496. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  497. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js +2 -2
  498. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
  499. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts +112 -11
  500. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  501. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js +63 -1
  502. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
  503. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts +60 -20
  504. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  505. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +36 -3
  506. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  507. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts +35 -0
  508. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -0
  509. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js +1 -0
  510. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js.map +1 -0
  511. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +88 -63
  512. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  513. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +32 -5
  514. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  515. package/dist/esm/flows-actors/flows.shared.schemas.d.ts +63 -49
  516. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  517. package/dist/esm/flows-actors/flows.shared.schemas.js +1 -1
  518. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  519. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts +73 -0
  520. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -0
  521. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.js +149 -0
  522. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -0
  523. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +20 -0
  524. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +1 -0
  525. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +34 -0
  526. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +1 -0
  527. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts +125 -0
  528. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -0
  529. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.js +136 -0
  530. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -0
  531. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts +180 -0
  532. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -0
  533. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js +187 -0
  534. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -0
  535. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts +28 -0
  536. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts.map +1 -0
  537. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js +28 -0
  538. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js.map +1 -0
  539. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +446 -0
  540. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -0
  541. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js +678 -0
  542. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -0
  543. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +106 -0
  544. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +1 -0
  545. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +243 -0
  546. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +1 -0
  547. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts +29 -0
  548. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts.map +1 -0
  549. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js +58 -0
  550. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js.map +1 -0
  551. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts +61 -0
  552. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -0
  553. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js +93 -0
  554. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -0
  555. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts +5 -5
  556. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
  557. package/dist/esm/flows-actors/prompt-ir.shared.schemas.js +2 -2
  558. package/dist/esm/flows-actors/prompt-ir.shared.schemas.js.map +1 -1
  559. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts +81 -0
  560. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts.map +1 -0
  561. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js +82 -0
  562. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js.map +1 -0
  563. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +257 -194
  564. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  565. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js +28 -2
  566. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
  567. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.d.ts.map +1 -1
  568. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js +1 -1
  569. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js.map +1 -1
  570. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
  571. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js +1 -1
  572. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
  573. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts +51 -89
  574. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
  575. package/dist/esm/guidance/guidance-flow.shared.schemas.js +1 -1
  576. package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
  577. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts +22 -19
  578. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
  579. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js +61 -5
  580. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
  581. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts +46 -10
  582. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  583. package/dist/esm/guidance/guidance-state.shared.schemas.js +15 -4
  584. package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
  585. package/dist/esm/guidance/guidance-state.shared.utils.d.ts +25 -0
  586. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -0
  587. package/dist/esm/guidance/guidance-state.shared.utils.js +72 -0
  588. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -0
  589. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts +11 -11
  590. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
  591. package/dist/esm/guidance/lifecycle-config.shared.schemas.js +1 -1
  592. package/dist/esm/guidance/lifecycle-config.shared.schemas.js.map +1 -1
  593. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts +28 -25
  594. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
  595. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js +71 -7
  596. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
  597. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts +53 -14
  598. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
  599. package/dist/esm/guidance/lifecycle-state.shared.schemas.js +26 -25
  600. package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
  601. package/dist/esm/guidance/milestone-builders.shared.d.ts +2 -2
  602. package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
  603. package/dist/esm/guidance/milestone-builders.shared.js +1 -1
  604. package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
  605. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts +2 -2
  606. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
  607. package/dist/esm/guidance/milestone-definition.shared.schemas.js +1 -1
  608. package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
  609. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +22 -19
  610. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  611. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js +72 -7
  612. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
  613. package/dist/esm/guidance/progression-state.shared.schemas.d.ts +40 -10
  614. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  615. package/dist/esm/guidance/progression-state.shared.schemas.js +16 -6
  616. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  617. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts +69 -0
  618. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -0
  619. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js +232 -0
  620. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -0
  621. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +566 -0
  622. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -0
  623. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +513 -0
  624. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -0
  625. package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts +52 -0
  626. package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts.map +1 -0
  627. package/dist/esm/i18n/interpolate-label-params.shared.utils.js +63 -0
  628. package/dist/esm/i18n/interpolate-label-params.shared.utils.js.map +1 -0
  629. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts +3 -3
  630. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
  631. package/dist/esm/i18n/labelling.dto.shared.schemas.js +1 -1
  632. package/dist/esm/i18n/labelling.dto.shared.schemas.js.map +1 -1
  633. package/dist/esm/index.d.ts +277 -200
  634. package/dist/esm/index.d.ts.map +1 -1
  635. package/dist/esm/index.js +122 -15
  636. package/dist/esm/index.js.map +1 -1
  637. package/dist/esm/meta-workflows.exports.d.ts +51 -0
  638. package/dist/esm/meta-workflows.exports.d.ts.map +1 -0
  639. package/dist/esm/meta-workflows.exports.js +51 -0
  640. package/dist/esm/meta-workflows.exports.js.map +1 -0
  641. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts +16 -16
  642. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
  643. package/dist/esm/monitoring/monitoring.shared.schemas.js +1 -1
  644. package/dist/esm/monitoring/monitoring.shared.schemas.js.map +1 -1
  645. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts +9 -9
  646. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
  647. package/dist/esm/notifications/email/email-context.shared.schemas.js +8 -3
  648. package/dist/esm/notifications/email/email-context.shared.schemas.js.map +1 -1
  649. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +33 -46
  650. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  651. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js +20 -140
  652. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  653. package/dist/esm/notifications/email/email-template.shared.enums.d.ts +145 -0
  654. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -0
  655. package/dist/esm/notifications/email/email-template.shared.enums.js +164 -0
  656. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -0
  657. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts +43 -0
  658. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -0
  659. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js +231 -0
  660. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -0
  661. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts +159 -0
  662. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -0
  663. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js +191 -0
  664. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -0
  665. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +62 -0
  666. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -0
  667. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +183 -0
  668. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -0
  669. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +134 -0
  670. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -0
  671. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +159 -0
  672. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -0
  673. package/dist/esm/notifications/notification-badges.core.definitions.d.ts +10 -1
  674. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  675. package/dist/esm/notifications/notification-badges.core.definitions.js +11 -13
  676. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  677. package/dist/esm/notifications/notification-badges.schemas.d.ts +147 -43
  678. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  679. package/dist/esm/notifications/notification-badges.schemas.js +130 -23
  680. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  681. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts +40 -15
  682. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
  683. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js +149 -23
  684. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
  685. package/dist/esm/notifications/notifications.shared.schemas.d.ts +352 -25
  686. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  687. package/dist/esm/notifications/notifications.shared.schemas.js +47 -2
  688. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  689. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +21 -10
  690. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
  691. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +54 -47
  692. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  693. package/dist/esm/organizations/organization-features.shared.schemas.d.ts +10 -2
  694. package/dist/esm/organizations/organization-features.shared.schemas.d.ts.map +1 -1
  695. package/dist/esm/organizations/organization-features.shared.schemas.js +10 -2
  696. package/dist/esm/organizations/organization-features.shared.schemas.js.map +1 -1
  697. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +31 -17
  698. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  699. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +294 -54
  700. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
  701. package/dist/esm/organizations/organization-members.shared.schemas.d.ts +31 -41
  702. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  703. package/dist/esm/organizations/organization-members.shared.schemas.js +181 -37
  704. package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
  705. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts +8 -8
  706. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
  707. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js +43 -2
  708. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js.map +1 -1
  709. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts +25 -4
  710. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  711. package/dist/esm/organizations/organization-notifications.shared.schemas.js +35 -15
  712. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  713. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts +7 -7
  714. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  715. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js +42 -3
  716. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js.map +1 -1
  717. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +4 -4
  718. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  719. package/dist/esm/organizations/organization-preferences.shared.schemas.js +17 -4
  720. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  721. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts +10 -10
  722. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  723. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js +32 -2
  724. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js.map +1 -1
  725. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +6 -6
  726. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  727. package/dist/esm/organizations/organization-profile.shared.schemas.js +28 -2
  728. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  729. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts +94 -0
  730. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -0
  731. package/dist/esm/organizations/organization-unit-inheritance.shared.js +96 -0
  732. package/dist/esm/organizations/organization-unit-inheritance.shared.js.map +1 -0
  733. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts +30 -0
  734. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -0
  735. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js +97 -0
  736. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -0
  737. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts +56 -0
  738. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -0
  739. package/dist/esm/organizations/organization-unit-members.shared.schemas.js +92 -0
  740. package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -0
  741. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts +130 -0
  742. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -0
  743. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js +139 -0
  744. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -0
  745. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts +27 -0
  746. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -0
  747. package/dist/esm/organizations/organization-unit-narrowing.example.js +29 -0
  748. package/dist/esm/organizations/organization-unit-narrowing.example.js.map +1 -0
  749. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +137 -0
  750. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -0
  751. package/dist/esm/organizations/organization-unit-narrowing.shared.js +133 -0
  752. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -0
  753. package/dist/esm/organizations/organization-units.shared.path.d.ts +103 -0
  754. package/dist/esm/organizations/organization-units.shared.path.d.ts.map +1 -0
  755. package/dist/esm/organizations/organization-units.shared.path.js +120 -0
  756. package/dist/esm/organizations/organization-units.shared.path.js.map +1 -0
  757. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts +8 -8
  758. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  759. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js +1 -1
  760. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
  761. package/dist/esm/organizations/organization-units.shared.schemas.d.ts +69 -8
  762. package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
  763. package/dist/esm/organizations/organization-units.shared.schemas.js +89 -5
  764. package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
  765. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +46 -11
  766. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  767. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +505 -34
  768. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  769. package/dist/esm/organizations/organizations.shared.schemas.d.ts +95 -39
  770. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  771. package/dist/esm/organizations/organizations.shared.schemas.js +228 -6
  772. package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
  773. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +36 -0
  774. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -0
  775. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +66 -0
  776. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -0
  777. package/dist/esm/provider-registration-runtime.exports.d.ts +4 -0
  778. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -0
  779. package/dist/esm/provider-registration-runtime.exports.js +4 -0
  780. package/dist/esm/provider-registration-runtime.exports.js.map +1 -0
  781. package/dist/esm/public-runtime/index.d.ts +164 -0
  782. package/dist/esm/public-runtime/index.d.ts.map +1 -0
  783. package/dist/esm/public-runtime/index.js +164 -0
  784. package/dist/esm/public-runtime/index.js.map +1 -0
  785. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +4 -4
  786. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  787. package/dist/esm/queue/jobs.shared.resources-config.schemas.js +12 -1
  788. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  789. package/dist/esm/queue/jobs.shared.schemas.d.ts +114 -42
  790. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  791. package/dist/esm/queue/jobs.shared.schemas.js +114 -12
  792. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  793. package/dist/esm/queue/jobs.shared.utils.d.ts +3 -3
  794. package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
  795. package/dist/esm/queue/jobs.shared.utils.js +2 -2
  796. package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
  797. package/dist/esm/queue/queues.shared.schemas.d.ts +17 -15
  798. package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
  799. package/dist/esm/queue/queues.shared.schemas.js +14 -5
  800. package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
  801. package/dist/esm/queue/queues.shared.utils.d.ts +137 -6
  802. package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
  803. package/dist/esm/queue/queues.shared.utils.js +161 -9
  804. package/dist/esm/queue/queues.shared.utils.js.map +1 -1
  805. package/dist/esm/queue/rabbitmq-queue-args.shared.d.ts.map +1 -1
  806. package/dist/esm/queue/rabbitmq-queue-args.shared.js +1 -1
  807. package/dist/esm/queue/rabbitmq-queue-args.shared.js.map +1 -1
  808. package/dist/esm/requests/header-keys.shared.d.ts +23 -1
  809. package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
  810. package/dist/esm/requests/header-keys.shared.js +45 -2
  811. package/dist/esm/requests/header-keys.shared.js.map +1 -1
  812. package/dist/esm/requests/http-requests.shared.d.ts +1 -0
  813. package/dist/esm/requests/http-requests.shared.d.ts.map +1 -1
  814. package/dist/esm/requests/http-requests.shared.js +2 -1
  815. package/dist/esm/requests/http-requests.shared.js.map +1 -1
  816. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +189 -5
  817. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  818. package/dist/esm/requests/manual-controllers-routes-urls.js +255 -6
  819. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  820. package/dist/esm/requests/rate-limits.shared.schemas.d.ts +75 -24
  821. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  822. package/dist/esm/requests/rate-limits.shared.schemas.js +80 -18
  823. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  824. package/dist/esm/requests/websocket.shared.schemas.d.ts +248 -120
  825. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  826. package/dist/esm/requests/websocket.shared.schemas.js +92 -2
  827. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  828. package/dist/esm/resources/child-operations.shared.schemas.d.ts +128 -23
  829. package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
  830. package/dist/esm/resources/child-operations.shared.schemas.js +147 -11
  831. package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
  832. package/dist/esm/resources/context-policy.shared.schemas.d.ts +4 -4
  833. package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
  834. package/dist/esm/resources/context-policy.shared.schemas.js +1 -1
  835. package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
  836. package/dist/esm/resources/relationship-display.shared.schemas.d.ts +31 -1352
  837. package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
  838. package/dist/esm/resources/relationship-display.shared.schemas.js +13 -161
  839. package/dist/esm/resources/relationship-display.shared.schemas.js.map +1 -1
  840. package/dist/esm/resources/resources-config.shared.factory.d.ts +60 -5
  841. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  842. package/dist/esm/resources/resources-config.shared.factory.js +1507 -87
  843. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  844. package/dist/esm/resources/resources-config.shared.schemas.d.ts +1638 -43
  845. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  846. package/dist/esm/resources/resources-config.shared.schemas.js +478 -13
  847. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  848. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts +3 -3
  849. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  850. package/dist/esm/resources/resources-registry.shared.core.definitions.js +782 -96
  851. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  852. package/dist/esm/resources/resources-relationships.shared.factory.d.ts +37 -7
  853. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  854. package/dist/esm/resources/resources-relationships.shared.factory.js +76 -24
  855. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  856. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts +19 -19
  857. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
  858. package/dist/esm/resources/resources-serialization.shared.schemas.js +1 -1
  859. package/dist/esm/resources/resources-serialization.shared.schemas.js.map +1 -1
  860. package/dist/esm/resources/resources.shared.core.definitions.d.ts +84 -8
  861. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  862. package/dist/esm/resources/resources.shared.core.definitions.js +165 -19
  863. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  864. package/dist/esm/resources/resources.shared.schemas.d.ts +582 -602
  865. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  866. package/dist/esm/resources/resources.shared.schemas.js +581 -5
  867. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  868. package/dist/esm/resources/resources.shared.utils.d.ts +363 -15
  869. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  870. package/dist/esm/resources/resources.shared.utils.js +569 -16
  871. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  872. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts +65 -0
  873. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -0
  874. package/dist/esm/resources/utils/collection-export.shared.utils.js +150 -0
  875. package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -0
  876. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts +134 -0
  877. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -0
  878. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js +167 -0
  879. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -0
  880. package/dist/esm/resources/utils/composition-seedability.validation.d.ts +63 -0
  881. package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -0
  882. package/dist/esm/resources/utils/composition-seedability.validation.js +75 -0
  883. package/dist/esm/resources/utils/composition-seedability.validation.js.map +1 -0
  884. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts +10 -0
  885. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -0
  886. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js +25 -0
  887. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js.map +1 -0
  888. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts +111 -0
  889. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -0
  890. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js +109 -0
  891. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js.map +1 -0
  892. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts +52 -0
  893. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -0
  894. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js +57 -0
  895. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js.map +1 -0
  896. package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
  897. package/dist/esm/resources/utils/repository-dto-builder.utils.js +1 -1
  898. package/dist/esm/resources/utils/repository-dto-builder.utils.js.map +1 -1
  899. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts +108 -0
  900. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -0
  901. package/dist/esm/resources/utils/required-fk-fillability.validation.js +186 -0
  902. package/dist/esm/resources/utils/required-fk-fillability.validation.js.map +1 -0
  903. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts +107 -3
  904. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
  905. package/dist/esm/resources/utils/resource-operation-type-guards.utils.js +133 -2
  906. package/dist/esm/resources/utils/resource-operation-type-guards.utils.js.map +1 -1
  907. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts +39 -31
  908. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  909. package/dist/esm/resources/utils/resource-polymorphism.factory.js +9 -9
  910. package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
  911. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts +7 -7
  912. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
  913. package/dist/esm/resources/utils/resource-polymorphism.relationships.js +1 -1
  914. package/dist/esm/resources/utils/resource-polymorphism.relationships.js.map +1 -1
  915. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts +139 -5
  916. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
  917. package/dist/esm/resources/utils/resource-polymorphism.schemas.js +301 -3
  918. package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
  919. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts +1 -1
  920. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
  921. package/dist/esm/resources/utils/resource-polymorphism.utils.js +1 -1
  922. package/dist/esm/resources/utils/resource-polymorphism.utils.js.map +1 -1
  923. package/dist/esm/resources/utils/resource-subtree.utils.d.ts +1 -1
  924. package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
  925. package/dist/esm/resources/utils/resource-subtree.utils.js +1 -1
  926. package/dist/esm/resources/utils/resource-subtree.utils.js.map +1 -1
  927. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts +1 -1
  928. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
  929. package/dist/esm/resources/utils/resources-config-context-needs.utils.js +1 -1
  930. package/dist/esm/resources/utils/resources-config-context-needs.utils.js.map +1 -1
  931. package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
  932. package/dist/esm/resources/utils/resources-config-naming.utils.js +1 -1
  933. package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
  934. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +256 -39
  935. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  936. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +898 -233
  937. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
  938. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts +16 -6
  939. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
  940. package/dist/esm/resources/utils/resources-config-operations.path.utils.js +35 -10
  941. package/dist/esm/resources/utils/resources-config-operations.path.utils.js.map +1 -1
  942. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts +120 -20
  943. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
  944. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js +394 -81
  945. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
  946. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts +2 -2
  947. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
  948. package/dist/esm/resources/utils/resources-config-operations.utils.js +1 -1
  949. package/dist/esm/resources/utils/resources-config-operations.utils.js.map +1 -1
  950. package/dist/esm/resources/utils/resources-serialization.utils.d.ts +77 -2
  951. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  952. package/dist/esm/resources/utils/resources-serialization.utils.js +80 -1
  953. package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
  954. package/dist/esm/resources/utils/resources-summary.utils.d.ts +1 -1
  955. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  956. package/dist/esm/resources/utils/resources-summary.utils.js +1 -1
  957. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  958. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts +21 -3
  959. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
  960. package/dist/esm/resources/utils/schema-family-builder.utils.js +7 -1
  961. package/dist/esm/resources/utils/schema-family-builder.utils.js.map +1 -1
  962. package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
  963. package/dist/esm/resources/utils/schema-type-inference.utils.js +1 -1
  964. package/dist/esm/resources/utils/schema-type-inference.utils.js.map +1 -1
  965. package/dist/esm/resources/utils/schema-type-utils.d.ts +1 -1
  966. package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
  967. package/dist/esm/resources/utils/schema-type-utils.js +1 -1
  968. package/dist/esm/resources/utils/schema-type-utils.js.map +1 -1
  969. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts +1 -1
  970. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
  971. package/dist/esm/resources/utils/schema-variant-resolver.utils.js +1 -1
  972. package/dist/esm/resources/utils/schema-variant-resolver.utils.js.map +1 -1
  973. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts +203 -0
  974. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -0
  975. package/dist/esm/resources/utils/shared-persistence-collection.utils.js +284 -0
  976. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -0
  977. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts +25 -0
  978. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -0
  979. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js +322 -0
  980. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -0
  981. package/dist/esm/runtime/domain-module.shared.definitions.d.ts +32 -10
  982. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  983. package/dist/esm/runtime/domain-module.shared.definitions.js +3 -2
  984. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  985. package/dist/esm/runtime/execution-context.shared.schemas.d.ts +93 -9
  986. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  987. package/dist/esm/runtime/execution-context.shared.schemas.js +122 -7
  988. package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
  989. package/dist/esm/runtime/runtime.shared.schemas.d.ts.map +1 -1
  990. package/dist/esm/runtime/runtime.shared.schemas.js +1 -1
  991. package/dist/esm/runtime/runtime.shared.schemas.js.map +1 -1
  992. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +14 -11
  993. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  994. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +65 -2
  995. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  996. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +14 -11
  997. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  998. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +162 -1
  999. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  1000. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts +79 -29
  1001. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  1002. package/dist/esm/security/api-keys/api-keys.shared.schemas.js +87 -6
  1003. package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
  1004. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts +185 -0
  1005. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -0
  1006. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js +198 -0
  1007. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js.map +1 -0
  1008. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +307 -149
  1009. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  1010. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +177 -27
  1011. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  1012. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +64 -8
  1013. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  1014. package/dist/esm/security/authentications/authentication.shared.schemas.js +56 -9
  1015. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  1016. package/dist/esm/security/authentications/authentication.shared.utils.d.ts +3 -3
  1017. package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
  1018. package/dist/esm/security/authentications/authentication.shared.utils.js +1 -1
  1019. package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
  1020. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts +103 -5
  1021. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
  1022. package/dist/esm/security/authentications/consumable-token.shared.schemas.js +31 -1
  1023. package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
  1024. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts +278 -0
  1025. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -0
  1026. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js +335 -0
  1027. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -0
  1028. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts +6 -6
  1029. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
  1030. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js +11 -4
  1031. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js.map +1 -1
  1032. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +51 -18
  1033. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  1034. package/dist/esm/security/authentications/registration.shared.dto.schemas.js +70 -13
  1035. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  1036. package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts +69 -0
  1037. package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts.map +1 -0
  1038. package/dist/esm/security/authentications/same-origin-redirect-path.shared.js +93 -0
  1039. package/dist/esm/security/authentications/same-origin-redirect-path.shared.js.map +1 -0
  1040. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts +91 -0
  1041. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -0
  1042. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +91 -0
  1043. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -0
  1044. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts +2 -9
  1045. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  1046. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js +49 -33
  1047. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
  1048. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +41 -14
  1049. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  1050. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +158 -5
  1051. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  1052. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts +21 -9
  1053. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
  1054. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js +92 -18
  1055. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
  1056. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts +11 -10
  1057. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  1058. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js +29 -7
  1059. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
  1060. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts +12 -5
  1061. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  1062. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js +81 -5
  1063. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
  1064. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts +17 -5
  1065. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
  1066. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js +29 -5
  1067. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js.map +1 -1
  1068. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts +2 -9
  1069. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
  1070. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js +46 -33
  1071. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
  1072. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts +34 -9
  1073. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
  1074. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +47 -3
  1075. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
  1076. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +2 -17
  1077. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  1078. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +55 -53
  1079. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  1080. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts +37 -37
  1081. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  1082. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +53 -13
  1083. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  1084. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts +79 -7
  1085. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  1086. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js +157 -14
  1087. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
  1088. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +113 -118
  1089. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  1090. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +111 -49
  1091. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  1092. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +57 -0
  1093. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -0
  1094. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +58 -0
  1095. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -0
  1096. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts +35 -0
  1097. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -0
  1098. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +252 -0
  1099. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -0
  1100. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +171 -0
  1101. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -0
  1102. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js +239 -0
  1103. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -0
  1104. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts +1 -1
  1105. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  1106. package/dist/esm/security/authorizations/roles.shared.defaults.js +6 -1
  1107. package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
  1108. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +12 -3
  1109. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  1110. package/dist/esm/security/authorizations/roles.shared.schemas.js +15 -1
  1111. package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
  1112. package/dist/esm/security/authorizations/roles.shared.utils.d.ts +133 -0
  1113. package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -0
  1114. package/dist/esm/security/authorizations/roles.shared.utils.js +218 -0
  1115. package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -0
  1116. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.d.ts.map +1 -1
  1117. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js +1 -1
  1118. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js.map +1 -1
  1119. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +47 -0
  1120. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -0
  1121. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +228 -0
  1122. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -0
  1123. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +46 -0
  1124. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -0
  1125. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +365 -0
  1126. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -0
  1127. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +192 -0
  1128. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -0
  1129. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +401 -0
  1130. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -0
  1131. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts +30 -0
  1132. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -0
  1133. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js +83 -0
  1134. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -0
  1135. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts +29 -0
  1136. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -0
  1137. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js +53 -0
  1138. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -0
  1139. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts +117 -0
  1140. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -0
  1141. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js +180 -0
  1142. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js.map +1 -0
  1143. package/dist/esm/testing/resource-config-builders.d.ts +4 -4
  1144. package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
  1145. package/dist/esm/testing/resource-config-builders.js +9 -2
  1146. package/dist/esm/testing/resource-config-builders.js.map +1 -1
  1147. package/dist/esm/testing.d.ts +1 -1
  1148. package/dist/esm/testing.d.ts.map +1 -1
  1149. package/dist/esm/testing.js +1 -1
  1150. package/dist/esm/testing.js.map +1 -1
  1151. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts +76 -0
  1152. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -0
  1153. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js +72 -0
  1154. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -0
  1155. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +28 -17
  1156. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  1157. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js +43 -4
  1158. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
  1159. package/dist/esm/users/anonymous-users.shared.schema.d.ts +19 -12
  1160. package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
  1161. package/dist/esm/users/anonymous-users.shared.schema.js +68 -4
  1162. package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
  1163. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts +52 -0
  1164. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -0
  1165. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +153 -0
  1166. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -0
  1167. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts +47 -17
  1168. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
  1169. package/dist/esm/users/inbound-contacts.shared.schemas.js +123 -9
  1170. package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
  1171. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts +12 -12
  1172. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
  1173. package/dist/esm/users/user-credentials.shared.resources-config.schemas.js +11 -1
  1174. package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
  1175. package/dist/esm/users/user-credentials.shared.schemas.d.ts +15 -10
  1176. package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
  1177. package/dist/esm/users/user-credentials.shared.schemas.js +53 -9
  1178. package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
  1179. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts +13 -11
  1180. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
  1181. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js +24 -1
  1182. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
  1183. package/dist/esm/users/user-identity-links.shared.schemas.d.ts +22 -19
  1184. package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
  1185. package/dist/esm/users/user-identity-links.shared.schemas.js +107 -23
  1186. package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
  1187. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts +78 -0
  1188. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -0
  1189. package/dist/esm/users/user-preferences-reset.shared.utils.js +98 -0
  1190. package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -0
  1191. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +31 -61
  1192. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  1193. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js +34 -203
  1194. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
  1195. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts +13 -14
  1196. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  1197. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js +66 -31
  1198. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
  1199. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +33 -60
  1200. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  1201. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js +49 -175
  1202. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
  1203. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts +13 -21
  1204. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  1205. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js +12 -119
  1206. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
  1207. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts +12 -16
  1208. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  1209. package/dist/esm/users/user-self.shared.resources-config.schemas.js +263 -115
  1210. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  1211. package/dist/esm/users/users.shared.resources-config.schemas.d.ts +13 -16
  1212. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  1213. package/dist/esm/users/users.shared.resources-config.schemas.js +376 -141
  1214. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  1215. package/dist/esm/users/users.shared.schemas.d.ts +110 -108
  1216. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  1217. package/dist/esm/users/users.shared.schemas.js +215 -19
  1218. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  1219. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1220. package/package.json +54 -27
  1221. package/dist/esm/compliance/compliance-framework/compliance-frameworks.shared.schemas.d.ts +0 -37
  1222. package/dist/esm/compliance/compliance-framework/compliance-frameworks.shared.schemas.d.ts.map +0 -1
  1223. package/dist/esm/compliance/compliance-framework/compliance-frameworks.shared.schemas.js +0 -38
  1224. package/dist/esm/compliance/compliance-framework/compliance-frameworks.shared.schemas.js.map +0 -1
  1225. package/dist/esm/external-providers/feature-bindings-policy.shared.schemas.d.ts +0 -27
  1226. package/dist/esm/external-providers/feature-bindings-policy.shared.schemas.d.ts.map +0 -1
  1227. package/dist/esm/external-providers/feature-bindings-policy.shared.schemas.js +0 -35
  1228. package/dist/esm/external-providers/feature-bindings-policy.shared.schemas.js.map +0 -1
  1229. package/dist/esm/external-providers/feature-mapping.shared.schemas.d.ts +0 -80
  1230. package/dist/esm/external-providers/feature-mapping.shared.schemas.d.ts.map +0 -1
  1231. package/dist/esm/external-providers/feature-mapping.shared.schemas.js +0 -159
  1232. package/dist/esm/external-providers/feature-mapping.shared.schemas.js.map +0 -1
  1233. package/dist/esm/external-providers/wildo-features.shared.schemas.d.ts +0 -102
  1234. package/dist/esm/external-providers/wildo-features.shared.schemas.d.ts.map +0 -1
  1235. package/dist/esm/external-providers/wildo-features.shared.schemas.js +0 -124
  1236. package/dist/esm/external-providers/wildo-features.shared.schemas.js.map +0 -1
  1237. package/dist/esm/features/platform-capability-definitions.shared.d.ts +0 -50
  1238. package/dist/esm/features/platform-capability-definitions.shared.d.ts.map +0 -1
  1239. package/dist/esm/features/platform-capability-definitions.shared.js +0 -30
  1240. package/dist/esm/features/platform-capability-definitions.shared.js.map +0 -1
  1241. package/dist/esm/flows-actors/agents-context.shared.schemas.d.ts +0 -181
  1242. package/dist/esm/flows-actors/agents-context.shared.schemas.d.ts.map +0 -1
  1243. package/dist/esm/flows-actors/agents-context.shared.schemas.js +0 -116
  1244. package/dist/esm/flows-actors/agents-context.shared.schemas.js.map +0 -1
  1245. package/dist/esm/notifications/email/email-header-footer-template.shared.resources-config.schemas.d.ts +0 -39
  1246. package/dist/esm/notifications/email/email-header-footer-template.shared.resources-config.schemas.d.ts.map +0 -1
  1247. package/dist/esm/notifications/email/email-header-footer-template.shared.resources-config.schemas.js +0 -113
  1248. package/dist/esm/notifications/email/email-header-footer-template.shared.resources-config.schemas.js.map +0 -1
  1249. package/dist/esm/notifications/email/email-header-footer-template.shared.schemas.d.ts +0 -63
  1250. package/dist/esm/notifications/email/email-header-footer-template.shared.schemas.d.ts.map +0 -1
  1251. package/dist/esm/notifications/email/email-header-footer-template.shared.schemas.js +0 -110
  1252. package/dist/esm/notifications/email/email-header-footer-template.shared.schemas.js.map +0 -1
  1253. package/dist/esm/notifications/email/email-template.shared.resources-config.schemas.d.ts +0 -62
  1254. package/dist/esm/notifications/email/email-template.shared.resources-config.schemas.d.ts.map +0 -1
  1255. package/dist/esm/notifications/email/email-template.shared.resources-config.schemas.js +0 -112
  1256. package/dist/esm/notifications/email/email-template.shared.resources-config.schemas.js.map +0 -1
  1257. package/dist/esm/notifications/email/email-template.shared.schemas.d.ts +0 -162
  1258. package/dist/esm/notifications/email/email-template.shared.schemas.d.ts.map +0 -1
  1259. package/dist/esm/notifications/email/email-template.shared.schemas.js +0 -189
  1260. package/dist/esm/notifications/email/email-template.shared.schemas.js.map +0 -1
  1261. package/dist/esm/organizations/organization-member-invitations.shared.resources-config.schemas.d.ts +0 -37
  1262. package/dist/esm/organizations/organization-member-invitations.shared.resources-config.schemas.d.ts.map +0 -1
  1263. package/dist/esm/organizations/organization-member-invitations.shared.resources-config.schemas.js +0 -207
  1264. package/dist/esm/organizations/organization-member-invitations.shared.resources-config.schemas.js.map +0 -1
  1265. package/dist/esm/resources/testing/SchemaDecoratorTestUtils.d.ts +0 -91
  1266. package/dist/esm/resources/testing/SchemaDecoratorTestUtils.d.ts.map +0 -1
  1267. package/dist/esm/resources/testing/SchemaDecoratorTestUtils.js +0 -325
  1268. package/dist/esm/resources/testing/SchemaDecoratorTestUtils.js.map +0 -1
  1269. package/dist/esm/runtime/companion-artifact-placement.shared.definitions.d.ts.map +0 -1
  1270. package/dist/esm/runtime/companion-artifact-placement.shared.definitions.js.map +0 -1
  1271. package/dist/esm/security/authentications/policy/auth-policy.shared.resources-config.schemas.d.ts +0 -10
  1272. package/dist/esm/security/authentications/policy/auth-policy.shared.resources-config.schemas.d.ts.map +0 -1
  1273. package/dist/esm/security/authentications/policy/auth-policy.shared.resources-config.schemas.js +0 -52
  1274. package/dist/esm/security/authentications/policy/auth-policy.shared.resources-config.schemas.js.map +0 -1
  1275. package/dist/esm/security/authentications/policy/auth-policy.shared.schemas.d.ts +0 -52
  1276. package/dist/esm/security/authentications/policy/auth-policy.shared.schemas.d.ts.map +0 -1
  1277. package/dist/esm/security/authentications/policy/auth-policy.shared.schemas.js +0 -40
  1278. package/dist/esm/security/authentications/policy/auth-policy.shared.schemas.js.map +0 -1
  1279. package/dist/esm/testing/schema-decorator-utils.d.ts +0 -91
  1280. package/dist/esm/testing/schema-decorator-utils.d.ts.map +0 -1
  1281. package/dist/esm/testing/schema-decorator-utils.js +0 -325
  1282. package/dist/esm/testing/schema-decorator-utils.js.map +0 -1
@@ -5,26 +5,69 @@
5
5
  */
6
6
  import { z } from 'zod';
7
7
  import { EnumLikeType, EnumValues, PrimitiveZodType } from '@wildo-ai/zod-decorators';
8
- import { HttpMethod } from '../requests/http-requests.shared.js';
9
- import { Roles } from '../security/authorizations/roles.shared.schemas.js';
10
- import { TokenAuthenticationConfig, TokenGenerationConfig, TokenRevocationConfig } from '../security/authentications/consumable-token.shared.schemas.js';
11
- import { ResourceOperation_ServiceRuntimeMode, ResourceOperationVariantType, ResourceOperationRiskLevel, ResourcePrimaryScope, ResourceTranspositionPolicy, ResourceOperation_CustomServiceImplementationMode, ResourceRelationship, ResourceRelationshipAccessScopeStrategy } from './resources.shared.schemas.js';
12
- import { NotificationBadgeIdentifier, NotificationBadgeOperation } from '../notifications/notification-badges.schemas.js';
13
- import { M2MNotificationDefinition, UserNotificationDefinition } from '../notifications/notifications.shared.schemas.js';
14
- import { NotificationBadgeDefinition } from '../notifications/notification-badges.schemas.js';
15
- import { CoreResourceOperation, ResourceFieldIdentifier, ResourceType } from './resources.shared.core.definitions.js';
16
- import { LimitCountingConfig } from '../features/feature-definition.shared.schemas.js';
17
- import { MainSchemaInfer, SchemaArrayInfer } from './utils/schema-type-inference.utils.js';
8
+ import { ErasureRetentionMode, ResourceDataSubjectKind } from '../compliance/privacy/impersonalization.shared.schemas';
9
+ import type { DataPortabilityProvenance } from '../compliance/privacy/subject-export.shared.schemas';
10
+ import type { HttpApiResourceBinding } from '../http-api-binding/http-api-binding.shared.schemas';
11
+ import type { ExternalDataPipelineDeclaration } from '../external-data/external-data-pipeline.shared.schemas';
12
+ import { HttpMethod } from '../requests/http-requests.shared';
13
+ import { Roles } from '../security/authorizations/roles.shared.schemas';
14
+ import { TokenAuthenticationConfig, TokenGenerationConfig, TokenRevocationConfig } from '../security/authentications/consumable-token.shared.schemas';
15
+ import { ResourceOperation_ServiceRuntimeMode, ResourceOperationVariantType, ResourceOperationRiskLevel, ResourceOperationFrontendSurface, ResourcePrimaryScope, ResourceTranspositionPolicy, ResourceOperation_CustomServiceImplementationMode, ResourceRelationship, ResourceRelationshipAccessScopeStrategy, ManyToManyScopeJunctionMap, type ReferenceConstraints } from './resources.shared.schemas';
16
+ import { NotificationBadgeIdentifier, NotificationBadgeOperation } from '../notifications/notification-badges.schemas';
17
+ import { M2MNotificationDefinition, UserNotificationDefinition } from '../notifications/notifications.shared.schemas';
18
+ import { NotificationBadgeDefinition } from '../notifications/notification-badges.schemas';
19
+ import { CoreResourceOperation, ResourceFieldIdentifier, ResourceType } from './resources.shared.core.definitions';
20
+ import type { OrganizationUnitNarrowingDeclaration } from '../organizations/organization-unit-narrowing.shared';
21
+ import { LimitCountingConfig } from '../features/feature-definition.shared.schemas';
22
+ import { MainSchemaInfer, SchemaArrayInfer } from './utils/schema-type-inference.utils';
23
+ import type { RateLimitConfiguration } from '../requests/rate-limits.shared.schemas';
24
+ /**
25
+ * The pagination block a collection RESPONSE echoes back, bounded by the operation's ceiling.
26
+ *
27
+ * `limit` here reports the page size that was actually SERVED, so its bound has to be at least as
28
+ * permissive as the one the repository is allowed to serve. It was a hard-coded `.max(100)`, which
29
+ * made it the LAST of five separate pagination ceilings to ignore the operation's declaration — and
30
+ * the one that turned a legitimately-served 120-row page into a 500 (`too_big` at
31
+ * `pagination.limit`) after the request and data-array bounds had already been fixed.
32
+ *
33
+ * The five, for anyone changing one of them: the REQUEST bound
34
+ * ({@link createPaginationRequestSchema}), the repository's `_doList` and `_doSearch` maxima, the
35
+ * response DATA array bound, and this. They are one invariant — "the operation's declared ceiling
36
+ * governs" — and a fix applied to fewer than all of them just moves which layer says no.
37
+ */
38
+ export declare function createPaginationResponseMetadataSchema(maxLimit?: number): z.ZodObject<{
39
+ page: z.ZodDefault<z.ZodNumber>;
40
+ limit: z.ZodDefault<z.ZodNumber>;
41
+ total: z.ZodNumber;
42
+ totalPages: z.ZodNumber;
43
+ }>;
44
+ /** The default-bounded response metadata. Prefer {@link createPaginationResponseMetadataSchema} where the ceiling is known. */
18
45
  export declare const Resouces_PaginationResponseMetadataSchema: z.ZodObject<{
19
46
  page: z.ZodDefault<z.ZodNumber>;
20
47
  limit: z.ZodDefault<z.ZodNumber>;
21
48
  total: z.ZodNumber;
22
49
  totalPages: z.ZodNumber;
23
- }, z.core.$strip, core.$ZodObjectExtra>;
50
+ }, z.core.$strip>;
51
+ /**
52
+ * The pagination block a collection request may carry, bounded by the operation's declared ceiling.
53
+ *
54
+ * The bound used to be a hard-coded `.max(100)` on a single shared constant, which made it the
55
+ * STRICTEST of the three pagination ceilings in the framework — the repository serves up to the
56
+ * operation's declared limit and the response DTO accepts up to the same, but a request asking for
57
+ * more than 100 was rejected before either ran. An operation declaring 200 therefore advertised a
58
+ * limit it answered 400 to.
59
+ *
60
+ * `maxLimit` defaults to 100 so every existing caller keeps its current contract.
61
+ */
62
+ export declare function createPaginationRequestSchema(maxLimit?: number): z.ZodObject<{
63
+ page: z.ZodDefault<z.ZodNumber>;
64
+ limit: z.ZodDefault<z.ZodNumber>;
65
+ }>;
66
+ /** The default-bounded pagination block. Prefer {@link createPaginationRequestSchema} where the operation's ceiling is known. */
24
67
  export declare const Resouces_PaginationRequestSchema: z.ZodObject<{
25
68
  page: z.ZodDefault<z.ZodNumber>;
26
69
  limit: z.ZodDefault<z.ZodNumber>;
27
- }, z.core.$strip, core.$ZodObjectExtra>;
70
+ }, z.core.$strip>;
28
71
  export type ResourcePaginatedResponseResultSchema<T extends z.ZodTypeAny> = {
29
72
  data: SchemaArrayInfer<T>;
30
73
  pagination: z.infer<typeof Resouces_PaginationResponseMetadataSchema>;
@@ -36,12 +79,16 @@ export type Resources_PaginatedResult<T> = {
36
79
  pagination: Resources_PaginationMetadata;
37
80
  };
38
81
  /**
82
+ * @wildo_source:part:start saas.models.data-mode-read-list facet:layer:shared facet:family:resource-config
83
+ *
39
84
  * Data mode for read/list operations — controls API data shape.
40
85
  * SUMMARY = backend returns only `isSummaryField()` fields and populates `isSummaryField({ populate: true })` FKs.
41
86
  *
42
87
  * Note: "summary" here is about *data shape*, not FK rendering (see ForeignKeyDisplayMode.SUMMARY)
43
88
  * or operation bar density (see ResourceOperationDisplayMode.SUMMARY).
44
89
  * Values are lowercase strings matching URL/serialization format directly.
90
+ *
91
+ * @remarks Import from `@wildo-ai/saas-models`. Used by read/list/search configs and DTO shaping.
45
92
  */
46
93
  export declare enum DataMode {
47
94
  /** All stored fields, no population */
@@ -52,20 +99,277 @@ export declare enum DataMode {
52
99
  CONTEXT = "context"
53
100
  }
54
101
  /**
55
- * Persistence adapter type for database selection.
102
+ * Canonical persistence adapters supported by the resource system.
56
103
  *
57
- * Determines which database backend is used for a resource:
58
- * - `mongodb`: MongoDB with Mongoose ORM
59
- * - `postgresql`: PostgreSQL (SQL adapter)
104
+ * Determines which backing store serves a resource's rows:
105
+ * - `mongodb`: MongoDB with Mongoose ORM (platform-provisioned)
106
+ * - `postgresql`: PostgreSQL SQL adapter (platform-provisioned)
107
+ * - `http-api`: a system reached over an authenticated HTTP API (OData or REST/JSON dialect) —
108
+ * the platform provisions NOTHING for it; rows are queried on demand
60
109
  *
61
110
  * If not specified at resource level, uses `appConfig.database.defaultAdapter`.
111
+ */
112
+ /**
113
+ * What an INTROSPECTION-backed resource projects.
114
+ *
115
+ * Declared BY THE AUTHOR beside the resource, exactly as `httpApiBinding` is, and for the same
116
+ * reason: the adapter answers "how rows are reached", and everything specific to THIS resource's
117
+ * reach is a typed declaration rather than runtime inference.
118
+ *
119
+ * Keeping it here rather than in a companion-side lookup table matters. A table keyed by resource
120
+ * type would be a second enumeration of a population the resource configs already define — the
121
+ * shape that silently drifts when one side gains an entry.
122
+ */
123
+ export declare enum IntrospectionTenancyStance {
124
+ /**
125
+ * The rows describe the APPLICATION'S OWN STRUCTURE — its modules, resource specifications,
126
+ * design system, compliance declarations — and carry no tenant dimension, so there is nothing for
127
+ * a contextual scope predicate to filter on.
128
+ *
129
+ * This is the only stance implemented, and it is declared rather than inferred for the reason
130
+ * `HttpApiTenancyStance` gives for its own: an unstated stance is indistinguishable from an
131
+ * overlooked one. Every other repository enforces scoping ITSELF — Mongo and PostgreSQL through
132
+ * `buildContextualFilter`, HTTP_API through its tenancy stance — so a read-through adapter that
133
+ * simply returned whatever its source produced would be the one backing kind with no scoping
134
+ * story, and nobody would be asked to notice.
135
+ */
136
+ APPLICATION_STRUCTURE = "application-structure",
137
+ /**
138
+ * The rows carry a tenant dimension and a scope predicate must be pushed into the source.
139
+ *
140
+ * REFUSED AT REGISTRATION today: no introspection behavior takes a scope argument, so the engine
141
+ * has nothing to push down. Declared as a member rather than omitted so the refusal is explicit
142
+ * and a future scoped behavior is a deliberate design step — the alternative is that the first
143
+ * author needing it discovers the gap by shipping unscoped rows.
144
+ */
145
+ SCOPE_FILTER_PUSHDOWN = "scope-filter-pushdown"
146
+ }
147
+ export interface IntrospectionResourceBinding {
148
+ /**
149
+ * The companion introspection behavior whose output becomes this resource's rows.
150
+ *
151
+ * A plain string on purpose: the behavior catalog lives in the companion (23 behaviors as of
152
+ * 2026-08-29) and the engine must not depend on it. An unknown id is refused by the companion at
153
+ * read time, naming the id and the supported set.
154
+ */
155
+ readonly behavior: string;
156
+ /**
157
+ * Path into the behavior's result that holds the rows, dot-separated. Omitted means the result
158
+ * itself is the row collection.
159
+ *
160
+ * Behaviors answer their own natural shape — `{ frontendChartRegistrationRefs: [...] }` — and
161
+ * teaching each one to answer a uniform envelope would change 23 working behaviors to suit a
162
+ * consumer that arrived later.
163
+ */
164
+ readonly rowsPath?: string;
165
+ /**
166
+ * REQUIRED. Why these rows need no contextual scope predicate, or that they do.
167
+ *
168
+ * Not optional and not defaulted: a default would make "nobody thought about tenancy" and
169
+ * "tenancy does not apply here" the same declaration.
170
+ */
171
+ readonly tenancy: IntrospectionTenancyStance;
172
+ /**
173
+ * Fields whose values COMPOSE each row's primary key, in order, when the behavior's rows carry no
174
+ * identifier of their own.
175
+ *
176
+ * Most introspection behaviors answer structural projections rather than records: a module row
177
+ * carries `moduleId` and needs nothing here, while a relationship row carries only the two
178
+ * resource types it joins. Without a key such a resource can be LISTed and never READ, because
179
+ * there is no value to address a row by.
180
+ *
181
+ * Composition is DECLARED rather than derived because only the author knows which fields are
182
+ * jointly unique for a given behavior — and being wrong is not hypothetical. `resourceType1` +
183
+ * `resourceType2` is unique across all 16 relationships in the dogfood application and is still
184
+ * unsafe in general, since the framework permits several edges between the same pair (a junction
185
+ * with two roles, a self-relationship). So the source FAILS LOUDLY when two rows compose the same
186
+ * key rather than serving both under one id, which would make READ return an arbitrary one of
187
+ * them and give no sign anything was wrong.
188
+ *
189
+ * The composed value is written to the resource's own `resourceFieldIdentifier`, which is the one
190
+ * key name resolvable from the registry without introspecting the schema's decorators. A resource
191
+ * declaring `identityFields` must therefore name that field as its primary key.
192
+ *
193
+ * The values are joined verbatim, so the key stays READABLE — `workspace__users__createdByUserId`
194
+ * rather than an opaque hash. That is possible because an INTROSPECTION-backed resource resolves
195
+ * to `ResourceIdFormat.INTROSPECTION_SYNTHESIZED`, which admits a URL-safe charset instead of the
196
+ * ObjectId-or-UUID rule platform rows follow.
197
+ *
198
+ * It was briefly a deterministic UUIDv5, before that format existed. Hashing worked and was the
199
+ * wrong trade: it made every id opaque, and it disguised the real property — a DERIVED id is only
200
+ * as stable as the fields it is derived from, and hiding that behind a hash removes the reader's
201
+ * ability to notice when a row's identity moves.
202
+ *
203
+ * Each value must be URL-safe (`[a-zA-Z0-9_-]`) and the whole key at most 255 characters; the
204
+ * source refuses per row rather than emitting a key that lists and cannot be read.
205
+ *
206
+ * Omit when the behavior's rows already carry an identifier of their own.
207
+ */
208
+ readonly identityFields?: readonly string[];
209
+ }
210
+ export declare enum PersistenceAdapter {
211
+ MONGODB = "mongodb",
212
+ POSTGRESQL = "postgresql",
213
+ /**
214
+ * Rows are DERIVED on demand by asking the running dev companion to introspect the application —
215
+ * its resource registry, specifications, design system, compliance facts, assertions, market and
216
+ * persona context. Nothing is stored: every read recomputes.
217
+ *
218
+ * ## Why this is an adapter and not a service call
219
+ *
220
+ * The companion already computes all of it — 23 named introspection behaviors — and today each is
221
+ * reachable only through a bespoke route. Making it an adapter is what turns those behaviors into
222
+ * ordinary RESOURCES: list, read, filter, search, labels, navigation, all generated, with no
223
+ * per-behavior UI. That is the same argument `HTTP_API` settled on 2026-08-26 — the adapter answers
224
+ * "how rows are reached", and the mechanism behind it is a binding an author declares.
225
+ *
226
+ * Distinct from `HTTP_API`, deliberately, and not merely because the transport differs. Retrieval
227
+ * is a SUBPROCESS that imports the target application's built modules; it costs seconds rather than
228
+ * milliseconds, it requires that application's `dist` to exist, and its failure mode is a behavior
229
+ * throwing rather than a row being absent. Collapsing the two would give one declaration whose
230
+ * discriminator chooses between an HTTP call and a subprocess — two adapters wearing one name.
231
+ *
232
+ * ## What every adapter decision site must honor
233
+ *
234
+ * - **READ-ONLY, absolutely.** There is no writable target: a row is a projection of the
235
+ * application's own source. Every write method refuses, as `HTTP_API`'s twelve do.
236
+ * - **No provisioning, migration or schema surface.** Nothing is stored, so there is nothing to
237
+ * create, migrate or verify — the platform must never believe it owns a store here.
238
+ * - **Never a legal application-wide DEFAULT adapter.** It is a per-resource declaration only;
239
+ * an application whose default was introspection could persist nothing at all.
240
+ * - **It must DEGRADE, never fail closed at boot.** The companion is the only thing that can run
241
+ * an introspection behavior, so a boot path that refuses on an introspection failure would need
242
+ * the companion to fix the companion — see `continuity-drift-and-cas-basis.md` Rule 3.
243
+ */
244
+ INTROSPECTION = "introspection",
245
+ /**
246
+ * Rows live in a system reached over an authenticated HTTP API and are queried on demand
247
+ * (read-through). Decided 2026-08-26 (ETL workstream, D1): this IS a persistence-adapter answer
248
+ * — "how rows are reached" — not a separate axis; the dialect (OData vs REST/JSON-RPC) and every
249
+ * other binding property live in the REQUIRED companion declaration
250
+ * (`HttpApiResourceBindingSchema`, published by `@wildo-ai/saas-models/external-data`).
251
+ *
252
+ * ## Why that companion lives in a SHARED package at all (asked 2026-08-29, measured not argued)
253
+ *
254
+ * Only the backend has a runtime for it — 19 references there, none in any frontend package — so
255
+ * "surely this is backend-only" is the natural reading. It is wrong, for one decisive reason: an
256
+ * application author writes the binding in `*.resources-config.ts`, which lives in the app's
257
+ * `shared-lib`, and that package depends on `@wildo-ai/saas-models` and deliberately NOT on
258
+ * `@wildo-ai/saas-backend-lib` (the frontend imports `shared-lib`, so a backend dependency there
259
+ * would pull the backend graph browser-ward — the opposite of the isolation wanted). Moving the
260
+ * declaration to the backend would leave an author unable to type their own declaration.
261
+ *
262
+ * Nothing in that companion is runtime: dialects, tenancy, erasure, key fields, remote-call
263
+ * semantics are all typed by a human. The runtime that consumes them — read client, extraction
264
+ * source, transform, run service, batch — is already backend-only. So the tiers are already
265
+ * split where they should be; what was owed was SURFACE hygiene, which is why the companion is
266
+ * published by a subpath instead of the root barrel rather than moved.
267
+ *
268
+ * This asymmetry with MONGODB / POSTGRESQL is therefore principled, not accidental: those need
269
+ * no AUTHORED companion at all (their detail is infra config plus a runtime planner), while
270
+ * HTTP_API is the one adapter whose detail an app developer writes.
271
+ *
272
+ * Consequences every adapter decision site must honor explicitly (compile-forced via
273
+ * `PersistenceAdapterCases`):
274
+ * - provisioning/migration/schema surfaces have NOTHING to do — the platform does not own the
275
+ * store and must never mutate its schema;
276
+ * - it is never a legal application-wide DEFAULT adapter — only a per-resource declaration
277
+ * accompanied by its binding;
278
+ * - until the external repository ships, `createRepository()` refuses it loudly.
279
+ */
280
+ HTTP_API = "http-api"
281
+ }
282
+ /**
283
+ * String-value form accepted by authored resource configuration.
62
284
  *
285
+ * This remains a string union so declarative configuration may use either the
286
+ * enum members or their serialized values, while deriving the vocabulary from
287
+ * the single canonical enum above.
63
288
  */
64
- export type PersistenceAdapterType = 'mongodb' | 'postgresql';
289
+ export type PersistenceAdapterType = `${PersistenceAdapter}`;
65
290
  /**
66
- * Default persistence adapter when not specified
291
+ * Runtime guard for persistence-adapter values entering through erased,
292
+ * serialized, or otherwise untyped configuration boundaries.
293
+ *
294
+ * Keeping this beside the canonical enum ensures future adapter additions are
295
+ * recognized by validation without duplicating a second vocabulary.
67
296
  */
68
- export declare const DEFAULT_PERSISTENCE_ADAPTER: PersistenceAdapterType;
297
+ export declare function isPersistenceAdapter(value: unknown): value is PersistenceAdapterType;
298
+ /**
299
+ * Default persistence adapter when not specified.
300
+ *
301
+ * Typed as the ENUM member (not the string-union `PersistenceAdapterType`) so it satisfies
302
+ * enum-typed configuration fields directly; enum member types are assignable to the string
303
+ * union, so every union-typed consumer is unaffected.
304
+ */
305
+ export declare const DEFAULT_PERSISTENCE_ADAPTER: PersistenceAdapter;
306
+ /**
307
+ * A resource's declared relationship to CROSS-ADAPTER ATOMIC WRITE BOUNDARIES.
308
+ *
309
+ * **Why this exists.** An application is wholly one persistence adapter by default, and the
310
+ * resources registry REFUSES a per-resource `persistenceAdapter` that disagrees with
311
+ * `database.defaultAdapter`. That refusal protects exactly one property: a mixed application
312
+ * cannot commit two resources in one native transaction, so every cross-resource boundary
313
+ * silently degrades from atomic to at-least-once.
314
+ *
315
+ * The refusal is right as a DEFAULT and wrong as an absolute — some resources provably never
316
+ * participate in such a boundary, and for those the blanket refusal forbids a legitimate,
317
+ * safe deployment (a retrieval corpus whose vector tier only PostgreSQL can serve, say) with
318
+ * no way past it. Per `.claude/rules/design-philosophy.md`, a construct that refuses must ship
319
+ * the door in the same change: this enum IS that door. Declaring a member is a positive claim
320
+ * about the resource's write topology, made by its author, recorded in the config, and logged
321
+ * at registration — never an ambient tolerance and never a flag that merely silences an error.
322
+ *
323
+ * **This declaration is a claim, not an exemption.** It does not weaken any runtime guarantee:
324
+ * `ResourcePersistenceUnitOfWorkBackendService.assessCompatibility` still classifies any real
325
+ * boundary whose ATOMIC participants resolve to more than one adapter as
326
+ * `MIXED_PERSISTENCE_ADAPTERS`, and `executeInUnitOfWork` still THROWS on it. So a resource
327
+ * that declares a member here and then IS reached by a cross-adapter atomic boundary fails
328
+ * loudly at that boundary, exactly as it would have without the declaration. What the
329
+ * declaration buys is the right to boot; what it can never buy is a silent degradation.
330
+ *
331
+ * assurance-control: WILDO.DATA.TRANSACTIONAL_INTEGRITY — the declaration a resource must make
332
+ * before it may sit on a non-default persistence adapter.
333
+ */
334
+ export declare enum ResourcePersistenceAdapterIsolation {
335
+ /**
336
+ * This resource participates in NO cross-adapter atomic write boundary.
337
+ *
338
+ * The author asserts that no operation commits this resource and a resource on another
339
+ * adapter inside one native transaction — neither as the subject of a
340
+ * `ResourcePersistenceUnitOfWork` boundary nor as a participant in someone else's.
341
+ *
342
+ * Legitimate when the resource is a self-contained store whose writes stand alone: a
343
+ * retrieval corpus, an append-only analytical sink, a projection rebuilt from its source
344
+ * rather than written beside it. It is NOT legitimate merely because no such boundary
345
+ * exists *today* — the claim is about the resource's design, and a later operation that
346
+ * makes it false must change the declaration rather than discover the refusal at runtime.
347
+ */
348
+ NO_CROSS_ADAPTER_TRANSACTION = "NO_CROSS_ADAPTER_TRANSACTION"
349
+ }
350
+ /**
351
+ * String-value form accepted by authored resource configuration, mirroring the
352
+ * {@link PersistenceAdapterType} convention so declarative config may use either the enum
353
+ * member or its serialized value.
354
+ *
355
+ * **Deliberately one member.** A second — "participates only as a COMPENSATABLE participant",
356
+ * mirroring the persistence unit of work's own
357
+ * `ResourcePersistenceParticipantCoupling.COMPENSATABLE` — is describable, but no resource is
358
+ * asking for it, and an admission path with no caller is an admission path with no coverage.
359
+ * Add it when a real resource needs it, with the compensating path named at its call site.
360
+ */
361
+ export type ResourcePersistenceAdapterIsolationType = `${ResourcePersistenceAdapterIsolation}`;
362
+ /**
363
+ * Runtime guard for isolation declarations entering through erased, serialized, or otherwise
364
+ * untyped configuration boundaries — which is exactly how the resources registry sees them, since
365
+ * it reads heterogeneous resource configurations through an erased index.
366
+ *
367
+ * Deliberately a MEMBERSHIP test rather than a presence test: the registry admits a non-default
368
+ * adapter only on a recognised member, so a typo, a stale value from an older vocabulary, or a
369
+ * truthy non-string cannot open the door. Fail-closed is the point — an unrecognised declaration
370
+ * is treated as no declaration at all, and the application is refused with the standard message.
371
+ */
372
+ export declare function isResourcePersistenceAdapterIsolation(value: unknown): value is ResourcePersistenceAdapterIsolationType;
69
373
  /**
70
374
  * Variant key constants for operation variants.
71
375
  * Values are identical to DataMode.SUMMARY and DataMode.CONTEXT.
@@ -111,6 +415,7 @@ export interface ListOperationOptions {
111
415
  */
112
416
  pagination?: Resources_PaginationRequest;
113
417
  }
418
+ /** @wildo_source:part:end saas.models.data-mode-read-list */
114
419
  /**
115
420
  * Configuration for auto-generated operation variants.
116
421
  * Controls which READ/LIST variants (summary, context) are auto-generated.
@@ -136,61 +441,61 @@ export declare enum SortOrder {
136
441
  export declare const Resouces_Filter_DateRangeSchema: z.ZodObject<{
137
442
  startDate: z.ZodOptional<z.ZodDate>;
138
443
  endDate: z.ZodOptional<z.ZodDate>;
139
- }, z.core.$strip, core.$ZodObjectExtra>;
444
+ }, z.core.$strip>;
140
445
  export declare const Resouces_Filter_BaseSchema: z.ZodObject<{
141
446
  searchRequest: z.ZodOptional<z.ZodString>;
142
447
  createdAt: z.ZodOptional<z.ZodObject<{
143
448
  startDate: z.ZodOptional<z.ZodDate>;
144
449
  endDate: z.ZodOptional<z.ZodDate>;
145
- }, z.core.$strip, core.$ZodObjectExtra>>;
450
+ }, z.core.$strip>>;
146
451
  updatedAt: z.ZodOptional<z.ZodObject<{
147
452
  startDate: z.ZodOptional<z.ZodDate>;
148
453
  endDate: z.ZodOptional<z.ZodDate>;
149
- }, z.core.$strip, core.$ZodObjectExtra>>;
150
- }, z.core.$strip, core.$ZodObjectExtra>;
454
+ }, z.core.$strip>>;
455
+ }, z.core.$strip>;
151
456
  export declare const Resouces_FilterRequestSchema: z.ZodObject<{
152
457
  searchRequest: z.ZodOptional<z.ZodString>;
153
458
  createdAt: z.ZodOptional<z.ZodObject<{
154
459
  startDate: z.ZodOptional<z.ZodDate>;
155
460
  endDate: z.ZodOptional<z.ZodDate>;
156
- }, z.core.$strip, core.$ZodObjectExtra>>;
461
+ }, z.core.$strip>>;
157
462
  updatedAt: z.ZodOptional<z.ZodObject<{
158
463
  startDate: z.ZodOptional<z.ZodDate>;
159
464
  endDate: z.ZodOptional<z.ZodDate>;
160
- }, z.core.$strip, core.$ZodObjectExtra>>;
161
- }, z.core.$catchall<z.ZodOptional<z.ZodAny>>, core.$ZodObjectExtra>;
465
+ }, z.core.$strip>>;
466
+ }, z.core.$catchall<z.ZodOptional<z.ZodAny>>>;
162
467
  export declare const Resouces_SortingFieldSchema: z.ZodObject<{
163
468
  field: z.ZodString;
164
469
  order: z.ZodDefault<z.ZodEnum<typeof SortOrder>>;
165
470
  priority: z.ZodDefault<z.ZodNumber>;
166
- }, z.core.$strip, core.$ZodObjectExtra>;
471
+ }, z.core.$strip>;
167
472
  export declare const Resouces_SortingRequestSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{
168
473
  field: z.ZodString;
169
474
  order: z.ZodDefault<z.ZodEnum<typeof SortOrder>>;
170
475
  priority: z.ZodDefault<z.ZodNumber>;
171
- }, z.core.$strip, core.$ZodObjectExtra>>>>;
476
+ }, z.core.$strip>>>>;
172
477
  export declare const Resouces_SearchQueryRequestSchema: z.ZodObject<{
173
478
  pagination: z.ZodOptional<z.ZodObject<{
174
479
  page: z.ZodDefault<z.ZodNumber>;
175
480
  limit: z.ZodDefault<z.ZodNumber>;
176
- }, z.core.$strip, core.$ZodObjectExtra>>;
481
+ }, z.core.$strip>>;
177
482
  sorting: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{
178
483
  field: z.ZodString;
179
484
  order: z.ZodDefault<z.ZodEnum<typeof SortOrder>>;
180
485
  priority: z.ZodDefault<z.ZodNumber>;
181
- }, z.core.$strip, core.$ZodObjectExtra>>>>>;
486
+ }, z.core.$strip>>>>>;
182
487
  filters: z.ZodOptional<z.ZodObject<{
183
488
  searchRequest: z.ZodOptional<z.ZodString>;
184
489
  createdAt: z.ZodOptional<z.ZodObject<{
185
490
  startDate: z.ZodOptional<z.ZodDate>;
186
491
  endDate: z.ZodOptional<z.ZodDate>;
187
- }, z.core.$strip, core.$ZodObjectExtra>>;
492
+ }, z.core.$strip>>;
188
493
  updatedAt: z.ZodOptional<z.ZodObject<{
189
494
  startDate: z.ZodOptional<z.ZodDate>;
190
495
  endDate: z.ZodOptional<z.ZodDate>;
191
- }, z.core.$strip, core.$ZodObjectExtra>>;
192
- }, z.core.$catchall<z.ZodOptional<z.ZodAny>>, core.$ZodObjectExtra>>;
193
- }, z.core.$strip, core.$ZodObjectExtra>;
496
+ }, z.core.$strip>>;
497
+ }, z.core.$catchall<z.ZodOptional<z.ZodAny>>>>;
498
+ }, z.core.$strip>;
194
499
  export type ResourceSearchQueryRequestResult<TFilterFields extends Record<string, PrimitiveZodType | ((filterRef: PrimitiveZodType) => string)> | undefined, TSortFields extends readonly string[] | undefined> = z.ZodObject<{
195
500
  pagination: z.ZodOptional<typeof Resouces_PaginationRequestSchema>;
196
501
  sorting: z.ZodOptional<typeof Resouces_SortingRequestSchema>;
@@ -199,7 +504,16 @@ export type ResourceSearchQueryRequestResult<TFilterFields extends Record<string
199
504
  export type Ressources_RequestSortPriority<T extends EnumLikeType> = {
200
505
  [K in keyof T as T[K]]: number;
201
506
  };
202
- type UserNotificationDefinitionWithoutPrimaryScopeAndIdentifier = Omit<UserNotificationDefinition, 'primaryScope' | 'identifier'>;
507
+ /**
508
+ * Distributive omit. `UserNotificationDefinition` is a discriminated union (by
509
+ * `channel`); a bare `Omit<Union, K>` collapses to only the COMMON keys and silently
510
+ * drops every channel-specific field (the EMAIL variant's `recipientEmailField`, the
511
+ * FRONT_END_SUCCESS variant's `celebration`/`nextStep`). Routing through a naked type
512
+ * parameter distributes the omit over each union member so those per-channel fields
513
+ * survive in the config-authoring type.
514
+ */
515
+ type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
516
+ type UserNotificationDefinitionWithoutPrimaryScopeAndIdentifier = DistributiveOmit<UserNotificationDefinition, 'primaryScope' | 'identifier'>;
203
517
  type M2MNotificationDefinitionWithoutIdentifier = Omit<M2MNotificationDefinition, 'identifier'>;
204
518
  export type CollectionView_SearchOptions = {
205
519
  caseSensitive?: boolean;
@@ -209,31 +523,332 @@ export type CollectionView_SearchOptions = {
209
523
  * Shared collection-view fields for operations that render a collection of items (LIST, SEARCH).
210
524
  * These fields are integrated directly into the variant builder type — not nested.
211
525
  * The factory flattens them onto the final operation object.
526
+ *
527
+ * NOTE: cards-vs-table presentation (`displayMode` / `userSwitchableDisplayMode`)
528
+ * is intentionally NOT here. It is a pure FRONTEND concern with no backend meaning,
529
+ * so it is authored on the operation's `operationFrontendConfig.collectionDisplayConfig`
530
+ * in the resource UI behavior layer (`CollectionDisplayMode` in
531
+ * `@wildo-ai/saas-frontend-lib`). The fields that remain here are the ones the
532
+ * BACKEND also reads: `pageSize` (pagination), `filterFields` (filtering), and
533
+ * `sortFields` (sort validation).
534
+ */
535
+ /**
536
+ * The wire format a collection export is rendered into.
537
+ *
538
+ * ## Why this is NOT `SubjectExportFormat`
539
+ *
540
+ * That enum has the same two members and answers a different question. Its `JSON` member is
541
+ * documented as "the format an Art. 20 request should receive by default", and its `CSV` member as
542
+ * "Never the default for portability" — statements about a data subject's PORTABILITY RIGHT. A
543
+ * listing export owes no such duty: it is an operator exporting rows they can already read, and CSV
544
+ * is a perfectly good default for it.
545
+ *
546
+ * In this codebase an enum member is where the per-member "why" lives (that is the whole reason an
547
+ * anonymous string union is refused), so sharing the enum would attach Art. 20 reasoning to a
548
+ * toolbar button, where every word of it is false. It breaks the other way too: adding `XLSX` for
549
+ * listings would land it in the subject-export vocabulary, where someone then has to reason about
550
+ * whether a spreadsheet satisfies Art. 20.
551
+ *
552
+ * What IS shared is the MECHANISM — RFC 4180 cell escaping and column resolution — which is format
553
+ * mechanics with no legal content. See `renderCollectionExportCsv`.
212
554
  */
555
+ export declare enum ResourceCollectionExportFormat {
556
+ /**
557
+ * Tabular, one file. Nested values are JSON-encoded into their cell and type information is lost,
558
+ * which is the accepted trade for a file every spreadsheet opens. The usual default for a listing.
559
+ */
560
+ CSV = "csv",
561
+ /**
562
+ * The rows exactly as the listing's response DTO carries them — nested objects, arrays, nulls and
563
+ * types intact. Choose this when the export feeds another system rather than a human.
564
+ */
565
+ JSON = "json"
566
+ }
567
+ /**
568
+ * WHICH rows a collection export contains.
569
+ *
570
+ * The axis is ROWS, deliberately — not columns. An export carries the same fields the listing's read
571
+ * DTO carries, which is already the caller's permitted projection; there is no separate
572
+ * "visible columns" notion to select from.
573
+ */
574
+ export declare enum ResourceCollectionExportRowScope {
575
+ /**
576
+ * Exactly the rows the caller's request would have returned — same page, same filters, same sort.
577
+ * One service call, and what the user sees is what they get.
578
+ */
579
+ VISIBLE_PAGE = "visible_page",
580
+ /**
581
+ * Every row the caller's filters match, with the page bound removed.
582
+ *
583
+ * Implemented by ITERATING pages at the operation's own declared ceiling, never by asking for one
584
+ * huge page: the page bound is enforced at eight independent sites (see `maxPageSize` below) and
585
+ * raising it for an export would move the effective ceiling for the whole operation.
586
+ */
587
+ FULL_RESULT_SET = "full_result_set"
588
+ }
589
+ /**
590
+ * Opt a LIST/SEARCH operation into CSV/JSON export of its own result set.
591
+ *
592
+ * ## What declaring this does
593
+ *
594
+ * The factory derives a companion operation — one `GENERATED_COLLECTION_EXPORT` per exporting
595
+ * LIST/SEARCH operation — that runs **the same service call as the listing** and renders the result.
596
+ * That is the load-bearing property: tenant isolation, role ACL, contextual filters, retention
597
+ * row-hide, backend-only/secret field stripping, relationship population and sort validation all hold
598
+ * by construction rather than through a second implementation kept in step by hand. (`_doList` and
599
+ * `buildContextualFilter` each exist twice — once per persistence adapter — and have diverged before;
600
+ * an export with its own query would be a third place to get the tenant boundary right.)
601
+ *
602
+ * The derived operation copies the source operation's `roles` and CANNOT widen them: an export is
603
+ * exactly as reachable as the listing it exports, never more.
604
+ *
605
+ * ## What it deliberately does NOT inherit
606
+ *
607
+ * `mcp` / agent exposure. A LIST curated onto an MCP server is a PAGINATED read tool; an export tool
608
+ * returns the whole table in one call, which is a different risk. Inheriting the flag would widen an
609
+ * existing application's agent surface the moment it declared an export, so the derived operation is
610
+ * never agent-exposed and an app that wants one declares it deliberately.
611
+ *
612
+ * ## Ceilings
613
+ *
614
+ * `maximumExportedRows` is OPTIONAL and has NO default — an operation that declares none exports
615
+ * whatever its filters match. When declared and exceeded, the export FAILS with an error naming the
616
+ * matched count and the ceiling; it never truncates. A short file is indistinguishable from a
617
+ * complete one once it is open in a spreadsheet, and a silent partial export is the worse outcome.
618
+ */
619
+ /**
620
+ * What a collection-export route answers with, described for specs and OpenAPI.
621
+ *
622
+ * ⚠️ The BODY is the exported FILE — a CSV or JSON byte stream, not this object. The controller owns
623
+ * the response for this operation family and streams it, so nothing ever serialises this schema.
624
+ * What it documents is the METADATA CONTRACT, which rides in response headers beside the bytes:
625
+ * `Content-Type`, `Content-Disposition` (carrying the filename) and `X-Wildo-Export-Row-Count`.
626
+ *
627
+ * Modelling the response as "a JSON envelope containing the file" was rejected: a large CSV inside a
628
+ * JSON string doubles the payload, defeats streaming, and gives the browser nothing to download.
629
+ */
630
+ export declare const ResourceCollectionExportResponseSchema: z.ZodObject<{
631
+ filename: z.ZodString;
632
+ contentType: z.ZodString;
633
+ rowCount: z.ZodNumber;
634
+ }, z.core.$strip>;
635
+ export type ResourceCollectionExportConfig = {
636
+ /** Offered formats. Non-empty — an empty array is a startup error, never a silent "all". */
637
+ formats: readonly ResourceCollectionExportFormat[];
638
+ /** Offered row scopes. Non-empty, same rule. */
639
+ rowScopes: readonly ResourceCollectionExportRowScope[];
640
+ /**
641
+ * Refuse (do not truncate) a `FULL_RESULT_SET` export whose match count exceeds this.
642
+ * Omit for no ceiling.
643
+ */
644
+ maximumExportedRows?: number;
645
+ };
213
646
  export type CollectionViewFields_Shared = {
214
647
  pageSize?: number;
215
- displayMode?: 'list' | 'table' | 'cards';
216
648
  filterFields?: Record<string, PrimitiveZodType | ((filterRef: PrimitiveZodType) => string)>;
217
649
  sortFields?: readonly string[];
650
+ /**
651
+ * Opt this LIST/SEARCH operation into CSV/JSON export — see {@link ResourceCollectionExportConfig}.
652
+ * It belongs in this bucket because it is read by the BACKEND, like its three neighbours.
653
+ */
654
+ collectionExport?: ResourceCollectionExportConfig;
218
655
  };
219
656
  /** LIST-specific collection-view fields (LIST and custom ops with resourceOperationLike: LIST) */
220
657
  export type CollectionViewFields_List = CollectionViewFields_Shared & {
221
658
  searchEnabled?: boolean;
222
659
  filtersEnabled?: boolean;
660
+ /**
661
+ * Maximum page size this operation will accept, serve and return.
662
+ *
663
+ * ## Read this before changing any pagination bound
664
+ *
665
+ * ONE declaration, enforced at EIGHT independent sites. That is not an accident of style — each
666
+ * layer validates the page from its own side, and a bound tightened at any one of them silently
667
+ * becomes the effective ceiling for the whole operation. Getting fewer than all eight to agree
668
+ * does not fail loudly; it just moves which layer says no:
669
+ *
670
+ * | # | Where | What it bounds |
671
+ * |---|---|---|
672
+ * | 1 | `createPaginationRequestSchema` | the `pagination.limit` a caller may ASK for (400 if exceeded) |
673
+ * | 2 | Mongo `_doList` | the rows the query is allowed to fetch |
674
+ * | 3 | PostgreSQL `_doList` | same, and it must MATCH #2 — the adapters diverged here once |
675
+ * | 4 | Mongo/PostgreSQL `_doSearch` | same for the SEARCH verb |
676
+ * | 5 | response DTO `data` array `.max()` | the rows the response schema will serialise (500 if exceeded) |
677
+ * | 6 | `createPaginationResponseMetadataSchema` | the `limit` VALUE echoed in the envelope (500 if exceeded) |
678
+ * | 7 | `internalDto` pagination wrappers (default + SUMMARY + CONTEXT variants) | SERVICE-layer validation, *after* the page is built |
679
+ * | 8 | `wrapInPaginationStructure` (dataMode SUMMARY/CONTEXT) | the dataMode-selected response shape |
680
+ *
681
+ * ⚠️ Sites 7 and 8 are the ones that hide. They validate the SERVICE result, so they only speak
682
+ * once the request has been accepted and the repository has already produced the page — a bound
683
+ * left stale there surfaces as `service_resource_transformation_failed`, not as a validation
684
+ * error, and only for collections large enough to reach it.
685
+ *
686
+ * ## The default is 100, and it is load-bearing
687
+ *
688
+ * An operation that declares nothing gets **100**, because that is the value the Mongo `_doList`
689
+ * hard-coded before these sites were unified. Defaulting to 50 (SEARCH's own default) was tried
690
+ * and reverted: it silently HALVED every caller asking for more — billing usage-metering
691
+ * (`limit: 10000`), the sidebar resource browser, the flows-actors controller and the audit
692
+ * export, none of which declare a ceiling and none of which would have errored. Symmetry with
693
+ * SEARCH is not worth a silent truncation.
694
+ *
695
+ * DECLARE a value when a caller depends on it, even if it equals the default — `auditLogs | LIST`
696
+ * does exactly that, because its export path breaks quietly if the default ever moves.
697
+ *
698
+ * The operation declaration is the sole pagination authority. The resolved default operation and
699
+ * every auto-generated LIST representation inherit the same effective ceiling, so request,
700
+ * repository, response and API-reference contracts cannot diverge by data mode.
701
+ */
702
+ maxPaginatedResultPerPageLimit?: number;
703
+ };
704
+ /**
705
+ * @wildo_source:part:start saas.models.resource-config.searchable-relation facet:layer:shared facet:family:resource-config
706
+ *
707
+ * Relational search descriptor — lets a SEARCH operation match rows of THIS
708
+ * resource by searching a RELATED ("juncted") resource's own searchable fields,
709
+ * WITHOUT denormalizing those fields onto this resource. Author it inline inside
710
+ * a SEARCH operation's `searchableFields` array, alongside plain own-field names.
711
+ *
712
+ * WHY IT EXISTS — some human-meaningful search keys live on a related resource
713
+ * and are MUTABLE there (e.g. a user's first/last name on a user-profile
714
+ * resource). Copying such a field onto this row would go stale and demand a
715
+ * change-propagation sync on every mutation path of the owning resource. This
716
+ * descriptor reuses the related resource's OWN searchable surface at query time
717
+ * instead — single source of truth, never stale, no sync hooks to maintain.
718
+ *
719
+ * HOW IT WORKS (tenant-safe by construction) — at search time the framework runs
720
+ * a secondary, system-level match on {@link relatedResource} using {@link fields}
721
+ * (defaulting to that resource's own string `searchableFields`), collects the
722
+ * matching rows' {@link relatedJoinField} values, and adds "this resource's
723
+ * {@link localField} is one of those values" as an extra match branch, OR-ed
724
+ * with the own-field matches. The primary query stays scoped (e.g. by
725
+ * organization) via the normal contextual filter, so the secondary match's own
726
+ * (often global) scope is irrelevant to safety: a row outside the caller's scope
727
+ * can never enter the already-scoped primary result set. Because the join
728
+ * collapses to a single-collection lookup, pagination and totals are unchanged.
729
+ *
730
+ * FAIL-SAFE — a relational entry only ever ADDS matches within the already-scoped
731
+ * set, so if the related resource cannot be resolved the entry contributes
732
+ * nothing (the search under-matches; it can never widen visibility).
733
+ *
734
+ * @remarks Import from `@wildo-ai/saas-models`. Supported on MongoDB-backed
735
+ * resources today; on a PostgreSQL-backed resource the relational entries are
736
+ * skipped and only the own-field entries apply (own-field search is unaffected).
737
+ *
738
+ * @example
739
+ * // Search org members by the linked user's name. The user's firstName/lastName
740
+ * // live on a separate USER_PROFILES resource (mutable) and are deliberately NOT
741
+ * // copied onto the member row; both members and profiles carry the same `userId`,
742
+ * // so we join on it and reuse the profile's own searchableFields.
743
+ * searchableFields: [
744
+ * 'userEmail',
745
+ * { localField: 'userId', relatedResource: CoreResourceType.USER_PROFILES,
746
+ * relatedJoinField: 'userId', fields: ['firstName', 'lastName'] },
747
+ * ]
748
+ */
749
+ export type SearchableRelationDescriptor = {
750
+ /** Field on THIS resource matched against the resolved related ids (e.g. `userId`). */
751
+ localField: string;
752
+ /** The related resource whose own searchable surface is reused (e.g. `USER_PROFILES`). */
753
+ relatedResource: ResourceType;
754
+ /**
755
+ * Field on the related resource whose values are matched against
756
+ * {@link localField}'s values. Defaults to the related primary key (`_id`) —
757
+ * set it explicitly when joining on a shared key other than the primary key
758
+ * (e.g. members and profiles both carry `userId`).
759
+ */
760
+ relatedJoinField?: string;
761
+ /**
762
+ * Which related fields to match the search term against. Defaults to the
763
+ * related resource's OWN (string) `searchableFields` — i.e. literally "use the
764
+ * juncted element's own search". Provide an explicit list only to narrow it.
765
+ */
766
+ fields?: string[];
223
767
  };
768
+ /**
769
+ * A SEARCH `searchableFields` entry: either an OWN-resource field name (string),
770
+ * matched on this collection, or a {@link SearchableRelationDescriptor} that
771
+ * matches via a related resource. The two forms coexist in one array and are
772
+ * OR-ed together at query time.
773
+ */
774
+ export type SearchableFieldDescriptor = string | SearchableRelationDescriptor;
775
+ /** Runtime guard distinguishing a relational descriptor from an own-field name. */
776
+ export declare function isSearchableRelationDescriptor(field: SearchableFieldDescriptor): field is SearchableRelationDescriptor;
777
+ /** @wildo_source:part:end saas.models.resource-config.searchable-relation */
224
778
  /** SEARCH-specific collection-view fields (SEARCH and custom ops with resourceOperationLike: SEARCH) */
225
779
  export type CollectionViewFields_Search = CollectionViewFields_Shared & {
226
780
  isSearchable?: boolean;
227
- searchableFields?: string[];
781
+ /**
782
+ * Fields this SEARCH matches against. Each entry is either an own-collection
783
+ * field name or a {@link SearchableRelationDescriptor} that reaches into a
784
+ * related resource (see that type for the tenant-safety contract). Own-field
785
+ * and relational entries OR together.
786
+ */
787
+ searchableFields?: SearchableFieldDescriptor[];
228
788
  searchableOptions?: CollectionView_SearchOptions;
789
+ /** SEARCH's page ceiling. Same eight-site contract as the LIST field — see its JSDoc above. */
229
790
  maxPaginatedResultPerPageLimit?: number;
230
791
  };
792
+ /**
793
+ * The wire selector every bulk operation carries.
794
+ *
795
+ * The DTO builder wraps EVERY `isBulkOperation` request DTO in this shape
796
+ * (`buildEnhancedRequestDto`), so `_ids` is the ONE field name a client may use to name the rows a
797
+ * bulk operation targets. It is a SELECTOR, not data: it never reaches persistence.
798
+ *
799
+ * The leading underscore is deliberate and load-bearing — it keeps the selector out of the resource's
800
+ * own field namespace, so a resource that legitimately owns a field called `ids` cannot collide with
801
+ * it. Read it through {@link BULK_OPERATION_SELECTOR_FIELD} rather than spelling the string, and
802
+ * resolve it through {@link readBulkOperationSelectorIds}: a producer that spells it `ids` type-checks,
803
+ * validates away to nothing, and then fails as "`_ids` is required" — which is exactly what every
804
+ * frontend bulk surface did until 2026-08-29.
805
+ */
231
806
  export declare const Resouces_BulkOperationBaseSchema: z.ZodObject<{
232
807
  _ids: z.ZodArray<z.ZodString>;
233
- }, z.core.$strip, core.$ZodObjectExtra>;
808
+ }, z.core.$strip>;
809
+ /**
810
+ * The single named source for the bulk selector's field name.
811
+ *
812
+ * Every producer (frontend request builders) and every consumer (the service-tier target resolution,
813
+ * the generated relationship-bulk selector) reads the name from here, so the two halves of the wire
814
+ * contract cannot drift apart silently.
815
+ */
816
+ export declare const BULK_OPERATION_SELECTOR_FIELD: "_ids";
817
+ /**
818
+ * Read the bulk selector out of a request payload, or `undefined` when it carries none.
819
+ *
820
+ * Deliberately tolerant of an unparsed body: this runs at the service tier, which is reached both by
821
+ * the HTTP controller (where the request DTO has already validated the shape) and by MCP / batch /
822
+ * programmatic callers (where it has not). Anything that is not a non-empty array of non-empty
823
+ * strings yields `undefined`, so the caller's own missing-target refusal reports the failure rather
824
+ * than a half-resolved selector reaching persistence.
825
+ */
826
+ export declare function readBulkOperationSelectorIds(payload: unknown): string[] | undefined;
827
+ /**
828
+ * Strip the bulk selector from a request payload.
829
+ *
830
+ * `_ids` is NOT in `createOrUpdateMandatoryDiscardFields`, so without this it rides the payload all
831
+ * the way to the repository and is silently dropped there by the strict re-parse against the main
832
+ * schema. Removing it at the point the target is resolved keeps "who targets" and "what is written"
833
+ * separate, which is what lets the read-only-field guard reason about the payload honestly.
834
+ */
835
+ export declare function stripBulkOperationSelector<T>(payload: T): T;
234
836
  export type ResourceConfiguration_OperationVariant_CustomImplementation_FunctionParameters<TMainSchema extends z.ZodTypeAny = z.ZodAny> = {
235
837
  inputDto: MainSchemaInfer<TMainSchema>;
236
838
  currentObject: MainSchemaInfer<TMainSchema>;
839
+ /**
840
+ * The row as it stood BEFORE the write (the pre-image), when the framework captured one.
841
+ *
842
+ * Present only for a SINGLE-row UPDATE/DELETE (the framework fetches a pre-image only when
843
+ * exactly one id is selected); `undefined` for CREATE (nothing existed) and for bulk writes.
844
+ * It lets a consumer reason about what CHANGED rather than only the final state. Its wired
845
+ * consumer today is the derived-badge recompute, which re-counts the scope a mutation moved a
846
+ * row OUT of (not just the one it moved it into) — see `dispatchDerivedBadgeRecomputes`. Other
847
+ * consumers (e.g. a `userIdsSelector` notifying the PRIOR assignee a task was taken from them)
848
+ * would need the notification dispatcher to forward it into the selector call first; it is not
849
+ * plumbed there yet. Never assume it is populated; branch on its presence.
850
+ */
851
+ previousObject?: MainSchemaInfer<TMainSchema>;
237
852
  objectContext: any;
238
853
  initiatorUserContext?: any;
239
854
  initiatorIds?: {
@@ -297,9 +912,120 @@ export type RequiredFeaturesNormalized = RequiredFeaturesFullConfig;
297
912
  * Stores both the function and metadata about its context needs.
298
913
  */
299
914
  export type ResourceConfiguration_FunctionWithContextNeeds<TFunction extends (...args: any[]) => any> = TFunction & ResourceConfiguration_FunctionContextNeeds;
915
+ export declare enum ResourceGeneratedOperationKind {
916
+ GENERATED_FILE_REGENERATE = "generated_file_regenerate",
917
+ /** The CSV/JSON export companion of a LIST/SEARCH operation — see {@link ResourceCollectionExportConfig}. */
918
+ GENERATED_COLLECTION_EXPORT = "generated_collection_export"
919
+ }
920
+ export type ResourceConfiguration_GeneratedFileRegenerateOperationMetadata = {
921
+ kind: ResourceGeneratedOperationKind.GENERATED_FILE_REGENERATE;
922
+ fieldName: string;
923
+ };
924
+ /**
925
+ * Identifies an operation as the export companion of one LIST/SEARCH operation, and carries the
926
+ * export contract the handler and the frontend both read.
927
+ *
928
+ * `sourceOperationIdentifier` is what makes the export re-runnable AS the listing: the handler
929
+ * resolves that operation and dispatches it, rather than re-deriving a query.
930
+ */
931
+ export type ResourceConfiguration_GeneratedCollectionExportOperationMetadata = {
932
+ kind: ResourceGeneratedOperationKind.GENERATED_COLLECTION_EXPORT;
933
+ /** The LIST/SEARCH operation whose result set this exports. */
934
+ sourceOperationIdentifier: string;
935
+ /** Which core verb the source is, so the handler knows which service call to make. */
936
+ sourceCoreOperation: CoreResourceOperation.LIST | CoreResourceOperation.SEARCH;
937
+ export: ResourceCollectionExportConfig;
938
+ };
939
+ export type ResourceConfiguration_GeneratedOperationMetadata = ResourceConfiguration_GeneratedFileRegenerateOperationMetadata | ResourceConfiguration_GeneratedCollectionExportOperationMetadata;
940
+ /**
941
+ * Authored acknowledgement that an operation variant is DECLARED but knowingly NOT IMPLEMENTED.
942
+ *
943
+ * ## Why this exists
944
+ *
945
+ * A custom operation whose `requestDto` no implementation consumes does not fail — it falls
946
+ * through to the generic core path, which persists only fields the resource schema declares.
947
+ * A DTO such as `{ newRole, reason }` names none, so the framework validates the body, writes
948
+ * nothing, and answers **HTTP 200**. On 2026-08-01 a hostile e2e probe caught
949
+ * `organizationMembers | promote` doing exactly that, and a catalogue sweep found the shape in
950
+ * 41 routed operations — 8 CRITICAL, 11 HIGH, including `users | impersonate`,
951
+ * `organizations | suspend` and `applications | transfer`. A "successful" demotion that never
952
+ * happened is an operational-safety and audit-integrity defect: every runbook, script, and UI
953
+ * that trusts the 2xx is wrong.
954
+ *
955
+ * ## What it does
956
+ *
957
+ * Presence is a fail-closed declaration with TWO effects, never one without the other:
958
+ *
959
+ * 1. **Startup is allowed to proceed.** Without it, an unserviceable operation is a startup
960
+ * ERROR (`ApplicationStartupConfigValidatorService`), so a new one cannot ship silently.
961
+ * 2. **The request fails closed.** The dispatcher refuses the operation before any persistence
962
+ * with `ErrorType.CONFIGURATION` /
963
+ * `ErrorCustomMessageReference.RESOURCE_OPERATION_CUSTOM_IMPLEMENTATION_NOT_IMPLEMENTED`.
964
+ * Acknowledging a gap must never preserve the 2xx — that would document the defect instead
965
+ * of closing it.
966
+ *
967
+ * The guard is BIDIRECTIONAL: an acknowledgement on an operation that IS serviceable is also a
968
+ * startup error, so a stale marker can never brick an operation someone has since implemented.
969
+ *
970
+ * ## This is a stop-gap, not a resting place
971
+ *
972
+ * The right end states are to implement the operation (see the organization-units
973
+ * MOVE/ARCHIVE pattern — a `prefixCoreOperations` hook returning the field patch the core
974
+ * write persists) or to remove the declaration. Reach for this only to keep a known gap
975
+ * honest while it is scheduled.
976
+ *
977
+ * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — an interface must not report success for an
978
+ * action it did not perform; monitoring and incident response depend on the response being
979
+ * truthful.
980
+ */
981
+ export type ResourceOperation_UnimplementedAcknowledgement = {
982
+ /** Why the operation is declared without an implementation, in the author's own words. */
983
+ reason: string;
984
+ /** Where the gap is tracked — a plan path, issue id, or equivalent durable reference. */
985
+ trackingRef: string;
986
+ };
987
+ /**
988
+ * Where the engine's own inherited implementation gaps are tracked — the 2026-08-01 catalogue
989
+ * sweep that found 41 routed operations answering a success status having performed nothing.
990
+ * One authority so the backlog cannot fragment across 37 hand-typed strings.
991
+ */
992
+ export declare const UNIMPLEMENTED_ENGINE_OPERATION_BACKLOG_REF = ".claude/plans/routed-unimplemented-operations-fail-closed.md";
993
+ /**
994
+ * Acknowledge an engine operation as a known, fail-closed implementation gap.
995
+ *
996
+ * Requires a SPECIFIC reason: "not implemented" is what the marker already says, so a reason
997
+ * that adds nothing is a reason not worth reading during triage. State what the operation was
998
+ * meant to do, so whoever picks it up knows the target behaviour without re-deriving it.
999
+ *
1000
+ * @see ResourceOperation_UnimplementedAcknowledgement for the two effects this has.
1001
+ */
1002
+ export declare const acknowledgeUnimplementedEngineOperation: (reason: string) => ResourceOperation_UnimplementedAcknowledgement;
1003
+ /**
1004
+ * Declarative control over this variant's audit emission.
1005
+ *
1006
+ * **The baseline needs no declaration.** Every `HIGH` / `CRITICAL` variant emits
1007
+ * `RESOURCE_OPERATION_PERFORMED` automatically — `riskLevel` is already the framework's canonical
1008
+ * danger axis (it drives MCP destructive hints, frontend danger-zone placement and CRITICAL typed
1009
+ * confirmation), and a risk-driven floor is fail-closed by omission. A declarative-ONLY mechanism
1010
+ * was rejected for exactly that reason: it fails OPEN when an author forgets, which is how 20 event
1011
+ * types came to be declared in `CoreAuditableEventType` and wired to nothing.
1012
+ *
1013
+ * This declaration exists for the two cases the floor cannot express on its own.
1014
+ */
1015
+ export type ResourceOperation_AuditableEvent = {
1016
+ /**
1017
+ * Emit for this variant even though its `riskLevel` is below the automatic floor.
1018
+ *
1019
+ * For a `MEDIUM` / `LOW` verb whose danger is not proportional to its blast radius — the risk
1020
+ * level answers "how alarming is the UI affordance", which is a related but not identical
1021
+ * question to "is this evidence an auditor needs".
1022
+ */
1023
+ auditBelowRiskFloor?: boolean;
1024
+ };
300
1025
  type ResourceConfiguration_OperationVariant_Base<TMainSchema extends z.ZodTypeAny = z.ZodAny> = {
301
1026
  variantType: ResourceOperationVariantType;
302
1027
  resourceOperationLike?: CoreResourceOperation;
1028
+ generatedOperation?: ResourceConfiguration_GeneratedOperationMetadata;
303
1029
  /**
304
1030
  * Feature gating for this operation variant.
305
1031
  * Shorthand: `string[]` auto-normalized by factory to `{ features: [...], mode: 'OR' }`.
@@ -310,6 +1036,226 @@ type ResourceConfiguration_OperationVariant_Base<TMainSchema extends z.ZodTypeAn
310
1036
  variantKey?: string;
311
1037
  riskLevel: ResourceOperationRiskLevel;
312
1038
  roles: Roles[];
1039
+ /**
1040
+ * Per-foreign-key policy for REFERENCE fields this variant writes — the TARGET-side counterpart of
1041
+ * `roles` above (which gates the CALLER).
1042
+ *
1043
+ * A relationship that declares `scopeMembership` already guarantees the baseline: the referenced row
1044
+ * must be linked to the writing row's scope through a junction (that is tenant isolation, and it
1045
+ * applies to every variant). This map TIGHTENS that baseline for THIS variant, keyed by foreign-key
1046
+ * field — require an `ACTIVE` membership, an `ORG_ADMIN` assignee, a typed partnership — or `false`
1047
+ * to disable it for one foreign key on one variant.
1048
+ *
1049
+ * Omit entirely (the common case): the relationship's baseline membership applies unchanged.
1050
+ *
1051
+ * @example an "assign reviewer" variant whose assignee must be an ACTIVE org admin
1052
+ * referenceConstraints: {
1053
+ * assignedToUserId: {
1054
+ * qualifyingStatuses: ['ACTIVE'],
1055
+ * requiredRoles: { scope: ResourcePrimaryScope.ORGANIZATIONS, roles: [CORE_ORG_ROLES.ORG_ADMIN] },
1056
+ * },
1057
+ * }
1058
+ */
1059
+ referenceConstraints?: ReferenceConstraints;
1060
+ /**
1061
+ * Declares this variant a KNOWN, fail-closed implementation gap.
1062
+ * See {@link ResourceOperation_UnimplementedAcknowledgement} — presence both unblocks
1063
+ * startup and makes the request refuse, so an acknowledged operation never answers 2xx.
1064
+ */
1065
+ unimplementedAcknowledgement?: ResourceOperation_UnimplementedAcknowledgement;
1066
+ /**
1067
+ * Declarative control over this variant's audit emission — see
1068
+ * {@link ResourceOperation_AuditableEvent}. Omit it: `HIGH` / `CRITICAL` variants are audited
1069
+ * automatically, and everything else is deliberately not.
1070
+ */
1071
+ auditableEvent?: ResourceOperation_AuditableEvent;
1072
+ /**
1073
+ * Demand a FRESH proof of identity for this specific operation, regardless of how recently the
1074
+ * caller authenticated.
1075
+ *
1076
+ * The framework's baseline step-up is a per-USER-TYPE policy (`UserTypeAuthPolicy.stepUpAuth`):
1077
+ * opt-in, defaulting to `enabled: false`, and *freshness*-based — it challenges only once the
1078
+ * session's `lastAuthenticatedAt` is older than `maxAgeSeconds` (default 300). That is the right
1079
+ * shape for "this tenant wants periodic re-proof across the board", and the wrong shape for a
1080
+ * single irreversible action: a caller who signed in two minutes ago destroys the resource with
1081
+ * no credential proof at all, and an application that never configures `stepUpAuth` is never
1082
+ * challenged for anything.
1083
+ *
1084
+ * Setting this to `true` makes the challenge UNCONDITIONAL for this operation. The caller must
1085
+ * present a valid single-use `REAUTH` consumable token (minted by `POST /auth/reauth`, carried in
1086
+ * `X-Reauth-Token`); otherwise the request is refused with `STEP_UP_REQUIRED` (HTTP 403). The
1087
+ * frontend HTTP client already completes this loop — it catches the 403, runs the registered
1088
+ * step-up handler to obtain a token, and replays the request — so declaring the flag is the whole
1089
+ * integration.
1090
+ *
1091
+ * FAIL-CLOSED by design: an operation that declares this is challenged even when the user type
1092
+ * has NO `stepUpAuth` policy at all. Deriving the requirement from `riskLevel` was rejected —
1093
+ * `riskLevel` is a UI/observability signal (danger-zone placement, typed confirmation, MCP
1094
+ * destructive hints), read today by no authorization code, and silently promoting it to a security
1095
+ * control would change the behaviour of every existing `CRITICAL` operation at once.
1096
+ *
1097
+ * Applies only to principals whose identity can be re-proved: user requests that are not
1098
+ * sub-calls. Machine principals, internal calls and worker executions are exempt exactly as they
1099
+ * are for the baseline policy — there is no interactive credential to re-present.
1100
+ *
1101
+ * ⚠️ **Check who can actually satisfy it before declaring it.**
1102
+ * `AuthMethodManagementBackendService.reAuthenticate` proves identity by PASSWORD only today
1103
+ * (`AuthMethod.PASSKEY` is declared and explicitly refused as not yet supported), and it requires
1104
+ * a real `passwordHash` on the principal's credential row — a user-type policy that merely enables
1105
+ * `PASSWORD` is necessary but NOT sufficient.
1106
+ *
1107
+ * Two populations therefore cannot satisfy this gate:
1108
+ *
1109
+ * - a user type whose `authMethodsEnabled` excludes `PASSWORD` (SSO-only, passkey-only) — note
1110
+ * this is also reachable through a per-ORGANIZATION `authMethodsEnabled` override, so an
1111
+ * app-level policy is not the whole answer;
1112
+ * - **directory-managed (SCIM) users**, whose `passwordHash` AND passkeys the framework
1113
+ * DELIBERATELY DESTROYS as a compliance control
1114
+ * (`_reconcileLocalCredentialsForDirectoryManaged` — a local first factor would survive IdP
1115
+ * deprovisioning). Their TOTP is intentionally preserved, but re-auth cannot use it yet.
1116
+ *
1117
+ * For those principals the operation is permanently refused. That is fail-closed rather than
1118
+ * unsafe, and the refusal is diagnosable (the step-up round-trip ends in an explicit "No password
1119
+ * set for this account") — but it is a product decision, not a detail. Do not declare this flag on
1120
+ * an operation those populations are expected to perform until re-authentication covers a factor
1121
+ * they hold.
1122
+ *
1123
+ * This is also why the requirement is a per-operation flag rather than a hardcoded `password`
1124
+ * field in a request DTO: the proof is negotiated by the auth policy, not frozen into the resource
1125
+ * contract. A `{ password }` field cannot adapt to any of the above.
1126
+ *
1127
+ * assurance-control: WILDO.IDENTITY.STEP_UP_AUTHENTICATION — re-authentication before a high-impact action.
1128
+ */
1129
+ /**
1130
+ * Admits an APPLICATION-scope platform super-administrator to a resource whose primary scope is a
1131
+ * PER-INSTANCE tenant scope (today: `ORGANIZATIONS`) without requiring membership of that tenant.
1132
+ *
1133
+ * ## Why this exists, and why it is per-variant rather than global
1134
+ *
1135
+ * `validateParentScopeAccess` authorizes an organization-scoped operation by finding an
1136
+ * organization-WIDE `initiatorRoles` entry whose `relatedResourceId` is the target organization. A
1137
+ * platform super-administrator holds an APPLICATION-scope entry and therefore matches nothing — so
1138
+ * they are denied on every org-scoped resource, INCLUDING the organization row itself. That is
1139
+ * normally exactly right: it is what makes tenant isolation hold against the most privileged
1140
+ * principal in the system, and it is pinned by
1141
+ * `cross-tenant-super-admin-reach.mongo.integration.test.ts`.
1142
+ *
1143
+ * It also means a tenant that loses its last owner cannot be repaired by anyone, which is the other
1144
+ * half of the administrative-continuity pattern: protect the tenant tier and
1145
+ * repair it only from a higher authorized tier. This flag is that higher-tier
1146
+ * exception and nothing else.
1147
+ *
1148
+ * **It is deliberately NOT a global super-admin bypass.** Adding one to the authorization layer
1149
+ * would grant cross-tenant reach to EVERY org-scoped operation whose gate a super-admin's role
1150
+ * chain satisfies — an enormous, silent widening of tenant isolation. Instead each variant opts in
1151
+ * explicitly, so the admitted surface is enumerable by grep and empty by default.
1152
+ *
1153
+ * ## Conditions, all required
1154
+ *
1155
+ * - The caller must hold `APP_ADMIN_SUPER_ADMIN` at **APPLICATION** scope. An organization-scoped
1156
+ * role string that merely spells the same name confers nothing: `getRoleHierarchy` partitions the
1157
+ * two role tables, and membership `roles` is free-form (`OrgRolesSchema` admits any string), so
1158
+ * without the scope qualifier a tenant admin could type their way into cross-tenant reach.
1159
+ * - The variant must declare this flag. Absent, behaviour is unchanged and the caller is denied.
1160
+ *
1161
+ * Declare it only on operations whose PURPOSE is cross-tenant administration, and expect each one
1162
+ * to justify itself: this is the seam a reviewer should look at first.
1163
+ *
1164
+ * assurance-control: WILDO.ACCESS.CROSS_TENANT_ADMINISTRATION — an explicitly enumerated,
1165
+ * platform-tier admission across a tenant boundary that is otherwise absolute.
1166
+ */
1167
+ admitsCrossTenantPlatformAdministration?: boolean;
1168
+ /**
1169
+ * Admits this variant to address a USER other than the caller — the USER_SELF-scope sibling of
1170
+ * {@link admitsCrossTenantPlatformAdministration}, and it follows that flag's doctrine exactly:
1171
+ * per-variant, empty by default, enumerable by grep.
1172
+ *
1173
+ * ## Why it is needed
1174
+ *
1175
+ * `authorizeUserSelf` authorizes a USER_SELF-scoped operation by requiring the addressed row to BE
1176
+ * the caller. On `USERS` — whose `resourcePrimaryScope` IS `USER_SELF`, because the resource is a
1177
+ * self-anchor scope root — that made the entire administrative surface self-only: `assign_roles`,
1178
+ * `revoke_roles`, `suspend_user`, `unsuspend_user`, `force_password_reset`, the admin READ and the
1179
+ * core UPDATE/DELETE all refused `authorizations_access_denied` against another user, while the
1180
+ * specification documents every one of them as acting on "another user's record" and the admin UI
1181
+ * surfaces them as per-row actions.
1182
+ *
1183
+ * ## Why it is PER-VARIANT and not per-resource
1184
+ *
1185
+ * This is the whole reason a resource-level declaration cannot serve. Within `USERS` the two READ
1186
+ * variants need OPPOSITE answers:
1187
+ *
1188
+ * - the DEFAULT read is gated `APP_USER`. Admitting cross-subject addressing there would let ANY
1189
+ * authenticated user read ANY other user's row — `email`, `appRoles`, `status` — a privacy and
1190
+ * enumeration regression far worse than the bug being fixed.
1191
+ * - the `admin` read is gated `APP_ADMIN_VIEWER` and is precisely the surface that SHOULD address
1192
+ * others.
1193
+ *
1194
+ * One resource, one field identifier, two required answers. Only the variant can carry it.
1195
+ *
1196
+ * ## What still protects the surface
1197
+ *
1198
+ * This flag relaxes WHOSE row may be addressed. It does not touch WHO may call: the operation's
1199
+ * `roles` gate runs independently and unchanged, so an admitted variant is still reachable only by
1200
+ * the roles it declares. Role decides who; this decides whose. Declare it only where the
1201
+ * operation's PURPOSE is administering another person, and expect each one to justify itself.
1202
+ *
1203
+ * assurance-control: WILDO.ACCESS.LEAST_PRIVILEGE — an administrative action on another principal
1204
+ * is authorized by the caller's ROLE, never by caller and subject being the same person.
1205
+ */
1206
+ admitsCrossSubjectUserAdministration?: boolean;
1207
+ requiresStepUpAuthentication?: boolean;
1208
+ /**
1209
+ * Default **frontend surface** for this operation when no app preset declares
1210
+ * one (see {@link ResourceOperationFrontendSurface}). Lets the framework mark
1211
+ * an operation headless-by-default (`API_ONLY`) — e.g. system/workflow/signup
1212
+ * -driven creates — so apps don't re-author `apiOnly()` per app. An app preset
1213
+ * that surfaces the operation (`addressable()`/`notAddressable()`/`apiOnly()`)
1214
+ * always wins; this is only the fallback. When unset, an unsurfaced operation
1215
+ * resolves to `API_ONLY` (the safe default — callable, no UI). Display-only:
1216
+ * never affects authorization.
1217
+ */
1218
+ defaultFrontendPosture?: ResourceOperationFrontendSurface;
1219
+ /**
1220
+ * @wildo_source:part:start saas.models.resource-config.operation-mcp-exposure facet:layer:shared facet:family:resource-config
1221
+ *
1222
+ * MCP (Model Context Protocol) exposure for this operation. Set `exposed: true` to
1223
+ * surface the operation as an MCP tool that authenticated machine / agent callers can
1224
+ * discover (`tools/list`) and invoke (`tools/call`). Import path: `@wildo-ai/saas-models`
1225
+ * — this is a field on an operation variant inside a resource's `operations` config.
1226
+ *
1227
+ * Opt-in + FAIL-CLOSED: absent or `false` ⇒ the operation is NOT a tool. Only DEFAULT,
1228
+ * non-bulk, URL-bearing operations (the standard `API_CALL` create / read / list / search /
1229
+ * count / update / delete and URL-bearing custom ops) of ORGANIZATION- or APPLICATION-scoped
1230
+ * resources are eligible. A machine principal cannot reach USER_SELF resources, so setting
1231
+ * `exposed` on a USER_SELF operation has no machine-callable effect.
1232
+ *
1233
+ * `description` is the agent-facing tool description — the prose the calling agent reads to
1234
+ * decide when to use the tool. When omitted, the tool description falls back to the resource
1235
+ * specification's `purpose` / `whenToUse`, then to a synthesized default; keep an authored
1236
+ * `description` reconciled with the spec.
1237
+ *
1238
+ * Exposure is a DISCOVERY gate ONLY. Every `tools/call` still re-runs the operation's own
1239
+ * role authorization against the CALLER's roles before dispatch, so exposing an operation can
1240
+ * never widen who is allowed to perform it.
1241
+ *
1242
+ * `servers` selects WHICH named MCP server(s) carry this tool when the app declares more than one
1243
+ * (each server is a separate endpoint + audience, so a token for one is rejected at another). OMIT it
1244
+ * for the DEFAULT server — the plain `/mcp` endpoint every app has. When PRESENT it must name at least
1245
+ * one declared server: an EMPTY array is a startup error, not a silent fallback, so the field always
1246
+ * reads as "exactly these" (the same omitted-vs-present rule an A2A agent's `actorSystemRefs` follows).
1247
+ * Naming a server the app does not declare is likewise a startup error (fail-closed), so a typo can
1248
+ * never conjure a phantom surface.
1249
+ *
1250
+ * Membership is EXCLUSIVE: an operation naming a server LEAVES the default `/mcp` catalog rather than
1251
+ * appearing on both, so curation is always a deliberate move and never an accidental duplication.
1252
+ */
1253
+ mcp?: {
1254
+ exposed?: boolean;
1255
+ description?: string;
1256
+ servers?: string[];
1257
+ };
1258
+ /** @wildo_source:part:end saas.models.resource-config.operation-mcp-exposure */
313
1259
  requestDto?: z.ZodSchema<any>;
314
1260
  /**
315
1261
  * RepositoryDto for repository projection.
@@ -323,8 +1269,45 @@ type ResourceConfiguration_OperationVariant_Base<TMainSchema extends z.ZodTypeAn
323
1269
  * Can optionally specify needsObjectContext/needsUserContext flags:
324
1270
  * basicPrefixOperation.needsObjectContext = true
325
1271
  * basicPrefixOperation.needsUserContext = true
1272
+ *
1273
+ * Returns a PATCH, not a replacement: the service MERGES the result onto the payload
1274
+ * (`coreInput = { ...coreInput, ...result }`) and whitelists the keys the hook ADDED into
1275
+ * `preserveServerInjectedFields`, so they survive the repository's strict re-parse. Naming
1276
+ * only the fields the verb changes is therefore both sufficient and safer than spreading the
1277
+ * current object — a spread makes every field a server-injected key, which re-writes
1278
+ * `.excludeFromUpdate()` fields such as an owning foreign key on every call.
326
1279
  */
327
- basicPrefixOperation?: ResourceConfiguration_FunctionWithContextNeeds<(params: ResourceConfiguration_OperationVariant_CustomImplementation_FunctionParameters<TMainSchema>) => MainSchemaInfer<TMainSchema>>;
1280
+ basicPrefixOperation?: ResourceConfiguration_FunctionWithContextNeeds<(params: ResourceConfiguration_OperationVariant_CustomImplementation_FunctionParameters<TMainSchema>) => Partial<MainSchemaInfer<TMainSchema>>>;
1281
+ /**
1282
+ * Fields whose value this operation's {@link basicPrefixOperation} OWNS.
1283
+ *
1284
+ * Declare a field here when the hook must set it EVEN IF the caller also supplied it. The
1285
+ * "keys the hook ADDED" inference described above is derived from a snapshot of the payload
1286
+ * taken at the SERVICE tier, after a LOOSE parse (`z.looseObject`) that passes unknown keys
1287
+ * through. A caller that reaches that tier with the field already present — MCP `callTool`
1288
+ * forwards its arguments with no strict parse — puts the key into the snapshot, so the hook's
1289
+ * own value stops being treated as injected, the repository's strict re-parse drops it, and the
1290
+ * operation answers success having written nothing.
1291
+ *
1292
+ * Declaring the field makes the ownership explicit: it is always preserved, always with the
1293
+ * POST-hook value, so a caller-supplied value is overwritten rather than honored. This does NOT
1294
+ * make the field client-writable — reachability stays governed by {@link requestDto} and the
1295
+ * schema decorators.
1296
+ *
1297
+ * Any hook that forces a server-owned lifecycle value (a `status` transition, an ownership
1298
+ * stamp) should declare it. A hook that only derives a value from other authored input does not
1299
+ * need to, because a caller could not have supplied it under a strict contract anyway.
1300
+ *
1301
+ * Typed `readonly string[]` rather than `keyof MainSchemaInfer<TMainSchema>`: this type is shared
1302
+ * by the authoring parameters AND the built operation, and the built side is assembled behind a
1303
+ * type-erased generic where `keyof` collapses to `never`. The stronger check lives at BOOT
1304
+ * instead — `collectResourceOperationAuthoritativeFieldIssues` refuses startup when a declared
1305
+ * name is not a persisted field of the resource. That guard is strictly better than the
1306
+ * compile-time one would have been, because it also covers custom-implementation registrations,
1307
+ * whose declarations are plain strings with no schema generic to check against. A typo must fail
1308
+ * loudly: silently declaring nothing would restore the exact no-op this contract prevents.
1309
+ */
1310
+ authoritativeFields?: readonly string[];
328
1311
  };
329
1312
  type ResourceConfiguration_OperationVariant_ApiCall_BuilderParameters<TMainSchema extends z.ZodTypeAny = z.ZodAny> = ResourceConfiguration_OperationVariant_Base<TMainSchema> & {
330
1313
  variantType: ResourceOperationVariantType.API_CALL;
@@ -338,6 +1321,30 @@ type ResourceConfiguration_OperationVariant_ApiCall_BuilderParameters<TMainSchem
338
1321
  /** Declarative token revocation config — revokes tokens before the core operation (e.g., on DELETE) */
339
1322
  tokenRevocation?: TokenRevocationConfig;
340
1323
  customResponseDto?: z.ZodSchema<any>;
1324
+ /**
1325
+ * Per-endpoint rate-limit policy.
1326
+ *
1327
+ * When present, the resource controller's pre-flight check enforces this
1328
+ * policy BEFORE execution-context creation, request validation, and
1329
+ * authorization (via `RateLimitBackendService.checkPolicyForVariant`). At
1330
+ * that seam the authenticated identity is not yet known, so the client
1331
+ * identifier is the IP address (`getClientIpFromRequest`).
1332
+ *
1333
+ * When absent, only the global HTTP rate-limit
1334
+ * (`RuntimeConfig.httpServerConfiguration.rateLimiting`) gates this route
1335
+ * — that limiter is the safety net for endpoints with no per-endpoint
1336
+ * policy.
1337
+ *
1338
+ * Multiple windows AND together (most restrictive wins). On 429 the
1339
+ * `X-RateLimit-*` headers report the **tightest active window** (fewest
1340
+ * remaining slots), while `Retry-After` / `retryAfterSeconds` reports
1341
+ * the **latest tripped window** because declared windows are AND-ed.
1342
+ * These can be different windows when multiple trip simultaneously.
1343
+ *
1344
+ * The declared policy is surfaced through standard rate-limit response
1345
+ * headers and retry guidance, so callers see the same request budget.
1346
+ */
1347
+ rateLimit?: RateLimitConfiguration;
341
1348
  /**
342
1349
  * Function to determine if operation variant is enabled.
343
1350
  * Available in both frontend and backend.
@@ -359,6 +1366,15 @@ type ResourceConfiguration_OperationVariant_ApiCallWithCallback_BuilderParameter
359
1366
  /** Declarative token revocation config — revokes tokens before the core operation (e.g., on DELETE) */
360
1367
  tokenRevocation?: TokenRevocationConfig;
361
1368
  customResponseDto?: z.ZodSchema<any>;
1369
+ /**
1370
+ * Per-endpoint rate-limit policy. Same semantics as on the API_CALL
1371
+ * variant — enforced pre-flight by the resource controller before EC
1372
+ * creation, validation, and authorization.
1373
+ *
1374
+ * The declared policy is surfaced through standard rate-limit response
1375
+ * headers and retry guidance, so callers see the same request budget.
1376
+ */
1377
+ rateLimit?: RateLimitConfiguration;
362
1378
  /**
363
1379
  * Function to determine if operation variant is enabled.
364
1380
  * Available in both frontend and backend.
@@ -374,6 +1390,18 @@ type ResourceConfiguration_OperationVariant_ApiCallWithCallback_BuilderParameter
374
1390
  type ResourceConfiguration_OperationVariant_CronJob_BuilderParameters = ResourceConfiguration_OperationVariant_Base & {
375
1391
  variantType: ResourceOperationVariantType.CRON_JOB;
376
1392
  cronExpression: string;
1393
+ /**
1394
+ * Explicit response contract for a CRON_JOB custom operation whose return shape
1395
+ * is NOT the resource row implied by `resourceOperationLike`. A scheduled
1396
+ * generator/sweeper (e.g. a recurring-occurrence generator) borrows a core verb
1397
+ * (UPDATE/CREATE) for its repo/DTO semantics but returns a RUN SUMMARY, not an
1398
+ * occurrence. The factory already reads `customResponseDto` off any variant
1399
+ * params (`resources-config.shared.factory.ts`) and warns when a borrowed-verb
1400
+ * custom op omits it — this exposes it on the CRON_JOB params so the cron op can
1401
+ * declare its true return shape instead of inheriting the verb's occurrence
1402
+ * -shaped envelope (which the executor would reject the summary against).
1403
+ */
1404
+ customResponseDto?: z.ZodSchema<any>;
377
1405
  };
378
1406
  type ResourceConfiguration_OperationVariant_BatchJob_BuilderParameters = ResourceConfiguration_OperationVariant_Base & {
379
1407
  variantType: ResourceOperationVariantType.BATCH_JOB;
@@ -385,9 +1413,13 @@ type ResourceConfiguration_OperationVariant_RepositoryOnly_BuilderParameters = R
385
1413
  variantType: ResourceOperationVariantType.REPOSITORY_ONLY;
386
1414
  };
387
1415
  /**
1416
+ * @wildo_source:part:start saas.models.resource-config.operation-base facet:layer:shared facet:family:resource-config
1417
+ *
388
1418
  * Base operation configuration type.
389
1419
  * NOTE: TDatabaseSchema has been removed. Backend-only fields are now marked with
390
1420
  * the isBackendOnly decorator in mainSchema and are stripped at the service layer.
1421
+ *
1422
+ * @remarks Import from `@wildo-ai/saas-models`. App `resources-config` fills these per operation variant.
391
1423
  */
392
1424
  export type ResourceConfiguration_Operation_Base<TCustomOperationEnum extends EnumLikeType | undefined, TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined, TMainSchema extends z.ZodTypeAny = z.ZodAny> = ResourceConfiguration_OperationVariant_Base<TMainSchema> & {
393
1425
  isDisabled: boolean;
@@ -400,8 +1432,16 @@ export type ResourceConfiguration_Operation_Base<TCustomOperationEnum extends En
400
1432
  operationIdentifier: TCustomOperationEnum | TCoreOperationEnum;
401
1433
  isOperationDefault: boolean;
402
1434
  serviceRuntimeMode: ResourceOperation_ServiceRuntimeMode;
1435
+ generatedOperation?: ResourceConfiguration_GeneratedOperationMetadata;
403
1436
  requestDto?: z.ZodSchema<any>;
404
1437
  responseDto?: z.ZodSchema<any>;
1438
+ /** Set by factory when an explicit `requestDto` was provided in variant params.
1439
+ * Allows the DTO builder to skip heuristic comparison and trust the flag:
1440
+ * `true` ⇒ preserve the supplied schema verbatim; `false` ⇒ the requestDto is
1441
+ * the factory's auto-derived temporary placeholder, so always use the
1442
+ * inheritance-rebuilt DTO (a discriminated union for inheritance resources).
1443
+ * Absent only on legacy/hand-authored operations that predate the flag. */
1444
+ hasCustomRequestDto?: boolean;
405
1445
  /** Set by factory when `customResponseDto` was explicitly provided in variant params.
406
1446
  * Allows the DTO builder to skip heuristic comparison and always preserve the custom schema. */
407
1447
  hasCustomResponseDto?: boolean;
@@ -436,6 +1476,7 @@ export type ResourceConfiguration_Operation_Base<TCustomOperationEnum extends En
436
1476
  userNotifications: UserNotificationDefinition[];
437
1477
  m2mNotifications: M2MNotificationDefinitionWithoutIdentifier[];
438
1478
  };
1479
+ /** @wildo_source:part:end saas.models.resource-config.operation-base */
439
1480
  /**
440
1481
  * Base operation type - explicitly extracted for better type checking performance.
441
1482
  * TypeScript can cache this more efficiently when it's a named type alias.
@@ -455,6 +1496,14 @@ export type ResourceConfiguration_Operation_InternalCall<TCustomOperationEnum ex
455
1496
  export type ResourceConfiguration_Operation_RepositoryOnly<TCustomOperationEnum extends EnumLikeType | undefined, TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined, TMainSchema extends z.ZodTypeAny = z.ZodAny> = ResourceConfiguration_Operation_Base<TCustomOperationEnum, TCoreOperationEnum, TMainSchema> & {
456
1497
  variantType: ResourceOperationVariantType.REPOSITORY_ONLY;
457
1498
  };
1499
+ /**
1500
+ * @wildo_source:part:start saas.models.resource-config.operation-api-call facet:layer:shared facet:family:resource-config
1501
+ *
1502
+ * HTTP API surface for an operation: URL templates, method, tokens,
1503
+ * enabledCondition, and per-endpoint rate-limit policy (`rateLimit?`).
1504
+ *
1505
+ * @remarks Import from `@wildo-ai/saas-models`.
1506
+ */
458
1507
  export type ResourceConfiguration_Operation_UrlParameterInfo = {
459
1508
  fieldIdentifier: string;
460
1509
  resourceType: ResourceType;
@@ -464,6 +1513,17 @@ export type ResourceConfiguration_Operation_UrlParameterInfo = {
464
1513
  * undefined for default parent relationships.
465
1514
  */
466
1515
  relationshipField?: string;
1516
+ /**
1517
+ * Scope-via-junction tag, propagated from the synthetic scope-anchored parent
1518
+ * edge (`ResourceRelationship.scopeViaJunction`). When set, this param scopes
1519
+ * the (target) resource's SEARCH/LIST through the named junction `J` rather
1520
+ * than via a direct column the resource owns — e.g. on
1521
+ * `/organizations/{organizationId}/users/search`, `organizationId` carries
1522
+ * `scopeViaJunction: 'organizationMembers'`. The backend contextual filter +
1523
+ * authorization read this off the runtime relationship context. Absent on
1524
+ * normal parent params.
1525
+ */
1526
+ scopeViaJunction?: ResourceType;
467
1527
  };
468
1528
  export type ResourceConfiguration_Operation_UrlInitiatorInfo = {
469
1529
  url: string;
@@ -479,6 +1539,22 @@ export type ResourceConfiguration_Operation_ApiCall<TCustomOperationEnum extends
479
1539
  tokenAuthentication?: TokenAuthenticationConfig;
480
1540
  tokenGeneration?: TokenGenerationConfig;
481
1541
  tokenRevocation?: TokenRevocationConfig;
1542
+ /**
1543
+ * Resolved per-endpoint rate-limit policy (forwarded by the resource
1544
+ * configuration factory from the variant builder parameters). Read at
1545
+ * runtime by `RateLimitBackendService.checkPolicyForVariant` at the
1546
+ * controller pre-flight seam (`controller-resource.backend.service.ts`
1547
+ * → `doOperation`).
1548
+ *
1549
+ * Auto-variants (`SUMMARY` / `CONTEXT` for READ/LIST) inherit this
1550
+ * field from their default URL-bearing variant (`API_CALL` or
1551
+ * `API_CALL_WITH_CALLBACK`) — a single declaration on the default variant
1552
+ * covers all derived auto-variants by design.
1553
+ *
1554
+ * The declaration is inherited by derived variants so every route for this
1555
+ * operation presents one consistent request budget.
1556
+ */
1557
+ rateLimit?: RateLimitConfiguration;
482
1558
  /**
483
1559
  * Function to determine if operation variant is enabled.
484
1560
  * Available in both frontend and backend.
@@ -488,6 +1564,7 @@ export type ResourceConfiguration_Operation_ApiCall<TCustomOperationEnum extends
488
1564
  */
489
1565
  enabledCondition?: ResourceConfiguration_FunctionWithContextNeeds<(params: ResourceConfiguration_OperationVariant_CustomImplementation_FunctionParameters<TMainSchema>) => boolean>;
490
1566
  };
1567
+ /** @wildo_source:part:end saas.models.resource-config.operation-api-call */
491
1568
  export type ResourceConfiguration_Operation_ApiCallWithCallback<TCustomOperationEnum extends EnumLikeType | undefined, TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined, TMainSchema extends z.ZodTypeAny = z.ZodAny> = ResourceConfiguration_Operation_Base<TCustomOperationEnum, TCoreOperationEnum, TMainSchema> & {
492
1569
  variantType: ResourceOperationVariantType.API_CALL_WITH_CALLBACK;
493
1570
  httpVerb: HttpMethod;
@@ -497,6 +1574,14 @@ export type ResourceConfiguration_Operation_ApiCallWithCallback<TCustomOperation
497
1574
  tokenAuthentication?: TokenAuthenticationConfig;
498
1575
  tokenGeneration?: TokenGenerationConfig;
499
1576
  tokenRevocation?: TokenRevocationConfig;
1577
+ /**
1578
+ * Resolved per-endpoint rate-limit policy. Same semantics as on the
1579
+ * API_CALL variant.
1580
+ *
1581
+ * The declaration is inherited by derived variants so every route for this
1582
+ * operation presents one consistent request budget.
1583
+ */
1584
+ rateLimit?: RateLimitConfiguration;
500
1585
  /**
501
1586
  * Function to determine if operation variant is enabled.
502
1587
  * Available in both frontend and backend.
@@ -511,6 +1596,8 @@ export type ResourceConfiguration_Operation_ApiCallWithCallback<TCustomOperation
511
1596
  };
512
1597
  export type ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema extends z.ZodTypeAny = z.ZodAny> = ResourceConfiguration_OperationVariant_ApiCall_BuilderParameters<TMainSchema> | ResourceConfiguration_OperationVariant_ApiCallWithCallback_BuilderParameters<TMainSchema> | ResourceConfiguration_OperationVariant_CronJob_BuilderParameters | ResourceConfiguration_OperationVariant_BatchJob_BuilderParameters | ResourceConfiguration_OperationVariant_InternalCall_BuilderParameters | ResourceConfiguration_OperationVariant_RepositoryOnly_BuilderParameters;
513
1598
  /**
1599
+ * @wildo_source:part:start saas.models.resource-config.operation-variant-for-key facet:layer:shared facet:family:resource-config
1600
+ *
514
1601
  * Variant builder type that distributes operation-specific fields based on the operation key.
515
1602
  *
516
1603
  * Collection-view fields are intersected with the **full** variant union — not restricted to
@@ -523,7 +1610,11 @@ export type ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema
523
1610
  * explicitly through custom operation identifiers plus variant/runtime config,
524
1611
  * not through a special core operation.
525
1612
  */
526
- export type OperationVariant_ForKey<K, TMainSchema extends z.ZodTypeAny = z.ZodAny> = K extends CoreResourceOperation.LIST ? ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema> & CollectionViewFields_List : K extends CoreResourceOperation.SEARCH ? ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema> & CollectionViewFields_Search : ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema>;
1613
+ export type OperationVariant_ForKey<K, TMainSchema extends z.ZodTypeAny = z.ZodAny> = K extends CoreResourceOperation.LIST ? ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema> & CollectionViewFields_List : K extends CoreResourceOperation.SEARCH ? ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema> & CollectionViewFields_Search : K extends CoreResourceOperation ? ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema> : ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema> | (ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema> & {
1614
+ resourceOperationLike: CoreResourceOperation.LIST;
1615
+ } & CollectionViewFields_List) | (ResourceConfiguration_OperationVariant_BuilderParameters<TMainSchema> & {
1616
+ resourceOperationLike: CoreResourceOperation.SEARCH;
1617
+ } & CollectionViewFields_Search);
527
1618
  /**
528
1619
  * Operation config with variant type narrowed by operation key.
529
1620
  * Distributes at the operation-config level; collection-view fields live on the variant.
@@ -542,7 +1633,19 @@ export type OperationConfig_ForKey<K, TMainSchema extends z.ZodTypeAny = z.ZodAn
542
1633
  }[];
543
1634
  m2mNotifications?: M2MNotificationDefinitionWithoutIdentifier[];
544
1635
  };
1636
+ /** @wildo_source:part:end saas.models.resource-config.operation-variant-for-key */
1637
+ /**
1638
+ * @wildo_source:part:start saas.models.resource-config.operation-union facet:layer:shared facet:family:resource-config
1639
+ *
1640
+ * Discriminated union of resolved operation configuration shapes (variant discriminant).
1641
+ */
545
1642
  export type ResourceConfiguration_Operation<TCustomOperationEnum extends EnumLikeType | undefined, TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined, TMainSchema extends z.ZodTypeAny = z.ZodAny> = ResourceConfiguration_Operation_ApiCall<TCustomOperationEnum, TCoreOperationEnum, TMainSchema> | ResourceConfiguration_Operation_ApiCallWithCallback<TCustomOperationEnum, TCoreOperationEnum, TMainSchema> | ResourceConfiguration_Operation_CronJob<TCustomOperationEnum, TCoreOperationEnum, TMainSchema> | ResourceConfiguration_Operation_BatchJob<TCustomOperationEnum, TCoreOperationEnum, TMainSchema> | ResourceConfiguration_Operation_InternalCall<TCustomOperationEnum, TCoreOperationEnum, TMainSchema> | ResourceConfiguration_Operation_RepositoryOnly<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>;
1643
+ /** @wildo_source:part:end saas.models.resource-config.operation-union */
1644
+ /**
1645
+ * @wildo_source:part:start saas.models.resource-config.operation-path facet:layer:shared facet:family:resource-config
1646
+ *
1647
+ * Path key for routing: resource, operation, variant, optional variantKey / bulk.
1648
+ */
546
1649
  export type ResourceConfiguration_OperationPath<TCustomOperationEnum extends EnumLikeType | undefined, TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined> = {
547
1650
  resourceIdentifier: ResourceType;
548
1651
  operationIdentifier: TCustomOperationEnum | TCoreOperationEnum;
@@ -551,6 +1654,7 @@ export type ResourceConfiguration_OperationPath<TCustomOperationEnum extends Enu
551
1654
  isBulkOperation?: boolean;
552
1655
  variantKey?: string;
553
1656
  };
1657
+ /** @wildo_source:part:end saas.models.resource-config.operation-path */
554
1658
  export type ResourceConfiguration_OperationRepositoryPath = {
555
1659
  resourceIdentifier: ResourceType;
556
1660
  operationIdentifier: CoreResourceOperation;
@@ -593,7 +1697,232 @@ export type ResourceConfiguration_Operation_BuilderParameters<TMainSchema extend
593
1697
  }[];
594
1698
  m2mNotifications?: M2MNotificationDefinitionWithoutIdentifier[];
595
1699
  };
1700
+ /**
1701
+ * @wildo_source:part:start saas.models.resource-config.builder-parameters facet:layer:shared facet:family:resource-config
1702
+ *
1703
+ * Valid operation keys from core + custom enums, and builder params for `createResourceConfiguration`.
1704
+ */
596
1705
  export type ValidOperationKeys<TCustomOperationEnum extends EnumLikeType | undefined, TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined> = (TCustomOperationEnum extends EnumLikeType ? EnumValues<TCustomOperationEnum> : never) | (TCoreOperationEnum extends Partial<CoreResourceOperation> ? TCoreOperationEnum : never);
1706
+ /**
1707
+ * @wildo_source:part:start saas.models.resource-config.system-access-policy facet:layer:shared facet:family:resource-config
1708
+ *
1709
+ * Access mode for the ACL-bypassing system-context reads
1710
+ * (`SystemAccessBackendService.readAsSystem` / `listAsSystem`, from
1711
+ * `@wildo-ai/saas-backend-lib`).
1712
+ *
1713
+ * Those primitives run with a synthesised super-admin execution context and
1714
+ * therefore SKIP the caller's scope and role checks entirely. A resource is
1715
+ * readable that way ONLY if its resource configuration opts the verb in. Any
1716
+ * verb left undeclared defaults to `FORBIDDEN`: a system read of a resource
1717
+ * that has not opted in throws `ErrorType.CONFIGURATION` — the framework is
1718
+ * fail-closed here by construction.
1719
+ */
1720
+ export declare enum ResourceSystemAccessMode {
1721
+ /** The verb's system-context primitive is rejected for this resource (default). */
1722
+ FORBIDDEN = "FORBIDDEN",
1723
+ /** The verb's system-context primitive is permitted for this resource. */
1724
+ ALLOWED = "ALLOWED"
1725
+ }
1726
+ /**
1727
+ * Per-resource opt-in policy for the ACL-bypassing system-context primitives
1728
+ * on `SystemAccessBackendService`: the reads (`readAsSystem` / `listAsSystem`)
1729
+ * and the trusted writes (`createAsSystem` / `updateAsSystem` /
1730
+ * `updateManyAsSystem`).
1731
+ *
1732
+ * A system-context call does not REMOVE the authorization decision — it
1733
+ * RELOCATES it from the resource ACL onto the calling service, which MUST
1734
+ * enforce an explicit alternative check (e.g. consumable-token or
1735
+ * email-ownership matching). Declaring this policy is the data owner's
1736
+ * statement that such a bypass is permissible at all, and for which verb. An
1737
+ * absent policy — or a verb set to (or left defaulting to) `FORBIDDEN` — makes
1738
+ * the primitive throw.
1739
+ *
1740
+ * The WRITE verbs additionally let a trusted in-process caller persist the
1741
+ * fields the client-shaped request DTO strips — `.isBackendOnly()` material
1742
+ * (e.g. a credential `passwordHash`) and the context-auto-populated FKs (e.g.
1743
+ * `userId` on a system resource that has no HTTP surface to seed it) — by
1744
+ * re-attaching exactly those fields after the strict parse. They are the
1745
+ * sanctioned path for engine flows like registration that must write system
1746
+ * resources directly; opting a verb in is the data owner's acknowledgement that
1747
+ * a super-admin-context mutation of this resource is legitimate.
1748
+ *
1749
+ * Caveats a system-context call inherits (it runs as super-admin), to weigh
1750
+ * before opting in:
1751
+ * - a READ returns the FULL record — every field, including ones a normal
1752
+ * caller's role / field-visibility would hide — so never forward the result
1753
+ * verbatim to an under-privileged caller; project only what is safe.
1754
+ * - a WRITE bypasses the caller's scope + role ACL, so the calling service
1755
+ * owns the authorization decision (only trusted engine code can reach the
1756
+ * primitive — it is never exposed to an HTTP payload).
1757
+ * - feature flags do not gate it (it is an internal request).
1758
+ * - the policy is RESOURCE-LEVEL: for a polymorphic resource it is shared by
1759
+ * every scope variant (declare it once on the shared config).
1760
+ *
1761
+ * Intentionally DISTINCT from `isSystemResource`: marking a resource as
1762
+ * framework infrastructure does NOT imply that an ACL bypass is acceptable
1763
+ * for its data. Keep the two concepts separate.
1764
+ */
1765
+ export type ResourceSystemAccessPolicy = {
1766
+ /** Governs `readAsSystem`. Omitted ⇒ FORBIDDEN. */
1767
+ read?: ResourceSystemAccessMode;
1768
+ /** Governs `listAsSystem`. Omitted ⇒ FORBIDDEN. */
1769
+ list?: ResourceSystemAccessMode;
1770
+ /** Governs `createAsSystem`. Omitted ⇒ FORBIDDEN. */
1771
+ create?: ResourceSystemAccessMode;
1772
+ /** Governs `updateAsSystem`. Omitted ⇒ FORBIDDEN. */
1773
+ update?: ResourceSystemAccessMode;
1774
+ /** Governs `updateManyAsSystem`. Omitted ⇒ FORBIDDEN. */
1775
+ updateMany?: ResourceSystemAccessMode;
1776
+ /**
1777
+ * Governs the impersonalization see-through reads (`readRetainedAsSystem` /
1778
+ * `listRetainedAsSystem`) — the privileged, audited path that reveals
1779
+ * `retentionStatus = RETAINED` rows hidden-by-default. Omitted ⇒ FORBIDDEN.
1780
+ * Auto-derived to `ALLOWED` by the factory when a resource opts into
1781
+ * `retentionPolicy`; never authored by hand in the common case.
1782
+ *
1783
+ * **LIVE.** `readRetainedAsSystem` / `listRetainedAsSystem` exist and are enforced: the verb is
1784
+ * asserted fail-closed, a privileged human role is required, and every reveal emits a
1785
+ * human-attributed `RETAINED_DATA_ACCESS` audit event. (This block previously said the primitives
1786
+ * were "wired in a later phase" — false since the M5b work landed.)
1787
+ */
1788
+ seeRetained?: ResourceSystemAccessMode;
1789
+ /**
1790
+ * May this resource's rows be swept into a SUBJECT EXPORT bundle (GDPR Art. 15 / Art. 20)?
1791
+ *
1792
+ * Fail-closed by omission, like every other verb here. A subject export reads across the whole
1793
+ * child-direction graph of its subject, so without an explicit opt-in a resource could be
1794
+ * disclosed to a data subject because it merely sits on an edge — nobody having decided that its
1795
+ * contents are appropriate to hand over.
1796
+ *
1797
+ * **The refusal is LOUD, not a silent skip.** When an edge the classifier marked for inclusion
1798
+ * belongs to a resource that has not opted in, the export REFUSES and names it. Silently dropping
1799
+ * it would produce an access bundle that is incomplete without saying so — a disclosure failure
1800
+ * wearing the appearance of a successful response, which is the same class of lie as the routed
1801
+ * export operations this capability replaced. Refusing is a one-line fix per resource; a silent
1802
+ * omission is undetectable.
1803
+ *
1804
+ * NOT derived from `portabilityPolicy`: declaring where fields came from (Art. 20 scoping) and
1805
+ * consenting to be disclosed at all are different decisions, and a resource may legitimately want
1806
+ * the first without the second.
1807
+ */
1808
+ exportSubject?: ResourceSystemAccessMode;
1809
+ };
1810
+ /** @wildo_source:part:end saas.models.resource-config.system-access-policy */
1811
+ /**
1812
+ * Resource-level opt-in to the **impersonalization-on-erasure** capability: on erasure the
1813
+ * resource is impersonalized-and-retained (personal fields scrubbed, row kept for a legal/audit
1814
+ * obligation) instead of hard-deleted. When set, the factory injects a `retentionStatus` marker
1815
+ * and derives the `updateMany` + `seeRetained` system-access grants.
1816
+ *
1817
+ * RESOURCE-level (intrinsic, trigger-agnostic). The per-EDGE trigger is
1818
+ * `onParentDelete.strategy = IMPERSONALIZE_AND_RETAIN`; the per-FIELD scrub is `.impersonalizeWith()`.
1819
+ *
1820
+ * **LIVE — opting in has real effect today.** The marker + derived grants, the in-place scrub writer,
1821
+ * the `IMPERSONALIZE_AND_RETAIN` cascade mode and the hidden-by-default read filter all exist and are
1822
+ * enforced. A RETAINED row is invisible to reads, lists, counts and CHART aggregates, and immutable
1823
+ * to ordinary writes, on BOTH persistence adapters; the only door is the audited see-through path.
1824
+ *
1825
+ * Runtime-proven, not asserted — and scoped precisely, because an earlier revision of this block
1826
+ * over-claimed it. Against a real MongoDB, the erasure orchestrator reaches its terminal path and its
1827
+ * receipt is truthful over a registered subset of resources
1828
+ * (`subject-erasure-completion.mongo.integration.test.ts`); the retention OUTCOME and a SECOND erasure
1829
+ * are observed (`subject-impersonalization-retention-outcome.mongo.integration.test.ts`); and a
1830
+ * retained row is absent from a real application chart over real HTTP
1831
+ * (Wonder Todos `e2e/chart-retention-hide.e2e.ts`).
1832
+ *
1833
+ * What is NOT proven: that an erasure completes over the FULL `onParentDelete` closure, and that
1834
+ * external (provider-side) effects run. The completion lane deliberately requires
1835
+ * `declinedEdges.length > 0`, so it asserts a state in which some edges were NOT executed, and
1836
+ * `externalEffects` is stubbed empty. Do not read "runtime-proven" here as end-to-end completeness.
1837
+ *
1838
+ * (This block previously read "Contract only in this phase … No record is impersonalized-and-retained
1839
+ * yet." That was true when written and became false without being revisited — it is the public
1840
+ * authoring contract an app developer reads before declaring this policy, so it is corrected here
1841
+ * rather than left to mislead.)
1842
+ *
1843
+ * ⚠️ NOT the anonymous-user concept (`isAnonymizable` is pre-auth ownership transposition — the
1844
+ * opposite direction). Reuse of that mechanism, never its name.
1845
+ */
1846
+ /**
1847
+ * WHO a row of this resource is with respect to an erasure, and where that person's session lives.
1848
+ * The companion of {@link ResourceRetentionPolicy}: retention says what happens to the ROW and whether
1849
+ * the row holds personal data at all; this says **whose SESSION an erasure of it must end**.
1850
+ *
1851
+ * The two are independent, and reading this one as "is the row about a person" is the mistake that
1852
+ * cost `NO_PRINCIPAL` its previous name — see {@link ResourceDataSubjectKind}. A CRM contact holds
1853
+ * personal data (`RETAIN_AND_IMPERSONALIZE`) and has no session (`NO_PRINCIPAL`); an invoice holds
1854
+ * none (`RETAIN_ONLY`) and also has no session. Same value here, opposite compliance meaning, and the
1855
+ * retention mode is what tells them apart.
1856
+ *
1857
+ * Required on every resource declaring a {@link ResourceRetentionPolicy}, because those are exactly
1858
+ * the resources that can be passed to `eraseSubjectAsSystem` as a subject (the orchestrator refuses a
1859
+ * subject with no retention policy). Undeclared fails at config build rather than defaulting: the safe
1860
+ * default is unknowable — guessing `NO_PRINCIPAL` silently drops a real person's revocation, and
1861
+ * guessing a linked principal revokes the wrong people. See {@link ResourceDataSubjectKind} for why
1862
+ * the linkage can never be inferred from the presence of a user foreign key.
1863
+ */
1864
+ export interface ResourceDataSubjectPolicy {
1865
+ /** Whose login session an erasure of this row must end — never whether the row is about a person. */
1866
+ kind: ResourceDataSubjectKind;
1867
+ /**
1868
+ * The field naming the `USERS` row whose session an erasure of this row must end.
1869
+ *
1870
+ * REQUIRED when {@link kind} is `LINKED_PRINCIPAL`, and FORBIDDEN otherwise — under
1871
+ * `SELF_PRINCIPAL` the row's own id is the principal, and under `NO_PRINCIPAL` there is no
1872
+ * principal at all, so a field there would be a contradiction rather than redundancy. Both
1873
+ * directions are enforced at config build.
1874
+ */
1875
+ sessionPrincipalField?: string;
1876
+ }
1877
+ export interface ResourceRetentionPolicy {
1878
+ /**
1879
+ * WHAT happens to a row of this resource when its subject is erased.
1880
+ *
1881
+ * Both modes retain the row (kept, marked `RETAINED`, hidden from normal reads and immutable,
1882
+ * readable only through the audited see-through path). They differ on whether the row's own FIELDS
1883
+ * additionally need scrubbing — which is a genuinely separate question, because a record can be
1884
+ * legally retainable while holding no personal data of its own (a financial row that merely POINTS
1885
+ * at a person). Fusing the two forced such a resource to either invent a fake scrub or forgo
1886
+ * retention entirely; keeping them distinct is what makes "retain, nothing to scrub" expressible.
1887
+ */
1888
+ mode: ErasureRetentionMode;
1889
+ }
1890
+ /**
1891
+ * Resource-level DEFAULT for where this resource's field values came from — the axis that decides
1892
+ * GDPR Art. 20 (portability) scope. Per-field overrides are `.portabilityProvenance()`.
1893
+ *
1894
+ * ## Why a resource-level default exists at all
1895
+ *
1896
+ * Art. 20 is intrinsically a per-FIELD question: one row routinely mixes data the subject supplied
1897
+ * (`firstName`) with data the controller produced about them (a computed score, a server-assigned
1898
+ * status). But requiring a decorator on EVERY field of every resource would make the capability
1899
+ * unadoptable, and an unadopted disclosure capability is worse than a coarse one — it means
1900
+ * portability requests cannot be answered at all.
1901
+ *
1902
+ * So the declaration is two-level: this default carries the resource's common case in one line, and
1903
+ * only fields that DIFFER from it need a decorator. A `USER_PROFILES` resource is
1904
+ * `SUBJECT_PROVIDED` by default with a handful of derived exceptions; an `AUDIT_LOGS` resource is
1905
+ * `DERIVED` throughout with none.
1906
+ *
1907
+ * ## Why it is optional, and what happens without it
1908
+ *
1909
+ * Omitting it entirely is legitimate: **Art. 15 (access) never consults provenance**, so an
1910
+ * application can answer access requests in full before annotating anything. Only an Art. 20
1911
+ * portability export needs the axis, and for a resource where neither the field nor this default
1912
+ * declares one, that export REFUSES rather than guessing — see
1913
+ * `SubjectExportFieldScope.UNDECLARED` for why neither guess is the safe one.
1914
+ *
1915
+ * ⚠️ NOT `retentionPolicy`. That says what happens to a value on ERASURE (destroy vs retain-and-
1916
+ * scrub); this says where the value ORIGINATED, for a DISCLOSURE decision. A field is commonly
1917
+ * `SUBJECT_PROVIDED` here and masked on erasure there — orthogonal axes on the same value.
1918
+ */
1919
+ export interface ResourcePortabilityPolicy {
1920
+ /**
1921
+ * The provenance every field of this resource is assumed to carry unless its own
1922
+ * `.portabilityProvenance()` says otherwise.
1923
+ */
1924
+ defaultProvenance: DataPortabilityProvenance;
1925
+ }
597
1926
  /**
598
1927
  * Builder parameters for creating a resource configuration.
599
1928
  * NOTE: databaseSchema has been removed. Backend-only fields are now marked with
@@ -608,15 +1937,101 @@ export type ResourceConfiguration_BuilderParameters<TCustomOperationEnum extends
608
1937
  inheritenceSchemaDefinition?: ResourceConfiguration_InheritanceSchemaDefinition<EnumLikeType, TMainSchema>;
609
1938
  /**
610
1939
  * Persistence adapter (database type) for this resource.
611
- * - `mongodb`: MongoDB with Mongoose ORM (default)
1940
+ * - `mongodb`: MongoDB with Mongoose ORM
612
1941
  * - `postgresql`: PostgreSQL (SQL adapter)
613
1942
  *
614
- * If not specified, uses `appConfig.database.defaultAdapter`.
1943
+ * If not specified, uses `appConfig.database.defaultAdapter` — which is the normal case and
1944
+ * should stay the normal case.
615
1945
  *
616
- * @see DATABASE_AGNOSTIC_REPOSITORY_ANALYSIS.md Section 18.3
1946
+ * **Declaring a value that DISAGREES with the application default is refused at registration
1947
+ * unless {@link ResourceConfiguration_BuilderParameters.persistenceAdapterIsolation} is also
1948
+ * declared.** An application is wholly one adapter by default because two adapters cannot
1949
+ * share a native transaction; the isolation declaration is the only way past that refusal,
1950
+ * and it is a claim about this resource's write topology rather than a way to silence the
1951
+ * error. Declaring an adapter that AGREES with the default is always fine and needs nothing.
617
1952
  */
618
1953
  persistenceAdapter?: PersistenceAdapterType;
1954
+ /**
1955
+ * This resource's declared relationship to cross-adapter atomic write boundaries.
1956
+ *
1957
+ * Required — and only meaningful — when {@link
1958
+ * ResourceConfiguration_BuilderParameters.persistenceAdapter} disagrees with
1959
+ * `appConfig.database.defaultAdapter`. Without it, the resources registry refuses the
1960
+ * application at startup; with it, the registry admits the resource and LOGS the admitted
1961
+ * set, so a mixed configuration is always named and never ambient.
1962
+ *
1963
+ * Read {@link ResourcePersistenceAdapterIsolation} before declaring one: the member is an
1964
+ * assertion about the resource's design that the persistence unit of work will still enforce
1965
+ * at every real boundary.
1966
+ */
1967
+ persistenceAdapterIsolation?: ResourcePersistenceAdapterIsolationType;
1968
+ /**
1969
+ * REQUIRED companion declaration when `persistenceAdapter` is `HTTP_API`; forbidden otherwise.
1970
+ *
1971
+ * Carries everything the external repository needs that the platform does not own: provider
1972
+ * reference (credentials resolve through `ExternalProvidersRegistryBackendService`), transport
1973
+ * dialect, remote entity, ordered key declaration (id synthesis), identity mode, tenancy
1974
+ * stance, erasure stance, and remote-call semantics. The factory enforces presence/absence
1975
+ * coherence and content-validates the declaration.
1976
+ */
1977
+ httpApiBinding?: HttpApiResourceBinding;
1978
+ /** REQUIRED when `persistenceAdapter` is INTROSPECTION; meaningless otherwise. */
1979
+ introspectionBinding?: IntrospectionResourceBinding;
1980
+ /**
1981
+ * OPTIONAL inbound ETL pipeline on an ordinary LOCAL resource — "some resources local, some
1982
+ * remote, ETL between them" (partial-resource coverage, model v3; PR-3). FORBIDDEN on an
1983
+ * HTTP_API-adapter resource: a virtual resource IS the remote side. The factory
1984
+ * content-validates the declaration and every mainSchema-dependent coherence rule (the
1985
+ * remote-key field is a declared `.isBusinessKey()` + excludeFromCreate/Update STRING; mapped
1986
+ * targets exist, accept null unless `required`, and are excludeFromCreate/Update; CLOSED
1987
+ * population refuses caller CREATE operations).
1988
+ */
1989
+ externalDataPipeline?: ExternalDataPipelineDeclaration;
619
1990
  isSystemResource?: boolean;
1991
+ /**
1992
+ * Does this resource's OWN primary-key URL segment name the CALLER, or the SUBJECT?
1993
+ *
1994
+ * Default `true` (the segment names the caller) — deliberately the SAFE default, so a resource
1995
+ * whose author has not considered the question keeps the identity-coherence guard rather than
1996
+ * silently losing it.
1997
+ *
1998
+ * ## Why this cannot be inferred
1999
+ *
2000
+ * The W3.6 identity-coherence guard (`handleUserJwtAuthentication` →
2001
+ * `AUTHORIZATION_USER_ID_MISMATCH`) refuses a request whose URL `userId` differs from the JWT
2002
+ * subject. That is exactly right for `USER_SELF` (`/user-self/{userId}` — the segment IS the
2003
+ * caller, pinned by the horizontal-IDOR probes) and for child routes under a user
2004
+ * (`/users/{userId}/draft-notes` — a PARENT segment naming whose rows these are).
2005
+ *
2006
+ * It is exactly WRONG for `USERS`, whose own `resourceFieldIdentifier` is also `userId` but whose
2007
+ * segment names the TARGET of an administrative action. Both resources are keyed on the same
2008
+ * field name, so no structural rule can tell them apart — the framework already had to add
2009
+ * `coreResourceShared_FieldIdentifierPriority` to disambiguate the very same collision for FK
2010
+ * resolution. This declaration is that disambiguation for IDENTITY.
2011
+ *
2012
+ * ## What it does and does not change
2013
+ *
2014
+ * Setting `false` relaxes ONLY the coherence refusal. It does not touch:
2015
+ * - `initiatorIds.userId`, which is taken from the JWT and spread LAST precisely so a URL can
2016
+ * never spoof the caller (see the `W3.6` comment at that assignment) — so permitting the
2017
+ * mismatch cannot produce impersonation;
2018
+ * - the contextual-field map, which legitimately carries the ADDRESSED resource's id;
2019
+ * - authorization, which still decides whether this caller may run this operation at all.
2020
+ *
2021
+ * Set `false` only for an administrative resource whose primary key is a person/tenant identifier
2022
+ * that a privileged caller is MEANT to address on someone else's behalf.
2023
+ */
2024
+ primaryKeyIdentifiesInitiator?: boolean;
2025
+ /**
2026
+ * Opt-in policy for the ACL-bypassing system-context primitives
2027
+ * (`readAsSystem` / `listAsSystem` and the trusted writes `createAsSystem` /
2028
+ * `updateAsSystem` / `updateManyAsSystem`). Omitted ⇒ EVERY verb FORBIDDEN
2029
+ * (fail-closed): a system-context call on this resource throws unless the
2030
+ * matching verb is explicitly set to ALLOWED. Declare ONLY the verb(s) that
2031
+ * genuinely need a system bypass, and ensure the calling service enforces an
2032
+ * explicit alternative authorization.
2033
+ */
2034
+ systemAccessPolicy?: ResourceSystemAccessPolicy;
620
2035
  coreOperations: TCoreOperationEnum[];
621
2036
  customOperation?: TCustomOperationEnum;
622
2037
  operationsConfiguration: {
@@ -641,8 +2056,42 @@ export type ResourceConfiguration_BuilderParameters<TCustomOperationEnum extends
641
2056
  * Defaults to ADD (simple ownership reassignment).
642
2057
  */
643
2058
  transpositionPolicy?: ResourceTranspositionPolicy;
2059
+ /**
2060
+ * Opt in to impersonalization-on-erasure (retain + scrub instead of hard-delete). When set, the
2061
+ * factory injects a `retentionStatus` marker and derives the `updateMany` / `seeRetained`
2062
+ * system-access grants. Per-field scrub is `.impersonalizeWith()`; the per-edge trigger is the
2063
+ * `IMPERSONALIZE_AND_RETAIN` cascade mode.
2064
+ *
2065
+ * **LIVE.** Marker injection, grant derivation, the scrub writer, the cascade mode and the
2066
+ * hidden-by-default read filter are all enforced today — see `ResourceRetentionPolicy` for the
2067
+ * runtime evidence. Declaring this changes behaviour; it is not a forward declaration.
2068
+ *
2069
+ * Declaring this also REQUIRES {@link dataSubjectPolicy}: a retention-governed resource is exactly
2070
+ * one that can be handed to `eraseSubjectAsSystem` as a subject, so it must say whether its rows are
2071
+ * a person — and if so, whose session an erasure ends.
2072
+ */
2073
+ retentionPolicy?: ResourceRetentionPolicy;
2074
+ /**
2075
+ * WHO a row of this resource is with respect to an erasure — and, when it is a person, which field
2076
+ * names the `USERS` row whose session that erasure must end.
2077
+ *
2078
+ * Mandatory for any resource declaring a {@link retentionPolicy}; meaningless (and rejected) without
2079
+ * one, since a resource with no retention policy can never be an erasure subject. See
2080
+ * {@link ResourceDataSubjectPolicy}.
2081
+ */
2082
+ dataSubjectPolicy?: ResourceDataSubjectPolicy;
2083
+ /**
2084
+ * Resource-level DEFAULT provenance for GDPR Art. 20 (portability) scoping; per-field overrides
2085
+ * are `.portabilityProvenance()`. Optional — Art. 15 (access) never consults provenance, so an
2086
+ * application can answer access requests without declaring this. See
2087
+ * {@link ResourcePortabilityPolicy}.
2088
+ */
2089
+ portabilityPolicy?: ResourcePortabilityPolicy;
644
2090
  };
2091
+ /** @wildo_source:part:end saas.models.resource-config.builder-parameters */
645
2092
  /**
2093
+ * @wildo_source:part:start saas.models.resource-config.resource-relationships-buckets facet:layer:shared facet:family:resource-config
2094
+ *
646
2095
  * Categorized resource relationships produced by `transformResourceRelationships()`.
647
2096
  *
648
2097
  * All relationships — including conditional ones (those with `discriminator` or `condition`) —
@@ -668,6 +2117,7 @@ export type ResourceConfiguration_ResourceRelationships = {
668
2117
  childRelationships: ResourceRelationship[];
669
2118
  selfRelationships: ResourceRelationship[];
670
2119
  };
2120
+ /** @wildo_source:part:end saas.models.resource-config.resource-relationships-buckets */
671
2121
  /**
672
2122
  * Returns all relationships where this resource acts as a child (has a parent).
673
2123
  * Merges `childRelationships` with `selfRelationships` — self-refs are both
@@ -682,6 +2132,8 @@ export declare function getChildDirectionRelationships(rels: ResourceConfigurati
682
2132
  */
683
2133
  export declare function getParentDirectionRelationships(rels: ResourceConfiguration_ResourceRelationships): ResourceRelationship[];
684
2134
  /**
2135
+ * @wildo_source:part:start saas.models.resource-config.resource-configuration facet:layer:shared facet:family:resource-config
2136
+ *
685
2137
  * Full resource configuration type.
686
2138
  * NOTE: databaseSchema has been removed. Backend-only fields are now marked with
687
2139
  * the isBackendOnly decorator in mainSchema and are stripped at the service layer.
@@ -704,9 +2156,52 @@ export type ResourceConfiguration<TCustomOperationEnum extends EnumLikeType | un
704
2156
  * Resolved at runtime from:
705
2157
  * 1. This field (if specified)
706
2158
  * 2. `appConfig.database.defaultAdapter` (fallback)
2159
+ *
2160
+ * A value disagreeing with the application default is admitted at registration ONLY when
2161
+ * {@link ResourceConfiguration.persistenceAdapterIsolation} is declared beside it.
707
2162
  */
708
2163
  persistenceAdapter?: PersistenceAdapterType;
2164
+ /**
2165
+ * This resource's declared relationship to cross-adapter atomic write boundaries; see the
2166
+ * authoring-side declaration and {@link ResourcePersistenceAdapterIsolation} for the full
2167
+ * rationale.
2168
+ *
2169
+ * Carried through to the resolved config UNMATERIALISED (no default is substituted) because
2170
+ * absence is semantically load-bearing here: the registry's admission asks whether the author
2171
+ * MADE the claim, and a materialised default would answer that question for them.
2172
+ */
2173
+ persistenceAdapterIsolation?: ResourcePersistenceAdapterIsolationType;
2174
+ /**
2175
+ * The external HTTP-API binding — present exactly when `persistenceAdapter` is `HTTP_API`
2176
+ * (factory-enforced both ways). See the authoring-side declaration for the full contract.
2177
+ */
2178
+ httpApiBinding?: HttpApiResourceBinding;
2179
+ /** REQUIRED when `persistenceAdapter` is INTROSPECTION; meaningless otherwise. */
2180
+ introspectionBinding?: IntrospectionResourceBinding;
2181
+ /**
2182
+ * The inbound ETL pipeline, when this LOCAL resource declared one — parsed + coherence-checked
2183
+ * by the factory (see the authoring-side declaration for the full contract).
2184
+ */
2185
+ externalDataPipeline?: ExternalDataPipelineDeclaration;
709
2186
  isSystemResource: boolean;
2187
+ /**
2188
+ * Whether this resource's own primary-key URL segment names the CALLER (see the authoring-side
2189
+ * declaration for the full rationale).
2190
+ *
2191
+ * Materialised by the factory to a concrete boolean, defaulting to `true`, so the consuming guard
2192
+ * never has to distinguish "declared true" from "not declared" — an un-migrated or hand-built
2193
+ * config keeps the identity-coherence refusal.
2194
+ */
2195
+ primaryKeyIdentifiesInitiator: boolean;
2196
+ /**
2197
+ * Opt-in policy gating the ACL-bypassing `readAsSystem` / `listAsSystem`
2198
+ * primitives for this resource. Optional on the resolved config so that
2199
+ * non-factory-built configs (mocks/tests) need not declare it; the factory
2200
+ * always materialises a concrete value (defaulting both verbs to FORBIDDEN
2201
+ * when unauthored). The system-read primitives treat an absent policy — or
2202
+ * any verb not explicitly ALLOWED — as forbidden and throw.
2203
+ */
2204
+ systemAccessPolicy?: ResourceSystemAccessPolicy;
710
2205
  /**
711
2206
  * W7.3a: Marks this resource as accessible to anonymous sessions.
712
2207
  * When true, the engine generates dual URL paths and a STANDALONE relationship to ANONYMOUS_USERS.
@@ -717,17 +2212,80 @@ export type ResourceConfiguration<TCustomOperationEnum extends EnumLikeType | un
717
2212
  * Only meaningful when isAnonymizable is true. Defaults to ADD.
718
2213
  */
719
2214
  transpositionPolicy: ResourceTranspositionPolicy;
2215
+ /** Resolved impersonalization opt-in (undefined when the resource did not opt into `retentionPolicy`). */
2216
+ retentionPolicy?: ResourceRetentionPolicy;
2217
+ /**
2218
+ * Resolved data-subject declaration. Present exactly when `retentionPolicy` is (the factory refuses
2219
+ * a retention-governed resource that declares no `dataSubjectPolicy`, and refuses a
2220
+ * `dataSubjectPolicy` on a resource with no `retentionPolicy`), so a consumer that has one may read
2221
+ * the other without a second existence check.
2222
+ */
2223
+ dataSubjectPolicy?: ResourceDataSubjectPolicy;
2224
+ /** Resolved portability default (undefined when the resource declared no `portabilityPolicy` — an
2225
+ * Art. 15 export is unaffected, an Art. 20 export refuses on any field that also lacks its own
2226
+ * `.portabilityProvenance()`). */
2227
+ portabilityPolicy?: ResourcePortabilityPolicy;
720
2228
  operations: ResourceConfiguration_Operation<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>[];
721
2229
  };
2230
+ /** @wildo_source:part:end saas.models.resource-config.resource-configuration */
722
2231
  export type ResourceConfiguration_InitializationFactory<TCustomOperationEnum extends EnumLikeType | undefined, TCoreOperationEnum extends Partial<CoreResourceOperation> | undefined, TMainSchema extends z.ZodTypeAny> = (resourcesRelationships: ResourceRelationship[]) => ResourceConfiguration<TCustomOperationEnum, TCoreOperationEnum, TMainSchema>;
2232
+ /**
2233
+ * The factory map accepted by the RUNTIME REGISTRY initializers
2234
+ * (`ResourcesRegistryBackendService.initialize`, `ResourceRegistry_InitializerParameters`).
2235
+ *
2236
+ * ⚠️ The leading `TResourceType extends undefined` conditional is DISTRIBUTIVE, and it must stay
2237
+ * that way. A registry initializer takes this map at a position whose type argument is INFERRED
2238
+ * from the argument, and inference only reaches the mapped-type branch through that distributive
2239
+ * chain. Prefixing the chain with a non-distributive guard (`[TResourceType] extends [never] ? …`)
2240
+ * stops the inference dead: every such parameter falls back to its `= undefined` default, so a
2241
+ * perfectly good map is reported as `not assignable to parameter of type 'undefined'`. That
2242
+ * shipped on 2026-08-26 and failed the compile of BOTH `platform-apps-manager` and
2243
+ * `platform-crontabs-batches-manager` — the only two runtimes that pass a typed custom map
2244
+ * positionally — while every other consumer stayed green because it passes `undefined` or a value
2245
+ * already widened by a cast.
2246
+ *
2247
+ * The consequence of the distribution is that a union `TResourceType` yields a UNION of
2248
+ * single-key maps rather than one complete map. That is weaker than it looks, and it is why a
2249
+ * module's OWN map uses {@link ResourceConfiguration_ModuleInitializationFactoryMap} instead —
2250
+ * including for the empty-module case (`never`), which this type deliberately does not model:
2251
+ * distributing over `never` yields `never`, and no ordering of distributive branches can change
2252
+ * that.
2253
+ */
723
2254
  export type ResourceConfiguration_InitializationFactoryMap<TResourceType extends ResourceType | undefined = undefined> = TResourceType extends undefined ? undefined : [TResourceType] extends [undefined] ? undefined : TResourceType extends ResourceType ? {
724
2255
  [key in TResourceType]: ResourceConfiguration_InitializationFactory<any, any, any>;
725
2256
  } : {
726
2257
  [key: string]: ResourceConfiguration_InitializationFactory<any, any, any>;
727
2258
  };
2259
+ /**
2260
+ * The factory map a MODULE declares for its OWN resources: exactly one entry per member of that
2261
+ * module's resource-type enum — no missing entry, no key the enum does not declare.
2262
+ *
2263
+ * This is a plain mapped type, with no conditional in front of it, and both of its properties
2264
+ * follow from that:
2265
+ *
2266
+ * - a union of enum members produces ONE complete map (not the union of single-key maps that
2267
+ * {@link ResourceConfiguration_InitializationFactoryMap} produces), which is the truthful
2268
+ * contract for a module: it owns all of its resources;
2269
+ * - a FRESHLY SCAFFOLDED module, whose resource enum has no members yet, produces the empty map
2270
+ * `{}`. A memberless enum is numeric by default, so the scaffold writes
2271
+ * `<Module>_ResourceType & string`, which is `never` until the first string member arrives —
2272
+ * and a mapped type over `never` is `{}`, so the empty declaration type-checks without any
2273
+ * `never` special case.
2274
+ *
2275
+ * The value is assignable to every consumer that takes the registry-facing map, so a module can be
2276
+ * merged into an application registry unchanged.
2277
+ */
2278
+ export type ResourceConfiguration_ModuleInitializationFactoryMap<TResourceType extends ResourceType> = {
2279
+ [key in TResourceType]: ResourceConfiguration_InitializationFactory<any, any, any>;
2280
+ };
728
2281
  export type AnyResourceConfiguration = ResourceConfiguration<any, // TCustomOperationEnum - allow any custom operations
729
2282
  any, // TCoreOperationEnum - allow any subset of core operations
730
2283
  any>;
2284
+ /**
2285
+ * @wildo_source:part:start saas.models.resource-config.resources-registry facet:layer:shared facet:family:resource-config
2286
+ *
2287
+ * Aggregated registry passed to app bootstrap (relationships + per-resource configs + FK maps).
2288
+ */
731
2289
  export type ResourcesRegistry = {
732
2290
  notificationBadgeDefinitions: NotificationBadgeDefinition[];
733
2291
  additionalUserNotificationDefinitions: UserNotificationDefinition[];
@@ -735,6 +2293,20 @@ export type ResourcesRegistry = {
735
2293
  resourceConfigurations: {
736
2294
  [key: ResourceType]: AnyResourceConfiguration;
737
2295
  };
2296
+ /**
2297
+ * The resource types the APPLICATION registered — its own, never the engine's.
2298
+ *
2299
+ * The registry composes app and core factory maps into one `resourceConfigurations`, which is what
2300
+ * every runtime consumer wants. This is the one place the two are still distinguishable, so the
2301
+ * split is recorded HERE rather than re-derived by each consumer from a core key set — which would
2302
+ * be a second enumeration of a population this file already knows.
2303
+ *
2304
+ * Its consumer today is the personal-data declaration report, which asks a question only an
2305
+ * application author can act on: the engine declares its own posture on ~85 resources, and putting
2306
+ * those in front of a reader of a report about THEIR application is how a diagnostic channel stops
2307
+ * being read.
2308
+ */
2309
+ applicationResourceTypes: ResourceType[];
738
2310
  /**
739
2311
  * Map of ResourceType to its standard field identifier (e.g., USERS -> userId).
740
2312
  * Used for FK field resolution without string manipulation.
@@ -745,7 +2317,30 @@ export type ResourcesRegistry = {
745
2317
  * Used for quick lookup of resource type from a FK field name.
746
2318
  */
747
2319
  fieldIdentifierToResourceType: Record<string, ResourceType>;
2320
+ /**
2321
+ * Scope-required reference-search junctions, keyed by `${target}|${scope}`.
2322
+ * When a foreign key targets `T` from a resource whose primary scope is `S`,
2323
+ * and `T ↔ S` is a MANY-to-MANY relationship via junction `J`, a reference
2324
+ * people-picker searches `T` scoped to the caller's current `S` through `J`
2325
+ * (rather than enumerating every `T`). Derived from the registered M:N
2326
+ * relationships at registry init.
2327
+ */
2328
+ manyToManyScopeJunctions: ManyToManyScopeJunctionMap;
2329
+ /**
2330
+ * Resources narrowed by ORGANIZATION UNIT, keyed by resource type — the engine's opt-ins merged
2331
+ * with the application's, validated at boot against the authorization-plane containment rule.
2332
+ *
2333
+ * Opting a resource in means: a principal whose authority for it comes ONLY from a unit grant is
2334
+ * admitted by the operation gate and then confined to the rows of those units. Narrowing is
2335
+ * ADDITIVE — an organization-wide grant that already satisfies the operation is never narrowed —
2336
+ * so opting in can only widen who can reach the resource, never shrink an existing result set.
2337
+ *
2338
+ * Empty for an application that declares none, which is the default: narrowing is never inferred
2339
+ * from the presence of a unit field. See `OrganizationUnitNarrowingDeclaration`.
2340
+ */
2341
+ organizationUnitNarrowing: Readonly<Partial<Record<ResourceType, OrganizationUnitNarrowingDeclaration>>>;
748
2342
  };
2343
+ /** @wildo_source:part:end saas.models.resource-config.resources-registry */
749
2344
  export type ResourceRegistry_InitializerParameters<TResourceType extends ResourceType | undefined = undefined> = [
750
2345
  TResourceType
751
2346
  ] extends [undefined] ? {