@wildo-ai/saas-models 1.1.2 → 1.1.3

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 (410) hide show
  1. package/dist/esm/applications/applications-context.schemas.d.ts +14 -10
  2. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  3. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  4. package/dist/esm/applications/applications.shared.resources-config.schemas.js +4 -3
  5. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  6. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +0 -4
  7. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  8. package/dist/esm/billing/billing-configuration.shared.schemas.js +59 -17
  9. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  10. package/dist/esm/billing/billing-enums.shared.schemas.d.ts +77 -21
  11. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  12. package/dist/esm/billing/billing-enums.shared.schemas.js +85 -23
  13. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  14. package/dist/esm/billing/billing-types.shared.schemas.d.ts +3 -3
  15. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  16. package/dist/esm/billing/price.shared.schemas.js +7 -1
  17. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  18. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  19. package/dist/esm/billing/product-behavior-policy.shared.schemas.js +52 -11
  20. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  21. package/dist/esm/billing/product-definition.shared.schemas.d.ts +2 -2
  22. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +2 -2
  23. package/dist/esm/billing/product.shared.schemas.d.ts +2 -2
  24. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  25. package/dist/esm/billing/product.shared.schemas.js +7 -3
  26. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  27. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +1 -1
  28. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  29. package/dist/esm/billing/subscription.shared.resources-config.schemas.js +15 -1
  30. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  31. package/dist/esm/billing/usage-record.shared.schemas.d.ts +7 -3
  32. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  33. package/dist/esm/billing/usage-record.shared.schemas.js +22 -3
  34. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  35. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +69 -2
  36. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  37. package/dist/esm/companion/provider-discovery.shared.schemas.js +20 -1
  38. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  39. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +85 -0
  40. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -0
  41. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +157 -0
  42. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -0
  43. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +23 -0
  44. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  45. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +56 -0
  46. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  47. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +480 -20
  48. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  49. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +547 -23
  50. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  51. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  52. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +82 -3
  53. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  54. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +31 -30
  55. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
  56. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +98 -3
  57. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
  58. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +17 -0
  59. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  60. package/dist/esm/compliance/privacy/privacy.shared.schemas.js +27 -4
  61. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  62. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts +82 -29
  63. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  64. package/dist/esm/compliance/privacy/redaction.shared.schemas.js +95 -29
  65. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  66. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  67. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js +12 -5
  68. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  69. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +21 -0
  70. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  71. package/dist/esm/config/analytics-value-moments.shared.schemas.js +20 -0
  72. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  73. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +7 -5
  74. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  75. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +8 -1
  76. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  77. package/dist/esm/config/auth-config-resolution.shared.utils.js +29 -0
  78. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  79. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +95 -17
  80. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  81. package/dist/esm/config/entity-identity-config.shared.schemas.js +86 -8
  82. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  83. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +12 -12
  84. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +28 -0
  85. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  86. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +28 -0
  87. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  88. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +45 -12
  89. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  90. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  91. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +103 -58
  92. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  93. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +176 -15
  94. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  95. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts +15 -3
  96. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  97. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +32 -5
  98. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  99. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +83 -7
  100. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  101. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +59 -0
  102. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -0
  103. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +61 -0
  104. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -0
  105. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +97 -0
  106. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -0
  107. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +41 -0
  108. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -0
  109. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +148 -2
  110. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  111. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +56 -1
  112. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  113. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +5 -28
  114. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  115. package/dist/esm/external-providers/provider-capability.shared.schemas.js +4 -2
  116. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  117. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +18 -8
  118. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  119. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +9 -4
  120. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  121. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +338 -0
  122. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -0
  123. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +332 -0
  124. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -0
  125. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +178 -9
  126. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
  127. package/dist/esm/external-providers/provider-metadata.shared.schemas.js +181 -9
  128. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
  129. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +7 -5
  130. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  131. package/dist/esm/external-providers/provider-protocol.shared.schemas.js +7 -5
  132. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
  133. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts +40 -0
  134. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -0
  135. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js +80 -0
  136. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -0
  137. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  138. package/dist/esm/features/core-feature-definitions.shared.js +7 -1
  139. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  140. package/dist/esm/features/feature-builders.shared.d.ts +32 -0
  141. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  142. package/dist/esm/features/feature-builders.shared.js +32 -0
  143. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  144. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts +14 -2
  145. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
  146. package/dist/esm/files/file-upload-grant.shared.schemas.js +44 -5
  147. package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
  148. package/dist/esm/files/files.shared.schemas.d.ts +15 -8
  149. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  150. package/dist/esm/files/files.shared.schemas.js +15 -8
  151. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  152. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  153. package/dist/esm/flows-actors/actors.shared.schemas.js +3 -2
  154. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  155. package/dist/esm/flows-actors/agents.shared.schemas.d.ts +54 -5
  156. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  157. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  158. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +6 -6
  159. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +0 -3
  160. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
  161. package/dist/esm/flows-actors/deliberation.shared.schemas.js +0 -5
  162. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
  163. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +14 -0
  164. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  165. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +40 -3
  166. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  167. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +19 -0
  168. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  169. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +33 -0
  170. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  171. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts +14 -9
  172. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  173. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +14 -9
  174. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  175. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  176. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +3 -2
  177. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  178. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  179. package/dist/esm/flows-actors/flows.shared.schemas.js +3 -2
  180. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  181. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts +128 -0
  182. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -0
  183. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +142 -0
  184. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -0
  185. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +0 -3
  186. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +1 -1
  187. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +1 -4
  188. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +1 -1
  189. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts +0 -16
  190. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
  191. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js +1 -17
  192. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
  193. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +3 -3
  194. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js +3 -3
  195. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
  196. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +2 -8
  197. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +1 -1
  198. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +4 -15
  199. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +1 -1
  200. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
  201. package/dist/esm/guidance/guidance-state.shared.utils.js +1 -0
  202. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
  203. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +8 -0
  204. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  205. package/dist/esm/guidance/progression-state.shared.schemas.d.ts +46 -0
  206. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  207. package/dist/esm/guidance/progression-state.shared.schemas.js +49 -0
  208. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  209. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +320 -50
  210. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  211. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +137 -36
  212. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
  213. package/dist/esm/index.d.ts +9 -0
  214. package/dist/esm/index.d.ts.map +1 -1
  215. package/dist/esm/index.js +9 -0
  216. package/dist/esm/index.js.map +1 -1
  217. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +11 -2
  218. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  219. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  220. package/dist/esm/notifications/email/email-template.shared.enums.d.ts +15 -0
  221. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
  222. package/dist/esm/notifications/email/email-template.shared.enums.js +15 -0
  223. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
  224. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +1 -0
  225. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  226. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +19 -0
  227. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  228. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +30 -0
  229. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  230. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +65 -1
  231. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  232. package/dist/esm/notifications/notification-badges.core.definitions.d.ts +6 -4
  233. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  234. package/dist/esm/notifications/notification-badges.core.definitions.js +6 -4
  235. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  236. package/dist/esm/notifications/notification-badges.schemas.d.ts +167 -5
  237. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  238. package/dist/esm/notifications/notification-badges.schemas.js +191 -6
  239. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  240. package/dist/esm/notifications/notifications.shared.schemas.d.ts +107 -0
  241. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/notifications/notifications.shared.schemas.js +149 -1
  243. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  244. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  245. package/dist/esm/organizations/organization-notifications.shared.schemas.js +22 -1
  246. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  247. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +26 -0
  248. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  249. package/dist/esm/organizations/organization-preferences.shared.schemas.js +25 -0
  250. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  251. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +25 -0
  252. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  253. package/dist/esm/organizations/organization-profile.shared.schemas.js +42 -17
  254. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  255. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +3 -2
  256. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  257. package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -2
  258. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  259. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  260. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +18 -3
  261. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  262. package/dist/esm/public-runtime/index.d.ts +49 -2
  263. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  264. package/dist/esm/public-runtime/index.js +48 -1
  265. package/dist/esm/public-runtime/index.js.map +1 -1
  266. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +6 -5
  267. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  268. package/dist/esm/queue/jobs.shared.resources-config.schemas.js +6 -5
  269. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  270. package/dist/esm/queue/jobs.shared.schemas.d.ts +16 -3
  271. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  272. package/dist/esm/queue/jobs.shared.schemas.js +16 -3
  273. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  274. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts +137 -0
  275. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -0
  276. package/dist/esm/requests/manual-controllers-routes-documentation.js +1201 -0
  277. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -0
  278. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +67 -0
  279. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  280. package/dist/esm/requests/manual-controllers-routes-urls.js +78 -0
  281. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  282. package/dist/esm/requests/rate-limits.shared.schemas.d.ts +11 -1
  283. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  284. package/dist/esm/requests/rate-limits.shared.schemas.js +11 -1
  285. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  286. package/dist/esm/requests/websocket.shared.schemas.d.ts +27 -4
  287. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  288. package/dist/esm/requests/websocket.shared.schemas.js +35 -0
  289. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  290. package/dist/esm/resources/resources-config.shared.factory.d.ts +1 -0
  291. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  292. package/dist/esm/resources/resources-config.shared.factory.js +105 -20
  293. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  294. package/dist/esm/resources/resources-config.shared.schemas.d.ts +254 -72
  295. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  296. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  297. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  298. package/dist/esm/resources/resources-registry.shared.core.definitions.js +97 -5
  299. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  300. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  301. package/dist/esm/resources/resources-relationships.shared.factory.js +15 -0
  302. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  303. package/dist/esm/resources/resources.shared.core.definitions.d.ts +37 -0
  304. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  305. package/dist/esm/resources/resources.shared.core.definitions.js +51 -0
  306. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  307. package/dist/esm/resources/resources.shared.schemas.d.ts +11 -2
  308. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  309. package/dist/esm/resources/resources.shared.schemas.js +34 -3
  310. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  311. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts +51 -0
  312. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -0
  313. package/dist/esm/resources/utils/field-value-disclosure.utils.js +53 -0
  314. package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -0
  315. package/dist/esm/resources/utils/resources-summary.utils.d.ts +16 -2
  316. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  317. package/dist/esm/resources/utils/resources-summary.utils.js +19 -5
  318. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  319. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  320. package/dist/esm/resources/utils/shared-persistence-collection.utils.js +11 -0
  321. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  322. package/dist/esm/runtime/domain-module.shared.definitions.d.ts +25 -0
  323. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  324. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  325. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
  326. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  327. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +38 -0
  328. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  329. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
  330. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  331. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +38 -0
  332. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  333. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +4 -11
  334. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  335. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +0 -1
  336. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  337. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +84 -5
  338. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  339. package/dist/esm/security/authentications/authentication.shared.schemas.js +83 -3
  340. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  341. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +1 -0
  342. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  343. package/dist/esm/security/authentications/registration.shared.dto.schemas.js +11 -0
  344. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  345. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +15 -0
  346. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  347. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +21 -4
  348. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  349. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +61 -1
  350. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  351. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +208 -6
  352. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  353. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts +37 -27
  354. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  355. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +134 -12
  356. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  357. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +0 -6
  358. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  359. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +17 -8
  360. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  361. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  362. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +27 -0
  363. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  364. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +52 -7
  365. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
  366. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js +45 -8
  367. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
  368. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +31 -0
  369. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -0
  370. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js +198 -0
  371. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -0
  372. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +31 -0
  373. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -0
  374. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +191 -0
  375. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -0
  376. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +250 -0
  377. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -0
  378. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +486 -0
  379. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -0
  380. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +4 -1
  381. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  382. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +29 -0
  383. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
  384. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +4 -1
  385. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
  386. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +29 -0
  387. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  388. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +6 -0
  389. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  390. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +31 -0
  391. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  392. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts +13 -0
  393. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
  394. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js +24 -3
  395. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
  396. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +4 -4
  397. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +4 -4
  398. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  399. package/dist/esm/users/user-self.shared.resources-config.schemas.js +33 -3
  400. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  401. package/dist/esm/users/users.shared.resources-config.schemas.d.ts +17 -1
  402. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  403. package/dist/esm/users/users.shared.resources-config.schemas.js +136 -5
  404. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  405. package/dist/esm/users/users.shared.schemas.d.ts +43 -12
  406. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  407. package/dist/esm/users/users.shared.schemas.js +38 -7
  408. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  409. package/dist/tsconfig.build.tsbuildinfo +1 -1
  410. package/package.json +4 -4
