@aglyn/aglyn 1.0.0-beta.221 → 1.0.0-beta.222

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 (346) hide show
  1. package/package.json +15 -11
  2. package/src/lib/app-utils/agent-openapi.js +1 -1
  3. package/src/lib/app-utils/agent-openapi.js.map +1 -1
  4. package/src/lib/app-utils/analytics-events.d.ts +3 -2
  5. package/src/lib/app-utils/analytics-events.js +3 -2
  6. package/src/lib/app-utils/analytics-events.js.map +1 -1
  7. package/src/lib/app-utils/api-plugins.d.ts +30 -0
  8. package/src/lib/app-utils/api-plugins.js +24 -1
  9. package/src/lib/app-utils/api-plugins.js.map +1 -1
  10. package/src/lib/app-utils/author-html.d.ts +1 -1
  11. package/src/lib/app-utils/author-html.js.map +1 -1
  12. package/src/lib/app-utils/bandwidth-cap.d.ts +12 -1
  13. package/src/lib/app-utils/bandwidth-cap.js +17 -1
  14. package/src/lib/app-utils/bandwidth-cap.js.map +1 -1
  15. package/src/lib/app-utils/compose-reusable-components.d.ts +19 -0
  16. package/src/lib/app-utils/compose-reusable-components.js +116 -26
  17. package/src/lib/app-utils/compose-reusable-components.js.map +1 -1
  18. package/src/lib/app-utils/console-routes.d.ts +4 -0
  19. package/src/lib/app-utils/console-routes.js +3 -0
  20. package/src/lib/app-utils/console-routes.js.map +1 -1
  21. package/src/lib/app-utils/contacts.d.ts +71 -0
  22. package/src/lib/app-utils/contacts.js +55 -0
  23. package/src/lib/app-utils/contacts.js.map +1 -1
  24. package/src/lib/app-utils/contexts.d.ts +1 -0
  25. package/src/lib/app-utils/contexts.js +1 -0
  26. package/src/lib/app-utils/contexts.js.map +1 -1
  27. package/src/lib/app-utils/crm-email-templates.js +21 -4
  28. package/src/lib/app-utils/crm-email-templates.js.map +1 -1
  29. package/src/lib/app-utils/crm-kinds.d.ts +2 -0
  30. package/src/lib/app-utils/crm-kinds.js +1 -0
  31. package/src/lib/app-utils/crm-kinds.js.map +1 -1
  32. package/src/lib/app-utils/crm.d.ts +1199 -67
  33. package/src/lib/app-utils/crm.js +1951 -310
  34. package/src/lib/app-utils/crm.js.map +1 -1
  35. package/src/lib/app-utils/csv-import.d.ts +10 -38
  36. package/src/lib/app-utils/csv-import.js +17 -42
  37. package/src/lib/app-utils/csv-import.js.map +1 -1
  38. package/src/lib/app-utils/csv.d.ts +32 -11
  39. package/src/lib/app-utils/csv.js +43 -5
  40. package/src/lib/app-utils/csv.js.map +1 -1
  41. package/src/lib/app-utils/default-site.d.ts +116 -0
  42. package/src/lib/app-utils/default-site.js +1024 -0
  43. package/src/lib/app-utils/default-site.js.map +1 -0
  44. package/src/lib/app-utils/docs-help.generated.d.ts +22 -22
  45. package/src/lib/app-utils/docs-help.generated.js +44 -10
  46. package/src/lib/app-utils/docs-help.generated.js.map +1 -1
  47. package/src/lib/app-utils/docs-index.generated.js +738 -150
  48. package/src/lib/app-utils/docs-index.generated.js.map +1 -1
  49. package/src/lib/app-utils/draft-placeholders.d.ts +76 -0
  50. package/src/lib/app-utils/draft-placeholders.js +115 -0
  51. package/src/lib/app-utils/draft-placeholders.js.map +1 -0
  52. package/src/lib/app-utils/entity-picker-context.d.ts +19 -15
  53. package/src/lib/app-utils/entity-picker-context.js +4 -4
  54. package/src/lib/app-utils/entity-picker-context.js.map +1 -1
  55. package/src/lib/app-utils/expand-repeatables.d.ts +66 -10
  56. package/src/lib/app-utils/expand-repeatables.js +88 -14
  57. package/src/lib/app-utils/expand-repeatables.js.map +1 -1
  58. package/src/lib/app-utils/forms.d.ts +33 -22
  59. package/src/lib/app-utils/forms.js +47 -28
  60. package/src/lib/app-utils/forms.js.map +1 -1
  61. package/src/lib/app-utils/full-use-cost.d.ts +277 -0
  62. package/src/lib/app-utils/full-use-cost.js +421 -0
  63. package/src/lib/app-utils/full-use-cost.js.map +1 -0
  64. package/src/lib/app-utils/health-report.js +11 -0
  65. package/src/lib/app-utils/health-report.js.map +1 -1
  66. package/src/lib/app-utils/llms-txt.d.ts +20 -0
  67. package/src/lib/app-utils/llms-txt.js +7 -1
  68. package/src/lib/app-utils/llms-txt.js.map +1 -1
  69. package/src/lib/app-utils/media-asset-facts.d.ts +16 -1
  70. package/src/lib/app-utils/media-asset-facts.js +40 -13
  71. package/src/lib/app-utils/media-asset-facts.js.map +1 -1
  72. package/src/lib/app-utils/media-bandwidth.d.ts +52 -0
  73. package/src/lib/app-utils/media-bandwidth.js +94 -0
  74. package/src/lib/app-utils/media-bandwidth.js.map +1 -0
  75. package/src/lib/app-utils/media-ref.d.ts +241 -33
  76. package/src/lib/app-utils/media-ref.js +324 -43
  77. package/src/lib/app-utils/media-ref.js.map +1 -1
  78. package/src/lib/app-utils/media-src.d.ts +8 -8
  79. package/src/lib/app-utils/media-src.js +27 -11
  80. package/src/lib/app-utils/media-src.js.map +1 -1
  81. package/src/lib/app-utils/media-takedown-reach.d.ts +4 -1
  82. package/src/lib/app-utils/media-takedown-reach.js +6 -3
  83. package/src/lib/app-utils/media-takedown-reach.js.map +1 -1
  84. package/src/lib/app-utils/notifications.d.ts +1 -1
  85. package/src/lib/app-utils/notifications.js +2 -0
  86. package/src/lib/app-utils/notifications.js.map +1 -1
  87. package/src/lib/app-utils/organizations.d.ts +51 -2
  88. package/src/lib/app-utils/organizations.js +56 -3
  89. package/src/lib/app-utils/organizations.js.map +1 -1
  90. package/src/lib/app-utils/page-record-sources.d.ts +87 -0
  91. package/src/lib/app-utils/page-record-sources.js +53 -0
  92. package/src/lib/app-utils/page-record-sources.js.map +1 -0
  93. package/src/lib/app-utils/paid-media-source.d.ts +3 -7
  94. package/src/lib/app-utils/paid-media-source.js +5 -19
  95. package/src/lib/app-utils/paid-media-source.js.map +1 -1
  96. package/src/lib/app-utils/person-erasure.d.ts +5 -2
  97. package/src/lib/app-utils/person-erasure.js.map +1 -1
  98. package/src/lib/app-utils/picklists.d.ts +187 -0
  99. package/src/lib/app-utils/picklists.js +320 -0
  100. package/src/lib/app-utils/picklists.js.map +1 -0
  101. package/src/lib/app-utils/plan-entitlements.d.ts +220 -50
  102. package/src/lib/app-utils/plan-entitlements.js +309 -115
  103. package/src/lib/app-utils/plan-entitlements.js.map +1 -1
  104. package/src/lib/app-utils/realm-host-surface.generated.js +2 -0
  105. package/src/lib/app-utils/realm-host-surface.generated.js.map +1 -1
  106. package/src/lib/app-utils/release-flags.d.ts +1 -1
  107. package/src/lib/app-utils/release-flags.js +11 -0
  108. package/src/lib/app-utils/release-flags.js.map +1 -1
  109. package/src/lib/app-utils/rendered-widths.d.ts +121 -0
  110. package/src/lib/app-utils/rendered-widths.js +211 -0
  111. package/src/lib/app-utils/rendered-widths.js.map +1 -0
  112. package/src/lib/app-utils/repeat-sources.d.ts +2 -1
  113. package/src/lib/app-utils/repeat-sources.js.map +1 -1
  114. package/src/lib/app-utils/screen-route.d.ts +154 -36
  115. package/src/lib/app-utils/screen-route.js +185 -40
  116. package/src/lib/app-utils/screen-route.js.map +1 -1
  117. package/src/lib/app-utils/seo-audit.d.ts +11 -1
  118. package/src/lib/app-utils/seo-audit.js +33 -13
  119. package/src/lib/app-utils/seo-audit.js.map +1 -1
  120. package/src/lib/app-utils/seo-keywords.d.ts +11 -0
  121. package/src/lib/app-utils/seo-keywords.js +19 -5
  122. package/src/lib/app-utils/seo-keywords.js.map +1 -1
  123. package/src/lib/app-utils/seo-page-facts.d.ts +47 -4
  124. package/src/lib/app-utils/seo-page-facts.js +136 -31
  125. package/src/lib/app-utils/seo-page-facts.js.map +1 -1
  126. package/src/lib/app-utils/seo-site-scan.d.ts +42 -4
  127. package/src/lib/app-utils/seo-site-scan.js +113 -12
  128. package/src/lib/app-utils/seo-site-scan.js.map +1 -1
  129. package/src/lib/app-utils/server.d.ts +5 -4
  130. package/src/lib/app-utils/server.js +14 -5
  131. package/src/lib/app-utils/server.js.map +1 -1
  132. package/src/lib/app-utils/site-icon-set.d.ts +195 -0
  133. package/src/lib/app-utils/site-icon-set.js +351 -0
  134. package/src/lib/app-utils/site-icon-set.js.map +1 -0
  135. package/src/lib/app-utils/site-interactions.d.ts +101 -4
  136. package/src/lib/app-utils/site-interactions.js +120 -4
  137. package/src/lib/app-utils/site-interactions.js.map +1 -1
  138. package/src/lib/app-utils/starter-template-nodes.d.ts +7 -0
  139. package/src/lib/app-utils/starter-template-nodes.js +3 -0
  140. package/src/lib/app-utils/starter-template-nodes.js.map +1 -1
  141. package/src/lib/app-utils/starter-templates.d.ts +5 -19
  142. package/src/lib/app-utils/starter-templates.js +5 -49
  143. package/src/lib/app-utils/starter-templates.js.map +1 -1
  144. package/src/lib/app-utils/transfer-launcher-context.d.ts +136 -0
  145. package/src/lib/app-utils/transfer-launcher-context.js +23 -0
  146. package/src/lib/app-utils/transfer-launcher-context.js.map +1 -0
  147. package/src/lib/app-utils/transfer-resume-import.d.ts +39 -0
  148. package/src/lib/app-utils/transfer-resume-import.js +128 -0
  149. package/src/lib/app-utils/transfer-resume-import.js.map +1 -0
  150. package/src/lib/app-utils/upgrade-proposal.d.ts +66 -0
  151. package/src/lib/app-utils/upgrade-proposal.js +95 -0
  152. package/src/lib/app-utils/upgrade-proposal.js.map +1 -0
  153. package/src/lib/app-utils/utc-month.d.ts +33 -0
  154. package/src/lib/app-utils/utc-month.js +35 -0
  155. package/src/lib/app-utils/utc-month.js.map +1 -0
  156. package/src/lib/app-utils/visitor-record-ceiling.d.ts +4 -4
  157. package/src/lib/app-utils/visitor-record-ceiling.js +4 -4
  158. package/src/lib/app-utils/visitor-record-ceiling.js.map +1 -1
  159. package/src/lib/app-utils/wire-nodes.d.ts +39 -19
  160. package/src/lib/app-utils/wire-nodes.js +120 -34
  161. package/src/lib/app-utils/wire-nodes.js.map +1 -1
  162. package/src/lib/data-transfer/access.d.ts +74 -0
  163. package/src/lib/data-transfer/access.js +93 -0
  164. package/src/lib/data-transfer/access.js.map +1 -0
  165. package/src/lib/data-transfer/derive.d.ts +246 -0
  166. package/src/lib/data-transfer/derive.js +1007 -0
  167. package/src/lib/data-transfer/derive.js.map +1 -0
  168. package/src/lib/data-transfer/export-file.d.ts +46 -0
  169. package/src/lib/data-transfer/export-file.js +146 -0
  170. package/src/lib/data-transfer/export-file.js.map +1 -0
  171. package/src/lib/data-transfer/field-catalog.d.ts +134 -0
  172. package/src/lib/data-transfer/field-catalog.js +278 -0
  173. package/src/lib/data-transfer/field-catalog.js.map +1 -0
  174. package/src/lib/data-transfer/header-match.d.ts +129 -0
  175. package/src/lib/data-transfer/header-match.js +367 -0
  176. package/src/lib/data-transfer/header-match.js.map +1 -0
  177. package/src/lib/data-transfer/index.d.ts +34 -0
  178. package/src/lib/data-transfer/index.js +40 -0
  179. package/src/lib/data-transfer/index.js.map +1 -0
  180. package/src/lib/data-transfer/job.d.ts +190 -0
  181. package/src/lib/data-transfer/job.js +229 -0
  182. package/src/lib/data-transfer/job.js.map +1 -0
  183. package/src/lib/data-transfer/lookup.d.ts +45 -0
  184. package/src/lib/data-transfer/lookup.js +71 -0
  185. package/src/lib/data-transfer/lookup.js.map +1 -0
  186. package/src/lib/data-transfer/match.d.ts +99 -0
  187. package/src/lib/data-transfer/match.js +244 -0
  188. package/src/lib/data-transfer/match.js.map +1 -0
  189. package/src/lib/data-transfer/package-plan.d.ts +205 -0
  190. package/src/lib/data-transfer/package-plan.js +475 -0
  191. package/src/lib/data-transfer/package-plan.js.map +1 -0
  192. package/src/lib/data-transfer/package.d.ts +181 -0
  193. package/src/lib/data-transfer/package.js +426 -0
  194. package/src/lib/data-transfer/package.js.map +1 -0
  195. package/src/lib/data-transfer/picklist-map.d.ts +139 -0
  196. package/src/lib/data-transfer/picklist-map.js +271 -0
  197. package/src/lib/data-transfer/picklist-map.js.map +1 -0
  198. package/src/lib/data-transfer/plan.d.ts +176 -0
  199. package/src/lib/data-transfer/plan.js +451 -0
  200. package/src/lib/data-transfer/plan.js.map +1 -0
  201. package/src/lib/data-transfer/policy.d.ts +170 -0
  202. package/src/lib/data-transfer/policy.js +378 -0
  203. package/src/lib/data-transfer/policy.js.map +1 -0
  204. package/src/lib/data-transfer/resource.d.ts +211 -0
  205. package/src/lib/data-transfer/resource.js +241 -0
  206. package/src/lib/data-transfer/resource.js.map +1 -0
  207. package/src/lib/data-transfer/review.d.ts +70 -0
  208. package/src/lib/data-transfer/review.js +233 -0
  209. package/src/lib/data-transfer/review.js.map +1 -0
  210. package/src/lib/data-transfer/similarity.d.ts +40 -0
  211. package/src/lib/data-transfer/similarity.js +106 -0
  212. package/src/lib/data-transfer/similarity.js.map +1 -0
  213. package/src/lib/data-transfer/site-package.d.ts +365 -0
  214. package/src/lib/data-transfer/site-package.js +1077 -0
  215. package/src/lib/data-transfer/site-package.js.map +1 -0
  216. package/src/lib/data-transfer/source.d.ts +74 -0
  217. package/src/lib/data-transfer/source.js +293 -0
  218. package/src/lib/data-transfer/source.js.map +1 -0
  219. package/src/lib/data-transfer/transfer-api.d.ts +898 -0
  220. package/src/lib/data-transfer/transfer-api.js +107 -0
  221. package/src/lib/data-transfer/transfer-api.js.map +1 -0
  222. package/src/lib/foundation/definitions/org-billing.types.d.ts +31 -0
  223. package/src/lib/foundation/definitions/org-billing.types.js.map +1 -1
  224. package/src/lib/foundation/definitions/organization.types.d.ts +42 -1
  225. package/src/lib/foundation/definitions/organization.types.js.map +1 -1
  226. package/src/lib/foundation/definitions/platform.types.d.ts +6 -4
  227. package/src/lib/foundation/definitions/platform.types.js.map +1 -1
  228. package/src/lib/foundation/index.d.ts +1 -1
  229. package/src/lib/foundation/index.js.map +1 -1
  230. package/src/lib/plugin-manager/feature-plugins.d.ts +91 -2
  231. package/src/lib/plugin-manager/feature-plugins.js +48 -3
  232. package/src/lib/plugin-manager/feature-plugins.js.map +1 -1
  233. package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +50 -0
  234. package/src/lib/plugin-manager/first-party-plugins.generated.js +1129 -28
  235. package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -1
  236. package/src/lib/plugin-manager/index.d.ts +0 -1
  237. package/src/lib/plugin-manager/index.js +0 -1
  238. package/src/lib/plugin-manager/index.js.map +1 -1
  239. package/src/lib/plugin-manager/interaction-recipes.d.ts +142 -0
  240. package/src/lib/plugin-manager/interaction-recipes.js +104 -0
  241. package/src/lib/plugin-manager/interaction-recipes.js.map +1 -0
  242. package/src/lib/plugin-manager/interaction-step-checks.d.ts +66 -0
  243. package/src/lib/plugin-manager/interaction-step-checks.js +86 -0
  244. package/src/lib/plugin-manager/interaction-step-checks.js.map +1 -0
  245. package/src/lib/plugin-manager/plugin-artifact-types.d.ts +235 -0
  246. package/src/lib/plugin-manager/plugin-artifact-types.js +99 -0
  247. package/src/lib/plugin-manager/plugin-artifact-types.js.map +1 -0
  248. package/src/lib/plugin-manager/plugin-contact-capture.d.ts +8 -0
  249. package/src/lib/plugin-manager/plugin-contact-capture.js.map +1 -1
  250. package/src/lib/plugin-manager/plugin-conversion-credit.d.ts +216 -0
  251. package/src/lib/plugin-manager/plugin-conversion-credit.js +91 -0
  252. package/src/lib/plugin-manager/plugin-conversion-credit.js.map +1 -0
  253. package/src/lib/plugin-manager/plugin-entity-pickers.d.ts +83 -0
  254. package/src/lib/plugin-manager/plugin-entity-pickers.js +87 -0
  255. package/src/lib/plugin-manager/plugin-entity-pickers.js.map +1 -0
  256. package/src/lib/plugin-manager/plugin-host-resources.d.ts +6 -0
  257. package/src/lib/plugin-manager/plugin-host-resources.js +6 -1
  258. package/src/lib/plugin-manager/plugin-host-resources.js.map +1 -1
  259. package/src/lib/plugin-manager/plugin-intake-gates.d.ts +75 -0
  260. package/src/lib/plugin-manager/plugin-intake-gates.js +49 -0
  261. package/src/lib/plugin-manager/plugin-intake-gates.js.map +1 -0
  262. package/src/lib/plugin-manager/plugin-jobs.d.ts +5 -5
  263. package/src/lib/plugin-manager/plugin-jobs.js +7 -7
  264. package/src/lib/plugin-manager/plugin-jobs.js.map +1 -1
  265. package/src/lib/plugin-manager/plugin-live-paths.d.ts +70 -0
  266. package/src/lib/plugin-manager/plugin-live-paths.js +66 -0
  267. package/src/lib/plugin-manager/plugin-live-paths.js.map +1 -0
  268. package/src/lib/plugin-manager/plugin-org-erasure.d.ts +3 -2
  269. package/src/lib/plugin-manager/plugin-org-erasure.js +30 -5
  270. package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -1
  271. package/src/lib/plugin-manager/plugin-person-erasure.d.ts +68 -9
  272. package/src/lib/plugin-manager/plugin-person-erasure.js +196 -51
  273. package/src/lib/plugin-manager/plugin-person-erasure.js.map +1 -1
  274. package/src/lib/plugin-manager/plugin-person-records.d.ts +275 -0
  275. package/src/lib/plugin-manager/plugin-person-records.js +107 -0
  276. package/src/lib/plugin-manager/plugin-person-records.js.map +1 -0
  277. package/src/lib/plugin-manager/plugin-record-counts.d.ts +76 -0
  278. package/src/lib/plugin-manager/plugin-record-counts.js +49 -0
  279. package/src/lib/plugin-manager/plugin-record-counts.js.map +1 -0
  280. package/src/lib/plugin-manager/plugin-record-email-state.d.ts +26 -0
  281. package/src/lib/plugin-manager/plugin-record-email-state.js +16 -0
  282. package/src/lib/plugin-manager/plugin-record-email-state.js.map +1 -1
  283. package/src/lib/plugin-manager/plugin-record-index.d.ts +10 -0
  284. package/src/lib/plugin-manager/plugin-record-index.js.map +1 -1
  285. package/src/lib/plugin-manager/plugin-record-lists.d.ts +86 -6
  286. package/src/lib/plugin-manager/plugin-record-lists.js +42 -5
  287. package/src/lib/plugin-manager/plugin-record-lists.js.map +1 -1
  288. package/src/lib/plugin-manager/plugin-record-origin.d.ts +79 -0
  289. package/src/lib/plugin-manager/plugin-record-origin.js +46 -0
  290. package/src/lib/plugin-manager/plugin-record-origin.js.map +1 -0
  291. package/src/lib/plugin-manager/plugin-record-pages.d.ts +37 -0
  292. package/src/lib/plugin-manager/plugin-record-pages.js +52 -0
  293. package/src/lib/plugin-manager/plugin-record-pages.js.map +1 -0
  294. package/src/lib/plugin-manager/plugin-record-timeline.d.ts +60 -0
  295. package/src/lib/plugin-manager/plugin-record-timeline.js +16 -0
  296. package/src/lib/plugin-manager/plugin-record-timeline.js.map +1 -1
  297. package/src/lib/plugin-manager/plugin-resource-drafts.d.ts +5 -5
  298. package/src/lib/plugin-manager/plugin-resource-drafts.js.map +1 -1
  299. package/src/lib/plugin-manager/plugin-revocations.d.ts +64 -0
  300. package/src/lib/plugin-manager/plugin-revocations.js +47 -0
  301. package/src/lib/plugin-manager/plugin-revocations.js.map +1 -0
  302. package/src/lib/plugin-manager/plugin-send-tallies.d.ts +69 -0
  303. package/src/lib/plugin-manager/plugin-send-tallies.js +45 -0
  304. package/src/lib/plugin-manager/plugin-send-tallies.js.map +1 -0
  305. package/src/lib/plugin-manager/plugin-site-bundle.d.ts +40 -0
  306. package/src/lib/plugin-manager/plugin-site-bundle.js +4 -0
  307. package/src/lib/plugin-manager/plugin-site-bundle.js.map +1 -1
  308. package/src/lib/plugin-manager/plugin-site-export.d.ts +57 -1
  309. package/src/lib/plugin-manager/plugin-site-export.js +23 -10
  310. package/src/lib/plugin-manager/plugin-site-export.js.map +1 -1
  311. package/src/lib/plugin-manager/plugin-sitemap-readers.d.ts +146 -0
  312. package/src/lib/plugin-manager/plugin-sitemap-readers.js +110 -0
  313. package/src/lib/plugin-manager/plugin-sitemap-readers.js.map +1 -0
  314. package/src/lib/plugin-manager/plugin-transfer-resources.d.ts +714 -0
  315. package/src/lib/plugin-manager/plugin-transfer-resources.js +443 -0
  316. package/src/lib/plugin-manager/plugin-transfer-resources.js.map +1 -0
  317. package/src/lib/plugin-manager/plugin-usage-axes.d.ts +54 -5
  318. package/src/lib/plugin-manager/plugin-usage-axes.js +11 -3
  319. package/src/lib/plugin-manager/plugin-usage-axes.js.map +1 -1
  320. package/src/lib/plugin-manager/plugin-user-erasure.js +9 -1
  321. package/src/lib/plugin-manager/plugin-user-erasure.js.map +1 -1
  322. package/src/lib/plugin-manager/plugin-visitor-doors.d.ts +104 -0
  323. package/src/lib/plugin-manager/plugin-visitor-doors.js +108 -0
  324. package/src/lib/plugin-manager/plugin-visitor-doors.js.map +1 -0
  325. package/src/lib/plugin-manager/realm-host-aglyn.generated.js +2 -0
  326. package/src/lib/plugin-manager/realm-host-aglyn.generated.js.map +1 -1
  327. package/src/lib/plugin-manager/repeat-rows.d.ts +5 -6
  328. package/src/lib/plugin-manager/repeat-rows.js.map +1 -1
  329. package/src/lib/app-utils/actions.d.ts +0 -310
  330. package/src/lib/app-utils/actions.js +0 -506
  331. package/src/lib/app-utils/actions.js.map +0 -1
  332. package/src/lib/app-utils/automation-placeholders.d.ts +0 -72
  333. package/src/lib/app-utils/automation-placeholders.js +0 -207
  334. package/src/lib/app-utils/automation-placeholders.js.map +0 -1
  335. package/src/lib/app-utils/dataset-models.d.ts +0 -339
  336. package/src/lib/app-utils/dataset-models.js +0 -722
  337. package/src/lib/app-utils/dataset-models.js.map +0 -1
  338. package/src/lib/app-utils/datasets.d.ts +0 -171
  339. package/src/lib/app-utils/datasets.js +0 -227
  340. package/src/lib/app-utils/datasets.js.map +0 -1
  341. package/src/lib/app-utils/form-abuse-ceiling.d.ts +0 -146
  342. package/src/lib/app-utils/form-abuse-ceiling.js +0 -158
  343. package/src/lib/app-utils/form-abuse-ceiling.js.map +0 -1
  344. package/src/lib/plugin-manager/order-fulfilment.d.ts +0 -142
  345. package/src/lib/plugin-manager/order-fulfilment.js +0 -104
  346. package/src/lib/plugin-manager/order-fulfilment.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/first-party-plugins.generated.ts"],"sourcesContent":["/**\n * GENERATED FILE — do not edit. Regenerate with:\n * node tools/scripts/generate-plugin-manifests.mjs\n *\n * The switchboard catalog (AGL-3080): one row per plugin and capability, each\n * declared by its own `catalog` block in plugins.config.json. The core holds\n * the types and the resolvers in `enabled-plugins.ts`; it holds no row.\n */\n\nimport type { FirstPartyPlugin, PluginEditBarLink, PublishedSiteImpact } from './enabled-plugins'\nimport type { ResolvedPluginHostCollection, ResolvedPluginOrgCollection } from './plugin-host-collections'\nimport type { ResolvedPluginSitemapSection } from './plugin-sitemap-sections'\nimport type { ResolvedPluginSiteBundleSectionDeclaration } from './plugin-site-bundle'\nimport type { ResolvedPluginOrgCapacity } from './plugin-org-capacity'\nimport type { ResolvedPluginCostAxis, ResolvedPluginSpendLine, ResolvedPluginUsageBand, ResolvedPluginUsageMeter } from './plugin-usage-axes'\nimport type { ResolvedPluginPlanFeature, ResolvedPluginPlanQuota } from './plugin-plan-entitlements'\nimport type { FunctionBindings } from './plugin-contributions'\nimport type { PluginDistribution } from './plugin-distribution'\nimport type { RepeatSourceDeclaration } from './repeat-rows'\nimport type { PluginTemplateSource } from './plugin-template-sources'\nimport type { FormRecordTargetDeclaration } from './submission-record-target'\nimport type { ResolvedBesignerDocument } from './besigner-documents'\nimport type { PluginOrgKeyedCollection } from './plugin-org-erasure'\nimport type { ResolvedVideoEmbedProvider } from './video-embed-provider'\nimport type { AnalyticsProviderDeclaration } from '../app-utils/analytics-provider'\nimport type { InteractionStepDeclaration } from '../app-utils/site-interactions'\nimport type { ServerStepDeclaration } from './plugin-server-steps'\nimport type { NotificationCategoryDeclaration, NotificationDigestDeclaration } from '../app-utils/notifications'\n\nexport const FIRST_PARTY_PLUGINS: readonly FirstPartyPlugin[] = [\n {\n \"id\": \"mui\",\n \"label\": \"Components\",\n \"alwaysOn\": true,\n \"description\": \"The base component and theme library every site builds on.\"\n },\n {\n \"id\": \"forms\",\n \"label\": \"Forms\",\n \"alwaysOnForWorkspace\": true,\n \"description\": \"Forms on the site and the catalog that owns them.\",\n \"siteOff\": {\n \"stops\": \"Switching Forms off for this site stops forms rendering on its published pages, refuses every submission sent to it, and blocks publishing a form, or a page that carries one, until Forms is back on.\",\n \"keeps\": \"Submissions already received, the workspace’s form catalog and the CRM leads its forms created are kept, and forms keep working on the workspace’s other sites.\",\n \"confirm\": true,\n \"pages\": {\n \"heading\": \"These published pages carry a form. Their forms stop rendering and stop accepting submissions:\",\n \"none\": \"No published page on this site carries a form.\"\n }\n }\n },\n {\n \"id\": \"ai\",\n \"label\": \"AI\",\n \"alwaysOnForWorkspace\": true,\n \"description\": \"The assistant, generative building and automation, and the AI add-on.\",\n \"siteOff\": {\n \"stops\": \"Switching AI off for this site hides the assistant, Describe it, the AI cards and the editor’s AI controls on this site, refuses every AI request made for it, and stops its queued AI jobs without spending credits.\",\n \"keeps\": \"It does not stop the workspace’s AI add-on, credits, allotments or overage billing, and AI keeps working on the workspace’s other sites.\"\n }\n },\n {\n \"id\": \"theme-presets\",\n \"label\": \"Themes\",\n \"alwaysOnForWorkspace\": true,\n \"description\": \"Built-in themes to pick from on Setup → Theme: Bootstrap, Minimal and Material 3.\",\n \"siteOff\": {\n \"stops\": \"Switching Themes off for this site removes its built-in themes from the theme picker.\",\n \"keeps\": \"A site already using one keeps it, with every edit made to it: picking a theme copies it onto the site, so nothing on the published site changes.\"\n }\n },\n {\n \"id\": \"accounts\",\n \"label\": \"User Accounts\",\n \"description\": \"Visitor accounts on the site: the /signin, /signup and /recover pages, and the Members blocks. On for a new site; a site created before that stays off until you turn it on.\",\n \"releaseFlag\": \"release_member_accounts\",\n \"defaultOffPerSite\": true,\n \"requires\": [\n \"commerce\"\n ]\n },\n {\n \"id\": \"bookings\",\n \"label\": \"Bookings\",\n \"description\": \"Services, open slots, and paid bookings.\",\n \"releaseFlag\": \"release_bookings\"\n },\n {\n \"id\": \"commerce\",\n \"label\": \"Commerce\",\n \"description\": \"Products, carts, checkout, orders, POS.\",\n \"releaseFlag\": \"release_commerce_v2\"\n },\n {\n \"id\": \"marketplace\",\n \"label\": \"Marketplace\",\n \"description\": \"Marketplace listings, templates, and installs.\",\n \"releaseFlag\": \"release_marketplace\"\n },\n {\n \"id\": \"crm\",\n \"label\": \"CRM\",\n \"description\": \"Leads, contacts, companies, deals, tasks and reports.\",\n \"releaseFlag\": \"release_crm\"\n },\n {\n \"id\": \"outreach\",\n \"label\": \"Sequences\",\n \"description\": \"One-to-one email sequences sent from connected mailboxes.\",\n \"releaseFlag\": \"release_outreach\"\n },\n {\n \"id\": \"data\",\n \"label\": \"Data\",\n \"description\": \"Datasets, records, and CSV import/export.\",\n \"releaseFlag\": \"release_data_store\"\n },\n {\n \"id\": \"email\",\n \"label\": \"Email\",\n \"description\": \"Designed emails and campaign sending.\",\n \"releaseFlag\": \"release_email\"\n },\n {\n \"id\": \"events-calendar\",\n \"label\": \"Events Calendar\",\n \"description\": \"Event lists and calendars.\",\n \"releaseFlag\": \"release_events\"\n },\n {\n \"id\": \"inbox\",\n \"label\": \"Inbox\",\n \"description\": \"Form submissions and lead inbox.\",\n \"releaseFlag\": \"release_inbox\"\n },\n {\n \"id\": \"logic\",\n \"label\": \"Logic\",\n \"description\": \"Variables, functions, and reference health.\",\n \"releaseFlag\": \"release_logic\"\n },\n {\n \"id\": \"marketing\",\n \"label\": \"Marketing\",\n \"description\": \"Overlays, campaigns, and experiments.\",\n \"releaseFlag\": \"release_marketing\"\n },\n {\n \"id\": \"redirects\",\n \"label\": \"Redirects\",\n \"description\": \"URL redirect rules.\",\n \"releaseFlag\": \"release_redirects\"\n },\n {\n \"id\": \"workflows\",\n \"label\": \"Automation\",\n \"description\": \"Workflows, actions, webhooks, and run logs.\",\n \"releaseFlag\": \"release_workflows\"\n },\n]\n\nexport const PUBLISHED_SITE_IMPACT: Readonly<Record<string, PublishedSiteImpact>> = {\n \"mui\": \"elements\",\n \"forms\": \"elements\",\n \"ai\": \"console-only\",\n \"theme-presets\": \"console-only\",\n \"accounts\": \"routes\",\n \"bookings\": \"elements\",\n \"commerce\": \"elements\",\n \"marketplace\": \"console-only\",\n \"crm\": \"console-only\",\n \"outreach\": \"console-only\",\n \"data\": \"console-only\",\n \"email\": \"elements\",\n \"events-calendar\": \"elements\",\n \"inbox\": \"console-only\",\n \"logic\": \"console-only\",\n \"marketing\": \"elements\",\n \"redirects\": \"routes\",\n \"workflows\": \"routes\",\n}\n\n/**\n * The admin edit bar's quick links, in the order they are drawn — each\n * declared by the plugin whose console page it opens (AGL-3080).\n */\nexport const PLUGIN_EDIT_BAR_LINKS: readonly PluginEditBarLink[] = [\n {\n \"pluginId\": \"inbox\",\n \"order\": 20,\n \"label\": \"Inbox\",\n \"path\": \"/inbox\"\n },\n {\n \"pluginId\": \"commerce\",\n \"order\": 30,\n \"label\": \"Orders\",\n \"path\": \"/products/orders\"\n },\n]\n\n/**\n * Every host subcollection a first-party plugin owns, declared by that plugin\n * (AGL-3080). Core's readers ask this list; core names no collection.\n */\nexport const PLUGIN_HOST_COLLECTIONS_DECLARED: readonly ResolvedPluginHostCollection[] = [\n {\n \"pluginId\": \"forms\",\n \"name\": \"forms\",\n \"routeSlug\": \"forms\"\n },\n {\n \"pluginId\": \"bookings\",\n \"name\": \"services\",\n \"routeSlug\": \"bookings\",\n \"resource\": {\n \"kind\": \"service\",\n \"label\": \"services\",\n \"activityNoun\": \"service\",\n \"quotaKey\": \"servicesPerHost\",\n \"entitlement\": \"bookings\",\n \"fields\": [\n \"name\",\n \"description\",\n \"durationMinutes\",\n \"priceUsd\",\n \"timezone\",\n \"windows\",\n \"crmFollowUpTask\",\n \"crmMeetingActivity\"\n ]\n },\n \"siteExport\": {\n \"limit\": 50,\n \"fields\": [\n \"name\",\n \"description\",\n \"durationMinutes\",\n \"priceUsd\",\n \"timezone\",\n \"windows\",\n \"crmFollowUpTask\",\n \"crmMeetingActivity\"\n ]\n }\n },\n {\n \"pluginId\": \"bookings\",\n \"name\": \"bookings\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Booking records — a customer, a time and a service pointer. The service holds the imagery and IS scanned; a booking is the transaction against it.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"products\",\n \"routeSlug\": \"products\",\n \"resource\": {\n \"kind\": \"product\",\n \"label\": \"products\",\n \"activityNoun\": \"product\",\n \"quotaKey\": \"productsPerHost\",\n \"entitlement\": \"commerce\",\n \"fields\": [\n \"name\",\n \"slug\",\n \"description\",\n \"type\",\n \"status\",\n \"mediaUrls\",\n \"categoryIds\",\n \"tags\",\n \"options\",\n \"variants\",\n \"seo\",\n \"supplierId\",\n \"oversellPolicy\",\n \"taxExempt\",\n \"digitalFiles\",\n \"downloadLimit\",\n \"subscription\",\n \"subscriptionOptional\",\n \"gatedVideos\",\n \"relatedProductIds\",\n \"giftCard\",\n \"lowStockThreshold\",\n \"createdAtMs\",\n \"updatedAtMs\",\n \"nameLower\",\n \"nameTokens\",\n \"nameReversed\",\n \"skus\",\n \"barcodes\",\n \"priceFromCents\",\n \"soldOut\",\n \"collectionIds\",\n \"priceUsd\",\n \"inventory\",\n \"imageUrl\"\n ],\n \"stamps\": {\n \"deletedAt\": null\n }\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"productCategories\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"suppliers\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"locations\",\n \"routeSlug\": \"products\",\n \"resource\": {\n \"kind\": \"location\",\n \"label\": \"inventory locations\",\n \"activityNoun\": \"inventory location\",\n \"quotaKey\": \"inventoryLocations\",\n \"entitlement\": \"commerce\",\n \"fields\": [\n \"name\",\n \"isDefault\",\n \"address\"\n ]\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"coupons\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"discounts\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"reviews\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"memberPosts\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"resources\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"settings\",\n \"label\": \"Store settings\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"siteMembers\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"siteMemberCredentials\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"A site member's password hash, one document per member, read and written only by the membership routes (AGL-3308). A credential with no content field, and no client may read it.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"orders\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Completed orders. Line items COPY a product's `imageUrl` at purchase time, so these would match — and matching would be the wrong answer: an order is an immutable record of what was sold, deleting the asset changes nothing about it, and no author can edit one. A busy store also holds more of these than the whole read budget.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"carts\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Live and abandoned carts, with the same copied line-item image and the same reasoning, at higher volume — one document per shopper session.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"checkouts\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"In-flight checkout sessions. Transient buyer state carrying the same line-item snapshot as `carts`.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"reservations\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"POS and booking holds. Short-lived transaction rows pointing at a resource that is itself scanned.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"stockHolds\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Inventory holds taken during checkout. Machine-written, short-lived, and a quantity rather than content.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"subscriptions\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Site membership subscriptions: a plan pointer, a status and Stripe ids. Server-written from the billing webhook.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"registers\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"POS register allocations — a count against the register add-on, read by billing (AGL-1775). No content field at all.\",\n \"resource\": {\n \"kind\": \"register\",\n \"label\": \"POS registers\",\n \"activityNoun\": \"POS register\",\n \"quotaKey\": \"posRegisters\",\n \"entitlement\": \"pos\",\n \"fields\": [\n \"name\",\n \"locationId\"\n ]\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"giftCards\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Gift card balances and redemption history. Money, not content.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"licenseKeys\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Digital-product license keys issued at fulfilment: a code, an order pointer and a revocation flag.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"inventoryAdjustments\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"The append-only stock adjustment ledger (AGL-2269). One row per manual stock edit and per cancellation release, unbounded over a store's life.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"inventoryReconciliation\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Reconciliation runs comparing counted stock against recorded stock. Machine-written totals.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"restockAlerts\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Back-in-stock requests: an email address and a product pointer, written by visitors.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"stripeTaxRates\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Cached Stripe tax rate ids, written by the tax sync. Vendor ids.\"\n },\n {\n \"pluginId\": \"marketplace\",\n \"name\": \"installs\"\n },\n {\n \"pluginId\": \"crm\",\n \"name\": \"leads\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Captured leads, on the same footing as `formSubmissions`: visitor-submitted, unbounded, and never a place an author places an asset.\"\n },\n {\n \"pluginId\": \"email\",\n \"name\": \"suppressions\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Unsubscribes, bounces and spam complaints. Email addresses and a reason.\"\n },\n {\n \"pluginId\": \"events-calendar\",\n \"name\": \"events\",\n \"routeSlug\": \"events\"\n },\n {\n \"pluginId\": \"inbox\",\n \"name\": \"formSubmissions\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Visitor form submissions. Unbounded, PII-heavy, and a file attached to one is the visitor's upload — not a library asset an author picked, and not something deleting a library asset would break.\"\n },\n {\n \"pluginId\": \"logic\",\n \"name\": \"functions\",\n \"routeSlug\": \"logic\",\n \"resource\": {\n \"kind\": \"function\",\n \"label\": \"functions\",\n \"activityNoun\": \"function\",\n \"activityType\": \"function\",\n \"quotaKey\": \"functionsPerHost\",\n \"fields\": [\n \"name\",\n \"parameters\",\n \"variables\",\n \"operations\",\n \"returnValue\"\n ]\n },\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"parameters\",\n \"variables\",\n \"operations\",\n \"returnValue\"\n ]\n }\n },\n {\n \"pluginId\": \"logic\",\n \"name\": \"variables\",\n \"routeSlug\": \"logic\",\n \"resource\": {\n \"kind\": \"variable\",\n \"label\": \"variables\",\n \"activityNoun\": \"variable\",\n \"activityType\": \"variable\",\n \"quotaKey\": \"variablesPerHost\",\n \"fields\": [\n \"name\",\n \"type\",\n \"value\",\n \"workflowId\",\n \"workflowName\"\n ]\n },\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"type\",\n \"value\",\n \"workflowId\",\n \"workflowName\"\n ]\n }\n },\n {\n \"pluginId\": \"marketing\",\n \"name\": \"experiments\",\n \"routeSlug\": \"marketing\"\n },\n {\n \"pluginId\": \"marketing\",\n \"name\": \"overlays\",\n \"routeSlug\": \"marketing\"\n },\n {\n \"pluginId\": \"marketing\",\n \"name\": \"campaignAttributions\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"One row per conversion — a form submission, a lead, a contact or a booking — recording which campaign the visitor arrived from. Written only by the Admin SDK, and the whole record is three sanitized UTM strings capped at a hundred characters: there is no field an asset could occupy and no surface that could pick one into it. Unbounded on the same footing as the conversions it credits.\"\n },\n {\n \"pluginId\": \"redirects\",\n \"name\": \"redirects\",\n \"routeSlug\": \"redirects\",\n \"resource\": {\n \"kind\": \"redirect\",\n \"label\": \"redirects\",\n \"activityNoun\": \"redirect\",\n \"quotaKey\": \"redirectsPerHost\",\n \"entitlement\": \"redirects\",\n \"requiresPublishRole\": true,\n \"fields\": [\n \"source\",\n \"destination\",\n \"statusCode\",\n \"kind\",\n \"priority\",\n \"enabled\"\n ],\n \"externalDestination\": {\n \"field\": \"destination\",\n \"approvedByField\": \"externalDestinationApprovedBy\"\n },\n \"livePathField\": \"source\"\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"name\": \"workflows\",\n \"routeSlug\": \"automation\",\n \"resource\": {\n \"kind\": \"workflow\",\n \"label\": \"workflows\",\n \"activityNoun\": \"workflow\",\n \"activityType\": \"workflow\",\n \"quotaKey\": \"workflowsPerHost\",\n \"entitlement\": \"workflows\",\n \"fields\": [\n \"name\",\n \"steps\",\n \"returnValue\",\n \"trigger\"\n ],\n \"duplicate\": {\n \"nameField\": \"name\",\n \"fields\": [\n \"steps\",\n \"returnValue\"\n ],\n \"stamps\": {\n \"trigger\": null\n }\n }\n },\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"steps\",\n \"returnValue\",\n \"trigger\"\n ]\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"name\": \"webhooks\",\n \"routeSlug\": \"automation\",\n \"resource\": {\n \"kind\": \"webhook\",\n \"label\": \"webhooks\",\n \"activityNoun\": \"webhook\",\n \"entitlement\": \"webhooks\",\n \"platformCap\": \"WEBHOOK_MAX_PER_HOST\",\n \"softDeletes\": true,\n \"fields\": [\n \"name\",\n \"direction\",\n \"url\",\n \"workflowName\",\n \"secret\",\n \"enabled\"\n ]\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"name\": \"actions\",\n \"routeSlug\": \"automation\",\n \"resource\": {\n \"kind\": \"action\",\n \"label\": \"interactions and actions\",\n \"activityNoun\": \"action\",\n \"platformCap\": \"ACTIONS_MAX_PER_HOST\",\n \"softDeletes\": true,\n \"fields\": [\n \"name\",\n \"description\",\n \"trigger\",\n \"steps\",\n \"enabled\",\n \"frequency\",\n \"cooldownMinutes\",\n \"audience\",\n \"nodeId\",\n \"screenId\"\n ]\n },\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"trigger\",\n \"steps\",\n \"enabled\",\n \"recipe\"\n ]\n }\n },\n]\n\n/**\n * Every child sitemap a first-party plugin's documents fill, declared by that\n * plugin (AGL-3080), in the order the index lists them.\n */\nexport const PLUGIN_SITEMAP_SECTIONS_DECLARED: readonly ResolvedPluginSitemapSection[] = [\n {\n \"pluginId\": \"commerce\",\n \"section\": \"products\",\n \"collection\": \"products\",\n \"where\": {\n \"field\": \"status\",\n \"equals\": \"active\"\n },\n \"enabledBy\": {\n \"doc\": \"settings/store\",\n \"field\": \"pdpScreenId\"\n },\n \"path\": \"/products/{slug}\",\n \"skipWhen\": \"deletedAt\",\n \"lastmod\": [\n \"updatedAtMs\",\n \"createdAtMs\"\n ]\n },\n {\n \"pluginId\": \"commerce\",\n \"section\": \"catalog\",\n \"collection\": \"collections\",\n \"where\": {\n \"field\": \"kind\",\n \"equals\": \"catalog\"\n },\n \"enabledBy\": {\n \"doc\": \"settings/store\",\n \"field\": \"collectionScreenId\"\n },\n \"path\": \"/collections/{slug}\",\n \"lastmod\": [\n \"updatedAt\",\n \"createdAt\"\n ]\n },\n]\n\n/**\n * Every section of the whole-site backup a first-party plugin answers for,\n * declared by that plugin (AGL-3080), in the order the bundle carries them.\n */\nexport const PLUGIN_SITE_BUNDLE_SECTIONS_DECLARED: readonly ResolvedPluginSiteBundleSectionDeclaration[] = [\n {\n \"pluginId\": \"data\",\n \"key\": \"datasets\",\n \"limit\": 50\n }\n]\n\n/**\n * Every org collection a first-party plugin owns whose documents the media\n * scan reads, declared by that plugin (AGL-3273).\n */\nexport const PLUGIN_ORG_COLLECTIONS_DECLARED: readonly ResolvedPluginOrgCollection[] = [\n {\n \"pluginId\": \"marketing\",\n \"name\": \"campaigns\",\n \"routeSlug\": \"marketing\",\n \"siteField\": \"hostId\",\n \"holdsTransferWhile\": {\n \"field\": \"status\",\n \"values\": [\n \"scheduled\",\n \"sending\"\n ]\n }\n },\n {\n \"pluginId\": \"marketing\",\n \"name\": \"emailCampaigns\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"The campaign CONTAINER — a name, a date window, the list ids it is aimed at, a topic and the sites it runs on. Distinct from `campaigns`, which holds the sends and IS scanned because a send carries the copy that went out. A container carries no copy and no asset reference: the design a send renders is a screen, and the screen is where the picker writes.\"\n },\n {\n \"pluginId\": \"workflows\",\n \"name\": \"automations\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"An org automation (AGL-3302) — a trigger, its conditions, the sites it is placed on, and a step list drawn from the server steps only: email subject and body as plain text, list, dataset and campaign ids, CRM fields and waits. No step it may hold carries a media reference, the in-page steps that could (custom HTML, popups) are refused by its save route, and it is written only by that route.\"\n },\n]\n\n/**\n * Every org capacity a first-party plugin backs, declared by that plugin\n * (AGL-3080). Core owns the money; this says what is counted and what it is\n * called.\n */\nexport const PLUGIN_ORG_CAPACITIES_DECLARED: readonly ResolvedPluginOrgCapacity[] = [\n {\n \"pluginId\": \"data\",\n \"kind\": \"datasets\",\n \"order\": 30,\n \"collection\": \"datasets\",\n \"addonKind\": \"datasets\",\n \"includedEntitlement\": \"datasetsPerOrg\",\n \"purchaseCeilingEntitlement\": \"maxDatasetsPerOrg\",\n \"nouns\": {\n \"one\": \"dataset\",\n \"many\": \"datasets\",\n \"addon\": \"extra datasets\"\n }\n },\n]\n\n/**\n * What each plan includes of every quota a first-party plugin owns, declared\n * by that plugin (AGL-3080). `PLAN_ENTITLEMENTS` composes these; core names\n * no key.\n */\nexport const PLUGIN_PLAN_QUOTAS_DECLARED: readonly ResolvedPluginPlanQuota[] = [\n {\n \"pluginId\": \"forms\",\n \"key\": \"formSubmissionsPerMonth\",\n \"label\": \"Form subs / mo\",\n \"byPlan\": {\n \"free\": 20,\n \"starter\": 200,\n \"pro\": 1000,\n \"business\": 8000,\n \"scale\": 25000,\n \"advanced\": 40000,\n \"agency\": 25000,\n \"enterprise\": 50000\n }\n },\n {\n \"pluginId\": \"marketplace\",\n \"key\": \"marketplaceFeePct\",\n \"label\": \"Marketplace fee %\",\n \"price\": true,\n \"byPlan\": {\n \"free\": 30,\n \"starter\": 20,\n \"pro\": 20,\n \"business\": 20,\n \"scale\": 20,\n \"advanced\": 20,\n \"agency\": 20,\n \"enterprise\": 20\n }\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crmEmailsPerDay\",\n \"label\": \"One-to-one emails / day\",\n \"byPlan\": {\n \"free\": 0,\n \"starter\": 50,\n \"pro\": 150,\n \"business\": 200,\n \"scale\": 300,\n \"advanced\": 500,\n \"agency\": 1000,\n \"enterprise\": 2000\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"key\": \"workflowRunsPerMonth\",\n \"label\": \"Workflow runs / mo\",\n \"byPlan\": {\n \"free\": 0,\n \"starter\": 500,\n \"pro\": 5000,\n \"business\": 50000,\n \"scale\": 150000,\n \"advanced\": 500000,\n \"agency\": 2000000,\n \"enterprise\": 4000000\n }\n },\n {\n \"pluginId\": \"ai\",\n \"key\": \"assistCreditsPerMonth\",\n \"label\": \"AI credits / mo\",\n \"byPlan\": {\n \"free\": 300,\n \"starter\": 750,\n \"pro\": 2750,\n \"business\": 7500,\n \"scale\": 10000,\n \"advanced\": 13000,\n \"agency\": 58000,\n \"enterprise\": 116000\n }\n },\n]\n\n/**\n * What each plan includes of every feature a first-party plugin owns,\n * declared by that plugin (AGL-3080).\n */\nexport const PLUGIN_PLAN_FEATURES_DECLARED: readonly ResolvedPluginPlanFeature[] = [\n {\n \"pluginId\": \"commerce\",\n \"key\": \"storefrontSubscriptions\",\n \"label\": \"Storefront subscriptions\",\n \"byPlan\": {\n \"free\": false,\n \"starter\": false,\n \"pro\": false,\n \"business\": true,\n \"scale\": true,\n \"advanced\": true,\n \"agency\": true,\n \"enterprise\": true\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"giftCards\",\n \"label\": \"Gift cards\",\n \"byPlan\": {\n \"free\": false,\n \"starter\": false,\n \"pro\": false,\n \"business\": true,\n \"scale\": true,\n \"advanced\": true,\n \"agency\": true,\n \"enterprise\": true\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"commerceAnalytics\",\n \"label\": \"Commerce analytics\",\n \"byPlan\": {\n \"free\": false,\n \"starter\": false,\n \"pro\": true,\n \"business\": true,\n \"scale\": true,\n \"advanced\": true,\n \"agency\": true,\n \"enterprise\": true\n }\n },\n {\n \"pluginId\": \"marketplace\",\n \"key\": \"marketplaceSelling\",\n \"label\": \"Sell on the marketplace\",\n \"byPlan\": {\n \"free\": false,\n \"starter\": false,\n \"pro\": true,\n \"business\": true,\n \"scale\": true,\n \"advanced\": true,\n \"agency\": true,\n \"enterprise\": true\n }\n },\n]\n\n/**\n * Every meter a first-party plugin contributes to the platform's cost model,\n * in breakdown order, declared by that plugin (AGL-3080). Core keeps the rates.\n */\nexport const PLUGIN_COST_AXES_DECLARED: readonly ResolvedPluginCostAxis[] = [\n {\n \"pluginId\": \"forms\",\n \"id\": \"formSubmissions\",\n \"order\": 30,\n \"fields\": [\n \"formSubmissions\"\n ],\n \"rate\": \"perFormSubmission\"\n },\n {\n \"pluginId\": \"crm\",\n \"id\": \"contacts\",\n \"order\": 60,\n \"fields\": [\n \"crmRecordsCount\"\n ],\n \"fallbackFields\": [\n \"contactsCount\"\n ],\n \"recordedFields\": [\n \"companiesCount\",\n \"dealsCount\"\n ],\n \"rate\": \"perContactMonth\"\n },\n {\n \"pluginId\": \"ai\",\n \"id\": \"assist\",\n \"order\": 80,\n \"fields\": [\n \"assistCostUsd\"\n ],\n \"staffFields\": [\n \"assistCredits\",\n \"assistOverageUsd\"\n ],\n \"live\": {\n \"collection\": \"assistUsage\",\n \"fields\": [\n \"providerCostUsd\",\n \"estCostUsd\"\n ]\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"id\": \"runs\",\n \"order\": 90,\n \"fields\": [\n \"workflowRuns\",\n \"actionRuns\"\n ],\n \"rate\": \"perRun\"\n },\n]\n\n/**\n * Every band a first-party plugin contributes to the utilization table, in\n * column order, declared by that plugin (AGL-3080).\n */\nexport const PLUGIN_USAGE_BANDS_DECLARED: readonly ResolvedPluginUsageBand[] = [\n {\n \"pluginId\": \"forms\",\n \"id\": \"formSubmissions\",\n \"label\": \"Form submissions\",\n \"order\": 40,\n \"fields\": [\n \"formSubmissions\"\n ],\n \"entitlement\": \"formSubmissionsPerMonth\",\n \"perHost\": true,\n \"hostCounter\": \"formSubmissions\",\n \"metered\": {\n \"rate\": \"perFormSubmission\",\n \"quotedPer\": 1000,\n \"noun\": \"form submissions\",\n \"withheldUntil\": \"release_inbox\"\n }\n },\n {\n \"pluginId\": \"crm\",\n \"id\": \"contactsCount\",\n \"label\": \"CRM records\",\n \"order\": 70,\n \"fields\": [\n \"crmRecordsCount\"\n ],\n \"fallbackFields\": [\n \"contactsCount\"\n ],\n \"entitlement\": \"contactsPerHost\"\n },\n {\n \"pluginId\": \"ai\",\n \"id\": \"assistCredits\",\n \"label\": \"Assist credits\",\n \"order\": 90,\n \"fields\": [\n \"assistCostUsd\"\n ],\n \"entitlement\": \"assistCreditsPerMonth\",\n \"unitCostUsd\": 0.001\n },\n {\n \"pluginId\": \"workflows\",\n \"id\": \"workflowRuns\",\n \"label\": \"Workflow runs\",\n \"order\": 100,\n \"fields\": [\n \"workflowRuns\"\n ],\n \"entitlement\": \"workflowRunsPerMonth\",\n \"hostCounter\": \"workflowRuns\",\n \"alert\": {\n \"label\": \"monthly workflow runs\",\n \"noun\": \"workflow runs\",\n \"outcome\": \"stops\",\n \"reached\": \"Workflows pause until next month and nothing is charged — upgrade in Billing to keep them running.\",\n \"approach\": \"Nothing changes and nothing is charged — at the included amount, workflows pause until next month unless you upgrade in Billing.\"\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"id\": \"actionRuns\",\n \"label\": \"Action runs\",\n \"order\": 110,\n \"fields\": [\n \"actionRuns\"\n ],\n \"entitlement\": \"actionRunsPerMonth\"\n },\n]\n\n/**\n * Every line of a workspace's monthly spend a first-party plugin contributes\n * to its usage budget, in catalog order, declared by that plugin (AGL-3080).\n */\nexport const PLUGIN_SPEND_LINES_DECLARED: readonly ResolvedPluginSpendLine[] = [\n {\n \"pluginId\": \"ai\",\n \"id\": \"assist\",\n \"label\": \"Assist\",\n \"live\": {\n \"collection\": \"assistUsage\",\n \"field\": \"estCostUsd\"\n },\n \"billedFromEnv\": \"BILL_ASSIST_TOKENS_FROM\",\n \"unit\": {\n \"costUsd\": 0.001,\n \"label\": \"Assist credits\"\n }\n },\n]\n\n/**\n * Every meter a first-party plugin measures in the monthly usage sweep, in\n * catalog order, declared by that plugin (AGL-3080). The sweep refuses to bill\n * a month while one of these is unregistered.\n */\nexport const PLUGIN_USAGE_METERS_DECLARED: readonly ResolvedPluginUsageMeter[] = [\n {\"pluginId\":\"crm\",\"id\":\"records\"},\n {\"pluginId\":\"data\",\"id\":\"dataset-storage\"},\n {\"pluginId\":\"ai\",\"id\":\"assist\"},\n]\n\n/**\n * Every top-level plugin collection a workspace erasure sweeps by the field\n * naming the organization, declared by the plugin that owns it (AGL-3080).\n */\nexport const PLUGIN_ORG_KEYED_COLLECTIONS: readonly PluginOrgKeyedCollection[] = [\n {\n \"pluginId\": \"outreach\",\n \"name\": \"outreachMailboxCredentials\",\n \"orgField\": \"orgId\"\n },\n {\n \"pluginId\": \"outreach\",\n \"name\": \"outreachLinks\",\n \"orgField\": \"orgId\"\n },\n]\n\n/**\n * The plugins whose org eraser a workspace erasure may not run without\n * (AGL-3080): each holds a record the erasure promises to destroy.\n */\nexport const PLUGIN_REQUIRED_ORG_ERASERS: readonly string[] = [\"marketplace\"]\n\n/**\n * The plugins whose sales the operator's sales tax return may not be filed\n * without (AGL-3080): each registers a tax return source, and one that did\n * not is refused rather than read as nothing sold.\n */\nexport const PLUGIN_TAX_RETURN_SOURCES: readonly string[] = [\"commerce\",\"marketplace\"]\n\n/**\n * The plugins whose earnings the operator's revenue report may not be read\n * without (AGL-3080): each registers a revenue source, and one that did not\n * is refused rather than read as nothing earned.\n */\nexport const PLUGIN_REVENUE_SOURCES: readonly string[] = [\"commerce\",\"marketplace\"]\n\n/**\n * Where published plugin versions and their kill switches are stored, declared\n * by the plugin that distributes them (AGL-3080). `null` when none does, and\n * the realm loader then resolves nothing.\n */\nexport const PLUGIN_DISTRIBUTION: PluginDistribution | null = {\n \"pluginId\": \"marketplace\",\n \"listings\": \"marketplaceListings\",\n \"versions\": \"pluginVersions\",\n \"revocations\": \"revocations\"\n}\n\n/**\n * The plugin that answers a published page's repeats, declared by that plugin\n * (AGL-3080). `null` when none does, and a repeat then renders its element\n * once, as written.\n */\nexport const PLUGIN_REPEAT_SOURCE_DECLARED: RepeatSourceDeclaration | null = {\n \"pluginId\": \"data\",\n \"id\": \"dataset\"\n}\n\n/**\n * The site documents a plugin authors in the besigner, declared by that\n * plugin (AGL-3080). Empty when none does, and the console's plugin-document\n * editor routes answer 404.\n */\nexport const PLUGIN_BESIGNER_DOCUMENTS_DECLARED: readonly ResolvedBesignerDocument[] = [\n {\n \"pluginId\": \"forms\",\n \"kind\": \"form\",\n \"segment\": \"forms\",\n \"collection\": \"forms\",\n \"noun\": \"form\",\n \"publish\": {\n \"path\": \"/api/forms/promote\",\n \"idField\": \"formId\"\n }\n },\n]\n\n/**\n * The plugin whose records a form's submission may also be filed as, declared\n * by that plugin (AGL-3080). `null` when none does, and no form writes one.\n */\nexport const PLUGIN_FORM_RECORD_TARGET_DECLARED: FormRecordTargetDeclaration | null = {\n \"pluginId\": \"data\",\n \"id\": \"dataset\"\n}\n\n/**\n * What a site's template library calls a template a plugin installed, by the\n * `source.type` that plugin stamps, declared by that plugin (AGL-3080).\n * Core names no installer.\n */\nexport const PLUGIN_TEMPLATE_SOURCES: readonly PluginTemplateSource[] = [\n {\n \"pluginId\": \"marketplace\",\n \"type\": \"marketplace\",\n \"label\": \"Marketplace\",\n \"description\": \"Installed from the marketplace\"\n },\n]\n\n/**\n * The analytics settings each provider mounts a tag for, declared by the\n * plugin that adapts the vendor (AGL-3080). Empty when none does, and then no\n * setting configures a tag.\n */\nexport const ANALYTICS_PROVIDERS_DECLARED: readonly AnalyticsProviderDeclaration[] = [\n {\n \"pluginId\": \"marketing\",\n \"settings\": [\n \"gaMeasurementId\",\n \"gtmContainerId\"\n ]\n },\n]\n\n/**\n * Every interaction step a first-party plugin offers in the interaction\n * builder, declared by that plugin (AGL-3080). Core names no plugin step.\n */\nexport const PLUGIN_INTERACTION_STEPS_DECLARED: readonly InteractionStepDeclaration[] = [\n {\n \"pluginId\": \"marketing\",\n \"type\": \"showOverlay\",\n \"label\": \"Open an overlay\",\n \"picks\": {\n \"collection\": \"overlays\",\n \"limit\": 50,\n \"idField\": \"overlayId\",\n \"nameField\": \"overlayName\",\n \"label\": \"Overlay\",\n \"missing\": \"pick an overlay\"\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"runWorkflow\",\n \"label\": \"Run a workflow\",\n \"picks\": {\n \"collection\": \"workflows\",\n \"limit\": 100,\n \"idField\": \"workflowId\",\n \"nameField\": \"workflowName\",\n \"label\": \"Workflow\",\n \"missing\": \"pick a workflow\"\n }\n },\n]\n\n/**\n * Every server step a first-party plugin runs for the automation engine,\n * declared by that plugin (AGL-3080). Core names no plugin step.\n */\nexport const PLUGIN_SERVER_STEPS_DECLARED: readonly ServerStepDeclaration[] = [\n\n]\n\n/**\n * Every first-party element that runs a site function, and the prop naming\n * it, declared by that element's plugin (AGL-3393). Core names no element.\n */\nexport const FIRST_PARTY_FUNCTION_BINDINGS: FunctionBindings = {}\n\n/**\n * Every video host whose own player the Video element frames, declared by\n * the plugin that plays it (AGL-3080). Core names no host.\n */\nexport const FIRST_PARTY_VIDEO_EMBED_PROVIDERS: readonly ResolvedVideoEmbedProvider[] = [\n {\n \"pluginId\": \"mui\",\n \"id\": \"wistia\",\n \"label\": \"Wistia\",\n \"domains\": [\n \"wistia.com\",\n \"wistia.net\",\n \"wi.st\"\n ],\n \"mediaIdPaths\": [\n \"^\\\\/medias\\\\/([^/]+)(?:\\\\/manage)?\\\\/?$\",\n \"^\\\\/m\\\\/([^/]+)\\\\/?$\",\n \"^\\\\/embed\\\\/iframe\\\\/([^/]+)\\\\/?$\",\n \"^\\\\/embed\\\\/medias\\\\/([^/.]+)(?:\\\\.jsonp?)?\\\\/?$\"\n ],\n \"mediaIdPattern\": \"^[a-z0-9]{10}$\",\n \"playerOrigin\": \"https://fast.wistia.net\",\n \"playerPath\": \"/embed/iframe/{id}\",\n \"playerQuery\": [\n {\n \"param\": \"autoPlay\",\n \"option\": \"autoPlay\",\n \"on\": \"true\",\n \"off\": \"false\"\n },\n {\n \"param\": \"roundedPlayer\",\n \"value\": \"false\"\n },\n {\n \"param\": \"doNotTrack\",\n \"option\": \"doNotTrack\",\n \"on\": \"true\"\n },\n {\n \"param\": \"muted\",\n \"option\": \"muted\",\n \"on\": \"true\"\n },\n {\n \"param\": \"endVideoBehavior\",\n \"option\": \"loop\",\n \"on\": \"loop\"\n }\n ]\n },\n]\n\n/**\n * The notification categories first-party plugins add to the settings page\n * and to every recipient's preferences, declared by each plugin (AGL-3080).\n */\nexport const PLUGIN_NOTIFICATION_CATEGORIES_DECLARED: readonly NotificationCategoryDeclaration[] = [\n {\n \"pluginId\": \"marketplace\",\n \"id\": \"marketplace\",\n \"label\": \"Marketplace\",\n \"description\": \"Decisions on plugin listings you submitted for review.\",\n \"defaults\": {\n \"console\": true,\n \"email\": false\n }\n },\n]\n\n/**\n * The digests first-party plugins send on their own schedule, each with the\n * key its switch is stored under, declared by the plugin that sends it\n * (AGL-3080).\n */\nexport const PLUGIN_NOTIFICATION_DIGESTS_DECLARED: readonly NotificationDigestDeclaration[] = [\n {\n \"pluginId\": \"crm\",\n \"key\": \"crmDaily\",\n \"label\": \"Daily CRM digest\",\n \"description\": \"Each morning: your overdue and due-today tasks and the leads nobody has worked, here and by email.\"\n },\n]\n"],"names":["FIRST_PARTY_PLUGINS","PUBLISHED_SITE_IMPACT","PLUGIN_EDIT_BAR_LINKS","PLUGIN_HOST_COLLECTIONS_DECLARED","PLUGIN_SITEMAP_SECTIONS_DECLARED","PLUGIN_SITE_BUNDLE_SECTIONS_DECLARED","PLUGIN_ORG_COLLECTIONS_DECLARED","PLUGIN_ORG_CAPACITIES_DECLARED","PLUGIN_PLAN_QUOTAS_DECLARED","PLUGIN_PLAN_FEATURES_DECLARED","PLUGIN_COST_AXES_DECLARED","PLUGIN_USAGE_BANDS_DECLARED","PLUGIN_SPEND_LINES_DECLARED","PLUGIN_USAGE_METERS_DECLARED","PLUGIN_ORG_KEYED_COLLECTIONS","PLUGIN_REQUIRED_ORG_ERASERS","PLUGIN_TAX_RETURN_SOURCES","PLUGIN_REVENUE_SOURCES","PLUGIN_DISTRIBUTION","PLUGIN_REPEAT_SOURCE_DECLARED","PLUGIN_BESIGNER_DOCUMENTS_DECLARED","PLUGIN_FORM_RECORD_TARGET_DECLARED","PLUGIN_TEMPLATE_SOURCES","ANALYTICS_PROVIDERS_DECLARED","PLUGIN_INTERACTION_STEPS_DECLARED","PLUGIN_SERVER_STEPS_DECLARED","FIRST_PARTY_FUNCTION_BINDINGS","FIRST_PARTY_VIDEO_EMBED_PROVIDERS","PLUGIN_NOTIFICATION_CATEGORIES_DECLARED","PLUGIN_NOTIFICATION_DIGESTS_DECLARED"],"mappings":"AAAA;;;;;;;CAOC,GAsBD,OAAO,MAAMA,sBAAmD;IAC9D;QACE,MAAM;QACN,SAAS;QACT,YAAY;QACZ,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,wBAAwB;QACxB,eAAe;QACf,WAAW;YACT,SAAS;YACT,SAAS;YACT,WAAW;YACX,SAAS;gBACP,WAAW;gBACX,QAAQ;YACV;QACF;IACF;IACA;QACE,MAAM;QACN,SAAS;QACT,wBAAwB;QACxB,eAAe;QACf,WAAW;YACT,SAAS;YACT,SAAS;QACX;IACF;IACA;QACE,MAAM;QACN,SAAS;QACT,wBAAwB;QACxB,eAAe;QACf,WAAW;YACT,SAAS;YACT,SAAS;QACX;IACF;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;QACf,qBAAqB;QACrB,YAAY;YACV;SACD;IACH;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;CACD,CAAA;AAED,OAAO,MAAMC,wBAAuE;IAClF,OAAO;IACP,SAAS;IACT,MAAM;IACN,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,SAAS;IACT,aAAa;IACb,aAAa;IACb,aAAa;AACf,EAAC;AAED;;;CAGC,GACD,OAAO,MAAMC,wBAAsD;IACjE;QACE,YAAY;QACZ,SAAS;QACT,SAAS;QACT,QAAQ;IACV;IACA;QACE,YAAY;QACZ,SAAS;QACT,SAAS;QACT,QAAQ;IACV;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,mCAA4E;IACvF;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,UAAU;gBACR,aAAa;YACf;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;QACnB,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;QACH;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;QACH;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,uBAAuB;YACvB,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,uBAAuB;gBACrB,SAAS;gBACT,mBAAmB;YACrB;YACA,iBAAiB;QACnB;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;aACD;YACD,aAAa;gBACX,aAAa;gBACb,UAAU;oBACR;oBACA;iBACD;gBACD,UAAU;oBACR,WAAW;gBACb;YACF;QACF;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;QACH;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,mCAA4E;IACvF;QACE,YAAY;QACZ,WAAW;QACX,cAAc;QACd,SAAS;YACP,SAAS;YACT,UAAU;QACZ;QACA,aAAa;YACX,OAAO;YACP,SAAS;QACX;QACA,QAAQ;QACR,YAAY;QACZ,WAAW;YACT;YACA;SACD;IACH;IACA;QACE,YAAY;QACZ,WAAW;QACX,cAAc;QACd,SAAS;YACP,SAAS;YACT,UAAU;QACZ;QACA,aAAa;YACX,OAAO;YACP,SAAS;QACX;QACA,QAAQ;QACR,WAAW;YACT;YACA;SACD;IACH;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,uCAA8F;IACzG;QACE,YAAY;QACZ,OAAO;QACP,SAAS;IACX;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,kCAA0E;IACrF;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,aAAa;QACb,sBAAsB;YACpB,SAAS;YACT,UAAU;gBACR;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,iCAAuE;IAClF;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,cAAc;QACd,aAAa;QACb,uBAAuB;QACvB,8BAA8B;QAC9B,SAAS;YACP,OAAO;YACP,QAAQ;YACR,SAAS;QACX;IACF;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,8BAAkE;IAC7E;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,gCAAsE;IACjF;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,4BAA+D;IAC1E;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,UAAU;YACR;SACD;QACD,QAAQ;IACV;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,UAAU;YACR;SACD;QACD,kBAAkB;YAChB;SACD;QACD,kBAAkB;YAChB;YACA;SACD;QACD,QAAQ;IACV;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;YACb;YACA;SACD;QACD,QAAQ;YACN,cAAc;YACd,UAAU;gBACR;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,UAAU;YACR;YACA;SACD;QACD,QAAQ;IACV;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,8BAAkE;IAC7E;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;QACf,WAAW;QACX,eAAe;QACf,WAAW;YACT,QAAQ;YACR,aAAa;YACb,QAAQ;YACR,iBAAiB;QACnB;IACF;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,kBAAkB;YAChB;SACD;QACD,eAAe;IACjB;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;QACf,eAAe;IACjB;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;QACf,eAAe;QACf,SAAS;YACP,SAAS;YACT,QAAQ;YACR,WAAW;YACX,WAAW;YACX,YAAY;QACd;IACF;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;IACjB;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,8BAAkE;IAC7E;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,QAAQ;YACN,cAAc;YACd,SAAS;QACX;QACA,iBAAiB;QACjB,QAAQ;YACN,WAAW;YACX,SAAS;QACX;IACF;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,+BAAoE;IAC/E;QAAC,YAAW;QAAM,MAAK;IAAS;IAChC;QAAC,YAAW;QAAO,MAAK;IAAiB;IACzC;QAAC,YAAW;QAAK,MAAK;IAAQ;CAC/B,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,+BAAoE;IAC/E;QACE,YAAY;QACZ,QAAQ;QACR,YAAY;IACd;IACA;QACE,YAAY;QACZ,QAAQ;QACR,YAAY;IACd;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,8BAAiD;IAAC;CAAc,CAAA;AAE7E;;;;CAIC,GACD,OAAO,MAAMC,4BAA+C;IAAC;IAAW;CAAc,CAAA;AAEtF;;;;CAIC,GACD,OAAO,MAAMC,yBAA4C;IAAC;IAAW;CAAc,CAAA;AAEnF;;;;CAIC,GACD,OAAO,MAAMC,sBAAiD;IAC5D,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,eAAe;AACjB,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMC,gCAAgE;IAC3E,YAAY;IACZ,MAAM;AACR,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMC,qCAA0E;IACrF;QACE,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,cAAc;QACd,QAAQ;QACR,WAAW;YACT,QAAQ;YACR,WAAW;QACb;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,qCAAyE;IACpF,YAAY;IACZ,MAAM;AACR,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMC,0BAA2D;IACtE;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,eAAe;IACjB;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,+BAAwE;IACnF;QACE,YAAY;QACZ,YAAY;YACV;YACA;SACD;IACH;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,oCAA2E;IACtF;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;YACP,cAAc;YACd,SAAS;YACT,WAAW;YACX,aAAa;YACb,SAAS;YACT,WAAW;QACb;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;YACP,cAAc;YACd,SAAS;YACT,WAAW;YACX,aAAa;YACb,SAAS;YACT,WAAW;QACb;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,+BAAiE,EAE7E,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,gCAAkD,CAAC,EAAC;AAEjE;;;CAGC,GACD,OAAO,MAAMC,oCAA2E;IACtF;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,WAAW;YACT;YACA;YACA;SACD;QACD,gBAAgB;YACd;YACA;YACA;YACA;SACD;QACD,kBAAkB;QAClB,gBAAgB;QAChB,cAAc;QACd,eAAe;YACb;gBACE,SAAS;gBACT,UAAU;gBACV,MAAM;gBACN,OAAO;YACT;YACA;gBACE,SAAS;gBACT,SAAS;YACX;YACA;gBACE,SAAS;gBACT,UAAU;gBACV,MAAM;YACR;YACA;gBACE,SAAS;gBACT,UAAU;gBACV,MAAM;YACR;YACA;gBACE,SAAS;gBACT,UAAU;gBACV,MAAM;YACR;SACD;IACH;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,0CAAsF;IACjG;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,eAAe;QACf,YAAY;YACV,WAAW;YACX,SAAS;QACX;IACF;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,uCAAiF;IAC5F;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,eAAe;IACjB;CACD,CAAA"}
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/first-party-plugins.generated.ts"],"sourcesContent":["/**\n * GENERATED FILE — do not edit. Regenerate with:\n * node tools/scripts/generate-plugin-manifests.mjs\n *\n * The switchboard catalog (AGL-3080): one row per plugin and capability, each\n * declared by its own `catalog` block in plugins.config.json. The core holds\n * the types and the resolvers in `enabled-plugins.ts`; it holds no row.\n */\n\nimport type { FirstPartyPlugin, PluginEditBarLink, PublishedSiteImpact } from './enabled-plugins'\nimport type { ResolvedPluginHostCollection, ResolvedPluginOrgCollection } from './plugin-host-collections'\nimport type { ResolvedPluginSitemapSection } from './plugin-sitemap-sections'\nimport type { ResolvedPluginSitemapReaderDeclaration } from './plugin-sitemap-readers'\nimport type { ResolvedPluginSiteBundleSectionDeclaration } from './plugin-site-bundle'\nimport type { ResolvedTransferResourceDeclaration } from './plugin-transfer-resources'\nimport type { ResolvedPluginOrgCapacity } from './plugin-org-capacity'\nimport type { ResolvedPluginEntityPicker } from './plugin-entity-pickers'\nimport type { ResolvedPluginRecordPage } from './plugin-record-pages'\nimport type { ResolvedVisitorDoor } from './plugin-visitor-doors'\nimport type { ResolvedPluginCostAxis, ResolvedPluginSpendLine, ResolvedPluginUsageBand, ResolvedPluginUsageMeter } from './plugin-usage-axes'\nimport type { ResolvedPluginPlanFeature, ResolvedPluginPlanQuota } from './plugin-plan-entitlements'\nimport type { FunctionBindings } from './plugin-contributions'\nimport type { PluginDistribution } from './plugin-distribution'\nimport type { RepeatSourceDeclaration } from './repeat-rows'\nimport type { PluginTemplateSource } from './plugin-template-sources'\nimport type { FormRecordTargetDeclaration } from './submission-record-target'\nimport type { ArtifactTypeDeclaration } from './plugin-artifact-types'\nimport type { ResolvedBesignerDocument } from './besigner-documents'\nimport type { PluginOrgKeyedCollection } from './plugin-org-erasure'\nimport type { ResolvedVideoEmbedProvider } from './video-embed-provider'\nimport type { AnalyticsProviderDeclaration } from '../app-utils/analytics-provider'\nimport type { InteractionStepDeclaration } from '../app-utils/site-interactions'\nimport type { ServerStepDeclaration } from './plugin-server-steps'\nimport type { InteractionRecipeDeclaration } from './interaction-recipes'\nimport type { NotificationCategoryDeclaration, NotificationDigestDeclaration } from '../app-utils/notifications'\n\nexport const FIRST_PARTY_PLUGINS: readonly FirstPartyPlugin[] = [\n {\n \"id\": \"mui\",\n \"label\": \"Components\",\n \"alwaysOn\": true,\n \"description\": \"The base component and theme library every site builds on.\"\n },\n {\n \"id\": \"forms\",\n \"label\": \"Forms\",\n \"alwaysOnForWorkspace\": true,\n \"description\": \"Forms on the site and the catalog that owns them.\",\n \"siteOff\": {\n \"stops\": \"Switching Forms off for this site stops forms rendering on its published pages, refuses every submission sent to it, and blocks publishing a form, or a page that carries one, until Forms is back on.\",\n \"keeps\": \"Submissions already received, the workspace’s form catalog and the CRM leads its forms created are kept, and forms keep working on the workspace’s other sites.\",\n \"confirm\": true,\n \"pages\": {\n \"heading\": \"These published pages carry a form. Their forms stop rendering and stop accepting submissions:\",\n \"none\": \"No published page on this site carries a form.\"\n }\n }\n },\n {\n \"id\": \"ai\",\n \"label\": \"AI\",\n \"alwaysOnForWorkspace\": true,\n \"description\": \"The assistant, generative building and automation, and the AI add-on.\",\n \"siteOff\": {\n \"stops\": \"Switching AI off for this site hides the assistant, Describe it, the AI cards and the editor’s AI controls on this site, refuses every AI request made for it, and stops its queued AI jobs without spending credits.\",\n \"keeps\": \"It does not stop the workspace’s AI add-on, credits, allotments or overage billing, and AI keeps working on the workspace’s other sites.\"\n }\n },\n {\n \"id\": \"theme-presets\",\n \"label\": \"Themes\",\n \"alwaysOnForWorkspace\": true,\n \"description\": \"Built-in themes to pick from on Setup → Theme: Bootstrap, Minimal and Material 3.\",\n \"siteOff\": {\n \"stops\": \"Switching Themes off for this site removes its built-in themes from the theme picker.\",\n \"keeps\": \"A site already using one keeps it, with every edit made to it: picking a theme copies it onto the site, so nothing on the published site changes.\"\n }\n },\n {\n \"id\": \"accounts\",\n \"label\": \"User Accounts\",\n \"description\": \"Visitor accounts on the site: the /signin, /signup and /recover pages, and the Members blocks. On for a new site; a site created before that stays off until you turn it on.\",\n \"releaseFlag\": \"release_member_accounts\",\n \"defaultOffPerSite\": true,\n \"requires\": [\n \"commerce\"\n ]\n },\n {\n \"id\": \"bookings\",\n \"label\": \"Bookings\",\n \"description\": \"Services, open slots, and paid bookings.\",\n \"releaseFlag\": \"release_bookings\"\n },\n {\n \"id\": \"commerce\",\n \"label\": \"Commerce\",\n \"description\": \"Products, carts, checkout, orders, POS.\",\n \"releaseFlag\": \"release_commerce_v2\"\n },\n {\n \"id\": \"marketplace\",\n \"label\": \"Marketplace\",\n \"description\": \"Marketplace listings, templates, and installs.\",\n \"releaseFlag\": \"release_marketplace\"\n },\n {\n \"id\": \"crm\",\n \"label\": \"CRM\",\n \"description\": \"Leads, contacts, companies, deals, tasks and reports.\",\n \"releaseFlag\": \"release_crm\"\n },\n {\n \"id\": \"outreach\",\n \"label\": \"Sequences\",\n \"description\": \"One-to-one email sequences sent from connected mailboxes.\",\n \"releaseFlag\": \"release_outreach\"\n },\n {\n \"id\": \"data\",\n \"label\": \"Data\",\n \"description\": \"Datasets, records, and CSV import/export.\",\n \"releaseFlag\": \"release_data_store\"\n },\n {\n \"id\": \"email\",\n \"label\": \"Email\",\n \"description\": \"Designed emails and campaign sending.\",\n \"releaseFlag\": \"release_email\"\n },\n {\n \"id\": \"events-calendar\",\n \"label\": \"Events Calendar\",\n \"description\": \"Event lists and calendars.\",\n \"releaseFlag\": \"release_events\"\n },\n {\n \"id\": \"inbox\",\n \"label\": \"Inbox\",\n \"description\": \"Form submissions and lead inbox.\",\n \"releaseFlag\": \"release_inbox\"\n },\n {\n \"id\": \"logic\",\n \"label\": \"Logic\",\n \"description\": \"Variables, functions, and reference health.\",\n \"releaseFlag\": \"release_logic\"\n },\n {\n \"id\": \"marketing\",\n \"label\": \"Marketing\",\n \"description\": \"Overlays, campaigns, and experiments.\",\n \"releaseFlag\": \"release_marketing\"\n },\n {\n \"id\": \"redirects\",\n \"label\": \"Redirects\",\n \"description\": \"URL redirect rules.\",\n \"releaseFlag\": \"release_redirects\"\n },\n {\n \"id\": \"workflows\",\n \"label\": \"Automation\",\n \"description\": \"Workflows, actions, webhooks, and run logs.\",\n \"releaseFlag\": \"release_workflows\"\n },\n]\n\nexport const PUBLISHED_SITE_IMPACT: Readonly<Record<string, PublishedSiteImpact>> = {\n \"mui\": \"elements\",\n \"forms\": \"elements\",\n \"ai\": \"console-only\",\n \"theme-presets\": \"console-only\",\n \"accounts\": \"routes\",\n \"bookings\": \"elements\",\n \"commerce\": \"elements\",\n \"marketplace\": \"console-only\",\n \"crm\": \"console-only\",\n \"outreach\": \"console-only\",\n \"data\": \"routes\",\n \"email\": \"elements\",\n \"events-calendar\": \"elements\",\n \"inbox\": \"console-only\",\n \"logic\": \"console-only\",\n \"marketing\": \"elements\",\n \"redirects\": \"routes\",\n \"workflows\": \"routes\",\n}\n\n/**\n * The admin edit bar's quick links, in the order they are drawn — each\n * declared by the plugin whose console page it opens (AGL-3080).\n */\nexport const PLUGIN_EDIT_BAR_LINKS: readonly PluginEditBarLink[] = [\n {\n \"pluginId\": \"inbox\",\n \"order\": 20,\n \"label\": \"Inbox\",\n \"path\": \"/inbox\"\n },\n {\n \"pluginId\": \"commerce\",\n \"order\": 30,\n \"label\": \"Orders\",\n \"path\": \"/products/orders\"\n },\n]\n\n/**\n * Every host subcollection a first-party plugin owns, declared by that plugin\n * (AGL-3080). Core's readers ask this list; core names no collection.\n */\nexport const PLUGIN_HOST_COLLECTIONS_DECLARED: readonly ResolvedPluginHostCollection[] = [\n {\n \"pluginId\": \"forms\",\n \"name\": \"forms\",\n \"routeSlug\": \"forms\",\n \"siteExport\": {\n \"limit\": 200,\n \"fields\": [\n \"displayName\",\n \"slug\",\n \"fields\",\n \"consentFieldName\",\n \"routing\",\n \"legacyMatch\",\n \"rootId\",\n \"nodes\",\n \"archivedAt\",\n \"retired\",\n \"campaignIds\",\n \"inCampaign\",\n \"stats\",\n \"nameLower\",\n \"nameTokens\",\n \"nameReversed\",\n \"searchTokens\"\n ],\n \"package\": {\n \"kind\": \"form\",\n \"label\": \"Forms\",\n \"nameField\": \"displayName\",\n \"slugField\": \"slug\",\n \"placements\": [\n {\n \"componentId\": \"form\",\n \"prop\": \"formId\"\n }\n ]\n },\n \"count\": {\n \"quotaKey\": \"formsPerHost\"\n }\n }\n },\n {\n \"pluginId\": \"forms\",\n \"name\": \"formSubmissions\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Visitor form submissions. Unbounded, PII-heavy, and a file attached to one is the visitor's upload — not a library asset an author picked, and not something deleting a library asset would break.\"\n },\n {\n \"pluginId\": \"bookings\",\n \"name\": \"services\",\n \"routeSlug\": \"bookings\",\n \"resource\": {\n \"kind\": \"service\",\n \"label\": \"services\",\n \"activityNoun\": \"service\",\n \"quotaKey\": \"servicesPerHost\",\n \"entitlement\": \"bookings\",\n \"fields\": [\n \"name\",\n \"description\",\n \"durationMinutes\",\n \"priceUsd\",\n \"timezone\",\n \"windows\",\n \"crmFollowUpTask\",\n \"crmMeetingActivity\",\n \"askPhone\",\n \"askAddress\",\n \"priceDisplay\"\n ]\n },\n \"siteExport\": {\n \"limit\": 50,\n \"fields\": [\n \"name\",\n \"description\",\n \"durationMinutes\",\n \"priceUsd\",\n \"timezone\",\n \"windows\",\n \"crmFollowUpTask\",\n \"crmMeetingActivity\",\n \"askPhone\",\n \"askAddress\",\n \"priceDisplay\"\n ],\n \"package\": {\n \"kind\": \"service\",\n \"label\": \"Booking services\",\n \"nameField\": \"name\"\n }\n }\n },\n {\n \"pluginId\": \"bookings\",\n \"name\": \"bookings\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Booking records — a customer, a time and a service pointer. The service holds the imagery and IS scanned; a booking is the transaction against it.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"products\",\n \"routeSlug\": \"products\",\n \"resource\": {\n \"kind\": \"product\",\n \"label\": \"products\",\n \"activityNoun\": \"product\",\n \"quotaKey\": \"productsPerHost\",\n \"entitlement\": \"commerce\",\n \"fields\": [\n \"name\",\n \"slug\",\n \"description\",\n \"type\",\n \"status\",\n \"mediaUrls\",\n \"categoryIds\",\n \"tags\",\n \"options\",\n \"variants\",\n \"seo\",\n \"supplierId\",\n \"oversellPolicy\",\n \"taxExempt\",\n \"digitalFiles\",\n \"downloadLimit\",\n \"subscription\",\n \"subscriptionOptional\",\n \"gatedVideos\",\n \"relatedProductIds\",\n \"giftCard\",\n \"lowStockThreshold\",\n \"createdAtMs\",\n \"updatedAtMs\",\n \"nameLower\",\n \"nameTokens\",\n \"nameReversed\",\n \"skus\",\n \"barcodes\",\n \"priceFromCents\",\n \"soldOut\",\n \"collectionIds\",\n \"priceUsd\",\n \"inventory\",\n \"imageUrl\"\n ],\n \"stamps\": {\n \"deletedAt\": null\n }\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"productCategories\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"suppliers\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"locations\",\n \"routeSlug\": \"products\",\n \"resource\": {\n \"kind\": \"location\",\n \"label\": \"inventory locations\",\n \"activityNoun\": \"inventory location\",\n \"quotaKey\": \"inventoryLocations\",\n \"entitlement\": \"commerce\",\n \"fields\": [\n \"name\",\n \"isDefault\",\n \"address\"\n ]\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"coupons\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"discounts\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"reviews\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"memberPosts\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"resources\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"settings\",\n \"label\": \"Store settings\",\n \"routeSlug\": \"products\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"siteMembers\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"siteMemberCredentials\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"A site member's password hash, one document per member, read and written only by the membership routes (AGL-3308). A credential with no content field, and no client may read it.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"orders\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Completed orders. Line items COPY a product's `imageUrl` at purchase time, so these would match — and matching would be the wrong answer: an order is an immutable record of what was sold, deleting the asset changes nothing about it, and no author can edit one. A busy store also holds more of these than the whole read budget.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"carts\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Live and abandoned carts, with the same copied line-item image and the same reasoning, at higher volume — one document per shopper session.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"checkouts\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"In-flight checkout sessions. Transient buyer state carrying the same line-item snapshot as `carts`.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"reservations\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"POS and booking holds. Short-lived transaction rows pointing at a resource that is itself scanned.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"stockHolds\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Inventory holds taken during checkout. Machine-written, short-lived, and a quantity rather than content.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"subscriptions\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Site membership subscriptions: a plan pointer, a status and Stripe ids. Server-written from the billing webhook.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"registers\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"POS register allocations — a count against the register add-on, read by billing (AGL-1775). No content field at all.\",\n \"resource\": {\n \"kind\": \"register\",\n \"label\": \"POS registers\",\n \"activityNoun\": \"POS register\",\n \"quotaKey\": \"posRegisters\",\n \"entitlement\": \"pos\",\n \"fields\": [\n \"name\",\n \"locationId\"\n ]\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"giftCards\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Gift card balances and redemption history. Money, not content.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"licenseKeys\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Digital-product license keys issued at fulfilment: a code, an order pointer and a revocation flag.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"inventoryAdjustments\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"The append-only stock adjustment ledger (AGL-2269). One row per manual stock edit and per cancellation release, unbounded over a store's life.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"inventoryReconciliation\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Reconciliation runs comparing counted stock against recorded stock. Machine-written totals.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"restockAlerts\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Back-in-stock requests: an email address and a product pointer, written by visitors.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"name\": \"stripeTaxRates\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Cached Stripe tax rate ids, written by the tax sync. Vendor ids.\"\n },\n {\n \"pluginId\": \"marketplace\",\n \"name\": \"installs\"\n },\n {\n \"pluginId\": \"crm\",\n \"name\": \"leads\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Captured leads, on the same footing as `formSubmissions`: visitor-submitted, unbounded, and never a place an author places an asset.\"\n },\n {\n \"pluginId\": \"data\",\n \"name\": \"recordPages\",\n \"label\": \"record template\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"A binding holds a dataset id, a base path and field ids — never a value. The images a record page shows are the record's own, in the organization's dataset records, which no site collection holds.\"\n },\n {\n \"pluginId\": \"email\",\n \"name\": \"suppressions\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"Unsubscribes, bounces and spam complaints. Email addresses and a reason.\"\n },\n {\n \"pluginId\": \"events-calendar\",\n \"name\": \"events\",\n \"routeSlug\": \"events\",\n \"siteExport\": {\n \"limit\": 200,\n \"fields\": [\n \"title\",\n \"startsAtMs\",\n \"endsAtMs\",\n \"location\",\n \"organizer\",\n \"description\",\n \"coverImage\",\n \"coverImageAlt\",\n \"status\"\n ],\n \"package\": {\n \"kind\": \"event\",\n \"label\": \"Events\",\n \"nameField\": \"title\"\n },\n \"count\": {\n \"uncapped\": \"The events page creates an event with a client write and no count, so a restore mints nothing an editor could not already.\"\n }\n }\n },\n {\n \"pluginId\": \"logic\",\n \"name\": \"functions\",\n \"routeSlug\": \"logic\",\n \"resource\": {\n \"kind\": \"function\",\n \"label\": \"functions\",\n \"activityNoun\": \"function\",\n \"activityType\": \"function\",\n \"quotaKey\": \"functionsPerHost\",\n \"fields\": [\n \"name\",\n \"parameters\",\n \"variables\",\n \"operations\",\n \"returnValue\"\n ]\n },\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"parameters\",\n \"variables\",\n \"operations\",\n \"returnValue\"\n ],\n \"package\": {\n \"kind\": \"function\",\n \"label\": \"Functions\",\n \"nameField\": \"name\",\n \"bindingToken\": \"fn\"\n }\n }\n },\n {\n \"pluginId\": \"logic\",\n \"name\": \"variables\",\n \"routeSlug\": \"logic\",\n \"resource\": {\n \"kind\": \"variable\",\n \"label\": \"variables\",\n \"activityNoun\": \"variable\",\n \"activityType\": \"variable\",\n \"quotaKey\": \"variablesPerHost\",\n \"fields\": [\n \"name\",\n \"type\",\n \"value\",\n \"workflowId\",\n \"workflowName\"\n ]\n },\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"type\",\n \"value\",\n \"workflowId\",\n \"workflowName\"\n ],\n \"package\": {\n \"kind\": \"variable\",\n \"label\": \"Variables\",\n \"nameField\": \"name\",\n \"references\": [\n {\n \"field\": \"workflowId\",\n \"kind\": \"workflow\"\n }\n ],\n \"bindingToken\": \"var\"\n }\n }\n },\n {\n \"pluginId\": \"marketing\",\n \"name\": \"experiments\",\n \"routeSlug\": \"marketing\",\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"nameLower\",\n \"nameTokens\",\n \"nameReversed\",\n \"status\",\n \"target\",\n \"screenId\",\n \"nodeId\",\n \"variants\",\n \"goal\",\n \"winnerVariantId\",\n \"endAtMs\",\n \"autoWinner\",\n \"autoCompleted\",\n \"completedAt\"\n ],\n \"package\": {\n \"kind\": \"experiment\",\n \"label\": \"Experiments\",\n \"nameField\": \"name\",\n \"references\": [\n {\n \"field\": \"screenId\",\n \"kind\": \"page\"\n }\n ]\n },\n \"count\": {\n \"uncapped\": \"The experiments card creates an experiment with a client write and no count, so a restore mints nothing an editor could not already.\"\n }\n }\n },\n {\n \"pluginId\": \"marketing\",\n \"name\": \"overlays\",\n \"routeSlug\": \"marketing\",\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"kind\",\n \"name\",\n \"enabled\",\n \"startAtMs\",\n \"endAtMs\",\n \"pathPatterns\",\n \"excludePathPatterns\",\n \"order\",\n \"bar\",\n \"popup\",\n \"stats\"\n ],\n \"package\": {\n \"kind\": \"overlay\",\n \"label\": \"Bars and popups\",\n \"nameField\": \"name\"\n },\n \"count\": {\n \"uncapped\": \"The overlays card creates a bar or popup with a client write and no count, so a restore mints nothing an editor could not already.\"\n }\n }\n },\n {\n \"pluginId\": \"marketing\",\n \"name\": \"campaignAttributions\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"One row per conversion — a form submission, a lead, a contact or a booking — recording which campaign the visitor arrived from. Written only by the Admin SDK, and the whole record is three sanitized UTM strings capped at a hundred characters: there is no field an asset could occupy and no surface that could pick one into it. Unbounded on the same footing as the conversions it credits.\"\n },\n {\n \"pluginId\": \"redirects\",\n \"name\": \"redirects\",\n \"routeSlug\": \"redirects\",\n \"resource\": {\n \"kind\": \"redirect\",\n \"label\": \"redirects\",\n \"activityNoun\": \"redirect\",\n \"quotaKey\": \"redirectsPerHost\",\n \"entitlement\": \"redirects\",\n \"requiresPublishRole\": true,\n \"fields\": [\n \"source\",\n \"destination\",\n \"statusCode\",\n \"kind\",\n \"priority\",\n \"enabled\"\n ],\n \"externalDestination\": {\n \"field\": \"destination\",\n \"approvedByField\": \"externalDestinationApprovedBy\"\n },\n \"livePathField\": \"source\"\n },\n \"siteExport\": {\n \"limit\": 500,\n \"fields\": [\n \"source\",\n \"destination\",\n \"statusCode\",\n \"kind\",\n \"priority\",\n \"enabled\"\n ],\n \"package\": {\n \"kind\": \"redirect\",\n \"label\": \"Redirects\",\n \"nameField\": \"source\"\n }\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"name\": \"workflows\",\n \"routeSlug\": \"automation\",\n \"resource\": {\n \"kind\": \"workflow\",\n \"label\": \"workflows\",\n \"activityNoun\": \"workflow\",\n \"activityType\": \"workflow\",\n \"quotaKey\": \"workflowsPerHost\",\n \"entitlement\": \"workflows\",\n \"fields\": [\n \"name\",\n \"steps\",\n \"returnValue\",\n \"trigger\"\n ],\n \"duplicate\": {\n \"nameField\": \"name\",\n \"fields\": [\n \"steps\",\n \"returnValue\"\n ],\n \"stamps\": {\n \"trigger\": null\n }\n }\n },\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"steps\",\n \"returnValue\",\n \"trigger\"\n ],\n \"package\": {\n \"kind\": \"workflow\",\n \"label\": \"Workflows\",\n \"nameField\": \"name\"\n }\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"name\": \"webhooks\",\n \"routeSlug\": \"automation\",\n \"resource\": {\n \"kind\": \"webhook\",\n \"label\": \"webhooks\",\n \"activityNoun\": \"webhook\",\n \"entitlement\": \"webhooks\",\n \"platformCap\": \"WEBHOOK_MAX_PER_HOST\",\n \"softDeletes\": true,\n \"fields\": [\n \"name\",\n \"direction\",\n \"url\",\n \"workflowName\",\n \"secret\",\n \"enabled\"\n ]\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"name\": \"actions\",\n \"routeSlug\": \"automation\",\n \"resource\": {\n \"kind\": \"action\",\n \"label\": \"interactions and actions\",\n \"activityNoun\": \"action\",\n \"platformCap\": \"ACTIONS_MAX_PER_HOST\",\n \"softDeletes\": true,\n \"fields\": [\n \"name\",\n \"description\",\n \"trigger\",\n \"steps\",\n \"enabled\",\n \"frequency\",\n \"cooldownMinutes\",\n \"audience\",\n \"nodeId\",\n \"screenId\"\n ]\n },\n \"siteExport\": {\n \"limit\": 100,\n \"fields\": [\n \"name\",\n \"trigger\",\n \"steps\",\n \"enabled\",\n \"recipe\"\n ],\n \"package\": {\n \"kind\": \"action\",\n \"label\": \"Interactions and actions\",\n \"nameField\": \"name\"\n }\n }\n },\n]\n\n/**\n * Every child sitemap a first-party plugin's documents fill, declared by that\n * plugin (AGL-3080), in the order the index lists them.\n */\nexport const PLUGIN_SITEMAP_SECTIONS_DECLARED: readonly ResolvedPluginSitemapSection[] = [\n {\n \"pluginId\": \"commerce\",\n \"section\": \"products\",\n \"collection\": \"products\",\n \"where\": {\n \"field\": \"status\",\n \"equals\": \"active\"\n },\n \"enabledBy\": {\n \"doc\": \"settings/store\",\n \"field\": \"pdpScreenId\"\n },\n \"path\": \"/products/{slug}\",\n \"skipWhen\": \"deletedAt\",\n \"lastmod\": [\n \"updatedAtMs\",\n \"createdAtMs\"\n ]\n },\n {\n \"pluginId\": \"commerce\",\n \"section\": \"catalog\",\n \"collection\": \"collections\",\n \"where\": {\n \"field\": \"kind\",\n \"equals\": \"catalog\"\n },\n \"enabledBy\": {\n \"doc\": \"settings/store\",\n \"field\": \"collectionScreenId\"\n },\n \"path\": \"/collections/{slug}\",\n \"lastmod\": [\n \"updatedAt\",\n \"createdAt\"\n ]\n },\n]\n\n/**\n * Every child-sitemap family a first-party plugin's reader lists, declared by\n * that plugin (AGL-3475), in the order the index lists them.\n */\nexport const PLUGIN_SITEMAP_READERS_DECLARED: readonly ResolvedPluginSitemapReaderDeclaration[] = [\n {\n \"pluginId\": \"data\",\n \"section\": \"records\"\n }\n]\n\n/**\n * Every section of the whole-site backup a first-party plugin answers for,\n * declared by that plugin (AGL-3080), in the order the bundle carries them.\n */\nexport const PLUGIN_SITE_BUNDLE_SECTIONS_DECLARED: readonly ResolvedPluginSiteBundleSectionDeclaration[] = [\n {\n \"pluginId\": \"data\",\n \"key\": \"datasets\",\n \"limit\": 50,\n \"package\": {\n \"kind\": \"dataset\",\n \"label\": \"Datasets\",\n \"nameField\": \"displayName\",\n \"placements\": [\n {\n \"prop\": \"repeatDataset\"\n },\n {\n \"componentId\": \"form\",\n \"prop\": \"datasetId\"\n }\n ]\n }\n }\n]\n\n/**\n * Every resource a first-party plugin can import or export, declared by that\n * plugin (AGL-3523), in the order the transfer hub lists them.\n */\nexport const PLUGIN_TRANSFER_RESOURCES_DECLARED: readonly ResolvedTransferResourceDeclaration[] = [\n {\n \"pluginId\": \"forms\",\n \"key\": \"forms.submissions\",\n \"label\": \"Form submissions\",\n \"singularLabel\": \"Form submission\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"description\": \"What visitors sent through this site’s forms: each answer, and when, on which page and through which form it arrived.\",\n \"exportOnly\": true\n },\n {\n \"pluginId\": \"bookings\",\n \"key\": \"bookings\",\n \"featureFlag\": \"bookings\",\n \"label\": \"Bookings\",\n \"singularLabel\": \"Booking\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"description\": \"Every booking on this site: the service, the time, the customer’s details, its status and what was paid.\",\n \"exportOnly\": true\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"commerce.products\",\n \"label\": \"Products\",\n \"singularLabel\": \"Product\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"description\": \"Products with their options, variants, prices, stock, images and search listing.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"commerce.categories\",\n \"label\": \"Product categories\",\n \"singularLabel\": \"Product category\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 2000\n },\n \"description\": \"The category tree products are filed under, matched by slug, then name.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"commerce.orders\",\n \"label\": \"Orders\",\n \"singularLabel\": \"Order\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"exportOnly\": true,\n \"description\": \"Every order with its items, money, customer and addresses. Exported only.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"commerce.discounts\",\n \"label\": \"Discounts\",\n \"singularLabel\": \"Discount\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 5000\n },\n \"description\": \"Discount codes and automatic promotions, matched by code, then name. New ones start switched off.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"commerce.coupons\",\n \"label\": \"Coupons\",\n \"singularLabel\": \"Coupon\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 5000\n },\n \"description\": \"Percent-off coupon codes, matched by code. New ones start switched off.\"\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"commerce.gift-cards\",\n \"featureFlag\": \"giftCards\",\n \"featureFlagExempt\": [\n \"export\"\n ],\n \"importRoles\": [\n \"admin\"\n ],\n \"label\": \"Gift cards\",\n \"singularLabel\": \"Gift card\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 2000\n },\n \"description\": \"Every gift card's code, balance and status. An import issues each card, confirmed by the total.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.contacts\",\n \"featureFlag\": \"crm\",\n \"featureFlagExempt\": [\n \"export\"\n ],\n \"label\": \"Contacts\",\n \"singularLabel\": \"Contact\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"description\": \"Every contact field, custom fields included, with the company, the manager and the owner by name.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.companies\",\n \"featureFlag\": \"crm\",\n \"label\": \"Companies\",\n \"singularLabel\": \"Company\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"description\": \"Every company field, custom fields included, with the parent company and the owner by name.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.email-templates\",\n \"featureFlag\": \"crm\",\n \"label\": \"Email templates\",\n \"singularLabel\": \"Email template\",\n \"scope\": \"org\",\n \"kinds\": [\n \"package\"\n ],\n \"formats\": [\n \"json\"\n ],\n \"limits\": {\n \"maxRows\": 200\n },\n \"description\": \"Shared email templates and snippets, and your own personal ones.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.leads\",\n \"featureFlag\": \"crm\",\n \"featureFlagExempt\": [\n \"export\"\n ],\n \"label\": \"Leads\",\n \"singularLabel\": \"Lead\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"description\": \"Every lead field, custom fields included, with the status, the owner and the campaigns by name.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.deals\",\n \"featureFlag\": \"crm\",\n \"label\": \"Deals\",\n \"singularLabel\": \"Deal\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"description\": \"Every deal field, custom fields and contact roles included, with the pipeline, stage, contact and company by name.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.tasks\",\n \"featureFlag\": \"crm\",\n \"label\": \"Tasks\",\n \"singularLabel\": \"Task\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"description\": \"Every task, with its type, priority and status as your lists label them and the contact, company and deal it is for.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.activities\",\n \"featureFlag\": \"crm\",\n \"label\": \"Activities\",\n \"singularLabel\": \"Activity\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"exportOnly\": true,\n \"description\": \"Every call, email, meeting and note the team logged, with who logged it and what it was about.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.pipelines\",\n \"featureFlag\": \"crm\",\n \"label\": \"Pipelines and stages\",\n \"singularLabel\": \"Stage\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"exportOnly\": true,\n \"description\": \"Each pipeline with its stages in order: their kind, probability and forecast category.\"\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crm.fields\",\n \"featureFlag\": \"crm\",\n \"label\": \"Custom fields\",\n \"singularLabel\": \"Custom field\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"exportOnly\": true,\n \"description\": \"Every custom field you defined, on which record, of what type, with its choices.\"\n },\n {\n \"pluginId\": \"outreach\",\n \"key\": \"outreach.sequences\",\n \"featureFlag\": \"outreach\",\n \"label\": \"Sequences\",\n \"singularLabel\": \"Sequence\",\n \"scope\": \"org\",\n \"kinds\": [\n \"package\"\n ],\n \"formats\": [\n \"json\"\n ],\n \"limits\": {\n \"maxRows\": 500\n },\n \"description\": \"Each sequence's steps and settings, imported as a draft. Never who was enrolled or what was sent.\"\n },\n {\n \"pluginId\": \"outreach\",\n \"key\": \"outreach.do-not-contact\",\n \"featureFlag\": \"outreach\",\n \"label\": \"Do-not-contact list\",\n \"singularLabel\": \"Do-not-contact entry\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"description\": \"The domains and addresses sequences never email. An import only adds to it; an address is kept as a fingerprint, so only domains are exported.\"\n },\n {\n \"pluginId\": \"data\",\n \"key\": \"data.dataset\",\n \"featureFlag\": \"dataStore\",\n \"label\": \"Dataset records\",\n \"singularLabel\": \"Dataset record\",\n \"description\": \"The records of one dataset, with every field it defines.\",\n \"scope\": \"org\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"instances\": true,\n \"readableByMembers\": true\n },\n {\n \"pluginId\": \"email\",\n \"key\": \"email.list-members\",\n \"label\": \"List members\",\n \"singularLabel\": \"List member\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"instances\": true,\n \"description\": \"The people on one email list, with the consent each was added under.\"\n },\n {\n \"pluginId\": \"email\",\n \"key\": \"email.suppressions\",\n \"label\": \"Suppressions\",\n \"singularLabel\": \"Suppression\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 50000\n },\n \"description\": \"The addresses a site's marketing email skips, and why.\"\n },\n {\n \"pluginId\": \"email\",\n \"key\": \"email.topics\",\n \"label\": \"Email topics\",\n \"singularLabel\": \"Email topic\",\n \"scope\": \"org\",\n \"kinds\": [\n \"package\"\n ],\n \"formats\": [\n \"json\"\n ],\n \"limits\": {\n \"maxRows\": 200\n },\n \"description\": \"Each topic's name, what recipients are told they get, and whether it is retired. Never who chose it.\"\n },\n {\n \"pluginId\": \"events-calendar\",\n \"key\": \"events\",\n \"featureFlag\": \"eventCalendar\",\n \"label\": \"Events\",\n \"singularLabel\": \"Event\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 2000\n },\n \"description\": \"This site’s calendar events, matched on their ID, then the title and start together.\"\n },\n {\n \"pluginId\": \"marketing\",\n \"key\": \"marketing.campaigns\",\n \"label\": \"Campaigns\",\n \"singularLabel\": \"Campaign\",\n \"scope\": \"org\",\n \"kinds\": [\n \"package\"\n ],\n \"formats\": [\n \"json\"\n ],\n \"limits\": {\n \"maxRows\": 500\n },\n \"description\": \"Each campaign's name, dates, lists and its emails' copy, imported as drafts. Never what was sent or its results.\"\n },\n {\n \"pluginId\": \"redirects\",\n \"key\": \"redirects\",\n \"featureFlag\": \"redirects\",\n \"label\": \"Redirects\",\n \"singularLabel\": \"Redirect\",\n \"scope\": \"host\",\n \"kinds\": [\n \"records\"\n ],\n \"formats\": [\n \"csv\",\n \"json\",\n \"ndjson\"\n ],\n \"limits\": {\n \"maxRows\": 5000\n },\n \"description\": \"This site’s redirect rules, matched on the path they redirect from.\"\n },\n {\n \"pluginId\": \"workflows\",\n \"key\": \"workflows.org-automations\",\n \"featureFlag\": \"actions\",\n \"label\": \"Org automations\",\n \"singularLabel\": \"Org automation\",\n \"scope\": \"org\",\n \"kinds\": [\n \"package\"\n ],\n \"formats\": [\n \"json\"\n ],\n \"limits\": {\n \"maxRows\": 100\n },\n \"description\": \"The organization's automations — trigger, steps and sites — imported switched off.\"\n }\n]\n\n/**\n * Every org collection a first-party plugin owns whose documents the media\n * scan reads, declared by that plugin (AGL-3273).\n */\nexport const PLUGIN_ORG_COLLECTIONS_DECLARED: readonly ResolvedPluginOrgCollection[] = [\n {\n \"pluginId\": \"marketing\",\n \"name\": \"campaigns\",\n \"routeSlug\": \"marketing\",\n \"siteField\": \"hostId\",\n \"holdsTransferWhile\": {\n \"field\": \"status\",\n \"values\": [\n \"scheduled\",\n \"sending\"\n ]\n }\n },\n {\n \"pluginId\": \"marketing\",\n \"name\": \"emailCampaigns\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"The campaign CONTAINER — a name, a date window, the list ids it is aimed at, a topic and the sites it runs on. Distinct from `campaigns`, which holds the sends and IS scanned because a send carries the copy that went out. A container carries no copy and no asset reference: the design a send renders is a screen, and the screen is where the picker writes.\"\n },\n {\n \"pluginId\": \"workflows\",\n \"name\": \"automations\",\n \"mediaScan\": \"none\",\n \"mediaScanReason\": \"An org automation (AGL-3302) — a trigger, its conditions, the sites it is placed on, and a step list drawn from the server steps only: email subject and body as plain text, list, dataset and campaign ids, CRM fields and waits. No step it may hold carries a media reference, the in-page steps that could (custom HTML, popups) are refused by its save route, and it is written only by that route.\"\n },\n]\n\n/**\n * Every org capacity a first-party plugin backs, declared by that plugin\n * (AGL-3080). Core owns the money; this says what is counted and what it is\n * called.\n */\nexport const PLUGIN_ORG_CAPACITIES_DECLARED: readonly ResolvedPluginOrgCapacity[] = [\n {\n \"pluginId\": \"data\",\n \"kind\": \"datasets\",\n \"order\": 30,\n \"collection\": \"datasets\",\n \"addonKind\": \"datasets\",\n \"includedEntitlement\": \"datasetsPerOrg\",\n \"purchaseCeilingEntitlement\": \"maxDatasetsPerOrg\",\n \"nouns\": {\n \"one\": \"dataset\",\n \"many\": \"datasets\",\n \"addon\": \"extra datasets\"\n }\n },\n]\n\n/**\n * Every kind of entity a besigner picker lists, declared by the plugin that\n * keeps it (AGL-3080). Core reads, browses and resolves; this says where and\n * in what words.\n */\nexport const PLUGIN_ENTITY_PICKERS_DECLARED: readonly ResolvedPluginEntityPicker[] = [\n {\n \"pluginId\": \"forms\",\n \"kind\": \"forms\",\n \"attribute\": \"form-select\",\n \"scope\": \"host\",\n \"collection\": \"forms\",\n \"nameField\": \"displayName\",\n \"singular\": \"form\",\n \"plural\": \"forms\",\n \"page\": \"the Forms page\"\n },\n {\n \"pluginId\": \"commerce\",\n \"kind\": \"products\",\n \"attribute\": \"product-select\",\n \"scope\": \"host\",\n \"collection\": \"products\",\n \"nameField\": \"name\",\n \"searchable\": true,\n \"singular\": \"product\",\n \"plural\": \"products\",\n \"page\": \"the Products page\"\n },\n {\n \"pluginId\": \"commerce\",\n \"kind\": \"collections\",\n \"attribute\": \"collection-select\",\n \"scope\": \"host\",\n \"collection\": \"collections\",\n \"nameField\": \"name\",\n \"where\": [\n {\n \"field\": \"kind\",\n \"equals\": \"catalog\"\n }\n ],\n \"singular\": \"collection\",\n \"plural\": \"collections\",\n \"page\": \"the Collections page\"\n },\n {\n \"pluginId\": \"commerce\",\n \"kind\": \"categories\",\n \"attribute\": \"category-select\",\n \"scope\": \"host\",\n \"collection\": \"productCategories\",\n \"nameField\": \"name\",\n \"singular\": \"category\",\n \"plural\": \"categories\",\n \"page\": \"the Categories page\"\n },\n {\n \"pluginId\": \"data\",\n \"kind\": \"datasets\",\n \"attribute\": \"dataset-select\",\n \"fieldsAttribute\": \"dataset-field-select\",\n \"fieldsFrom\": \"dataset\",\n \"scope\": \"orgData\",\n \"collection\": \"datasets\",\n \"nameField\": \"displayName\",\n \"singular\": \"dataset\",\n \"plural\": \"datasets\",\n \"page\": \"the Data page\"\n },\n]\n\n/**\n * Every public door a first-party plugin keeps a ceiling and a honeypot on,\n * with its counters and words, declared by that plugin (AGL-3080).\n */\nexport const PLUGIN_VISITOR_DOORS_DECLARED: readonly ResolvedVisitorDoor[] = [\n {\n \"pluginId\": \"forms\",\n \"door\": \"form\",\n \"refusedCounter\": \"formSubmissionsRefused\",\n \"caughtCounter\": \"formSubmissionsSpam\",\n \"words\": {\n \"pausedTitle\": \"Form submissions are paused\",\n \"noun\": {\n \"one\": \"submission\",\n \"other\": \"submissions\"\n },\n \"staffNoun\": {\n \"one\": \"form submission\",\n \"other\": \"form submissions\"\n },\n \"cause\": \"This usually means a bot is filling in one of your forms — if it is real traffic, contact support and we will raise the limit.\",\n \"pausedChip\": \"forms paused\",\n \"caught\": {\n \"one\": \"bot submission\",\n \"other\": \"bot submissions\"\n },\n \"caughtBy\": \"the honeypot\",\n \"caughtChip\": {\n \"one\": \"bot hit\",\n \"other\": \"bot hits\"\n }\n }\n },\n]\n\n/**\n * Where a person reads each record kind a first-party plugin's console page\n * shows, declared by that plugin (AGL-3080), for a server's notification link.\n */\nexport const PLUGIN_RECORD_PAGES_DECLARED: readonly ResolvedPluginRecordPage[] = [\n {\n \"pluginId\": \"inbox\",\n \"kind\": \"formSubmission\",\n \"path\": \"/inbox\"\n },\n]\n\n/**\n * What each plan includes of every quota a first-party plugin owns, declared\n * by that plugin (AGL-3080). `PLAN_ENTITLEMENTS` composes these; core names\n * no key.\n */\nexport const PLUGIN_PLAN_QUOTAS_DECLARED: readonly ResolvedPluginPlanQuota[] = [\n {\n \"pluginId\": \"forms\",\n \"key\": \"formSubmissionsPerMonth\",\n \"label\": \"Form subs / mo\",\n \"byPlan\": {\n \"free\": 20,\n \"starter\": 200,\n \"pro\": 1000,\n \"business\": 5000,\n \"scale\": 10000,\n \"advanced\": 10000,\n \"agency\": 10000,\n \"enterprise\": 20000\n }\n },\n {\n \"pluginId\": \"marketplace\",\n \"key\": \"marketplaceFeePct\",\n \"label\": \"Marketplace fee %\",\n \"price\": true,\n \"byPlan\": {\n \"free\": 30,\n \"starter\": 20,\n \"pro\": 20,\n \"business\": 20,\n \"scale\": 20,\n \"advanced\": 20,\n \"agency\": 20,\n \"enterprise\": 20\n }\n },\n {\n \"pluginId\": \"crm\",\n \"key\": \"crmEmailsPerDay\",\n \"label\": \"One-to-one emails / day\",\n \"byPlan\": {\n \"free\": 0,\n \"starter\": 35,\n \"pro\": 150,\n \"business\": 200,\n \"scale\": 300,\n \"advanced\": 500,\n \"agency\": 1000,\n \"enterprise\": 2000\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"key\": \"workflowRunsPerMonth\",\n \"label\": \"Workflow runs / mo\",\n \"byPlan\": {\n \"free\": 0,\n \"starter\": 500,\n \"pro\": 5000,\n \"business\": 50000,\n \"scale\": 150000,\n \"advanced\": 500000,\n \"agency\": 2000000,\n \"enterprise\": 4000000\n }\n },\n {\n \"pluginId\": \"ai\",\n \"key\": \"assistCreditsPerMonth\",\n \"label\": \"AI credits / mo\",\n \"byPlan\": {\n \"free\": 300,\n \"starter\": 750,\n \"pro\": 2750,\n \"business\": 7500,\n \"scale\": 10000,\n \"advanced\": 13000,\n \"agency\": 58000,\n \"enterprise\": 116000\n }\n },\n]\n\n/**\n * What each plan includes of every feature a first-party plugin owns,\n * declared by that plugin (AGL-3080).\n */\nexport const PLUGIN_PLAN_FEATURES_DECLARED: readonly ResolvedPluginPlanFeature[] = [\n {\n \"pluginId\": \"commerce\",\n \"key\": \"storefrontSubscriptions\",\n \"label\": \"Storefront subscriptions\",\n \"byPlan\": {\n \"free\": false,\n \"starter\": false,\n \"pro\": false,\n \"business\": true,\n \"scale\": true,\n \"advanced\": true,\n \"agency\": true,\n \"enterprise\": true\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"giftCards\",\n \"label\": \"Gift cards\",\n \"byPlan\": {\n \"free\": false,\n \"starter\": false,\n \"pro\": false,\n \"business\": true,\n \"scale\": true,\n \"advanced\": true,\n \"agency\": true,\n \"enterprise\": true\n }\n },\n {\n \"pluginId\": \"commerce\",\n \"key\": \"commerceAnalytics\",\n \"label\": \"Commerce analytics\",\n \"byPlan\": {\n \"free\": false,\n \"starter\": false,\n \"pro\": true,\n \"business\": true,\n \"scale\": true,\n \"advanced\": true,\n \"agency\": true,\n \"enterprise\": true\n }\n },\n {\n \"pluginId\": \"marketplace\",\n \"key\": \"marketplaceSelling\",\n \"label\": \"Sell on the marketplace\",\n \"byPlan\": {\n \"free\": false,\n \"starter\": false,\n \"pro\": true,\n \"business\": true,\n \"scale\": true,\n \"advanced\": true,\n \"agency\": true,\n \"enterprise\": true\n }\n },\n]\n\n/**\n * Every meter a first-party plugin contributes to the platform's cost model,\n * in breakdown order, declared by that plugin (AGL-3080). Core keeps the rates.\n */\nexport const PLUGIN_COST_AXES_DECLARED: readonly ResolvedPluginCostAxis[] = [\n {\n \"pluginId\": \"forms\",\n \"id\": \"formSubmissions\",\n \"order\": 30,\n \"fields\": [\n \"formSubmissions\"\n ],\n \"rate\": \"perFormSubmission\"\n },\n {\n \"pluginId\": \"crm\",\n \"id\": \"contacts\",\n \"order\": 60,\n \"fields\": [\n \"crmRecordsCount\"\n ],\n \"fallbackFields\": [\n \"contactsCount\"\n ],\n \"recordedFields\": [\n \"companiesCount\",\n \"dealsCount\"\n ],\n \"rate\": \"perContactMonth\"\n },\n {\n \"pluginId\": \"ai\",\n \"id\": \"assist\",\n \"order\": 80,\n \"fields\": [\n \"assistCostUsd\"\n ],\n \"staffFields\": [\n \"assistCredits\",\n \"assistOverageUsd\"\n ],\n \"live\": {\n \"collection\": \"assistUsage\",\n \"fields\": [\n \"providerCostUsd\",\n \"estCostUsd\"\n ]\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"id\": \"runs\",\n \"order\": 90,\n \"fields\": [\n \"workflowRuns\",\n \"actionRuns\"\n ],\n \"rate\": \"perRun\"\n },\n]\n\n/**\n * Every band a first-party plugin contributes to the utilization table, in\n * column order, declared by that plugin (AGL-3080).\n */\nexport const PLUGIN_USAGE_BANDS_DECLARED: readonly ResolvedPluginUsageBand[] = [\n {\n \"pluginId\": \"forms\",\n \"id\": \"formSubmissions\",\n \"label\": \"Form submissions\",\n \"order\": 40,\n \"fields\": [\n \"formSubmissions\"\n ],\n \"entitlement\": \"formSubmissionsPerMonth\",\n \"perHost\": true,\n \"hostCounter\": \"formSubmissions\",\n \"metered\": {\n \"rate\": \"perFormSubmission\",\n \"quotedPer\": 1000,\n \"noun\": \"form submissions\",\n \"withheldUntil\": \"release_inbox\"\n }\n },\n {\n \"pluginId\": \"crm\",\n \"id\": \"contactsCount\",\n \"label\": \"CRM records\",\n \"order\": 70,\n \"fields\": [\n \"crmRecordsCount\"\n ],\n \"fallbackFields\": [\n \"contactsCount\"\n ],\n \"entitlement\": \"contactsPerHost\"\n },\n {\n \"pluginId\": \"ai\",\n \"id\": \"assistCredits\",\n \"label\": \"Assist credits\",\n \"order\": 90,\n \"fields\": [\n \"assistCostUsd\"\n ],\n \"entitlement\": \"assistCreditsPerMonth\",\n \"unitCostUsd\": 0.001,\n \"consoleWarning\": {\n \"standing\": \"/api/ai/billing/credits\",\n \"member\": \"credits\",\n \"approach\": \"You're above 80% of your included AI assist credits.\",\n \"reached\": {\n \"stops\": \"You've used your included AI assist credits — AI assist stops until next month or an upgrade, and nothing is billed for it.\",\n \"bills\": \"You've used your included AI assist credits — extra credits are billed at your plan’s rate unless you set a stop under Billing → Usage.\"\n },\n \"linksUsage\": true\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"id\": \"workflowRuns\",\n \"label\": \"Workflow runs\",\n \"order\": 100,\n \"fields\": [\n \"workflowRuns\"\n ],\n \"entitlement\": \"workflowRunsPerMonth\",\n \"hostCounter\": \"workflowRuns\",\n \"orgCounter\": \"workflowRuns\",\n \"alert\": {\n \"label\": \"monthly workflow runs\",\n \"noun\": \"workflow runs\",\n \"outcome\": \"stops\",\n \"reached\": \"Workflows pause until next month and nothing is charged — upgrade in Billing to keep them running.\",\n \"approach\": \"Nothing changes and nothing is charged — at the included amount, workflows pause until next month unless you upgrade in Billing.\"\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"id\": \"actionRuns\",\n \"label\": \"Action runs\",\n \"order\": 110,\n \"fields\": [\n \"actionRuns\"\n ],\n \"entitlement\": \"actionRunsPerMonth\",\n \"orgCounter\": \"actionRuns\"\n },\n]\n\n/**\n * Every line of a workspace's monthly spend a first-party plugin contributes\n * to its usage budget, in catalog order, declared by that plugin (AGL-3080).\n */\nexport const PLUGIN_SPEND_LINES_DECLARED: readonly ResolvedPluginSpendLine[] = [\n {\n \"pluginId\": \"ai\",\n \"id\": \"assist\",\n \"label\": \"Assist\",\n \"live\": {\n \"collection\": \"assistUsage\",\n \"field\": \"estCostUsd\"\n },\n \"billedFromEnv\": \"BILL_ASSIST_TOKENS_FROM\",\n \"unit\": {\n \"costUsd\": 0.001,\n \"label\": \"Assist credits\"\n }\n },\n]\n\n/**\n * Every meter a first-party plugin measures in the monthly usage sweep, in\n * catalog order, declared by that plugin (AGL-3080). The sweep refuses to bill\n * a month while one of these is unregistered.\n */\nexport const PLUGIN_USAGE_METERS_DECLARED: readonly ResolvedPluginUsageMeter[] = [\n {\"pluginId\":\"crm\",\"id\":\"records\"},\n {\"pluginId\":\"data\",\"id\":\"dataset-storage\"},\n {\"pluginId\":\"ai\",\"id\":\"assist\"},\n]\n\n/**\n * Every top-level plugin collection a workspace erasure sweeps by the field\n * naming the organization, declared by the plugin that owns it (AGL-3080).\n */\nexport const PLUGIN_ORG_KEYED_COLLECTIONS: readonly PluginOrgKeyedCollection[] = [\n {\n \"pluginId\": \"outreach\",\n \"name\": \"outreachMailboxCredentials\",\n \"orgField\": \"orgId\"\n },\n {\n \"pluginId\": \"outreach\",\n \"name\": \"outreachLinks\",\n \"orgField\": \"orgId\"\n },\n]\n\n/**\n * The plugins whose org eraser a workspace erasure may not run without\n * (AGL-3080): each holds a record the erasure promises to destroy.\n */\nexport const PLUGIN_REQUIRED_ORG_ERASERS: readonly string[] = [\"marketplace\"]\n\n/**\n * The plugins whose person eraser a person erasure may not run without\n * (AGL-3080): each keeps a share of the person the erasure promises to remove.\n */\nexport const PLUGIN_REQUIRED_PERSON_ERASERS: readonly string[] = [\"bookings\",\"commerce\",\"crm\",\"email\"]\n\n/**\n * The plugins whose sales the operator's sales tax return may not be filed\n * without (AGL-3080): each registers a tax return source, and one that did\n * not is refused rather than read as nothing sold.\n */\nexport const PLUGIN_TAX_RETURN_SOURCES: readonly string[] = [\"commerce\",\"marketplace\"]\n\n/**\n * The plugins whose earnings the operator's revenue report may not be read\n * without (AGL-3080): each registers a revenue source, and one that did not\n * is refused rather than read as nothing earned.\n */\nexport const PLUGIN_REVENUE_SOURCES: readonly string[] = [\"commerce\",\"marketplace\"]\n\n/**\n * Where published plugin versions and their kill switches are stored, declared\n * by the plugin that distributes them (AGL-3080). `null` when none does, and\n * the realm loader then resolves nothing.\n */\nexport const PLUGIN_DISTRIBUTION: PluginDistribution | null = {\n \"pluginId\": \"marketplace\",\n \"listings\": \"marketplaceListings\",\n \"versions\": \"pluginVersions\",\n \"revocations\": \"revocations\"\n}\n\n/**\n * The plugin that answers a published page's repeats, declared by that plugin\n * (AGL-3080). `null` when none does, and a repeat then renders its element\n * once, as written.\n */\nexport const PLUGIN_REPEAT_SOURCE_DECLARED: RepeatSourceDeclaration | null = {\n \"pluginId\": \"data\",\n \"id\": \"dataset\"\n}\n\n/**\n * The site documents a plugin authors in the besigner, declared by that\n * plugin (AGL-3080). Empty when none does, and the console's plugin-document\n * editor routes answer 404.\n */\nexport const PLUGIN_BESIGNER_DOCUMENTS_DECLARED: readonly ResolvedBesignerDocument[] = [\n {\n \"pluginId\": \"forms\",\n \"kind\": \"form\",\n \"segment\": \"forms\",\n \"collection\": \"forms\",\n \"noun\": \"form\",\n \"publish\": {\n \"path\": \"/api/forms/promote\",\n \"idField\": \"formId\"\n }\n },\n]\n\n/**\n * The plugin whose records a form's submission may also be filed as, declared\n * by that plugin (AGL-3080). `null` when none does, and no form writes one.\n */\nexport const PLUGIN_FORM_RECORD_TARGET_DECLARED: FormRecordTargetDeclaration | null = {\n \"pluginId\": \"data\",\n \"id\": \"dataset\"\n}\n\n/**\n * The installable artifact types a first-party plugin keeps the copies of,\n * declared by that plugin (AGL-3080). Empty when none does, and an installer\n * then refuses every listing of a type nobody keeps.\n */\nexport const PLUGIN_ARTIFACT_TYPES_DECLARED: readonly ArtifactTypeDeclaration[] = [\n {\"pluginId\":\"data\",\"type\":\"datasetSchema\"},\n]\n\n/**\n * What a site's template library calls a template a plugin installed, by the\n * `source.type` that plugin stamps, declared by that plugin (AGL-3080).\n * Core names no installer.\n */\nexport const PLUGIN_TEMPLATE_SOURCES: readonly PluginTemplateSource[] = [\n {\n \"pluginId\": \"marketplace\",\n \"type\": \"marketplace\",\n \"label\": \"Marketplace\",\n \"description\": \"Installed from the marketplace\"\n },\n]\n\n/**\n * The analytics settings each provider mounts a tag for, declared by the\n * plugin that adapts the vendor (AGL-3080). Empty when none does, and then no\n * setting configures a tag.\n */\nexport const ANALYTICS_PROVIDERS_DECLARED: readonly AnalyticsProviderDeclaration[] = [\n {\n \"pluginId\": \"marketing\",\n \"settings\": [\n \"gaMeasurementId\",\n \"gtmContainerId\"\n ]\n },\n]\n\n/**\n * Every interaction step a first-party plugin offers in the interaction\n * builder, declared by that plugin (AGL-3080). Core names no plugin step.\n */\nexport const PLUGIN_INTERACTION_STEPS_DECLARED: readonly InteractionStepDeclaration[] = [\n {\n \"pluginId\": \"crm\",\n \"type\": \"setContactStage\",\n \"label\": \"Set the contact’s lifecycle stage\",\n \"offered\": false\n },\n {\n \"pluginId\": \"crm\",\n \"type\": \"addContactTag\",\n \"label\": \"Tag the contact\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"tag\",\n \"names\": \"the tag\"\n }\n ]\n },\n {\n \"pluginId\": \"crm\",\n \"type\": \"assignContactOwner\",\n \"label\": \"Assign the contact an owner\",\n \"offered\": false\n },\n {\n \"pluginId\": \"crm\",\n \"type\": \"createCrmTask\",\n \"label\": \"Create a CRM task\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"title\",\n \"names\": \"the title\"\n }\n ]\n },\n {\n \"pluginId\": \"crm\",\n \"type\": \"logCrmActivity\",\n \"label\": \"Log a CRM activity\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"body\",\n \"names\": \"the text\"\n }\n ]\n },\n {\n \"pluginId\": \"data\",\n \"type\": \"datasetAppend\",\n \"label\": \"Write to a dataset\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"datasetName\",\n \"names\": \"the dataset\"\n }\n ]\n },\n {\n \"pluginId\": \"data\",\n \"type\": \"updateDataset\",\n \"label\": \"Update a dataset record\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"datasetName\",\n \"names\": \"the dataset\"\n }\n ]\n },\n {\n \"pluginId\": \"marketing\",\n \"type\": \"showOverlay\",\n \"label\": \"Open an overlay\",\n \"picks\": {\n \"collection\": \"overlays\",\n \"limit\": 50,\n \"idField\": \"overlayId\",\n \"nameField\": \"overlayName\",\n \"label\": \"Overlay\",\n \"missing\": \"pick an overlay\"\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"runWorkflow\",\n \"label\": \"Run a workflow\",\n \"typedFields\": [\n {\n \"key\": \"workflowName\",\n \"names\": \"the workflow\"\n }\n ],\n \"picks\": {\n \"collection\": \"workflows\",\n \"limit\": 100,\n \"idField\": \"workflowId\",\n \"nameField\": \"workflowName\",\n \"label\": \"Workflow\",\n \"missing\": \"pick a workflow\"\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"customEvent\",\n \"label\": \"Fire a custom event\",\n \"offered\": false\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"webhookPost\",\n \"label\": \"Send a webhook (Business)\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"webhookName\",\n \"names\": \"the webhook\"\n }\n ]\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"sendEmail\",\n \"label\": \"Send an email\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"subject\",\n \"names\": \"the subject\"\n },\n {\n \"key\": \"body\",\n \"names\": \"the text\"\n }\n ]\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"notifyAdmins\",\n \"label\": \"Notify site admins\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"title\",\n \"names\": \"the title\"\n },\n {\n \"key\": \"body\",\n \"names\": \"the text\"\n }\n ]\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"enrollList\",\n \"label\": \"Enroll in a list\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"listName\",\n \"names\": \"the list\"\n }\n ]\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"assignCampaign\",\n \"label\": \"Assign to a campaign\",\n \"offered\": false,\n \"typedFields\": [\n {\n \"key\": \"campaignName\",\n \"names\": \"the campaign\"\n }\n ]\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"wait\",\n \"label\": \"Wait\",\n \"offered\": false,\n \"holds\": {\n \"minMinutes\": 1,\n \"maxMinutes\": 129600\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"waitForEvent\",\n \"label\": \"Wait for something to happen\",\n \"offered\": false,\n \"holds\": {\n \"minMinutes\": 1,\n \"maxMinutes\": 129600,\n \"timeoutField\": \"_waitTimedOut\"\n }\n },\n {\n \"pluginId\": \"workflows\",\n \"type\": \"exitFlow\",\n \"label\": \"End the flow here\",\n \"offered\": false\n },\n]\n\n/**\n * Every server step a first-party plugin runs for the automation engine,\n * declared by that plugin (AGL-3080). Core names no plugin step.\n */\nexport const PLUGIN_SERVER_STEPS_DECLARED: readonly ServerStepDeclaration[] = [\n {\n \"pluginId\": \"crm\",\n \"type\": \"setContactStage\"\n },\n {\n \"pluginId\": \"crm\",\n \"type\": \"addContactTag\"\n },\n {\n \"pluginId\": \"crm\",\n \"type\": \"assignContactOwner\"\n },\n {\n \"pluginId\": \"crm\",\n \"type\": \"createCrmTask\"\n },\n {\n \"pluginId\": \"crm\",\n \"type\": \"logCrmActivity\"\n },\n {\n \"pluginId\": \"data\",\n \"type\": \"datasetAppend\"\n },\n {\n \"pluginId\": \"data\",\n \"type\": \"updateDataset\"\n },\n]\n\n/**\n * Every ready-to-edit interaction a first-party plugin offers, by the id a\n * stored interaction's stamp names it with, declared by that plugin\n * (AGL-3080). Core names no recipe.\n */\nexport const PLUGIN_INTERACTION_RECIPES_DECLARED: readonly InteractionRecipeDeclaration[] = [\n {\n \"pluginId\": \"crm\",\n \"id\": \"welcomeNewLead\"\n },\n {\n \"pluginId\": \"crm\",\n \"id\": \"followUpWonDeal\"\n },\n {\n \"pluginId\": \"crm\",\n \"id\": \"reengageStaleLead\"\n },\n {\n \"pluginId\": \"crm\",\n \"id\": \"tagByForm\"\n },\n]\n\n/**\n * Every first-party element that runs a site function, and the prop naming\n * it, declared by that element's plugin (AGL-3393). Core names no element.\n */\nexport const FIRST_PARTY_FUNCTION_BINDINGS: FunctionBindings = {}\n\n/**\n * Every video host whose own player the Video element frames, declared by\n * the plugin that plays it (AGL-3080). Core names no host.\n */\nexport const FIRST_PARTY_VIDEO_EMBED_PROVIDERS: readonly ResolvedVideoEmbedProvider[] = [\n {\n \"pluginId\": \"mui\",\n \"id\": \"wistia\",\n \"label\": \"Wistia\",\n \"domains\": [\n \"wistia.com\",\n \"wistia.net\",\n \"wi.st\"\n ],\n \"mediaIdPaths\": [\n \"^\\\\/medias\\\\/([^/]+)(?:\\\\/manage)?\\\\/?$\",\n \"^\\\\/m\\\\/([^/]+)\\\\/?$\",\n \"^\\\\/embed\\\\/iframe\\\\/([^/]+)\\\\/?$\",\n \"^\\\\/embed\\\\/medias\\\\/([^/.]+)(?:\\\\.jsonp?)?\\\\/?$\"\n ],\n \"mediaIdPattern\": \"^[a-z0-9]{10}$\",\n \"playerOrigin\": \"https://fast.wistia.net\",\n \"playerPath\": \"/embed/iframe/{id}\",\n \"playerQuery\": [\n {\n \"param\": \"autoPlay\",\n \"option\": \"autoPlay\",\n \"on\": \"true\",\n \"off\": \"false\"\n },\n {\n \"param\": \"roundedPlayer\",\n \"value\": \"false\"\n },\n {\n \"param\": \"doNotTrack\",\n \"option\": \"doNotTrack\",\n \"on\": \"true\"\n },\n {\n \"param\": \"muted\",\n \"option\": \"muted\",\n \"on\": \"true\"\n },\n {\n \"param\": \"endVideoBehavior\",\n \"option\": \"loop\",\n \"on\": \"loop\"\n }\n ]\n },\n]\n\n/**\n * The notification categories first-party plugins add to the settings page\n * and to every recipient's preferences, declared by each plugin (AGL-3080).\n */\nexport const PLUGIN_NOTIFICATION_CATEGORIES_DECLARED: readonly NotificationCategoryDeclaration[] = [\n {\n \"pluginId\": \"marketplace\",\n \"id\": \"marketplace\",\n \"label\": \"Marketplace\",\n \"description\": \"Decisions on plugin listings you submitted for review.\",\n \"defaults\": {\n \"console\": true,\n \"email\": false\n }\n },\n]\n\n/**\n * The digests first-party plugins send on their own schedule, each with the\n * key its switch is stored under, declared by the plugin that sends it\n * (AGL-3080).\n */\nexport const PLUGIN_NOTIFICATION_DIGESTS_DECLARED: readonly NotificationDigestDeclaration[] = [\n {\n \"pluginId\": \"crm\",\n \"key\": \"crmDaily\",\n \"label\": \"Daily CRM digest\",\n \"description\": \"Each morning: your overdue and due-today tasks and the leads nobody has worked, here and by email.\"\n },\n]\n"],"names":["FIRST_PARTY_PLUGINS","PUBLISHED_SITE_IMPACT","PLUGIN_EDIT_BAR_LINKS","PLUGIN_HOST_COLLECTIONS_DECLARED","PLUGIN_SITEMAP_SECTIONS_DECLARED","PLUGIN_SITEMAP_READERS_DECLARED","PLUGIN_SITE_BUNDLE_SECTIONS_DECLARED","PLUGIN_TRANSFER_RESOURCES_DECLARED","PLUGIN_ORG_COLLECTIONS_DECLARED","PLUGIN_ORG_CAPACITIES_DECLARED","PLUGIN_ENTITY_PICKERS_DECLARED","PLUGIN_VISITOR_DOORS_DECLARED","PLUGIN_RECORD_PAGES_DECLARED","PLUGIN_PLAN_QUOTAS_DECLARED","PLUGIN_PLAN_FEATURES_DECLARED","PLUGIN_COST_AXES_DECLARED","PLUGIN_USAGE_BANDS_DECLARED","PLUGIN_SPEND_LINES_DECLARED","PLUGIN_USAGE_METERS_DECLARED","PLUGIN_ORG_KEYED_COLLECTIONS","PLUGIN_REQUIRED_ORG_ERASERS","PLUGIN_REQUIRED_PERSON_ERASERS","PLUGIN_TAX_RETURN_SOURCES","PLUGIN_REVENUE_SOURCES","PLUGIN_DISTRIBUTION","PLUGIN_REPEAT_SOURCE_DECLARED","PLUGIN_BESIGNER_DOCUMENTS_DECLARED","PLUGIN_FORM_RECORD_TARGET_DECLARED","PLUGIN_ARTIFACT_TYPES_DECLARED","PLUGIN_TEMPLATE_SOURCES","ANALYTICS_PROVIDERS_DECLARED","PLUGIN_INTERACTION_STEPS_DECLARED","PLUGIN_SERVER_STEPS_DECLARED","PLUGIN_INTERACTION_RECIPES_DECLARED","FIRST_PARTY_FUNCTION_BINDINGS","FIRST_PARTY_VIDEO_EMBED_PROVIDERS","PLUGIN_NOTIFICATION_CATEGORIES_DECLARED","PLUGIN_NOTIFICATION_DIGESTS_DECLARED"],"mappings":"AAAA;;;;;;;CAOC,GA6BD,OAAO,MAAMA,sBAAmD;IAC9D;QACE,MAAM;QACN,SAAS;QACT,YAAY;QACZ,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,wBAAwB;QACxB,eAAe;QACf,WAAW;YACT,SAAS;YACT,SAAS;YACT,WAAW;YACX,SAAS;gBACP,WAAW;gBACX,QAAQ;YACV;QACF;IACF;IACA;QACE,MAAM;QACN,SAAS;QACT,wBAAwB;QACxB,eAAe;QACf,WAAW;YACT,SAAS;YACT,SAAS;QACX;IACF;IACA;QACE,MAAM;QACN,SAAS;QACT,wBAAwB;QACxB,eAAe;QACf,WAAW;YACT,SAAS;YACT,SAAS;QACX;IACF;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;QACf,qBAAqB;QACrB,YAAY;YACV;SACD;IACH;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;IACA;QACE,MAAM;QACN,SAAS;QACT,eAAe;QACf,eAAe;IACjB;CACD,CAAA;AAED,OAAO,MAAMC,wBAAuE;IAClF,OAAO;IACP,SAAS;IACT,MAAM;IACN,iBAAiB;IACjB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,SAAS;IACT,aAAa;IACb,aAAa;IACb,aAAa;AACf,EAAC;AAED;;;CAGC,GACD,OAAO,MAAMC,wBAAsD;IACjE;QACE,YAAY;QACZ,SAAS;QACT,SAAS;QACT,QAAQ;IACV;IACA;QACE,YAAY;QACZ,SAAS;QACT,SAAS;QACT,QAAQ;IACV;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,mCAA4E;IACvF;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;gBACb,aAAa;gBACb,cAAc;oBACZ;wBACE,eAAe;wBACf,QAAQ;oBACV;iBACD;YACH;YACA,SAAS;gBACP,YAAY;YACd;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;YACf;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,UAAU;gBACR,aAAa;YACf;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,aAAa;IACf;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;QACnB,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;YACf;YACA,SAAS;gBACP,YAAY;YACd;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;QACH;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;gBACb,gBAAgB;YAClB;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;QACH;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;gBACb,cAAc;oBACZ;wBACE,SAAS;wBACT,QAAQ;oBACV;iBACD;gBACD,gBAAgB;YAClB;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;gBACb,cAAc;oBACZ;wBACE,SAAS;wBACT,QAAQ;oBACV;iBACD;YACH;YACA,SAAS;gBACP,YAAY;YACd;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;YACf;YACA,SAAS;gBACP,YAAY;YACd;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,uBAAuB;YACvB,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,uBAAuB;gBACrB,SAAS;gBACT,mBAAmB;YACrB;YACA,iBAAiB;QACnB;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;YACf;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;aACD;YACD,aAAa;gBACX,aAAa;gBACb,UAAU;oBACR;oBACA;iBACD;gBACD,UAAU;oBACR,WAAW;gBACb;YACF;QACF;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;YACf;QACF;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,YAAY;YACV,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACD;QACH;QACA,cAAc;YACZ,SAAS;YACT,UAAU;gBACR;gBACA;gBACA;gBACA;gBACA;aACD;YACD,WAAW;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;YACf;QACF;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,mCAA4E;IACvF;QACE,YAAY;QACZ,WAAW;QACX,cAAc;QACd,SAAS;YACP,SAAS;YACT,UAAU;QACZ;QACA,aAAa;YACX,OAAO;YACP,SAAS;QACX;QACA,QAAQ;QACR,YAAY;QACZ,WAAW;YACT;YACA;SACD;IACH;IACA;QACE,YAAY;QACZ,WAAW;QACX,cAAc;QACd,SAAS;YACP,SAAS;YACT,UAAU;QACZ;QACA,aAAa;YACX,OAAO;YACP,SAAS;QACX;QACA,QAAQ;QACR,WAAW;YACT;YACA;SACD;IACH;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,kCAAqF;IAChG;QACE,YAAY;QACZ,WAAW;IACb;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,uCAA8F;IACzG;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,WAAW;YACT,QAAQ;YACR,SAAS;YACT,aAAa;YACb,cAAc;gBACZ;oBACE,QAAQ;gBACV;gBACA;oBACE,eAAe;oBACf,QAAQ;gBACV;aACD;QACH;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,qCAAqF;IAChG;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,eAAe;QACf,cAAc;IAChB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,eAAe;QACf,cAAc;IAChB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,cAAc;QACd,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,qBAAqB;YACnB;SACD;QACD,eAAe;YACb;SACD;QACD,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,qBAAqB;YACnB;SACD;QACD,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,qBAAqB;YACnB;SACD;QACD,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,cAAc;QACd,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,cAAc;QACd,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,cAAc;QACd,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,eAAe;QACf,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,aAAa;QACb,qBAAqB;IACvB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,aAAa;QACb,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;YACA;YACA;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;IACA;QACE,YAAY;QACZ,OAAO;QACP,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,SAAS;YACP;SACD;QACD,WAAW;YACT;SACD;QACD,UAAU;YACR,WAAW;QACb;QACA,eAAe;IACjB;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,kCAA0E;IACrF;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,aAAa;QACb,sBAAsB;YACpB,SAAS;YACT,UAAU;gBACR;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;IACrB;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,iCAAuE;IAClF;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,cAAc;QACd,aAAa;QACb,uBAAuB;QACvB,8BAA8B;QAC9B,SAAS;YACP,OAAO;YACP,QAAQ;YACR,SAAS;QACX;IACF;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,iCAAwE;IACnF;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,SAAS;QACT,cAAc;QACd,aAAa;QACb,YAAY;QACZ,UAAU;QACV,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,SAAS;QACT,cAAc;QACd,aAAa;QACb,cAAc;QACd,YAAY;QACZ,UAAU;QACV,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,SAAS;QACT,cAAc;QACd,aAAa;QACb,SAAS;YACP;gBACE,SAAS;gBACT,UAAU;YACZ;SACD;QACD,YAAY;QACZ,UAAU;QACV,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,SAAS;QACT,cAAc;QACd,aAAa;QACb,YAAY;QACZ,UAAU;QACV,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,mBAAmB;QACnB,cAAc;QACd,SAAS;QACT,cAAc;QACd,aAAa;QACb,YAAY;QACZ,UAAU;QACV,QAAQ;IACV;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,gCAAgE;IAC3E;QACE,YAAY;QACZ,QAAQ;QACR,kBAAkB;QAClB,iBAAiB;QACjB,SAAS;YACP,eAAe;YACf,QAAQ;gBACN,OAAO;gBACP,SAAS;YACX;YACA,aAAa;gBACX,OAAO;gBACP,SAAS;YACX;YACA,SAAS;YACT,cAAc;YACd,UAAU;gBACR,OAAO;gBACP,SAAS;YACX;YACA,YAAY;YACZ,cAAc;gBACZ,OAAO;gBACP,SAAS;YACX;QACF;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,+BAAoE;IAC/E;QACE,YAAY;QACZ,QAAQ;QACR,QAAQ;IACV;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,8BAAkE;IAC7E;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,gCAAsE;IACjF;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,UAAU;YACR,QAAQ;YACR,WAAW;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,cAAc;QAChB;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,4BAA+D;IAC1E;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,UAAU;YACR;SACD;QACD,QAAQ;IACV;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,UAAU;YACR;SACD;QACD,kBAAkB;YAChB;SACD;QACD,kBAAkB;YAChB;YACA;SACD;QACD,QAAQ;IACV;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;YACb;YACA;SACD;QACD,QAAQ;YACN,cAAc;YACd,UAAU;gBACR;gBACA;aACD;QACH;IACF;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,UAAU;YACR;YACA;SACD;QACD,QAAQ;IACV;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,8BAAkE;IAC7E;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;QACf,WAAW;QACX,eAAe;QACf,WAAW;YACT,QAAQ;YACR,aAAa;YACb,QAAQ;YACR,iBAAiB;QACnB;IACF;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,kBAAkB;YAChB;SACD;QACD,eAAe;IACjB;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;QACf,eAAe;QACf,kBAAkB;YAChB,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,WAAW;gBACT,SAAS;gBACT,SAAS;YACX;YACA,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;QACf,eAAe;QACf,cAAc;QACd,SAAS;YACP,SAAS;YACT,QAAQ;YACR,WAAW;YACX,WAAW;YACX,YAAY;QACd;IACF;IACA;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;YACR;SACD;QACD,eAAe;QACf,cAAc;IAChB;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,8BAAkE;IAC7E;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,QAAQ;YACN,cAAc;YACd,SAAS;QACX;QACA,iBAAiB;QACjB,QAAQ;YACN,WAAW;YACX,SAAS;QACX;IACF;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,+BAAoE;IAC/E;QAAC,YAAW;QAAM,MAAK;IAAS;IAChC;QAAC,YAAW;QAAO,MAAK;IAAiB;IACzC;QAAC,YAAW;QAAK,MAAK;IAAQ;CAC/B,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,+BAAoE;IAC/E;QACE,YAAY;QACZ,QAAQ;QACR,YAAY;IACd;IACA;QACE,YAAY;QACZ,QAAQ;QACR,YAAY;IACd;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,8BAAiD;IAAC;CAAc,CAAA;AAE7E;;;CAGC,GACD,OAAO,MAAMC,iCAAoD;IAAC;IAAW;IAAW;IAAM;CAAQ,CAAA;AAEtG;;;;CAIC,GACD,OAAO,MAAMC,4BAA+C;IAAC;IAAW;CAAc,CAAA;AAEtF;;;;CAIC,GACD,OAAO,MAAMC,yBAA4C;IAAC;IAAW;CAAc,CAAA;AAEnF;;;;CAIC,GACD,OAAO,MAAMC,sBAAiD;IAC5D,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,eAAe;AACjB,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMC,gCAAgE;IAC3E,YAAY;IACZ,MAAM;AACR,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMC,qCAA0E;IACrF;QACE,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,cAAc;QACd,QAAQ;QACR,WAAW;YACT,QAAQ;YACR,WAAW;QACb;IACF;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,qCAAyE;IACpF,YAAY;IACZ,MAAM;AACR,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMC,iCAAqE;IAChF;QAAC,YAAW;QAAO,QAAO;IAAe;CAC1C,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,0BAA2D;IACtE;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,eAAe;IACjB;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,+BAAwE;IACnF;QACE,YAAY;QACZ,YAAY;YACV;YACA;SACD;IACH;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,oCAA2E;IACtF;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;IACb;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;IACb;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;YACP,cAAc;YACd,SAAS;YACT,WAAW;YACX,aAAa;YACb,SAAS;YACT,WAAW;QACb;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;QACD,SAAS;YACP,cAAc;YACd,SAAS;YACT,WAAW;YACX,aAAa;YACb,SAAS;YACT,WAAW;QACb;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;IACb;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;YACA;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;YACA;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,eAAe;YACb;gBACE,OAAO;gBACP,SAAS;YACX;SACD;IACH;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,SAAS;YACP,cAAc;YACd,cAAc;QAChB;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,SAAS;YACP,cAAc;YACd,cAAc;YACd,gBAAgB;QAClB;IACF;IACA;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;IACb;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,+BAAiE;IAC5E;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;IACV;IACA;QACE,YAAY;QACZ,QAAQ;IACV;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,sCAA+E;IAC1F;QACE,YAAY;QACZ,MAAM;IACR;IACA;QACE,YAAY;QACZ,MAAM;IACR;IACA;QACE,YAAY;QACZ,MAAM;IACR;IACA;QACE,YAAY;QACZ,MAAM;IACR;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,gCAAkD,CAAC,EAAC;AAEjE;;;CAGC,GACD,OAAO,MAAMC,oCAA2E;IACtF;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,WAAW;YACT;YACA;YACA;SACD;QACD,gBAAgB;YACd;YACA;YACA;YACA;SACD;QACD,kBAAkB;QAClB,gBAAgB;QAChB,cAAc;QACd,eAAe;YACb;gBACE,SAAS;gBACT,UAAU;gBACV,MAAM;gBACN,OAAO;YACT;YACA;gBACE,SAAS;gBACT,SAAS;YACX;YACA;gBACE,SAAS;gBACT,UAAU;gBACV,MAAM;YACR;YACA;gBACE,SAAS;gBACT,UAAU;gBACV,MAAM;YACR;YACA;gBACE,SAAS;gBACT,UAAU;gBACV,MAAM;YACR;SACD;IACH;CACD,CAAA;AAED;;;CAGC,GACD,OAAO,MAAMC,0CAAsF;IACjG;QACE,YAAY;QACZ,MAAM;QACN,SAAS;QACT,eAAe;QACf,YAAY;YACV,WAAW;YACX,SAAS;QACX;IACF;CACD,CAAA;AAED;;;;CAIC,GACD,OAAO,MAAMC,uCAAiF;IAC5F;QACE,YAAY;QACZ,OAAO;QACP,SAAS;QACT,eAAe;IACjB;CACD,CAAA"}
@@ -22,7 +22,6 @@ export * from './editor-sessions';
22
22
  export * from './enabled-plugins';