@@ -0,0 +1,332 @@
1
+ /**
2
+ * Frontend-surface atoms a provider declares: what it needs the page to be
3
+ * ALLOWED to reach (its CSP footprint), which vendor SDK package it loads, and
4
+ * which third-party `<script>` tags it asks the surface to add.
5
+ *
6
+ * ## Why these are DATA and live here
7
+ *
8
+ * A frontend provider reaches its surface through TWO channels, and only one of
9
+ * them can carry code:
10
+ *
11
+ * - the **DATA** channel — `FrontendProviderEntry`, projected by the backend
12
+ * into `/application-config` and materialized into the generated
13
+ * frontend-services artifact. It is JSON end to end, so nothing
14
+ * function-valued survives it (it used to be cast to a module type anyway,
15
+ * which is the defect this split closes);
16
+ * - the **CODE** channel — the provider package's own facet barrel, imported
17
+ * by the bundle through the generated `frontend-providers.generated.ts`.
18
+ *
19
+ * Everything in this file is the DATA half. It is what the CLI, the CSP
20
+ * composer and the bundle-isolation policy need to SEE without executing any
21
+ * frontend module — and the CLI genuinely cannot execute one: it is a Node
22
+ * process and these modules are browser-bound. The executable half (`sdk.activate`,
23
+ * `publicConfigSchema`) lives on the facet module types in
24
+ * `@wildo-ai/external-connectors-public` and never crosses this boundary.
25
+ *
26
+ * Added by slice S4a of epic #337 (issue #332).
27
+ */
28
+ import { z } from 'zod';
29
+ /**
30
+ * The origins a provider needs the composed Content-Security-Policy to admit,
31
+ * grouped by WHAT THE PROVIDER IS REACHING rather than by CSP directive name.
32
+ *
33
+ * ## Why semantic buckets and not directive names
34
+ *
35
+ * `CSP_DIRECTIVE_NAMES` is a closed vocabulary that already has one named
36
+ * runtime source, in `@wildo-ai/platform-config-lib`. That package DEPENDS on
37
+ * this one, so this file cannot reference it, and re-declaring the list here
38
+ * would create a second source for one vocabulary — precisely what the
39
+ * one-named-source rule exists to prevent, and the way the two copies would
40
+ * drift the first time a directive is added.
41
+ *
42
+ * Keying on intent instead is also the better contract. A provider author knows
43
+ * "my SDK is fetched from `https://js.stripe.com` and it calls back to
44
+ * `https://api.stripe.com`"; which directive grades which fetch is framework
45
+ * knowledge, and it lives in exactly one place — the bucket-to-directive
46
+ * mapping in `platform-config-lib`'s `csp-emit.ts`.
47
+ *
48
+ * ## Why it is STRICT while the entry that carries it is loose
49
+ *
50
+ * The entry is a WIRE record read by a possibly-older consumer, so it tolerates
51
+ * unknown keys (see `frontend-provider-entry.shared.schemas.ts`). This footprint
52
+ * is AUTHORED, by a provider package, and validated where it is authored — so a
53
+ * misspelled bucket must fail loudly rather than contribute nothing. That
54
+ * distinction matters more here than anywhere else in the frontend surface:
55
+ * CSP is enforced in production and report-only in development, so a bucket that
56
+ * silently contributes nothing is invisible until the provider breaks in
57
+ * production only.
58
+ *
59
+ * Adding a bucket is not a one-sided producer change either — a new bucket is
60
+ * useless until `csp-emit.ts` maps it to a directive — so strictness costs no
61
+ * version-skew tolerance that was ever available.
62
+ *
63
+ * Every field defaults to `[]`: a provider that declares a footprint at all is
64
+ * making a complete statement about the buckets it did not name.
65
+ */
66
+ /**
67
+ * Which bucket an origin lands in, as a value a provider can name.
68
+ *
69
+ * The bucket names are already the footprint's field names; this enum is what
70
+ * lets a provider REFER to one — a derived origin has to say where it goes, and
71
+ * a bare string there would be a second, unexplained spelling of a closed
72
+ * vocabulary. A compile-time check below pins the two together.
73
+ */
74
+ export var ProviderFrontendCspOriginBucket;
75
+ (function (ProviderFrontendCspOriginBucket) {
76
+ ProviderFrontendCspOriginBucket["SCRIPT"] = "scriptOrigins";
77
+ ProviderFrontendCspOriginBucket["CONNECT"] = "connectOrigins";
78
+ ProviderFrontendCspOriginBucket["FRAME"] = "frameOrigins";
79
+ ProviderFrontendCspOriginBucket["IMG"] = "imgOrigins";
80
+ ProviderFrontendCspOriginBucket["STYLE"] = "styleOrigins";
81
+ ProviderFrontendCspOriginBucket["FONT"] = "fontOrigins";
82
+ })(ProviderFrontendCspOriginBucket || (ProviderFrontendCspOriginBucket = {}));
83
+ /**
84
+ * An origin the framework must READ OUT OF the provider's own public config,
85
+ * because the provider cannot know it.
86
+ *
87
+ * The case that forced this: an error-monitoring provider sends to the host
88
+ * inside its DSN, and a product-analytics provider to whatever `apiHost` the
89
+ * application configured — including a self-hosted one. Both are per
90
+ * APPLICATION, and often per ENVIRONMENT, so no static list on the provider
91
+ * module can contain them. Without this the application would have to author
92
+ * the same host twice — once as the provider's config and once in its CSP — and
93
+ * the copy that drifts fails in production only, because development is
94
+ * report-only.
95
+ *
96
+ * Resolution is data, not code: the CLI takes `publicConfig[publicConfigKey]`,
97
+ * reads its URL origin, and adds it to `bucket`. An absent key contributes
98
+ * nothing (the provider simply is not configured for that service); a key that
99
+ * is present and is NOT a URL fails the sync loudly, because silently dropping
100
+ * it is the exact failure this exists to prevent.
101
+ */
102
+ export const ProviderFrontendCspDerivedOriginSchema = z.strictObject({
103
+ /** Key in this provider's `publicConfig` whose value is a URL. */
104
+ publicConfigKey: z.string().min(1),
105
+ bucket: z.enum(ProviderFrontendCspOriginBucket),
106
+ });
107
+ export const ProviderFrontendCspFootprintSchema = z.strictObject({
108
+ /** Origins the surface loads executable script from (`script-src`). */
109
+ scriptOrigins: z.array(z.string().min(1)).default([]),
110
+ /** Origins the provider's code opens fetch / XHR / WebSocket connections to (`connect-src`). */
111
+ connectOrigins: z.array(z.string().min(1)).default([]),
112
+ /** Origins the provider embeds in an iframe — a picker, a checkout, a meeting (`frame-src`). */
113
+ frameOrigins: z.array(z.string().min(1)).default([]),
114
+ /** Origins the provider loads images or pixels from (`img-src`). */
115
+ imgOrigins: z.array(z.string().min(1)).default([]),
116
+ /** Origins the provider loads stylesheets from (`style-src`). */
117
+ styleOrigins: z.array(z.string().min(1)).default([]),
118
+ /** Origins the provider loads web fonts from (`font-src`). */
119
+ fontOrigins: z.array(z.string().min(1)).default([]),
120
+ /**
121
+ * Origins the framework reads out of this provider's own `publicConfig`,
122
+ * for the endpoints a provider cannot know in advance. See
123
+ * {@link ProviderFrontendCspDerivedOriginSchema}.
124
+ */
125
+ derivedOrigins: z.array(ProviderFrontendCspDerivedOriginSchema).default([]),
126
+ });
127
+ /**
128
+ * Fills in the buckets a declaration did not name.
129
+ *
130
+ * The ONE place that normalization happens, used by the projection that builds
131
+ * an entry and by the hydration join that compares one against a module. Two
132
+ * copies would eventually disagree about whether an unnamed bucket is `[]` or
133
+ * absent, and the join reads that difference as a stale artifact — a false
134
+ * alarm on the diagnostic whose whole job is to be believed.
135
+ */
136
+ export function normalizeProviderFrontendCspFootprint(declaration) {
137
+ return ProviderFrontendCspFootprintSchema.parse(declaration);
138
+ }
139
+ /**
140
+ * The DATA half of a provider's `sdk` declaration: WHICH npm package carries the
141
+ * vendor SDK, and at which range.
142
+ *
143
+ * The CODE half — the dynamic import and the vendor's initialization call — is
144
+ * `ProviderFrontendSdk.activate` on the facet module type, and is deliberately
145
+ * absent here: a function cannot cross a JSON channel, and a channel that
146
+ * silently drops one is worse than a channel that never carried it.
147
+ *
148
+ * The descriptor is not decoration. It is what the bundle-isolation policy reads
149
+ * to decide whether a bare specifier a provider package imports was DECLARED,
150
+ * what an application's dependency alignment needs in order to install the SDK
151
+ * as an optional peer, and what a human reads when asking why a bundle grew.
152
+ *
153
+ * Who authors it, since the epic's bulk-integration model was reversed on
154
+ * 2026-09-06: a FIRST-CLASS provider package or an application's own provider
155
+ * module. The scraper-mapper that fills the catalogue emits identity, auth, a
156
+ * secrets contract and an operation catalogue on the `rest` arm — a
157
+ * backend-only package — so a scraped provider has no frontend facet to carry
158
+ * this. That is a narrowing of the population, not of the contract: the pickers
159
+ * and embeds this surface exists for were always the hand-authored kind.
160
+ */
161
+ export const ProviderFrontendSdkDescriptorSchema = z.strictObject({
162
+ /** npm package name of the vendor SDK, e.g. `@sentry/browser`. */
163
+ packageName: z.string().min(1),
164
+ /**
165
+ * Semver range the provider was built against. Optional because a provider
166
+ * that pins its SDK as a direct dependency has already said so in its own
167
+ * manifest; stating it here as well would be a second copy of that pin.
168
+ */
169
+ versionRange: z.string().min(1).optional(),
170
+ });
171
+ /**
172
+ * `crossorigin` attribute values for a provider-declared `<script>`.
173
+ *
174
+ * A closed vocabulary with a named runtime source rather than a bare literal
175
+ * union, so each member can carry why it exists — and there are exactly two
176
+ * reasons to pick one over the other.
177
+ */
178
+ export var ProviderFrontendScriptCrossOrigin;
179
+ (function (ProviderFrontendScriptCrossOrigin) {
180
+ /** No credentials are sent; the response must carry `Access-Control-Allow-Origin`. The right choice for a public CDN script. */
181
+ ProviderFrontendScriptCrossOrigin["ANONYMOUS"] = "anonymous";
182
+ /** Cookies and TLS client certificates are sent. Only for a vendor that authenticates the script fetch itself. */
183
+ ProviderFrontendScriptCrossOrigin["USE_CREDENTIALS"] = "use-credentials";
184
+ })(ProviderFrontendScriptCrossOrigin || (ProviderFrontendScriptCrossOrigin = {}));
185
+ /**
186
+ * A third-party `<script>` a provider asks its surface to add — the case a
187
+ * dynamic `import()` cannot serve, because the vendor ships a global-installing
188
+ * tag rather than an npm module (reCAPTCHA, most tag managers, several chat
189
+ * widgets).
190
+ *
191
+ * `integrity` is Subresource Integrity. It is optional because a vendor that
192
+ * versionless-serves a mutable URL (again, reCAPTCHA) cannot publish a stable
193
+ * hash — but when it IS given the surface must also send `crossorigin`, or the
194
+ * browser refuses the integrity check outright. That coupling is enforced below
195
+ * rather than left to each surface to remember.
196
+ */
197
+ export const ProviderFrontendScriptDeclarationSchema = z
198
+ .strictObject({
199
+ /** Absolute URL of the script. Its origin must also appear in `csp.scriptOrigins`. */
200
+ src: z.string().min(1),
201
+ /** Subresource-integrity hash, e.g. `sha384-…`. */
202
+ integrity: z.string().min(1).optional(),
203
+ crossOrigin: z.enum(ProviderFrontendScriptCrossOrigin).optional(),
204
+ async: z.boolean().optional(),
205
+ defer: z.boolean().optional(),
206
+ })
207
+ .superRefine((declaration, context) => {
208
+ if (declaration.integrity !== undefined && declaration.crossOrigin === undefined) {
209
+ context.addIssue({
210
+ code: 'custom',
211
+ path: ['crossOrigin'],
212
+ message: 'A script declaring `integrity` must also declare `crossOrigin`; without it the browser skips the '
213
+ + 'integrity check for a cross-origin script, so the hash would protect nothing.',
214
+ });
215
+ }
216
+ });
217
+ /**
218
+ * WHAT a provider's component hands back, when what it hands back is a thing
219
+ * rather than a value.
220
+ *
221
+ * ## The question this answers, and why it is a DECLARATION
222
+ *
223
+ * An application's objective is that it calls third-party APIs directly from
224
+ * custom frontend components. On the backend that is unambiguous. In a browser
225
+ * it is not, because a tenant credential must never get there — so a picker for
226
+ * a credentialed vendor and a picker for a vendor with a browser-safe public
227
+ * token cannot hand back the same thing, and the framework surface that
228
+ * receives a selection has to know which before it mounts anything.
229
+ *
230
+ * Settled 2026-09-07 (issue #383, recorded as Q5 of the provider-architecture
231
+ * plan): **per vendor, DECLARED.** Both shapes are real and both ship; which one
232
+ * a provider emits is a static fact about that provider, stated here and
233
+ * visible on the DATA channel without executing a line of its code.
234
+ *
235
+ * The word doing the work is *declared*. A discriminated union alone would let a
236
+ * provider decide at runtime, which is the shape the decision explicitly
237
+ * rejected — so the framework REFUSES a selection whose discriminant contradicts
238
+ * this field. Without that refusal the declaration is decoration, and a reviewer
239
+ * reading a provider's manifest would be reading a wish.
240
+ *
241
+ * ## Why a single value and not a set
242
+ *
243
+ * A provider that genuinely could emit either — Google's Picker hands back both
244
+ * a file id and a URL, and which is usable depends on the granted OAuth scope —
245
+ * was the argument for `selectionDelivery: [...]`. Rejected: an array puts the
246
+ * choice back at runtime, which is the half of the decision that carries all the
247
+ * weight. A vendor whose two modes are both wanted contributes two components,
248
+ * and the chooser then shows them as what they are — two different things a user
249
+ * can pick between — rather than one component whose behaviour a reader cannot
250
+ * predict.
251
+ *
252
+ * ## What it means for CSP
253
+ *
254
+ * `REMOTE_REFERENCE` does NOT imply a provider needs no `connectOrigins`: a
255
+ * picker still talks to its vendor to RENDER, even when the bytes it selects are
256
+ * fetched later by the backend. So this field does not gate the CSP buckets, and
257
+ * a guard inferring otherwise would break every real picker. What it does gate
258
+ * is where the SELECTED OBJECT travels.
259
+ */
260
+ export var ProviderFrontendSelectionDelivery;
261
+ (function (ProviderFrontendSelectionDelivery) {
262
+ /**
263
+ * An opaque handle only the application backend can resolve — a Drive file id,
264
+ * a DAM asset key. The browser never holds the bytes and never authenticates
265
+ * to the vendor for them; the framework routes the reference to the
266
+ * application's executor door, which holds the tenant credential.
267
+ */
268
+ ProviderFrontendSelectionDelivery["REMOTE_REFERENCE"] = "REMOTE_REFERENCE";
269
+ /**
270
+ * Bytes the browser already holds, as a `File`. Available only to a vendor
271
+ * whose picker runs on a browser-safe grant — a publishable key, a
272
+ * user-consented OAuth token, a picker's own scoped grant — so nothing
273
+ * tenant-secret is involved. The framework uploads it exactly as it uploads a
274
+ * file chosen from disk.
275
+ */
276
+ ProviderFrontendSelectionDelivery["BROWSER_READABLE_FILE"] = "BROWSER_READABLE_FILE";
277
+ /**
278
+ * A URL the browser may fetch, under the same browser-safe-grant condition as
279
+ * `BROWSER_READABLE_FILE`. Distinct from it because the framework must fetch
280
+ * before it can upload, and that fetch is a network call the composed CSP has
281
+ * to admit — a difference the surface cannot discover from a `File`.
282
+ */
283
+ ProviderFrontendSelectionDelivery["BROWSER_READABLE_URL"] = "BROWSER_READABLE_URL";
284
+ })(ProviderFrontendSelectionDelivery || (ProviderFrontendSelectionDelivery = {}));
285
+ /**
286
+ * The DATA half of one component a provider contributes — everything about it
287
+ * that a reviewer, the CLI or a build step can read without running a browser.
288
+ *
289
+ * The loader is the CODE half and stays on the facet module in
290
+ * `@wildo-ai/external-connectors-public`, exactly as `sdk.activate` does. What
291
+ * crosses the wire is the fact that a component EXISTS for this capability, plus
292
+ * the contract it commits to.
293
+ *
294
+ * Strict, and for the same reason the CSP footprint is: this is AUTHORED by a
295
+ * provider package rather than received from an older producer, so a misspelled
296
+ * key must fail where it is written instead of contributing nothing.
297
+ */
298
+ export const ProviderFrontendComponentDescriptorSchema = z.strictObject({
299
+ /**
300
+ * What a selection from this component contains. Absent for a capability whose
301
+ * component returns a plain value rather than a thing — a captcha widget hands
302
+ * back a token, and there is no delivery question to answer about a string.
303
+ */
304
+ selectionDelivery: z.enum(ProviderFrontendSelectionDelivery).optional(),
305
+ });
306
+ /**
307
+ * A provider's component descriptors, keyed by the CAPABILITY each fills.
308
+ *
309
+ * The key is a capability token rather than a member of a closed enum because
310
+ * `ProviderCapability` is OPEN — an application extends it by module
311
+ * augmentation — so a `z.enum` here would refuse an application's own
312
+ * capability. The registry that consumes this makes the same choice for the same
313
+ * reason.
314
+ */
315
+ export const ProviderFrontendComponentDescriptorsSchema = z.record(z.string().min(1), ProviderFrontendComponentDescriptorSchema);
316
+ /**
317
+ * Pins every bucket member to a real field of the footprint.
318
+ *
319
+ * A member whose value is not a footprint key would be authorable, would parse,
320
+ * and would contribute nothing — in production only, because CSP is report-only
321
+ * in development. This makes it a compile error instead.
322
+ */
323
+ const _everyBucketNamesAFootprintField = {
324
+ [ProviderFrontendCspOriginBucket.SCRIPT]: 'scriptOrigins',
325
+ [ProviderFrontendCspOriginBucket.CONNECT]: 'connectOrigins',
326
+ [ProviderFrontendCspOriginBucket.FRAME]: 'frameOrigins',
327
+ [ProviderFrontendCspOriginBucket.IMG]: 'imgOrigins',
328
+ [ProviderFrontendCspOriginBucket.STYLE]: 'styleOrigins',
329
+ [ProviderFrontendCspOriginBucket.FONT]: 'fontOrigins',
330
+ };
331
+ void _everyBucketNamesAFootprintField;
332
+ //# sourceMappingURL=provider-frontend-surface.shared.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-frontend-surface.shared.schemas.js","sourceRoot":"","sources":["../../../../src/external-providers/provider-frontend-surface.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,+BAOX;AAPD,WAAY,+BAA+B;IACzC,2DAAwB,CAAA;IACxB,6DAA0B,CAAA;IAC1B,yDAAsB,CAAA;IACtB,qDAAkB,CAAA;IAClB,yDAAsB,CAAA;IACtB,uDAAoB,CAAA;AACtB,CAAC,EAPW,+BAA+B,KAA/B,+BAA+B,QAO1C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,YAAY,CAAC;IACnE,kEAAkE;IAClE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC;CAChD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,YAAY,CAAC;IAC/D,uEAAuE;IACvE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,gGAAgG;IAChG,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,gGAAgG;IAChG,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,oEAAoE;IACpE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,iEAAiE;IACjE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,8DAA8D;IAC9D,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5E,CAAC,CAAC;AAyBH;;;;;;;;GAQG;AACH,MAAM,UAAU,qCAAqC,CACnD,WAAoD;IAEpD,OAAO,kCAAkC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,YAAY,CAAC;IAChE,kEAAkE;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAGH;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,iCAKX;AALD,WAAY,iCAAiC;IAC3C,gIAAgI;IAChI,4DAAuB,CAAA;IACvB,kHAAkH;IAClH,wEAAmC,CAAA;AACrC,CAAC,EALW,iCAAiC,KAAjC,iCAAiC,QAK5C;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC;KACrD,YAAY,CAAC;IACZ,sFAAsF;IACtF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,mDAAmD;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE;IACjE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,WAAW,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,aAAa,CAAC;YACrB,OAAO,EACL,mGAAmG;kBACjG,+EAA+E;SACpF,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAGL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,CAAN,IAAY,iCAuBX;AAvBD,WAAY,iCAAiC;IAC3C;;;;;OAKG;IACH,0EAAqC,CAAA;IACrC;;;;;;OAMG;IACH,oFAA+C,CAAA;IAC/C;;;;;OAKG;IACH,kFAA6C,CAAA;AAC/C,CAAC,EAvBW,iCAAiC,KAAjC,iCAAiC,QAuB5C;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,CAAC,YAAY,CAAC;IACtE;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE;CACxE,CAAC,CAAC;AAGH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EACjB,yCAAyC,CAC1C,CAAC;AAGF;;;;;;GAMG;AACH,MAAM,gCAAgC,GAGlC;IACF,CAAC,+BAA+B,CAAC,MAAM,CAAC,EAAE,eAAe;IACzD,CAAC,+BAA+B,CAAC,OAAO,CAAC,EAAE,gBAAgB;IAC3D,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,cAAc;IACvD,CAAC,+BAA+B,CAAC,GAAG,CAAC,EAAE,YAAY;IACnD,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,cAAc;IACvD,CAAC,+BAA+B,CAAC,IAAI,CAAC,EAAE,aAAa;CACtD,CAAC;AACF,KAAK,gCAAgC,CAAC","sourcesContent":["/**\n * Frontend-surface atoms a provider declares: what it needs the page to be\n * ALLOWED to reach (its CSP footprint), which vendor SDK package it loads, and\n * which third-party `<script>` tags it asks the surface to add.\n *\n * ## Why these are DATA and live here\n *\n * A frontend provider reaches its surface through TWO channels, and only one of\n * them can carry code:\n *\n * - the **DATA** channel — `FrontendProviderEntry`, projected by the backend\n * into `/application-config` and materialized into the generated\n * frontend-services artifact. It is JSON end to end, so nothing\n * function-valued survives it (it used to be cast to a module type anyway,\n * which is the defect this split closes);\n * - the **CODE** channel — the provider package's own facet barrel, imported\n * by the bundle through the generated `frontend-providers.generated.ts`.\n *\n * Everything in this file is the DATA half. It is what the CLI, the CSP\n * composer and the bundle-isolation policy need to SEE without executing any\n * frontend module — and the CLI genuinely cannot execute one: it is a Node\n * process and these modules are browser-bound. The executable half (`sdk.activate`,\n * `publicConfigSchema`) lives on the facet module types in\n * `@wildo-ai/external-connectors-public` and never crosses this boundary.\n *\n * Added by slice S4a of epic #337 (issue #332).\n */\n\nimport { z } from 'zod';\n\n/**\n * The origins a provider needs the composed Content-Security-Policy to admit,\n * grouped by WHAT THE PROVIDER IS REACHING rather than by CSP directive name.\n *\n * ## Why semantic buckets and not directive names\n *\n * `CSP_DIRECTIVE_NAMES` is a closed vocabulary that already has one named\n * runtime source, in `@wildo-ai/platform-config-lib`. That package DEPENDS on\n * this one, so this file cannot reference it, and re-declaring the list here\n * would create a second source for one vocabulary — precisely what the\n * one-named-source rule exists to prevent, and the way the two copies would\n * drift the first time a directive is added.\n *\n * Keying on intent instead is also the better contract. A provider author knows\n * \"my SDK is fetched from `https://js.stripe.com` and it calls back to\n * `https://api.stripe.com`\"; which directive grades which fetch is framework\n * knowledge, and it lives in exactly one place — the bucket-to-directive\n * mapping in `platform-config-lib`'s `csp-emit.ts`.\n *\n * ## Why it is STRICT while the entry that carries it is loose\n *\n * The entry is a WIRE record read by a possibly-older consumer, so it tolerates\n * unknown keys (see `frontend-provider-entry.shared.schemas.ts`). This footprint\n * is AUTHORED, by a provider package, and validated where it is authored — so a\n * misspelled bucket must fail loudly rather than contribute nothing. That\n * distinction matters more here than anywhere else in the frontend surface:\n * CSP is enforced in production and report-only in development, so a bucket that\n * silently contributes nothing is invisible until the provider breaks in\n * production only.\n *\n * Adding a bucket is not a one-sided producer change either — a new bucket is\n * useless until `csp-emit.ts` maps it to a directive — so strictness costs no\n * version-skew tolerance that was ever available.\n *\n * Every field defaults to `[]`: a provider that declares a footprint at all is\n * making a complete statement about the buckets it did not name.\n */\n/**\n * Which bucket an origin lands in, as a value a provider can name.\n *\n * The bucket names are already the footprint's field names; this enum is what\n * lets a provider REFER to one — a derived origin has to say where it goes, and\n * a bare string there would be a second, unexplained spelling of a closed\n * vocabulary. A compile-time check below pins the two together.\n */\nexport enum ProviderFrontendCspOriginBucket {\n SCRIPT = 'scriptOrigins',\n CONNECT = 'connectOrigins',\n FRAME = 'frameOrigins',\n IMG = 'imgOrigins',\n STYLE = 'styleOrigins',\n FONT = 'fontOrigins',\n}\n\n/**\n * An origin the framework must READ OUT OF the provider's own public config,\n * because the provider cannot know it.\n *\n * The case that forced this: an error-monitoring provider sends to the host\n * inside its DSN, and a product-analytics provider to whatever `apiHost` the\n * application configured — including a self-hosted one. Both are per\n * APPLICATION, and often per ENVIRONMENT, so no static list on the provider\n * module can contain them. Without this the application would have to author\n * the same host twice — once as the provider's config and once in its CSP — and\n * the copy that drifts fails in production only, because development is\n * report-only.\n *\n * Resolution is data, not code: the CLI takes `publicConfig[publicConfigKey]`,\n * reads its URL origin, and adds it to `bucket`. An absent key contributes\n * nothing (the provider simply is not configured for that service); a key that\n * is present and is NOT a URL fails the sync loudly, because silently dropping\n * it is the exact failure this exists to prevent.\n */\nexport const ProviderFrontendCspDerivedOriginSchema = z.strictObject({\n /** Key in this provider's `publicConfig` whose value is a URL. */\n publicConfigKey: z.string().min(1),\n bucket: z.enum(ProviderFrontendCspOriginBucket),\n});\nexport type ProviderFrontendCspDerivedOrigin = z.infer<typeof ProviderFrontendCspDerivedOriginSchema>;\n\nexport const ProviderFrontendCspFootprintSchema = z.strictObject({\n /** Origins the surface loads executable script from (`script-src`). */\n scriptOrigins: z.array(z.string().min(1)).default([]),\n /** Origins the provider's code opens fetch / XHR / WebSocket connections to (`connect-src`). */\n connectOrigins: z.array(z.string().min(1)).default([]),\n /** Origins the provider embeds in an iframe — a picker, a checkout, a meeting (`frame-src`). */\n frameOrigins: z.array(z.string().min(1)).default([]),\n /** Origins the provider loads images or pixels from (`img-src`). */\n imgOrigins: z.array(z.string().min(1)).default([]),\n /** Origins the provider loads stylesheets from (`style-src`). */\n styleOrigins: z.array(z.string().min(1)).default([]),\n /** Origins the provider loads web fonts from (`font-src`). */\n fontOrigins: z.array(z.string().min(1)).default([]),\n /**\n * Origins the framework reads out of this provider's own `publicConfig`,\n * for the endpoints a provider cannot know in advance. See\n * {@link ProviderFrontendCspDerivedOriginSchema}.\n */\n derivedOrigins: z.array(ProviderFrontendCspDerivedOriginSchema).default([]),\n});\nexport type ProviderFrontendCspFootprint = z.infer<typeof ProviderFrontendCspFootprintSchema>;\n\n/**\n * The footprint as a provider AUTHORS it: name only the buckets you reach.\n *\n * Authoring and the wire are deliberately different shapes, and the asymmetry\n * is the point.\n *\n * - **Authoring is partial.** A provider that only loads a script should write\n * `{ scriptOrigins: ['https://js.acme.com'] }`, not that plus four empty\n * arrays. Four empty arrays are noise at exactly the place the declaration\n * should be readable, and noise is what stops a reviewer noticing the one\n * line that grants an origin.\n * - **The wire is total.** Every bucket is present by the time the footprint\n * reaches an entry, so the CSP composer never branches on absence and the\n * staleness comparison between a served footprint and its module's has two\n * comparable shapes rather than a partial and a total that differ in every\n * bucket nobody named.\n *\n * Derived as `z.input` rather than written as a `Partial<…>`, so it cannot drift\n * from the schema: adding a bucket makes it optional here automatically.\n */\nexport type ProviderFrontendCspFootprintDeclaration = z.input<typeof ProviderFrontendCspFootprintSchema>;\n\n/**\n * Fills in the buckets a declaration did not name.\n *\n * The ONE place that normalization happens, used by the projection that builds\n * an entry and by the hydration join that compares one against a module. Two\n * copies would eventually disagree about whether an unnamed bucket is `[]` or\n * absent, and the join reads that difference as a stale artifact — a false\n * alarm on the diagnostic whose whole job is to be believed.\n */\nexport function normalizeProviderFrontendCspFootprint(\n declaration: ProviderFrontendCspFootprintDeclaration,\n): ProviderFrontendCspFootprint {\n return ProviderFrontendCspFootprintSchema.parse(declaration);\n}\n\n/**\n * The DATA half of a provider's `sdk` declaration: WHICH npm package carries the\n * vendor SDK, and at which range.\n *\n * The CODE half — the dynamic import and the vendor's initialization call — is\n * `ProviderFrontendSdk.activate` on the facet module type, and is deliberately\n * absent here: a function cannot cross a JSON channel, and a channel that\n * silently drops one is worse than a channel that never carried it.\n *\n * The descriptor is not decoration. It is what the bundle-isolation policy reads\n * to decide whether a bare specifier a provider package imports was DECLARED,\n * what an application's dependency alignment needs in order to install the SDK\n * as an optional peer, and what a human reads when asking why a bundle grew.\n *\n * Who authors it, since the epic's bulk-integration model was reversed on\n * 2026-09-06: a FIRST-CLASS provider package or an application's own provider\n * module. The scraper-mapper that fills the catalogue emits identity, auth, a\n * secrets contract and an operation catalogue on the `rest` arm — a\n * backend-only package — so a scraped provider has no frontend facet to carry\n * this. That is a narrowing of the population, not of the contract: the pickers\n * and embeds this surface exists for were always the hand-authored kind.\n */\nexport const ProviderFrontendSdkDescriptorSchema = z.strictObject({\n /** npm package name of the vendor SDK, e.g. `@sentry/browser`. */\n packageName: z.string().min(1),\n /**\n * Semver range the provider was built against. Optional because a provider\n * that pins its SDK as a direct dependency has already said so in its own\n * manifest; stating it here as well would be a second copy of that pin.\n */\n versionRange: z.string().min(1).optional(),\n});\nexport type ProviderFrontendSdkDescriptor = z.infer<typeof ProviderFrontendSdkDescriptorSchema>;\n\n/**\n * `crossorigin` attribute values for a provider-declared `<script>`.\n *\n * A closed vocabulary with a named runtime source rather than a bare literal\n * union, so each member can carry why it exists — and there are exactly two\n * reasons to pick one over the other.\n */\nexport enum ProviderFrontendScriptCrossOrigin {\n /** No credentials are sent; the response must carry `Access-Control-Allow-Origin`. The right choice for a public CDN script. */\n ANONYMOUS = 'anonymous',\n /** Cookies and TLS client certificates are sent. Only for a vendor that authenticates the script fetch itself. */\n USE_CREDENTIALS = 'use-credentials',\n}\n\n/**\n * A third-party `<script>` a provider asks its surface to add — the case a\n * dynamic `import()` cannot serve, because the vendor ships a global-installing\n * tag rather than an npm module (reCAPTCHA, most tag managers, several chat\n * widgets).\n *\n * `integrity` is Subresource Integrity. It is optional because a vendor that\n * versionless-serves a mutable URL (again, reCAPTCHA) cannot publish a stable\n * hash — but when it IS given the surface must also send `crossorigin`, or the\n * browser refuses the integrity check outright. That coupling is enforced below\n * rather than left to each surface to remember.\n */\nexport const ProviderFrontendScriptDeclarationSchema = z\n .strictObject({\n /** Absolute URL of the script. Its origin must also appear in `csp.scriptOrigins`. */\n src: z.string().min(1),\n /** Subresource-integrity hash, e.g. `sha384-…`. */\n integrity: z.string().min(1).optional(),\n crossOrigin: z.enum(ProviderFrontendScriptCrossOrigin).optional(),\n async: z.boolean().optional(),\n defer: z.boolean().optional(),\n })\n .superRefine((declaration, context) => {\n if (declaration.integrity !== undefined && declaration.crossOrigin === undefined) {\n context.addIssue({\n code: 'custom',\n path: ['crossOrigin'],\n message:\n 'A script declaring `integrity` must also declare `crossOrigin`; without it the browser skips the '\n + 'integrity check for a cross-origin script, so the hash would protect nothing.',\n });\n }\n });\nexport type ProviderFrontendScriptDeclaration = z.infer<typeof ProviderFrontendScriptDeclarationSchema>;\n\n/**\n * WHAT a provider's component hands back, when what it hands back is a thing\n * rather than a value.\n *\n * ## The question this answers, and why it is a DECLARATION\n *\n * An application's objective is that it calls third-party APIs directly from\n * custom frontend components. On the backend that is unambiguous. In a browser\n * it is not, because a tenant credential must never get there — so a picker for\n * a credentialed vendor and a picker for a vendor with a browser-safe public\n * token cannot hand back the same thing, and the framework surface that\n * receives a selection has to know which before it mounts anything.\n *\n * Settled 2026-09-07 (issue #383, recorded as Q5 of the provider-architecture\n * plan): **per vendor, DECLARED.** Both shapes are real and both ship; which one\n * a provider emits is a static fact about that provider, stated here and\n * visible on the DATA channel without executing a line of its code.\n *\n * The word doing the work is *declared*. A discriminated union alone would let a\n * provider decide at runtime, which is the shape the decision explicitly\n * rejected — so the framework REFUSES a selection whose discriminant contradicts\n * this field. Without that refusal the declaration is decoration, and a reviewer\n * reading a provider's manifest would be reading a wish.\n *\n * ## Why a single value and not a set\n *\n * A provider that genuinely could emit either — Google's Picker hands back both\n * a file id and a URL, and which is usable depends on the granted OAuth scope —\n * was the argument for `selectionDelivery: [...]`. Rejected: an array puts the\n * choice back at runtime, which is the half of the decision that carries all the\n * weight. A vendor whose two modes are both wanted contributes two components,\n * and the chooser then shows them as what they are — two different things a user\n * can pick between — rather than one component whose behaviour a reader cannot\n * predict.\n *\n * ## What it means for CSP\n *\n * `REMOTE_REFERENCE` does NOT imply a provider needs no `connectOrigins`: a\n * picker still talks to its vendor to RENDER, even when the bytes it selects are\n * fetched later by the backend. So this field does not gate the CSP buckets, and\n * a guard inferring otherwise would break every real picker. What it does gate\n * is where the SELECTED OBJECT travels.\n */\nexport enum ProviderFrontendSelectionDelivery {\n /**\n * An opaque handle only the application backend can resolve — a Drive file id,\n * a DAM asset key. The browser never holds the bytes and never authenticates\n * to the vendor for them; the framework routes the reference to the\n * application's executor door, which holds the tenant credential.\n */\n REMOTE_REFERENCE = 'REMOTE_REFERENCE',\n /**\n * Bytes the browser already holds, as a `File`. Available only to a vendor\n * whose picker runs on a browser-safe grant — a publishable key, a\n * user-consented OAuth token, a picker's own scoped grant — so nothing\n * tenant-secret is involved. The framework uploads it exactly as it uploads a\n * file chosen from disk.\n */\n BROWSER_READABLE_FILE = 'BROWSER_READABLE_FILE',\n /**\n * A URL the browser may fetch, under the same browser-safe-grant condition as\n * `BROWSER_READABLE_FILE`. Distinct from it because the framework must fetch\n * before it can upload, and that fetch is a network call the composed CSP has\n * to admit — a difference the surface cannot discover from a `File`.\n */\n BROWSER_READABLE_URL = 'BROWSER_READABLE_URL',\n}\n\n/**\n * The DATA half of one component a provider contributes — everything about it\n * that a reviewer, the CLI or a build step can read without running a browser.\n *\n * The loader is the CODE half and stays on the facet module in\n * `@wildo-ai/external-connectors-public`, exactly as `sdk.activate` does. What\n * crosses the wire is the fact that a component EXISTS for this capability, plus\n * the contract it commits to.\n *\n * Strict, and for the same reason the CSP footprint is: this is AUTHORED by a\n * provider package rather than received from an older producer, so a misspelled\n * key must fail where it is written instead of contributing nothing.\n */\nexport const ProviderFrontendComponentDescriptorSchema = z.strictObject({\n /**\n * What a selection from this component contains. Absent for a capability whose\n * component returns a plain value rather than a thing — a captcha widget hands\n * back a token, and there is no delivery question to answer about a string.\n */\n selectionDelivery: z.enum(ProviderFrontendSelectionDelivery).optional(),\n});\nexport type ProviderFrontendComponentDescriptor = z.infer<typeof ProviderFrontendComponentDescriptorSchema>;\n\n/**\n * A provider's component descriptors, keyed by the CAPABILITY each fills.\n *\n * The key is a capability token rather than a member of a closed enum because\n * `ProviderCapability` is OPEN — an application extends it by module\n * augmentation — so a `z.enum` here would refuse an application's own\n * capability. The registry that consumes this makes the same choice for the same\n * reason.\n */\nexport const ProviderFrontendComponentDescriptorsSchema = z.record(\n z.string().min(1),\n ProviderFrontendComponentDescriptorSchema,\n);\nexport type ProviderFrontendComponentDescriptors = z.infer<typeof ProviderFrontendComponentDescriptorsSchema>;\n\n/**\n * Pins every bucket member to a real field of the footprint.\n *\n * A member whose value is not a footprint key would be authorable, would parse,\n * and would contribute nothing — in production only, because CSP is report-only\n * in development. This makes it a compile error instead.\n */\nconst _everyBucketNamesAFootprintField: Record<\n ProviderFrontendCspOriginBucket,\n keyof Omit<ProviderFrontendCspFootprint, 'derivedOrigins'>\n> = {\n [ProviderFrontendCspOriginBucket.SCRIPT]: 'scriptOrigins',\n [ProviderFrontendCspOriginBucket.CONNECT]: 'connectOrigins',\n [ProviderFrontendCspOriginBucket.FRAME]: 'frameOrigins',\n [ProviderFrontendCspOriginBucket.IMG]: 'imgOrigins',\n [ProviderFrontendCspOriginBucket.STYLE]: 'styleOrigins',\n [ProviderFrontendCspOriginBucket.FONT]: 'fontOrigins',\n};\nvoid _everyBucketNamesAFootprintField;\n"]}
@@ -7,16 +7,24 @@
7
7
  * contracts, no backend behavior. The fields are exactly what a UI needs
8
8
  * to render a provider entry (translation-ready display-name key, optional
9
9
  * legacy fallback label, optional icon ref) plus the stable `ref` used as
10
- * the join key between facet modules.
10
+ * the join key between facet modules — and, since #328, the provider's
11
+ * IDENTITY: which package ships it, which tier it belongs to, which vendor
12
+ * groups it, and where it came from.
11
13
  *
12
- * Phase 0 of the provider-registration refactor introduces this type as
13
- * the single source of truth for provider header information so that the
14
- * cross-facet seam (`FrontendBootstrapBackendService`) can project a
15
- * `BackendProviderModule` into a `FrontendProviderEntry` without ever
16
- * leaking backend-only fields.
14
+ * ## Why identity lives here and not on the ref
17
15
  *
18
- * See `.cursor/plans/provider-registration-refactor-implementation-plan.md`
19
- * §Phase 0.1 for the full rationale.
16
+ * A bare `ref` string cannot say whether a provider is one the engine
17
+ * REQUIRES (a MAIN provider binding an `EngineCapability` slot), one that
18
+ * merely MAY bind a slot as a substitute (EXTENSION), or one of the bulk
19
+ * loaded on demand that must never claim a slot (CATALOGUE). Nor can it say
20
+ * that `microsoft-graph-mail` and `microsoft-teams` are two packages of one
21
+ * vendor sharing an OAuth client. Encoding any of that in the ref's
22
+ * spelling is invisible to the compiler and to every consumer; encoding it
23
+ * as fields is what lets composition ENFORCE the tier rule
24
+ * (`assertProviderTierCoherence`) and lets tooling display and group.
25
+ *
26
+ * The identity fields are REQUIRED. A provider without a tier is a provider
27
+ * nobody has decided about, and "undecided" must not parse as "fine".
20
28
  */