23
23
  export * from './install-presets';
24
24
  export * from './plugin-config';
25
- export * from './order-fulfilment';
26
25
  export * from './plugin-jobs';
27
26
  export * from './plugin-permissions';
28
27
  export * from './plugin-services';
@@ -21,7 +21,6 @@ export * from "./editor-sessions.js";
21
21
  export * from "./enabled-plugins.js";
22
22
  export * from "./install-presets.js";
23
23
  export * from "./plugin-config.js";
24
- export * from "./order-fulfilment.js";
25
24
  export * from "./plugin-jobs.js";
26
25
  export * from "./plugin-permissions.js";
27
26
  export * from "./plugin-services.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2022 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { default } from './plugin-manager'\nexport * from './plugin-manager'\nexport * from './billing-webhook-hooks'\nexport * from './custom-fields'\nexport * from './editor-sessions'\nexport * from './enabled-plugins'\nexport * from './install-presets'\nexport * from './plugin-config'\nexport * from './order-fulfilment'\nexport * from './plugin-jobs'\nexport * from './plugin-permissions'\nexport * from './plugin-services'\nexport * from './plugin-resource-drafts'\n// `plugin-figures` is imported by its own path, never from here: it serves\n// server-side readers only, and this barrel is on every published page.\nexport * from './plugin-activity-actions'\nexport * from './plugin-entitlements'\nexport * from './plugin-events'\nexport * from './plugin-user-erasure'\n// `plugin-org-erasure` is server-only too: import it by its own path.\nexport * from './plugin-styles'\nexport * from './plugin-contributions'\nexport * from './plugin-loader'\nexport * from './realm-plugins'\nexport * from './site-page-hooks'\nexport * from './site-runtime'\nexport * from './feature-plugins'\nexport * from './plugin-bridge'\n"],"names":["default"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAASA,OAAO,QAAQ,sBAAkB;AAC1C,cAAc,sBAAkB;AAChC,cAAc,6BAAyB;AACvC,cAAc,qBAAiB;AAC/B,cAAc,uBAAmB;AACjC,cAAc,uBAAmB;AACjC,cAAc,uBAAmB;AACjC,cAAc,qBAAiB;AAC/B,cAAc,wBAAoB;AAClC,cAAc,mBAAe;AAC7B,cAAc,0BAAsB;AACpC,cAAc,uBAAmB;AACjC,cAAc,8BAA0B;AACxC,2EAA2E;AAC3E,wEAAwE;AACxE,cAAc,+BAA2B;AACzC,cAAc,2BAAuB;AACrC,cAAc,qBAAiB;AAC/B,cAAc,2BAAuB;AACrC,sEAAsE;AACtE,cAAc,qBAAiB;AAC/B,cAAc,4BAAwB;AACtC,cAAc,qBAAiB;AAC/B,cAAc,qBAAiB;AAC/B,cAAc,uBAAmB;AACjC,cAAc,oBAAgB;AAC9B,cAAc,uBAAmB;AACjC,cAAc,qBAAiB"}
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2022 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { default } from './plugin-manager'\nexport * from './plugin-manager'\nexport * from './billing-webhook-hooks'\nexport * from './custom-fields'\nexport * from './editor-sessions'\nexport * from './enabled-plugins'\nexport * from './install-presets'\nexport * from './plugin-config'\nexport * from './plugin-jobs'\nexport * from './plugin-permissions'\nexport * from './plugin-services'\nexport * from './plugin-resource-drafts'\n// `plugin-figures` is imported by its own path, never from here: it serves\n// server-side readers only, and this barrel is on every published page.\nexport * from './plugin-activity-actions'\nexport * from './plugin-entitlements'\nexport * from './plugin-events'\nexport * from './plugin-user-erasure'\n// `plugin-org-erasure` is server-only too: import it by its own path.\nexport * from './plugin-styles'\nexport * from './plugin-contributions'\nexport * from './plugin-loader'\nexport * from './realm-plugins'\nexport * from './site-page-hooks'\nexport * from './site-runtime'\nexport * from './feature-plugins'\nexport * from './plugin-bridge'\n"],"names":["default"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAASA,OAAO,QAAQ,sBAAkB;AAC1C,cAAc,sBAAkB;AAChC,cAAc,6BAAyB;AACvC,cAAc,qBAAiB;AAC/B,cAAc,uBAAmB;AACjC,cAAc,uBAAmB;AACjC,cAAc,uBAAmB;AACjC,cAAc,qBAAiB;AAC/B,cAAc,mBAAe;AAC7B,cAAc,0BAAsB;AACpC,cAAc,uBAAmB;AACjC,cAAc,8BAA0B;AACxC,2EAA2E;AAC3E,wEAAwE;AACxE,cAAc,+BAA2B;AACzC,cAAc,2BAAuB;AACrC,cAAc,qBAAiB;AAC/B,cAAc,2BAAuB;AACrC,sEAAsE;AACtE,cAAc,qBAAiB;AAC/B,cAAc,4BAAwB;AACtC,cAAc,qBAAiB;AAC/B,cAAc,qBAAiB;AAC/B,cAAc,uBAAmB;AACjC,cAAc,oBAAgB;AAC9B,cAAc,uBAAmB;AACjC,cAAc,qBAAiB"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import type { InteractionStepBase, SiteInteraction } from '../app-utils/site-interactions';
18
+ /**
19
+ * A READY-TO-EDIT INTERACTION ANOTHER PLUGIN OFFERS (AGL-3080).
20
+ *
21
+ * A recipe is a stored interaction — a trigger, its conditions and an ordered
22
+ * step list — built from the step vocabulary and handed to an editor as a
23
+ * draft. Nothing is written until a person saves, and every field is theirs to
24
+ * change first: the recipe decides where the editor starts, not what the site
25
+ * runs. The plugin that knows what a recipe is FOR writes it — the CRM's
26
+ * "Welcome a new lead" is the CRM's — and the plugin that edits and stores
27
+ * interactions offers it. Neither imports the other: the author registers its
28
+ * recipes here, and the editor reads them.
29
+ *
30
+ * A stored interaction remembers the recipe it began as by the recipe's id
31
+ * (its `recipe` stamp), so a recipe's id never changes once it has shipped.
32
+ *
33
+ * ## Declared, then registered
34
+ *
35
+ * A recipe BUILDS its interaction, which is code, so it is registered — from
36
+ * the author's `declarations` entry, which both apps and the console's loader
37
+ * run at boot. Its ID is also declared, under `interactionRecipes` in
38
+ * `plugins.config.json`, and compiled into core, because a validator must know
39
+ * a stamp names a real recipe in every process, including one where the
40
+ * author's declarations did not run: {@link isKnownInteractionRecipe} answers
41
+ * from either. A marketplace plugin's recipes are registered and never
42
+ * compiled, and are known once registered.
43
+ */
44
+ /** The compiled declaration: which plugin offers which recipe. */
45
+ export interface InteractionRecipeDeclaration {
46
+ pluginId: string;
47
+ /** The recipe's id, as a stored interaction's `recipe` stamp names it. */
48
+ id: string;
49
+ }
50
+ /** What a recipe is handed before it builds. */
51
+ export interface InteractionRecipeInput {
52
+ /** The record a person picked, for a recipe that {@link InteractionRecipe.picks} one. */
53
+ picked?: {
54
+ id: string;
55
+ name: string;
56
+ };
57
+ }
58
+ /**
59
+ * The record a person picks before a recipe can be built, and the words the
60
+ * editor asks for it in. The editor lists the records of `kind` through the
61
+ * list source the plugin that keeps them publishes (`plugin-record-lists`).
62
+ */
63
+ export interface InteractionRecipePick {
64
+ /** The record kind, as `plugin-record-lists` lists it: `'form'`. */
65
+ kind: string;
66
+ /** The picker's label: "Form". */
67
+ label: string;
68
+ /** The kind's plural, for the sentence that says the list was cut short: "forms". */
69
+ plural: string;
70
+ /** What the person is asked to pick, one sentence: "Pick the form whose new contacts get the tag." */
71
+ prompt: string;
72
+ /** What the picker says on a site that has none. */
73
+ none: string;
74
+ }
75
+ /** The interaction a recipe builds: a fresh one each call, stamped with the recipe's id. */
76
+ export type InteractionRecipeDraft = SiteInteraction<InteractionStepBase> & {
77
+ recipe: string;
78
+ };
79
+ export interface InteractionRecipe {
80
+ /** Never changes once shipped: stored interactions name it. */
81
+ id: string;
82
+ /** How the recipe reads in a menu; also the interaction's starting name. */
83
+ title: string;
84
+ /** One sentence under the title. */
85
+ description: string;
86
+ /**
87
+ * The record a person picks before the recipe can be built. A recipe that
88
+ * needs nothing opens the editor at once. Built WITHOUT its pick, such a
89
+ * recipe yields an interaction a validator refuses — a condition with no
90
+ * value — rather than one that saves and then silently matches nothing.
91
+ */
92
+ picks?: InteractionRecipePick;
93
+ /**
94
+ * A fresh interaction each call, because the draft is edited in place. It
95
+ * carries `recipe: id` — the provenance is the builder's to stamp, so a
96
+ * writer that saves what it was handed cannot forget it.
97
+ */
98
+ build(input?: InteractionRecipeInput): InteractionRecipeDraft;
99
+ }
100
+ /** Every recipe a first-party plugin declares, in `plugins.config.json` order. */
101
+ export declare function declaredInteractionRecipes(): readonly InteractionRecipeDeclaration[];
102
+ /**
103
+ * Registers a plugin's recipes, in the order its menu lists them.
104
+ *
105
+ * The owner is the plugin whose register fn is running, or the `pluginId`
106
+ * passed for a boot declaration. A registration with neither is refused; so is
107
+ * a recipe id another plugin declares or already registered, because two
108
+ * recipes under one id would each answer for the other's stamps. The same
109
+ * plugin registering again replaces its own. Nothing is registered unless
110
+ * every recipe is accepted.
111
+ */
112
+ export declare function registerInteractionRecipes(list: readonly InteractionRecipe[], options?: {
113
+ pluginId?: string;
114
+ }): void;
115
+ /** Every registered recipe, each plugin's in its own order. */
116
+ export declare function interactionRecipes(): InteractionRecipe[];
117
+ /** The registered recipe with this id, or `null` for one nobody registered. */
118
+ export declare function interactionRecipe(id: unknown): InteractionRecipe | null;
119
+ /**
120
+ * Whether a stamp names a recipe: one a first-party plugin declares, or one a
121
+ * plugin registered in this process.
122
+ */
123
+ export declare function isKnownInteractionRecipe(id: unknown): id is string;
124
+ /**
125
+ * The recipe a STORED interaction came from, read off its document (AGL-2639).
126
+ *
127
+ * Three answers, and the third is the one that matters. A known id: the
128
+ * interaction was installed from, or begun as, that recipe — one a plugin
129
+ * declares or registered ({@link isKnownInteractionRecipe}). `null`: it was
130
+ * begun blank, or from a recipe this build no longer knows — the editor wrote
131
+ * the field and said "no recipe". `undefined`: the document carries no
132
+ * `recipe` field at all, which is every interaction saved before the stamp
133
+ * existed. Such an interaction may well have started from a recipe — the menu
134
+ * opened the editor prefilled long before anything recorded it — so a reader
135
+ * that needs to know whether a site has a recipe treats `undefined` as
136
+ * UNKNOWN, never as absent, and never writes a `null` over it.
137
+ */
138
+ export declare function interactionRecipeStamp(interaction: {
139
+ recipe?: unknown;
140
+ } | null | undefined): string | null | undefined;
141
+ /** Only for specs: forgets every registered recipe. */
142
+ export declare function resetInteractionRecipesForTests(): void;