21
29
  import { z } from 'zod';
22
30
  /**
@@ -27,11 +35,172 @@ import { z } from 'zod';
27
35
  * time instead of freezing human copy into generated/runtime artifacts.
28
36
  */
29
37
  export declare function buildProviderDisplayNameLabelKey(providerRef: string): string;
38
+ /**
39
+ * The three provider tiers (decided 2026-09-05, epic #337).
40
+ *
41
+ * The tier is a DECISION recorded on the module, never inferred from its
42
+ * capabilities at runtime — inference is silent and wrong for a provider
43
+ * such as Odoo, whose empty capability list says nothing about whether the
44
+ * engine depends on it.
45
+ */
46
+ export declare enum ProviderTier {
47
+ /**
48
+ * Mandatory, engine-shipped. Binds an `EngineCapability` slot the engine
49
+ * itself consumes (email, billing, SMS, the AI slots) or is an SSO login
50
+ * provider the auth subsystem consumes. MAIN is the engine's own set:
51
+ * its origin is always `ENGINE`, and it is what stays in the static
52
+ * engine registry when everything else loads on demand.
53
+ */
54
+ MAIN = "MAIN",
55
+ /**
56
+ * May ALSO bind an engine slot, as a substitute for a MAIN provider
57
+ * (a second email sink, a telemetry sink, an audit sink). Kept distinct
58
+ * from MAIN so the engine's floor is not confused with what happens to
59
+ * be installed.
60
+ */
61
+ EXTENSION = "EXTENSION",
62
+ /**
63
+ * The bulk: integrations with no engine slot, loaded on demand when an
64
+ * application declares them. A CATALOGUE provider may claim only OPEN
65
+ * `ProviderCapability` tokens — never one that maps to an engine slot —
66
+ * which composition enforces.
67
+ */
68
+ CATALOGUE = "CATALOGUE"
69
+ }
70
+ /** Where a provider module's code comes from. */
71
+ export declare enum ProviderOriginKind {
72
+ /** Shipped by the framework's own connector packages. */
73
+ ENGINE = "ENGINE",
74
+ /** Authored inside an application (its own `provider-contributions`). */
75
+ APPLICATION = "APPLICATION",
76
+ /**
77
+ * Emitted by the framework packager from an external catalogue source;
78
+ * carries the catalogue provenance so the wrapped upstream artifact can
79
+ * be named, attributed and re-generated.
80
+ */
81
+ GENERATED = "GENERATED"
82
+ }
83
+ /**
84
+ * External catalogues a build-time MAPPER reads to emit a native Wildo provider package.
85
+ *
86
+ * Every member is a SOURCE that is read, never a runtime the application depends on: the mapper
87
+ * extracts each operation's method, URL template, parameters and auth shape as DATA, and Wildo's
88
+ * own HTTP client executes them. Nothing third-party is installed or executed by a generated
89
+ * application. (An earlier revision of this enum described Activepieces as a set of executable
90
+ * bundles Wildo would WRAP; that model was built, measured and deleted on 2026-09-06 — see
91
+ * `providers-are-scraped-never-wrapped`.)
92
+ *
93
+ * - `ACTIVEPIECES` — the community pieces monorepo. Each piece's actions and triggers call
94
+ * `httpClient.sendRequest({ method, url, body })` in plain TypeScript an AST pass can read.
95
+ * Note the PUBLISHED bundle is NOT a usable input: its metadata carries name, inputs and auth
96
+ * but not the endpoint, which lives inside the compiled `run`.
97
+ * - `SIM` — Sim's tool modules, whose request declaration carries URL and headers the same way.
98
+ * Their `transformResponse` / `postProcess` are functions and are deliberately not read; response
99
+ * shaping stays Wildo's.
100
+ * - `OPENAPI_DOCUMENT` — a vendor-published OpenAPI document, the second mapper input feeding the
101
+ * same output shape. Authoritative where it exists, since it is the vendor's own description.
102
+ */
103
+ export declare enum ProviderCatalogueSource {
104
+ ACTIVEPIECES = "ACTIVEPIECES",
105
+ SIM = "SIM",
106
+ OPENAPI_DOCUMENT = "OPENAPI_DOCUMENT"
107
+ }
108
+ export declare const ProviderCatalogueProvenanceSchema: z.ZodObject<{
109
+ source: z.ZodEnum<typeof ProviderCatalogueSource>;
110
+ sourceRef: z.ZodString;
111
+ sourceVersion: z.ZodString;
112
+ }, z.core.$strip>;
113
+ export type ProviderCatalogueProvenance = z.infer<typeof ProviderCatalogueProvenanceSchema>;
114
+ /**
115
+ * Origin as ONE object with a `kind` and a provenance that is REQUIRED exactly when the kind is
116
+ * `GENERATED` (and forbidden otherwise), enforced by the refinement below.
117
+ *
118
+ * Not a `z.discriminatedUnion`, deliberately: under `strictNullChecks: false` — how the engine
119
+ * packages compile — Zod 4 infers a union-typed object key as OPTIONAL (the members' `optout`
120
+ * collapses to `"optional"` once `undefined` is erased), so `metadata.origin` would type as
121
+ * omittable in every engine consumer while the runtime refused its absence. A plain object
122
+ * infers as required in both modes; the invariant the union expressed lives in the refinement
123
+ * and in the `ProviderOrigin` type below.
124
+ */
125
+ export declare const ProviderOriginSchema: z.ZodObject<{
126
+ kind: z.ZodEnum<typeof ProviderOriginKind>;
127
+ catalogue: z.ZodOptional<z.ZodObject<{
128
+ source: z.ZodEnum<typeof ProviderCatalogueSource>;
129
+ sourceRef: z.ZodString;
130
+ sourceVersion: z.ZodString;
131
+ }, z.core.$strip>>;
132
+ }, z.core.$strip>;
133
+ export type ProviderOrigin = {
134
+ kind: ProviderOriginKind.ENGINE;
135
+ catalogue?: undefined;
136
+ } | {
137
+ kind: ProviderOriginKind.APPLICATION;
138
+ catalogue?: undefined;
139
+ } | {
140
+ kind: ProviderOriginKind.GENERATED;
141
+ catalogue: ProviderCatalogueProvenance;
142
+ };
143
+ /** The one engine origin value, so 22 modules do not each spell it. */
144
+ export declare const ENGINE_PROVIDER_ORIGIN: ProviderOrigin;
30
145
  export declare const ProviderMetadataSchema: z.ZodObject<{
31
146
  ref: z.ZodString;
147
+ packageName: z.ZodString;
148
+ tier: z.ZodEnum<typeof ProviderTier>;
149
+ vendor: z.ZodString;
150
+ origin: z.ZodObject<{
151
+ kind: z.ZodEnum<typeof ProviderOriginKind>;
152
+ catalogue: z.ZodOptional<z.ZodObject<{
153
+ source: z.ZodEnum<typeof ProviderCatalogueSource>;
154
+ sourceRef: z.ZodString;
155
+ sourceVersion: z.ZodString;
156
+ }, z.core.$strip>>;
157
+ }, z.core.$strip>;
32
158
  displayNameLabelKey: z.ZodOptional<z.ZodString>;
33
159
  displayName: z.ZodOptional<z.ZodString>;
34
160
  iconRef: z.ZodOptional<z.ZodString>;
35
161
  }, z.core.$strip>;
36
- export type ProviderMetadata = z.infer<typeof ProviderMetadataSchema>;
162
+ export type ProviderMetadata = Omit<z.infer<typeof ProviderMetadataSchema>, 'origin'> & {
163
+ origin: ProviderOrigin;
164
+ };
165
+ /**
166
+ * The identity half of {@link ProviderMetadataSchema} on its own — what a
167
+ * companion contribution carries so tooling can display tiers and group
168
+ * vendors without loading a provider's runtime module.
169
+ */
170
+ export declare const ProviderIdentitySchema: z.ZodObject<{
171
+ origin: z.ZodObject<{
172
+ kind: z.ZodEnum<typeof ProviderOriginKind>;
173
+ catalogue: z.ZodOptional<z.ZodObject<{
174
+ source: z.ZodEnum<typeof ProviderCatalogueSource>;
175
+ sourceRef: z.ZodString;
176
+ sourceVersion: z.ZodString;
177
+ }, z.core.$strip>>;
178
+ }, z.core.$strip>;
179
+ packageName: z.ZodString;
180
+ tier: z.ZodEnum<typeof ProviderTier>;
181
+ vendor: z.ZodString;
182
+ }, z.core.$strip>;
183
+ export type ProviderIdentity = Omit<z.infer<typeof ProviderIdentitySchema>, 'origin'> & {
184
+ origin: ProviderOrigin;
185
+ };
186
+ export interface DefineProviderMetadataInput {
187
+ ref: string;
188
+ packageName: string;
189
+ tier: ProviderTier;
190
+ origin: ProviderOrigin;
191
+ /** Defaults to `ref` — the single-package vendor case. */
192
+ vendor?: string;
193
+ displayName?: string;
194
+ iconRef?: string;
195
+ }
196
+ /**
197
+ * The one way a provider module authors its metadata.
198
+ *
199
+ * Derives `displayNameLabelKey` from the ref (every module used to call
200
+ * `buildProviderDisplayNameLabelKey` by hand), defaults `vendor` to the ref,
201
+ * and parses the result so an incomplete identity fails at MODULE LOAD —
202
+ * in the package that owns the module — rather than at the first consumer
203
+ * that reads a field which is not there.
204
+ */
205
+ export declare function defineProviderMetadata(input: DefineProviderMetadataInput): ProviderMetadata;
37
206
  //# sourceMappingURL=provider-metadata.shared.schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-metadata.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/provider-metadata.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,eAAO,MAAM,sBAAsB;;;;;iBAyBjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"provider-metadata.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/provider-metadata.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;;;;GAOG;AACH,oBAAY,YAAY;IACtB;;;;;;OAMG;IACH,IAAI,SAAS;IACb;;;;;OAKG;IACH,SAAS,cAAc;IACvB;;;;;OAKG;IACH,SAAS,cAAc;CACxB;AAED,iDAAiD;AACjD,oBAAY,kBAAkB;IAC5B,yDAAyD;IACzD,MAAM,WAAW;IACjB,yEAAyE;IACzE,WAAW,gBAAgB;IAC3B;;;;OAIG;IACH,SAAS,cAAc;CACxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,oBAAY,uBAAuB;IACjC,YAAY,iBAAiB;IAC7B,GAAG,QAAQ;IACX,gBAAgB,qBAAqB;CACtC;AAED,eAAO,MAAM,iCAAiC;;;;iBAa5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB;;;;;;;iBAa7B,CAAC;AACL,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC;IAAC,SAAS,EAAE,2BAA2B,CAAA;CAAE,CAAC;AAEnF,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,EAAE,cAAmE,CAAC;AAEzG,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;iBA2CjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnH,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,gBAAgB,CAW3F"}