@aglyn/aglyn 1.0.0-beta.143

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 (963) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +11 -0
  3. package/package.json +66 -0
  4. package/src/index.d.ts +25 -0
  5. package/src/index.js +26 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/aglyn.d.ts +31 -0
  8. package/src/lib/aglyn.js +114 -0
  9. package/src/lib/aglyn.js.map +1 -0
  10. package/src/lib/app-utils/abuse-report.d.ts +193 -0
  11. package/src/lib/app-utils/abuse-report.js +321 -0
  12. package/src/lib/app-utils/abuse-report.js.map +1 -0
  13. package/src/lib/app-utils/accept-negotiation.d.ts +129 -0
  14. package/src/lib/app-utils/accept-negotiation.js +266 -0
  15. package/src/lib/app-utils/accept-negotiation.js.map +1 -0
  16. package/src/lib/app-utils/account-emails.d.ts +263 -0
  17. package/src/lib/app-utils/account-emails.js +264 -0
  18. package/src/lib/app-utils/account-emails.js.map +1 -0
  19. package/src/lib/app-utils/actions.d.ts +717 -0
  20. package/src/lib/app-utils/actions.js +1031 -0
  21. package/src/lib/app-utils/actions.js.map +1 -0
  22. package/src/lib/app-utils/activity-presenter.d.ts +152 -0
  23. package/src/lib/app-utils/activity-presenter.js +326 -0
  24. package/src/lib/app-utils/activity-presenter.js.map +1 -0
  25. package/src/lib/app-utils/advertising-tag-mounts.d.ts +133 -0
  26. package/src/lib/app-utils/advertising-tag-mounts.js +118 -0
  27. package/src/lib/app-utils/advertising-tag-mounts.js.map +1 -0
  28. package/src/lib/app-utils/advertising-tags.d.ts +307 -0
  29. package/src/lib/app-utils/advertising-tags.js +525 -0
  30. package/src/lib/app-utils/advertising-tags.js.map +1 -0
  31. package/src/lib/app-utils/agent-api-catalog.d.ts +94 -0
  32. package/src/lib/app-utils/agent-api-catalog.js +106 -0
  33. package/src/lib/app-utils/agent-api-catalog.js.map +1 -0
  34. package/src/lib/app-utils/agent-openapi.d.ts +103 -0
  35. package/src/lib/app-utils/agent-openapi.js +1128 -0
  36. package/src/lib/app-utils/agent-openapi.js.map +1 -0
  37. package/src/lib/app-utils/analytics-beacon.d.ts +154 -0
  38. package/src/lib/app-utils/analytics-beacon.js +152 -0
  39. package/src/lib/app-utils/analytics-beacon.js.map +1 -0
  40. package/src/lib/app-utils/analytics-environment.d.ts +133 -0
  41. package/src/lib/app-utils/analytics-environment.js +152 -0
  42. package/src/lib/app-utils/analytics-environment.js.map +1 -0
  43. package/src/lib/app-utils/analytics-events.d.ts +744 -0
  44. package/src/lib/app-utils/analytics-events.js +650 -0
  45. package/src/lib/app-utils/analytics-events.js.map +1 -0
  46. package/src/lib/app-utils/analytics-link-clicks.d.ts +102 -0
  47. package/src/lib/app-utils/analytics-link-clicks.js +267 -0
  48. package/src/lib/app-utils/analytics-link-clicks.js.map +1 -0
  49. package/src/lib/app-utils/analytics-path-key.d.ts +46 -0
  50. package/src/lib/app-utils/analytics-path-key.js +46 -0
  51. package/src/lib/app-utils/analytics-path-key.js.map +1 -0
  52. package/src/lib/app-utils/api-adapter.d.ts +47 -0
  53. package/src/lib/app-utils/api-adapter.js +367 -0
  54. package/src/lib/app-utils/api-adapter.js.map +1 -0
  55. package/src/lib/app-utils/api-idempotency.d.ts +169 -0
  56. package/src/lib/app-utils/api-idempotency.js +213 -0
  57. package/src/lib/app-utils/api-idempotency.js.map +1 -0
  58. package/src/lib/app-utils/api-plugins.d.ts +210 -0
  59. package/src/lib/app-utils/api-plugins.js +221 -0
  60. package/src/lib/app-utils/api-plugins.js.map +1 -0
  61. package/src/lib/app-utils/assist-credits.d.ts +482 -0
  62. package/src/lib/app-utils/assist-credits.js +509 -0
  63. package/src/lib/app-utils/assist-credits.js.map +1 -0
  64. package/src/lib/app-utils/attribution-attribute.d.ts +34 -0
  65. package/src/lib/app-utils/attribution-attribute.js +34 -0
  66. package/src/lib/app-utils/attribution-attribute.js.map +1 -0
  67. package/src/lib/app-utils/attribution-guard.d.ts +130 -0
  68. package/src/lib/app-utils/attribution-guard.js +410 -0
  69. package/src/lib/app-utils/attribution-guard.js.map +1 -0
  70. package/src/lib/app-utils/author-css.d.ts +123 -0
  71. package/src/lib/app-utils/author-css.js +275 -0
  72. package/src/lib/app-utils/author-css.js.map +1 -0
  73. package/src/lib/app-utils/author-html-markdown.d.ts +31 -0
  74. package/src/lib/app-utils/author-html-markdown.js +497 -0
  75. package/src/lib/app-utils/author-html-markdown.js.map +1 -0
  76. package/src/lib/app-utils/author-html.d.ts +135 -0
  77. package/src/lib/app-utils/author-html.js +1037 -0
  78. package/src/lib/app-utils/author-html.js.map +1 -0
  79. package/src/lib/app-utils/automation-placeholders.d.ts +72 -0
  80. package/src/lib/app-utils/automation-placeholders.js +207 -0
  81. package/src/lib/app-utils/automation-placeholders.js.map +1 -0
  82. package/src/lib/app-utils/bandwidth-cap.d.ts +183 -0
  83. package/src/lib/app-utils/bandwidth-cap.js +193 -0
  84. package/src/lib/app-utils/bandwidth-cap.js.map +1 -0
  85. package/src/lib/app-utils/binding-token-catalog.d.ts +82 -0
  86. package/src/lib/app-utils/binding-token-catalog.js +293 -0
  87. package/src/lib/app-utils/binding-token-catalog.js.map +1 -0
  88. package/src/lib/app-utils/binding-tokens.d.ts +157 -0
  89. package/src/lib/app-utils/binding-tokens.js +251 -0
  90. package/src/lib/app-utils/binding-tokens.js.map +1 -0
  91. package/src/lib/app-utils/breadcrumb-json-ld.d.ts +57 -0
  92. package/src/lib/app-utils/breadcrumb-json-ld.js +67 -0
  93. package/src/lib/app-utils/breadcrumb-json-ld.js.map +1 -0
  94. package/src/lib/app-utils/campaign-attribution.d.ts +117 -0
  95. package/src/lib/app-utils/campaign-attribution.js +162 -0
  96. package/src/lib/app-utils/campaign-attribution.js.map +1 -0
  97. package/src/lib/app-utils/campaign-forwarding.d.ts +220 -0
  98. package/src/lib/app-utils/campaign-forwarding.js +332 -0
  99. package/src/lib/app-utils/campaign-forwarding.js.map +1 -0
  100. package/src/lib/app-utils/campaign-membership.d.ts +109 -0
  101. package/src/lib/app-utils/campaign-membership.js +176 -0
  102. package/src/lib/app-utils/campaign-membership.js.map +1 -0
  103. package/src/lib/app-utils/campaign-touch.d.ts +206 -0
  104. package/src/lib/app-utils/campaign-touch.js +326 -0
  105. package/src/lib/app-utils/campaign-touch.js.map +1 -0
  106. package/src/lib/app-utils/child-contract-compose.d.ts +28 -0
  107. package/src/lib/app-utils/child-contract-compose.js +140 -0
  108. package/src/lib/app-utils/child-contract-compose.js.map +1 -0
  109. package/src/lib/app-utils/child-contract.d.ts +129 -0
  110. package/src/lib/app-utils/child-contract.js +153 -0
  111. package/src/lib/app-utils/child-contract.js.map +1 -0
  112. package/src/lib/app-utils/collection-delete.d.ts +113 -0
  113. package/src/lib/app-utils/collection-delete.js +120 -0
  114. package/src/lib/app-utils/collection-delete.js.map +1 -0
  115. package/src/lib/app-utils/collection-entries.d.ts +833 -0
  116. package/src/lib/app-utils/collection-entries.js +1285 -0
  117. package/src/lib/app-utils/collection-entries.js.map +1 -0
  118. package/src/lib/app-utils/collection-entry-date.d.ts +129 -0
  119. package/src/lib/app-utils/collection-entry-date.js +183 -0
  120. package/src/lib/app-utils/collection-entry-date.js.map +1 -0
  121. package/src/lib/app-utils/collection-kind.d.ts +55 -0
  122. package/src/lib/app-utils/collection-kind.js +69 -0
  123. package/src/lib/app-utils/collection-kind.js.map +1 -0
  124. package/src/lib/app-utils/collection-slug.d.ts +79 -0
  125. package/src/lib/app-utils/collection-slug.js +70 -0
  126. package/src/lib/app-utils/collection-slug.js.map +1 -0
  127. package/src/lib/app-utils/compose-layout-nodes.d.ts +147 -0
  128. package/src/lib/app-utils/compose-layout-nodes.js +261 -0
  129. package/src/lib/app-utils/compose-layout-nodes.js.map +1 -0
  130. package/src/lib/app-utils/compose-layout-props.d.ts +71 -0
  131. package/src/lib/app-utils/compose-layout-props.js +61 -0
  132. package/src/lib/app-utils/compose-layout-props.js.map +1 -0
  133. package/src/lib/app-utils/compose-reusable-components.d.ts +504 -0
  134. package/src/lib/app-utils/compose-reusable-components.js +1366 -0
  135. package/src/lib/app-utils/compose-reusable-components.js.map +1 -0
  136. package/src/lib/app-utils/compress.d.ts +35 -0
  137. package/src/lib/app-utils/compress.js +38 -0
  138. package/src/lib/app-utils/compress.js.map +1 -0
  139. package/src/lib/app-utils/consent-banner-ui.d.ts +226 -0
  140. package/src/lib/app-utils/consent-banner-ui.js +583 -0
  141. package/src/lib/app-utils/consent-banner-ui.js.map +1 -0
  142. package/src/lib/app-utils/consent-groups.d.ts +189 -0
  143. package/src/lib/app-utils/consent-groups.js +219 -0
  144. package/src/lib/app-utils/consent-groups.js.map +1 -0
  145. package/src/lib/app-utils/consent-preferences-dialog.d.ts +58 -0
  146. package/src/lib/app-utils/consent-preferences-dialog.js +106 -0
  147. package/src/lib/app-utils/consent-preferences-dialog.js.map +1 -0
  148. package/src/lib/app-utils/console-record-links.d.ts +163 -0
  149. package/src/lib/app-utils/console-record-links.js +178 -0
  150. package/src/lib/app-utils/console-record-links.js.map +1 -0
  151. package/src/lib/app-utils/console-routes.d.ts +658 -0
  152. package/src/lib/app-utils/console-routes.js +489 -0
  153. package/src/lib/app-utils/console-routes.js.map +1 -0
  154. package/src/lib/app-utils/console-widget-slot-context.d.ts +46 -0
  155. package/src/lib/app-utils/console-widget-slot-context.js +23 -0
  156. package/src/lib/app-utils/console-widget-slot-context.js.map +1 -0
  157. package/src/lib/app-utils/contact-custom-fields.d.ts +191 -0
  158. package/src/lib/app-utils/contact-custom-fields.js +349 -0
  159. package/src/lib/app-utils/contact-custom-fields.js.map +1 -0
  160. package/src/lib/app-utils/contact-holder.d.ts +52 -0
  161. package/src/lib/app-utils/contact-holder.js +98 -0
  162. package/src/lib/app-utils/contact-holder.js.map +1 -0
  163. package/src/lib/app-utils/contact-merge.d.ts +136 -0
  164. package/src/lib/app-utils/contact-merge.js +379 -0
  165. package/src/lib/app-utils/contact-merge.js.map +1 -0
  166. package/src/lib/app-utils/contacts.d.ts +554 -0
  167. package/src/lib/app-utils/contacts.js +401 -0
  168. package/src/lib/app-utils/contacts.js.map +1 -0
  169. package/src/lib/app-utils/content-author-profile.d.ts +68 -0
  170. package/src/lib/app-utils/content-author-profile.js +118 -0
  171. package/src/lib/app-utils/content-author-profile.js.map +1 -0
  172. package/src/lib/app-utils/content-authors.d.ts +662 -0
  173. package/src/lib/app-utils/content-authors.js +771 -0
  174. package/src/lib/app-utils/content-authors.js.map +1 -0
  175. package/src/lib/app-utils/content-schema-type.d.ts +81 -0
  176. package/src/lib/app-utils/content-schema-type.js +87 -0
  177. package/src/lib/app-utils/content-schema-type.js.map +1 -0
  178. package/src/lib/app-utils/contexts.d.ts +35 -0
  179. package/src/lib/app-utils/contexts.js +35 -0
  180. package/src/lib/app-utils/contexts.js.map +1 -0
  181. package/src/lib/app-utils/create-resource-uid.d.ts +18 -0
  182. package/src/lib/app-utils/create-resource-uid.js +23 -0
  183. package/src/lib/app-utils/create-resource-uid.js.map +1 -0
  184. package/src/lib/app-utils/crm-booking.d.ts +75 -0
  185. package/src/lib/app-utils/crm-booking.js +133 -0
  186. package/src/lib/app-utils/crm-booking.js.map +1 -0
  187. package/src/lib/app-utils/crm-csv.d.ts +232 -0
  188. package/src/lib/app-utils/crm-csv.js +432 -0
  189. package/src/lib/app-utils/crm-csv.js.map +1 -0
  190. package/src/lib/app-utils/crm-digest.d.ts +179 -0
  191. package/src/lib/app-utils/crm-digest.js +271 -0
  192. package/src/lib/app-utils/crm-digest.js.map +1 -0
  193. package/src/lib/app-utils/crm-email-templates.d.ts +172 -0
  194. package/src/lib/app-utils/crm-email-templates.js +382 -0
  195. package/src/lib/app-utils/crm-email-templates.js.map +1 -0
  196. package/src/lib/app-utils/crm-inbound.d.ts +245 -0
  197. package/src/lib/app-utils/crm-inbound.js +407 -0
  198. package/src/lib/app-utils/crm-inbound.js.map +1 -0
  199. package/src/lib/app-utils/crm-kinds.d.ts +73 -0
  200. package/src/lib/app-utils/crm-kinds.js +92 -0
  201. package/src/lib/app-utils/crm-kinds.js.map +1 -0
  202. package/src/lib/app-utils/crm-next-activity.d.ts +107 -0
  203. package/src/lib/app-utils/crm-next-activity.js +140 -0
  204. package/src/lib/app-utils/crm-next-activity.js.map +1 -0
  205. package/src/lib/app-utils/crm-reports.d.ts +479 -0
  206. package/src/lib/app-utils/crm-reports.js +680 -0
  207. package/src/lib/app-utils/crm-reports.js.map +1 -0
  208. package/src/lib/app-utils/crm-task-reminders.d.ts +129 -0
  209. package/src/lib/app-utils/crm-task-reminders.js +139 -0
  210. package/src/lib/app-utils/crm-task-reminders.js.map +1 -0
  211. package/src/lib/app-utils/crm.d.ts +1546 -0
  212. package/src/lib/app-utils/crm.js +1814 -0
  213. package/src/lib/app-utils/crm.js.map +1 -0
  214. package/src/lib/app-utils/csp-report.d.ts +84 -0
  215. package/src/lib/app-utils/csp-report.js +177 -0
  216. package/src/lib/app-utils/csp-report.js.map +1 -0
  217. package/src/lib/app-utils/csv-import.d.ts +192 -0
  218. package/src/lib/app-utils/csv-import.js +279 -0
  219. package/src/lib/app-utils/csv-import.js.map +1 -0
  220. package/src/lib/app-utils/dataset-csv.d.ts +109 -0
  221. package/src/lib/app-utils/dataset-csv.js +235 -0
  222. package/src/lib/app-utils/dataset-csv.js.map +1 -0
  223. package/src/lib/app-utils/dataset-models.d.ts +194 -0
  224. package/src/lib/app-utils/dataset-models.js +409 -0
  225. package/src/lib/app-utils/dataset-models.js.map +1 -0
  226. package/src/lib/app-utils/dataset-query.d.ts +57 -0
  227. package/src/lib/app-utils/dataset-query.js +126 -0
  228. package/src/lib/app-utils/dataset-query.js.map +1 -0
  229. package/src/lib/app-utils/datasets.d.ts +136 -0
  230. package/src/lib/app-utils/datasets.js +177 -0
  231. package/src/lib/app-utils/datasets.js.map +1 -0
  232. package/src/lib/app-utils/decompress.d.ts +36 -0
  233. package/src/lib/app-utils/decompress.js +32 -0
  234. package/src/lib/app-utils/decompress.js.map +1 -0
  235. package/src/lib/app-utils/dedicated-sending-domain.d.ts +47 -0
  236. package/src/lib/app-utils/dedicated-sending-domain.js +114 -0
  237. package/src/lib/app-utils/dedicated-sending-domain.js.map +1 -0
  238. package/src/lib/app-utils/deferred-image.d.ts +86 -0
  239. package/src/lib/app-utils/deferred-image.js +83 -0
  240. package/src/lib/app-utils/deferred-image.js.map +1 -0
  241. package/src/lib/app-utils/definition-canvas-tree.d.ts +61 -0
  242. package/src/lib/app-utils/definition-canvas-tree.js +126 -0
  243. package/src/lib/app-utils/definition-canvas-tree.js.map +1 -0
  244. package/src/lib/app-utils/deployment-shape.d.ts +167 -0
  245. package/src/lib/app-utils/deployment-shape.js +238 -0
  246. package/src/lib/app-utils/deployment-shape.js.map +1 -0
  247. package/src/lib/app-utils/detect-template-placeholders.d.ts +30 -0
  248. package/src/lib/app-utils/detect-template-placeholders.js +53 -0
  249. package/src/lib/app-utils/detect-template-placeholders.js.map +1 -0
  250. package/src/lib/app-utils/dmca-counter-notice.d.ts +185 -0
  251. package/src/lib/app-utils/dmca-counter-notice.js +277 -0
  252. package/src/lib/app-utils/dmca-counter-notice.js.map +1 -0
  253. package/src/lib/app-utils/docs-deflection.d.ts +156 -0
  254. package/src/lib/app-utils/docs-deflection.js +547 -0
  255. package/src/lib/app-utils/docs-deflection.js.map +1 -0
  256. package/src/lib/app-utils/docs-help.d.ts +57 -0
  257. package/src/lib/app-utils/docs-help.generated.d.ts +303 -0
  258. package/src/lib/app-utils/docs-help.generated.js +867 -0
  259. package/src/lib/app-utils/docs-help.generated.js.map +1 -0
  260. package/src/lib/app-utils/docs-help.js +46 -0
  261. package/src/lib/app-utils/docs-help.js.map +1 -0
  262. package/src/lib/app-utils/docs-index.generated.d.ts +29 -0
  263. package/src/lib/app-utils/docs-index.generated.js +8388 -0
  264. package/src/lib/app-utils/docs-index.generated.js.map +1 -0
  265. package/src/lib/app-utils/docs-retrieval.d.ts +67 -0
  266. package/src/lib/app-utils/docs-retrieval.js +188 -0
  267. package/src/lib/app-utils/docs-retrieval.js.map +1 -0
  268. package/src/lib/app-utils/document-landmark.d.ts +50 -0
  269. package/src/lib/app-utils/document-landmark.js +100 -0
  270. package/src/lib/app-utils/document-landmark.js.map +1 -0
  271. package/src/lib/app-utils/duplicate-resource.d.ts +101 -0
  272. package/src/lib/app-utils/duplicate-resource.js +206 -0
  273. package/src/lib/app-utils/duplicate-resource.js.map +1 -0
  274. package/src/lib/app-utils/dynamic-list-rule.d.ts +471 -0
  275. package/src/lib/app-utils/dynamic-list-rule.js +914 -0
  276. package/src/lib/app-utils/dynamic-list-rule.js.map +1 -0
  277. package/src/lib/app-utils/element-animation.d.ts +200 -0
  278. package/src/lib/app-utils/element-animation.js +233 -0
  279. package/src/lib/app-utils/element-animation.js.map +1 -0
  280. package/src/lib/app-utils/element-hidden-style.d.ts +46 -0
  281. package/src/lib/app-utils/element-hidden-style.js +48 -0
  282. package/src/lib/app-utils/element-hidden-style.js.map +1 -0
  283. package/src/lib/app-utils/element-ui.d.ts +243 -0
  284. package/src/lib/app-utils/element-ui.js +459 -0
  285. package/src/lib/app-utils/element-ui.js.map +1 -0
  286. package/src/lib/app-utils/email-starter-policy.d.ts +160 -0
  287. package/src/lib/app-utils/email-starter-policy.js +327 -0
  288. package/src/lib/app-utils/email-starter-policy.js.map +1 -0
  289. package/src/lib/app-utils/email-topics.d.ts +310 -0
  290. package/src/lib/app-utils/email-topics.js +336 -0
  291. package/src/lib/app-utils/email-topics.js.map +1 -0
  292. package/src/lib/app-utils/enabled-plugins-context.d.ts +100 -0
  293. package/src/lib/app-utils/enabled-plugins-context.js +113 -0
  294. package/src/lib/app-utils/enabled-plugins-context.js.map +1 -0
  295. package/src/lib/app-utils/ensure-canvas-root.d.ts +38 -0
  296. package/src/lib/app-utils/ensure-canvas-root.js +61 -0
  297. package/src/lib/app-utils/ensure-canvas-root.js.map +1 -0
  298. package/src/lib/app-utils/entity-picker-context.d.ts +199 -0
  299. package/src/lib/app-utils/entity-picker-context.js +93 -0
  300. package/src/lib/app-utils/entity-picker-context.js.map +1 -0
  301. package/src/lib/app-utils/error-beacon.d.ts +107 -0
  302. package/src/lib/app-utils/error-beacon.js +296 -0
  303. package/src/lib/app-utils/error-beacon.js.map +1 -0
  304. package/src/lib/app-utils/expand-repeatables.d.ts +172 -0
  305. package/src/lib/app-utils/expand-repeatables.js +299 -0
  306. package/src/lib/app-utils/expand-repeatables.js.map +1 -0
  307. package/src/lib/app-utils/foreign-script.d.ts +82 -0
  308. package/src/lib/app-utils/foreign-script.js +102 -0
  309. package/src/lib/app-utils/foreign-script.js.map +1 -0
  310. package/src/lib/app-utils/form-abuse-ceiling.d.ts +146 -0
  311. package/src/lib/app-utils/form-abuse-ceiling.js +158 -0
  312. package/src/lib/app-utils/form-abuse-ceiling.js.map +1 -0
  313. package/src/lib/app-utils/form-contract.d.ts +198 -0
  314. package/src/lib/app-utils/form-contract.js +282 -0
  315. package/src/lib/app-utils/form-contract.js.map +1 -0
  316. package/src/lib/app-utils/form-dataset-binding.d.ts +50 -0
  317. package/src/lib/app-utils/form-dataset-binding.js +74 -0
  318. package/src/lib/app-utils/form-dataset-binding.js.map +1 -0
  319. package/src/lib/app-utils/forms.d.ts +727 -0
  320. package/src/lib/app-utils/forms.js +777 -0
  321. package/src/lib/app-utils/forms.js.map +1 -0
  322. package/src/lib/app-utils/functions.d.ts +188 -0
  323. package/src/lib/app-utils/functions.js +529 -0
  324. package/src/lib/app-utils/functions.js.map +1 -0
  325. package/src/lib/app-utils/guarded-version-save.d.ts +91 -0
  326. package/src/lib/app-utils/guarded-version-save.js +131 -0
  327. package/src/lib/app-utils/guarded-version-save.js.map +1 -0
  328. package/src/lib/app-utils/health-report.d.ts +1766 -0
  329. package/src/lib/app-utils/health-report.js +2072 -0
  330. package/src/lib/app-utils/health-report.js.map +1 -0
  331. package/src/lib/app-utils/host-naming.d.ts +135 -0
  332. package/src/lib/app-utils/host-naming.js +188 -0
  333. package/src/lib/app-utils/host-naming.js.map +1 -0
  334. package/src/lib/app-utils/host-permissions.d.ts +76 -0
  335. package/src/lib/app-utils/host-permissions.js +119 -0
  336. package/src/lib/app-utils/host-permissions.js.map +1 -0
  337. package/src/lib/app-utils/host-tokens.d.ts +228 -0
  338. package/src/lib/app-utils/host-tokens.js +304 -0
  339. package/src/lib/app-utils/host-tokens.js.map +1 -0
  340. package/src/lib/app-utils/idp-profile.d.ts +83 -0
  341. package/src/lib/app-utils/idp-profile.js +268 -0
  342. package/src/lib/app-utils/idp-profile.js.map +1 -0
  343. package/src/lib/app-utils/image-upload-types.d.ts +49 -0
  344. package/src/lib/app-utils/image-upload-types.js +86 -0
  345. package/src/lib/app-utils/image-upload-types.js.map +1 -0
  346. package/src/lib/app-utils/index.d.ts +18 -0
  347. package/src/lib/app-utils/index.js +23 -0
  348. package/src/lib/app-utils/index.js.map +1 -0
  349. package/src/lib/app-utils/internal-traffic.d.ts +197 -0
  350. package/src/lib/app-utils/internal-traffic.js +288 -0
  351. package/src/lib/app-utils/internal-traffic.js.map +1 -0
  352. package/src/lib/app-utils/lineal-order.d.ts +62 -0
  353. package/src/lib/app-utils/lineal-order.js +65 -0
  354. package/src/lib/app-utils/lineal-order.js.map +1 -0
  355. package/src/lib/app-utils/link-references.d.ts +36 -0
  356. package/src/lib/app-utils/link-references.js +89 -0
  357. package/src/lib/app-utils/link-references.js.map +1 -0
  358. package/src/lib/app-utils/link-target-search-context.d.ts +123 -0
  359. package/src/lib/app-utils/link-target-search-context.js +221 -0
  360. package/src/lib/app-utils/link-target-search-context.js.map +1 -0
  361. package/src/lib/app-utils/list-assignment-policy.d.ts +169 -0
  362. package/src/lib/app-utils/list-assignment-policy.js +170 -0
  363. package/src/lib/app-utils/list-assignment-policy.js.map +1 -0
  364. package/src/lib/app-utils/list-import.d.ts +158 -0
  365. package/src/lib/app-utils/list-import.js +332 -0
  366. package/src/lib/app-utils/list-import.js.map +1 -0
  367. package/src/lib/app-utils/llms-txt.d.ts +104 -0
  368. package/src/lib/app-utils/llms-txt.js +144 -0
  369. package/src/lib/app-utils/llms-txt.js.map +1 -0
  370. package/src/lib/app-utils/local-storage-budget.d.ts +75 -0
  371. package/src/lib/app-utils/local-storage-budget.js +153 -0
  372. package/src/lib/app-utils/local-storage-budget.js.map +1 -0
  373. package/src/lib/app-utils/lockdown.d.ts +698 -0
  374. package/src/lib/app-utils/lockdown.js +929 -0
  375. package/src/lib/app-utils/lockdown.js.map +1 -0
  376. package/src/lib/app-utils/margin-utilization.d.ts +267 -0
  377. package/src/lib/app-utils/margin-utilization.js +351 -0
  378. package/src/lib/app-utils/margin-utilization.js.map +1 -0
  379. package/src/lib/app-utils/markdown-lite.d.ts +297 -0
  380. package/src/lib/app-utils/markdown-lite.js +705 -0
  381. package/src/lib/app-utils/markdown-lite.js.map +1 -0
  382. package/src/lib/app-utils/marketing-consent.d.ts +704 -0
  383. package/src/lib/app-utils/marketing-consent.js +783 -0
  384. package/src/lib/app-utils/marketing-consent.js.map +1 -0
  385. package/src/lib/app-utils/marketplace-listing-visibility.d.ts +120 -0
  386. package/src/lib/app-utils/marketplace-listing-visibility.js +139 -0
  387. package/src/lib/app-utils/marketplace-listing-visibility.js.map +1 -0
  388. package/src/lib/app-utils/marketplace-overrides.d.ts +271 -0
  389. package/src/lib/app-utils/marketplace-overrides.js +462 -0
  390. package/src/lib/app-utils/marketplace-overrides.js.map +1 -0
  391. package/src/lib/app-utils/marketplace-provenance.d.ts +150 -0
  392. package/src/lib/app-utils/marketplace-provenance.js +136 -0
  393. package/src/lib/app-utils/marketplace-provenance.js.map +1 -0
  394. package/src/lib/app-utils/marketplace-theme.d.ts +237 -0
  395. package/src/lib/app-utils/marketplace-theme.js +525 -0
  396. package/src/lib/app-utils/marketplace-theme.js.map +1 -0
  397. package/src/lib/app-utils/marketplace-update-state.d.ts +119 -0
  398. package/src/lib/app-utils/marketplace-update-state.js +132 -0
  399. package/src/lib/app-utils/marketplace-update-state.js.map +1 -0
  400. package/src/lib/app-utils/marketplace-verification.d.ts +95 -0
  401. package/src/lib/app-utils/marketplace-verification.js +81 -0
  402. package/src/lib/app-utils/marketplace-verification.js.map +1 -0
  403. package/src/lib/app-utils/measure-node-map.d.ts +76 -0
  404. package/src/lib/app-utils/measure-node-map.js +111 -0
  405. package/src/lib/app-utils/measure-node-map.js.map +1 -0
  406. package/src/lib/app-utils/media-alt.d.ts +55 -0
  407. package/src/lib/app-utils/media-alt.js +58 -0
  408. package/src/lib/app-utils/media-alt.js.map +1 -0
  409. package/src/lib/app-utils/media-asset-facts.d.ts +125 -0
  410. package/src/lib/app-utils/media-asset-facts.js +467 -0
  411. package/src/lib/app-utils/media-asset-facts.js.map +1 -0
  412. package/src/lib/app-utils/media-cdn-scope.d.ts +65 -0
  413. package/src/lib/app-utils/media-cdn-scope.js +75 -0
  414. package/src/lib/app-utils/media-cdn-scope.js.map +1 -0
  415. package/src/lib/app-utils/media-folders.d.ts +161 -0
  416. package/src/lib/app-utils/media-folders.js +230 -0
  417. package/src/lib/app-utils/media-folders.js.map +1 -0
  418. package/src/lib/app-utils/media-metadata.d.ts +277 -0
  419. package/src/lib/app-utils/media-metadata.js +388 -0
  420. package/src/lib/app-utils/media-metadata.js.map +1 -0
  421. package/src/lib/app-utils/media-picker-context.d.ts +93 -0
  422. package/src/lib/app-utils/media-picker-context.js +26 -0
  423. package/src/lib/app-utils/media-picker-context.js.map +1 -0
  424. package/src/lib/app-utils/media-quarantine.d.ts +247 -0
  425. package/src/lib/app-utils/media-quarantine.js +323 -0
  426. package/src/lib/app-utils/media-quarantine.js.map +1 -0
  427. package/src/lib/app-utils/media-ref.d.ts +661 -0
  428. package/src/lib/app-utils/media-ref.js +1055 -0
  429. package/src/lib/app-utils/media-ref.js.map +1 -0
  430. package/src/lib/app-utils/media-takedown-reach.d.ts +126 -0
  431. package/src/lib/app-utils/media-takedown-reach.js +143 -0
  432. package/src/lib/app-utils/media-takedown-reach.js.map +1 -0
  433. package/src/lib/app-utils/member-email-aliases.d.ts +180 -0
  434. package/src/lib/app-utils/member-email-aliases.js +217 -0
  435. package/src/lib/app-utils/member-email-aliases.js.map +1 -0
  436. package/src/lib/app-utils/merge-node-sx.d.ts +47 -0
  437. package/src/lib/app-utils/merge-node-sx.js +123 -0
  438. package/src/lib/app-utils/merge-node-sx.js.map +1 -0
  439. package/src/lib/app-utils/name-match.d.ts +155 -0
  440. package/src/lib/app-utils/name-match.js +175 -0
  441. package/src/lib/app-utils/name-match.js.map +1 -0
  442. package/src/lib/app-utils/name-search.d.ts +117 -0
  443. package/src/lib/app-utils/name-search.js +145 -0
  444. package/src/lib/app-utils/name-search.js.map +1 -0
  445. package/src/lib/app-utils/node-capabilities.d.ts +85 -0
  446. package/src/lib/app-utils/node-capabilities.js +88 -0
  447. package/src/lib/app-utils/node-capabilities.js.map +1 -0
  448. package/src/lib/app-utils/node-definition-sanitizer.d.ts +164 -0
  449. package/src/lib/app-utils/node-definition-sanitizer.js +402 -0
  450. package/src/lib/app-utils/node-definition-sanitizer.js.map +1 -0
  451. package/src/lib/app-utils/node-identity.d.ts +47 -0
  452. package/src/lib/app-utils/node-identity.js +50 -0
  453. package/src/lib/app-utils/node-identity.js.map +1 -0
  454. package/src/lib/app-utils/node-interactions.d.ts +102 -0
  455. package/src/lib/app-utils/node-interactions.js +192 -0
  456. package/src/lib/app-utils/node-interactions.js.map +1 -0
  457. package/src/lib/app-utils/node-url-policy.d.ts +54 -0
  458. package/src/lib/app-utils/node-url-policy.js +72 -0
  459. package/src/lib/app-utils/node-url-policy.js.map +1 -0
  460. package/src/lib/app-utils/notifications.d.ts +71 -0
  461. package/src/lib/app-utils/notifications.js +101 -0
  462. package/src/lib/app-utils/notifications.js.map +1 -0
  463. package/src/lib/app-utils/onboarding-deep-link.d.ts +120 -0
  464. package/src/lib/app-utils/onboarding-deep-link.js +142 -0
  465. package/src/lib/app-utils/onboarding-deep-link.js.map +1 -0
  466. package/src/lib/app-utils/operator-identity.d.ts +207 -0
  467. package/src/lib/app-utils/operator-identity.js +186 -0
  468. package/src/lib/app-utils/operator-identity.js.map +1 -0
  469. package/src/lib/app-utils/org-billing-doc.d.ts +231 -0
  470. package/src/lib/app-utils/org-billing-doc.js +238 -0
  471. package/src/lib/app-utils/org-billing-doc.js.map +1 -0
  472. package/src/lib/app-utils/org-override-reason.d.ts +100 -0
  473. package/src/lib/app-utils/org-override-reason.js +116 -0
  474. package/src/lib/app-utils/org-override-reason.js.map +1 -0
  475. package/src/lib/app-utils/org-permissions.d.ts +194 -0
  476. package/src/lib/app-utils/org-permissions.js +357 -0
  477. package/src/lib/app-utils/org-permissions.js.map +1 -0
  478. package/src/lib/app-utils/org-roles.d.ts +72 -0
  479. package/src/lib/app-utils/org-roles.js +131 -0
  480. package/src/lib/app-utils/org-roles.js.map +1 -0
  481. package/src/lib/app-utils/organizations.d.ts +407 -0
  482. package/src/lib/app-utils/organizations.js +511 -0
  483. package/src/lib/app-utils/organizations.js.map +1 -0
  484. package/src/lib/app-utils/page-header-actions-context.d.ts +83 -0
  485. package/src/lib/app-utils/page-header-actions-context.js +58 -0
  486. package/src/lib/app-utils/page-header-actions-context.js.map +1 -0
  487. package/src/lib/app-utils/page-header-record-context.d.ts +80 -0
  488. package/src/lib/app-utils/page-header-record-context.js +64 -0
  489. package/src/lib/app-utils/page-header-record-context.js.map +1 -0
  490. package/src/lib/app-utils/page-markdown.d.ts +103 -0
  491. package/src/lib/app-utils/page-markdown.js +385 -0
  492. package/src/lib/app-utils/page-markdown.js.map +1 -0
  493. package/src/lib/app-utils/paid-media-source.d.ts +90 -0
  494. package/src/lib/app-utils/paid-media-source.js +184 -0
  495. package/src/lib/app-utils/paid-media-source.js.map +1 -0
  496. package/src/lib/app-utils/palette-sx.d.ts +34 -0
  497. package/src/lib/app-utils/palette-sx.js +150 -0
  498. package/src/lib/app-utils/palette-sx.js.map +1 -0
  499. package/src/lib/app-utils/password-policy.d.ts +47 -0
  500. package/src/lib/app-utils/password-policy.js +46 -0
  501. package/src/lib/app-utils/password-policy.js.map +1 -0
  502. package/src/lib/app-utils/payments-configured.d.ts +84 -0
  503. package/src/lib/app-utils/payments-configured.js +88 -0
  504. package/src/lib/app-utils/payments-configured.js.map +1 -0
  505. package/src/lib/app-utils/person-erasure.d.ts +126 -0
  506. package/src/lib/app-utils/person-erasure.js +121 -0
  507. package/src/lib/app-utils/person-erasure.js.map +1 -0
  508. package/src/lib/app-utils/person-key.d.ts +32 -0
  509. package/src/lib/app-utils/person-key.js +62 -0
  510. package/src/lib/app-utils/person-key.js.map +1 -0
  511. package/src/lib/app-utils/plan-entitlements.d.ts +2756 -0
  512. package/src/lib/app-utils/plan-entitlements.js +4085 -0
  513. package/src/lib/app-utils/plan-entitlements.js.map +1 -0
  514. package/src/lib/app-utils/platform-ad-conversions.d.ts +122 -0
  515. package/src/lib/app-utils/platform-ad-conversions.js +174 -0
  516. package/src/lib/app-utils/platform-ad-conversions.js.map +1 -0
  517. package/src/lib/app-utils/platform-advertising-tags.d.ts +139 -0
  518. package/src/lib/app-utils/platform-advertising-tags.js +203 -0
  519. package/src/lib/app-utils/platform-advertising-tags.js.map +1 -0
  520. package/src/lib/app-utils/platform-brand.d.ts +151 -0
  521. package/src/lib/app-utils/platform-brand.js +175 -0
  522. package/src/lib/app-utils/platform-brand.js.map +1 -0
  523. package/src/lib/app-utils/platform-consent-default.d.ts +142 -0
  524. package/src/lib/app-utils/platform-consent-default.js +295 -0
  525. package/src/lib/app-utils/platform-consent-default.js.map +1 -0
  526. package/src/lib/app-utils/platform-marketing-consent.d.ts +151 -0
  527. package/src/lib/app-utils/platform-marketing-consent.js +182 -0
  528. package/src/lib/app-utils/platform-marketing-consent.js.map +1 -0
  529. package/src/lib/app-utils/platform-marketing-host.d.ts +33 -0
  530. package/src/lib/app-utils/platform-marketing-host.js +97 -0
  531. package/src/lib/app-utils/platform-marketing-host.js.map +1 -0
  532. package/src/lib/app-utils/platform-visitor-consent.d.ts +252 -0
  533. package/src/lib/app-utils/platform-visitor-consent.js +533 -0
  534. package/src/lib/app-utils/platform-visitor-consent.js.map +1 -0
  535. package/src/lib/app-utils/plugin-api-cross-origin.d.ts +61 -0
  536. package/src/lib/app-utils/plugin-api-cross-origin.js +202 -0
  537. package/src/lib/app-utils/plugin-api-cross-origin.js.map +1 -0
  538. package/src/lib/app-utils/plugin-api-rate-limit.d.ts +192 -0
  539. package/src/lib/app-utils/plugin-api-rate-limit.js +270 -0
  540. package/src/lib/app-utils/plugin-api-rate-limit.js.map +1 -0
  541. package/src/lib/app-utils/plugin-artifact-path.d.ts +32 -0
  542. package/src/lib/app-utils/plugin-artifact-path.js +33 -0
  543. package/src/lib/app-utils/plugin-artifact-path.js.map +1 -0
  544. package/src/lib/app-utils/plugin-bundle-checks.d.ts +148 -0
  545. package/src/lib/app-utils/plugin-bundle-checks.js +989 -0
  546. package/src/lib/app-utils/plugin-bundle-checks.js.map +1 -0
  547. package/src/lib/app-utils/plugin-manifest.d.ts +516 -0
  548. package/src/lib/app-utils/plugin-manifest.js +687 -0
  549. package/src/lib/app-utils/plugin-manifest.js.map +1 -0
  550. package/src/lib/app-utils/published-legal-pages.d.ts +71 -0
  551. package/src/lib/app-utils/published-legal-pages.js +90 -0
  552. package/src/lib/app-utils/published-legal-pages.js.map +1 -0
  553. package/src/lib/app-utils/publisher-agreement.d.ts +254 -0
  554. package/src/lib/app-utils/publisher-agreement.js +274 -0
  555. package/src/lib/app-utils/publisher-agreement.js.map +1 -0
  556. package/src/lib/app-utils/publisher-attestation.d.ts +99 -0
  557. package/src/lib/app-utils/publisher-attestation.js +158 -0
  558. package/src/lib/app-utils/publisher-attestation.js.map +1 -0
  559. package/src/lib/app-utils/recipient-email-render.d.ts +216 -0
  560. package/src/lib/app-utils/recipient-email-render.js +221 -0
  561. package/src/lib/app-utils/recipient-email-render.js.map +1 -0
  562. package/src/lib/app-utils/redispatch-caught-error.d.ts +38 -0
  563. package/src/lib/app-utils/redispatch-caught-error.js +46 -0
  564. package/src/lib/app-utils/redispatch-caught-error.js.map +1 -0
  565. package/src/lib/app-utils/registering-plugin.d.ts +19 -0
  566. package/src/lib/app-utils/registering-plugin.js +38 -0
  567. package/src/lib/app-utils/registering-plugin.js.map +1 -0
  568. package/src/lib/app-utils/release-flags.d.ts +283 -0
  569. package/src/lib/app-utils/release-flags.js +518 -0
  570. package/src/lib/app-utils/release-flags.js.map +1 -0
  571. package/src/lib/app-utils/repair-canvas-nodes.d.ts +130 -0
  572. package/src/lib/app-utils/repair-canvas-nodes.js +298 -0
  573. package/src/lib/app-utils/repair-canvas-nodes.js.map +1 -0
  574. package/src/lib/app-utils/repeat-infringer.d.ts +166 -0
  575. package/src/lib/app-utils/repeat-infringer.js +188 -0
  576. package/src/lib/app-utils/repeat-infringer.js.map +1 -0
  577. package/src/lib/app-utils/repeat-sources.d.ts +115 -0
  578. package/src/lib/app-utils/repeat-sources.js +86 -0
  579. package/src/lib/app-utils/repeat-sources.js.map +1 -0
  580. package/src/lib/app-utils/request-geo.d.ts +114 -0
  581. package/src/lib/app-utils/request-geo.js +247 -0
  582. package/src/lib/app-utils/request-geo.js.map +1 -0
  583. package/src/lib/app-utils/request-ip.d.ts +213 -0
  584. package/src/lib/app-utils/request-ip.js +344 -0
  585. package/src/lib/app-utils/request-ip.js.map +1 -0
  586. package/src/lib/app-utils/resolve-named-tokens.d.ts +26 -0
  587. package/src/lib/app-utils/resolve-named-tokens.js +59 -0
  588. package/src/lib/app-utils/resolve-named-tokens.js.map +1 -0
  589. package/src/lib/app-utils/responsive-typography-sx.d.ts +77 -0
  590. package/src/lib/app-utils/responsive-typography-sx.js +122 -0
  591. package/src/lib/app-utils/responsive-typography-sx.js.map +1 -0
  592. package/src/lib/app-utils/reusable-component-keys.d.ts +135 -0
  593. package/src/lib/app-utils/reusable-component-keys.js +140 -0
  594. package/src/lib/app-utils/reusable-component-keys.js.map +1 -0
  595. package/src/lib/app-utils/reusable-prop-values.d.ts +199 -0
  596. package/src/lib/app-utils/reusable-prop-values.js +494 -0
  597. package/src/lib/app-utils/reusable-prop-values.js.map +1 -0
  598. package/src/lib/app-utils/safe-json-ld.d.ts +29 -0
  599. package/src/lib/app-utils/safe-json-ld.js +37 -0
  600. package/src/lib/app-utils/safe-json-ld.js.map +1 -0
  601. package/src/lib/app-utils/sanitize-svg.d.ts +55 -0
  602. package/src/lib/app-utils/sanitize-svg.js +460 -0
  603. package/src/lib/app-utils/sanitize-svg.js.map +1 -0
  604. package/src/lib/app-utils/scheme-sx.d.ts +84 -0
  605. package/src/lib/app-utils/scheme-sx.js +148 -0
  606. package/src/lib/app-utils/scheme-sx.js.map +1 -0
  607. package/src/lib/app-utils/scope-tokens.d.ts +249 -0
  608. package/src/lib/app-utils/scope-tokens.js +331 -0
  609. package/src/lib/app-utils/scope-tokens.js.map +1 -0
  610. package/src/lib/app-utils/screen-link-context-value.d.ts +57 -0
  611. package/src/lib/app-utils/screen-link-context-value.js +43 -0
  612. package/src/lib/app-utils/screen-link-context-value.js.map +1 -0
  613. package/src/lib/app-utils/screen-link-context.d.ts +185 -0
  614. package/src/lib/app-utils/screen-link-context.js +304 -0
  615. package/src/lib/app-utils/screen-link-context.js.map +1 -0
  616. package/src/lib/app-utils/screen-link-value.d.ts +269 -0
  617. package/src/lib/app-utils/screen-link-value.js +384 -0
  618. package/src/lib/app-utils/screen-link-value.js.map +1 -0
  619. package/src/lib/app-utils/screen-route.d.ts +669 -0
  620. package/src/lib/app-utils/screen-route.js +751 -0
  621. package/src/lib/app-utils/screen-route.js.map +1 -0
  622. package/src/lib/app-utils/screen-seo-fields.d.ts +37 -0
  623. package/src/lib/app-utils/screen-seo-fields.js +42 -0
  624. package/src/lib/app-utils/screen-seo-fields.js.map +1 -0
  625. package/src/lib/app-utils/search-indexing.d.ts +162 -0
  626. package/src/lib/app-utils/search-indexing.js +207 -0
  627. package/src/lib/app-utils/search-indexing.js.map +1 -0
  628. package/src/lib/app-utils/seo-listing-fields.d.ts +70 -0
  629. package/src/lib/app-utils/seo-listing-fields.js +75 -0
  630. package/src/lib/app-utils/seo-listing-fields.js.map +1 -0
  631. package/src/lib/app-utils/seo-locale.d.ts +119 -0
  632. package/src/lib/app-utils/seo-locale.js +133 -0
  633. package/src/lib/app-utils/seo-locale.js.map +1 -0
  634. package/src/lib/app-utils/seo-title-variables.d.ts +149 -0
  635. package/src/lib/app-utils/seo-title-variables.js +190 -0
  636. package/src/lib/app-utils/seo-title-variables.js.map +1 -0
  637. package/src/lib/app-utils/seo-title.d.ts +70 -0
  638. package/src/lib/app-utils/seo-title.js +117 -0
  639. package/src/lib/app-utils/seo-title.js.map +1 -0
  640. package/src/lib/app-utils/server.d.ts +174 -0
  641. package/src/lib/app-utils/server.js +314 -0
  642. package/src/lib/app-utils/server.js.map +1 -0
  643. package/src/lib/app-utils/site-context.d.ts +106 -0
  644. package/src/lib/app-utils/site-context.js +100 -0
  645. package/src/lib/app-utils/site-context.js.map +1 -0
  646. package/src/lib/app-utils/sitemap.d.ts +117 -0
  647. package/src/lib/app-utils/sitemap.js +183 -0
  648. package/src/lib/app-utils/sitemap.js.map +1 -0
  649. package/src/lib/app-utils/social-image.d.ts +112 -0
  650. package/src/lib/app-utils/social-image.js +191 -0
  651. package/src/lib/app-utils/social-image.js.map +1 -0
  652. package/src/lib/app-utils/starter-templates.d.ts +99 -0
  653. package/src/lib/app-utils/starter-templates.js +579 -0
  654. package/src/lib/app-utils/starter-templates.js.map +1 -0
  655. package/src/lib/app-utils/stored-nodes.d.ts +120 -0
  656. package/src/lib/app-utils/stored-nodes.js +174 -0
  657. package/src/lib/app-utils/stored-nodes.js.map +1 -0
  658. package/src/lib/app-utils/strip-undefined.d.ts +59 -0
  659. package/src/lib/app-utils/strip-undefined.js +95 -0
  660. package/src/lib/app-utils/strip-undefined.js.map +1 -0
  661. package/src/lib/app-utils/stripe-deployment-mode.d.ts +47 -0
  662. package/src/lib/app-utils/stripe-deployment-mode.js +70 -0
  663. package/src/lib/app-utils/stripe-deployment-mode.js.map +1 -0
  664. package/src/lib/app-utils/support-tiers.d.ts +108 -0
  665. package/src/lib/app-utils/support-tiers.js +201 -0
  666. package/src/lib/app-utils/support-tiers.js.map +1 -0
  667. package/src/lib/app-utils/timezone-geo-hint.d.ts +36 -0
  668. package/src/lib/app-utils/timezone-geo-hint.js +180 -0
  669. package/src/lib/app-utils/timezone-geo-hint.js.map +1 -0
  670. package/src/lib/app-utils/upload-cors.d.ts +155 -0
  671. package/src/lib/app-utils/upload-cors.js +254 -0
  672. package/src/lib/app-utils/upload-cors.js.map +1 -0
  673. package/src/lib/app-utils/upload-inspection.d.ts +159 -0
  674. package/src/lib/app-utils/upload-inspection.js +539 -0
  675. package/src/lib/app-utils/upload-inspection.js.map +1 -0
  676. package/src/lib/app-utils/url-slug.d.ts +40 -0
  677. package/src/lib/app-utils/url-slug.js +42 -0
  678. package/src/lib/app-utils/url-slug.js.map +1 -0
  679. package/src/lib/app-utils/usage-budget.d.ts +429 -0
  680. package/src/lib/app-utils/usage-budget.js +421 -0
  681. package/src/lib/app-utils/usage-budget.js.map +1 -0
  682. package/src/lib/app-utils/variables.d.ts +96 -0
  683. package/src/lib/app-utils/variables.js +233 -0
  684. package/src/lib/app-utils/variables.js.map +1 -0
  685. package/src/lib/app-utils/video-asset-facts.d.ts +61 -0
  686. package/src/lib/app-utils/video-asset-facts.js +70 -0
  687. package/src/lib/app-utils/video-asset-facts.js.map +1 -0
  688. package/src/lib/app-utils/video-object.d.ts +89 -0
  689. package/src/lib/app-utils/video-object.js +245 -0
  690. package/src/lib/app-utils/video-object.js.map +1 -0
  691. package/src/lib/app-utils/visitor-consent.d.ts +757 -0
  692. package/src/lib/app-utils/visitor-consent.js +981 -0
  693. package/src/lib/app-utils/visitor-consent.js.map +1 -0
  694. package/src/lib/app-utils/visitor-record-ceiling.d.ts +223 -0
  695. package/src/lib/app-utils/visitor-record-ceiling.js +215 -0
  696. package/src/lib/app-utils/visitor-record-ceiling.js.map +1 -0
  697. package/src/lib/app-utils/web-vitals-rum.d.ts +53 -0
  698. package/src/lib/app-utils/web-vitals-rum.js +278 -0
  699. package/src/lib/app-utils/web-vitals-rum.js.map +1 -0
  700. package/src/lib/app-utils/webhook-delivery.d.ts +324 -0
  701. package/src/lib/app-utils/webhook-delivery.js +413 -0
  702. package/src/lib/app-utils/webhook-delivery.js.map +1 -0
  703. package/src/lib/app-utils/where-used.d.ts +57 -0
  704. package/src/lib/app-utils/where-used.js +59 -0
  705. package/src/lib/app-utils/where-used.js.map +1 -0
  706. package/src/lib/app-utils/wistia-embed.d.ts +86 -0
  707. package/src/lib/app-utils/wistia-embed.js +119 -0
  708. package/src/lib/app-utils/wistia-embed.js.map +1 -0
  709. package/src/lib/app-utils/workflows.d.ts +136 -0
  710. package/src/lib/app-utils/workflows.js +346 -0
  711. package/src/lib/app-utils/workflows.js.map +1 -0
  712. package/src/lib/canvas-manager/canvas-manager-tree.d.ts +109 -0
  713. package/src/lib/canvas-manager/canvas-manager-tree.js +139 -0
  714. package/src/lib/canvas-manager/canvas-manager-tree.js.map +1 -0
  715. package/src/lib/canvas-manager/canvas-manager.d.ts +549 -0
  716. package/src/lib/canvas-manager/canvas-manager.js +1311 -0
  717. package/src/lib/canvas-manager/canvas-manager.js.map +1 -0
  718. package/src/lib/canvas-manager/index.d.ts +20 -0
  719. package/src/lib/canvas-manager/index.js +21 -0
  720. package/src/lib/canvas-manager/index.js.map +1 -0
  721. package/src/lib/canvas-manager/stores/index.d.ts +17 -0
  722. package/src/lib/canvas-manager/stores/index.js +18 -0
  723. package/src/lib/canvas-manager/stores/index.js.map +1 -0
  724. package/src/lib/canvas-manager/stores/node.store.d.ts +30 -0
  725. package/src/lib/canvas-manager/stores/node.store.js +45 -0
  726. package/src/lib/canvas-manager/stores/node.store.js.map +1 -0
  727. package/src/lib/components-manager/components-manager.d.ts +56 -0
  728. package/src/lib/components-manager/components-manager.js +191 -0
  729. package/src/lib/components-manager/components-manager.js.map +1 -0
  730. package/src/lib/components-manager/index.d.ts +18 -0
  731. package/src/lib/components-manager/index.js +19 -0
  732. package/src/lib/components-manager/index.js.map +1 -0
  733. package/src/lib/emit-manager/emit-manager.d.ts +56 -0
  734. package/src/lib/emit-manager/emit-manager.js +60 -0
  735. package/src/lib/emit-manager/emit-manager.js.map +1 -0
  736. package/src/lib/emit-manager/index.d.ts +18 -0
  737. package/src/lib/emit-manager/index.js +19 -0
  738. package/src/lib/emit-manager/index.js.map +1 -0
  739. package/src/lib/foundation/constants/_internal.d.ts +18 -0
  740. package/src/lib/foundation/constants/_internal.js +62 -0
  741. package/src/lib/foundation/constants/_internal.js.map +1 -0
  742. package/src/lib/foundation/constants/app.d.ts +23 -0
  743. package/src/lib/foundation/constants/app.js +25 -0
  744. package/src/lib/foundation/constants/app.js.map +1 -0
  745. package/src/lib/foundation/constants/canvas.d.ts +18 -0
  746. package/src/lib/foundation/constants/canvas.js +18 -0
  747. package/src/lib/foundation/constants/canvas.js.map +1 -0
  748. package/src/lib/foundation/constants/components.d.ts +54 -0
  749. package/src/lib/foundation/constants/components.js +61 -0
  750. package/src/lib/foundation/constants/components.js.map +1 -0
  751. package/src/lib/foundation/constants/shared.d.ts +50 -0
  752. package/src/lib/foundation/constants/shared.js +49 -0
  753. package/src/lib/foundation/constants/shared.js.map +1 -0
  754. package/src/lib/foundation/constants/symbol.d.ts +63 -0
  755. package/src/lib/foundation/constants/symbol.js +75 -0
  756. package/src/lib/foundation/constants/symbol.js.map +1 -0
  757. package/src/lib/foundation/definitions/components.types.d.ts +372 -0
  758. package/src/lib/foundation/definitions/components.types.js +180 -0
  759. package/src/lib/foundation/definitions/components.types.js.map +1 -0
  760. package/src/lib/foundation/definitions/contact.types.d.ts +73 -0
  761. package/src/lib/foundation/definitions/contact.types.js +107 -0
  762. package/src/lib/foundation/definitions/contact.types.js.map +1 -0
  763. package/src/lib/foundation/definitions/host-content-collections.d.ts +137 -0
  764. package/src/lib/foundation/definitions/host-content-collections.js +219 -0
  765. package/src/lib/foundation/definitions/host-content-collections.js.map +1 -0
  766. package/src/lib/foundation/definitions/org-billing.types.d.ts +1361 -0
  767. package/src/lib/foundation/definitions/org-billing.types.js +77 -0
  768. package/src/lib/foundation/definitions/org-billing.types.js.map +1 -0
  769. package/src/lib/foundation/definitions/organization.types.d.ts +307 -0
  770. package/src/lib/foundation/definitions/organization.types.js +42 -0
  771. package/src/lib/foundation/definitions/organization.types.js.map +1 -0
  772. package/src/lib/foundation/definitions/platform.types.d.ts +1326 -0
  773. package/src/lib/foundation/definitions/platform.types.js +124 -0
  774. package/src/lib/foundation/definitions/platform.types.js.map +1 -0
  775. package/src/lib/foundation/definitions/property-kinds.d.ts +189 -0
  776. package/src/lib/foundation/definitions/property-kinds.js +565 -0
  777. package/src/lib/foundation/definitions/property-kinds.js.map +1 -0
  778. package/src/lib/foundation/definitions/shared.d.ts +23 -0
  779. package/src/lib/foundation/definitions/shared.js +18 -0
  780. package/src/lib/foundation/definitions/shared.js.map +1 -0
  781. package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +249 -0
  782. package/src/lib/foundation/definitions/write-deny-coverage.util.js +499 -0
  783. package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -0
  784. package/src/lib/foundation/index.d.ts +32 -0
  785. package/src/lib/foundation/index.js +67 -0
  786. package/src/lib/foundation/index.js.map +1 -0
  787. package/src/lib/lifecycle.d.ts +24 -0
  788. package/src/lib/lifecycle.js +39 -0
  789. package/src/lib/lifecycle.js.map +1 -0
  790. package/src/lib/mst/common.d.ts +17 -0
  791. package/src/lib/mst/common.js +23 -0
  792. package/src/lib/mst/common.js.map +1 -0
  793. package/src/lib/mst/index.d.ts +19 -0
  794. package/src/lib/mst/index.js +20 -0
  795. package/src/lib/mst/index.js.map +1 -0
  796. package/src/lib/mst/json.d.ts +22 -0
  797. package/src/lib/mst/json.js +23 -0
  798. package/src/lib/mst/json.js.map +1 -0
  799. package/src/lib/mst/types.d.ts +20 -0
  800. package/src/lib/mst/types.js +18 -0
  801. package/src/lib/mst/types.js.map +1 -0
  802. package/src/lib/plugin-manager/billing-webhook-hooks.d.ts +77 -0
  803. package/src/lib/plugin-manager/billing-webhook-hooks.js +55 -0
  804. package/src/lib/plugin-manager/billing-webhook-hooks.js.map +1 -0
  805. package/src/lib/plugin-manager/commerce-zone-props.d.ts +172 -0
  806. package/src/lib/plugin-manager/commerce-zone-props.js +31 -0
  807. package/src/lib/plugin-manager/commerce-zone-props.js.map +1 -0
  808. package/src/lib/plugin-manager/custom-fields.d.ts +60 -0
  809. package/src/lib/plugin-manager/custom-fields.js +39 -0
  810. package/src/lib/plugin-manager/custom-fields.js.map +1 -0
  811. package/src/lib/plugin-manager/editor-sessions.d.ts +109 -0
  812. package/src/lib/plugin-manager/editor-sessions.js +137 -0
  813. package/src/lib/plugin-manager/editor-sessions.js.map +1 -0
  814. package/src/lib/plugin-manager/enabled-plugins.d.ts +438 -0
  815. package/src/lib/plugin-manager/enabled-plugins.js +403 -0
  816. package/src/lib/plugin-manager/enabled-plugins.js.map +1 -0
  817. package/src/lib/plugin-manager/feature-plugins.d.ts +1314 -0
  818. package/src/lib/plugin-manager/feature-plugins.js +609 -0
  819. package/src/lib/plugin-manager/feature-plugins.js.map +1 -0
  820. package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +11 -0
  821. package/src/lib/plugin-manager/first-party-plugins.generated.js +149 -0
  822. package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -0
  823. package/src/lib/plugin-manager/index.d.ts +42 -0
  824. package/src/lib/plugin-manager/index.js +46 -0
  825. package/src/lib/plugin-manager/index.js.map +1 -0
  826. package/src/lib/plugin-manager/install-presets.d.ts +93 -0
  827. package/src/lib/plugin-manager/install-presets.js +86 -0
  828. package/src/lib/plugin-manager/install-presets.js.map +1 -0
  829. package/src/lib/plugin-manager/media-delivery-provider.d.ts +124 -0
  830. package/src/lib/plugin-manager/media-delivery-provider.js +53 -0
  831. package/src/lib/plugin-manager/media-delivery-provider.js.map +1 -0
  832. package/src/lib/plugin-manager/order-fulfilment.d.ts +142 -0
  833. package/src/lib/plugin-manager/order-fulfilment.js +104 -0
  834. package/src/lib/plugin-manager/order-fulfilment.js.map +1 -0
  835. package/src/lib/plugin-manager/plugin-activity-actions.d.ts +122 -0
  836. package/src/lib/plugin-manager/plugin-activity-actions.js +140 -0
  837. package/src/lib/plugin-manager/plugin-activity-actions.js.map +1 -0
  838. package/src/lib/plugin-manager/plugin-bridge.d.ts +98 -0
  839. package/src/lib/plugin-manager/plugin-bridge.js +154 -0
  840. package/src/lib/plugin-manager/plugin-bridge.js.map +1 -0
  841. package/src/lib/plugin-manager/plugin-config.d.ts +148 -0
  842. package/src/lib/plugin-manager/plugin-config.js +228 -0
  843. package/src/lib/plugin-manager/plugin-config.js.map +1 -0
  844. package/src/lib/plugin-manager/plugin-console-crons.d.ts +139 -0
  845. package/src/lib/plugin-manager/plugin-console-crons.js +177 -0
  846. package/src/lib/plugin-manager/plugin-console-crons.js.map +1 -0
  847. package/src/lib/plugin-manager/plugin-contact-capture.d.ts +220 -0
  848. package/src/lib/plugin-manager/plugin-contact-capture.js +89 -0
  849. package/src/lib/plugin-manager/plugin-contact-capture.js.map +1 -0
  850. package/src/lib/plugin-manager/plugin-contributions.d.ts +244 -0
  851. package/src/lib/plugin-manager/plugin-contributions.js +283 -0
  852. package/src/lib/plugin-manager/plugin-contributions.js.map +1 -0
  853. package/src/lib/plugin-manager/plugin-entitlement-keys.d.ts +169 -0
  854. package/src/lib/plugin-manager/plugin-entitlement-keys.js +84 -0
  855. package/src/lib/plugin-manager/plugin-entitlement-keys.js.map +1 -0
  856. package/src/lib/plugin-manager/plugin-entitlements.d.ts +181 -0
  857. package/src/lib/plugin-manager/plugin-entitlements.js +188 -0
  858. package/src/lib/plugin-manager/plugin-entitlements.js.map +1 -0
  859. package/src/lib/plugin-manager/plugin-events.d.ts +145 -0
  860. package/src/lib/plugin-manager/plugin-events.js +79 -0
  861. package/src/lib/plugin-manager/plugin-events.js.map +1 -0
  862. package/src/lib/plugin-manager/plugin-figures.d.ts +251 -0
  863. package/src/lib/plugin-manager/plugin-figures.js +252 -0
  864. package/src/lib/plugin-manager/plugin-figures.js.map +1 -0
  865. package/src/lib/plugin-manager/plugin-host-collections.d.ts +146 -0
  866. package/src/lib/plugin-manager/plugin-host-collections.js +116 -0
  867. package/src/lib/plugin-manager/plugin-host-collections.js.map +1 -0
  868. package/src/lib/plugin-manager/plugin-jobs.d.ts +130 -0
  869. package/src/lib/plugin-manager/plugin-jobs.js +182 -0
  870. package/src/lib/plugin-manager/plugin-jobs.js.map +1 -0
  871. package/src/lib/plugin-manager/plugin-loader.d.ts +86 -0
  872. package/src/lib/plugin-manager/plugin-loader.js +223 -0
  873. package/src/lib/plugin-manager/plugin-loader.js.map +1 -0
  874. package/src/lib/plugin-manager/plugin-manager.d.ts +95 -0
  875. package/src/lib/plugin-manager/plugin-manager.js +343 -0
  876. package/src/lib/plugin-manager/plugin-manager.js.map +1 -0
  877. package/src/lib/plugin-manager/plugin-metered-lines.d.ts +97 -0
  878. package/src/lib/plugin-manager/plugin-metered-lines.js +123 -0
  879. package/src/lib/plugin-manager/plugin-metered-lines.js.map +1 -0
  880. package/src/lib/plugin-manager/plugin-org-erasure.d.ts +52 -0
  881. package/src/lib/plugin-manager/plugin-org-erasure.js +100 -0
  882. package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -0
  883. package/src/lib/plugin-manager/plugin-permissions.d.ts +69 -0
  884. package/src/lib/plugin-manager/plugin-permissions.js +77 -0
  885. package/src/lib/plugin-manager/plugin-permissions.js.map +1 -0
  886. package/src/lib/plugin-manager/plugin-person-erasure.d.ts +58 -0
  887. package/src/lib/plugin-manager/plugin-person-erasure.js +109 -0
  888. package/src/lib/plugin-manager/plugin-person-erasure.js.map +1 -0
  889. package/src/lib/plugin-manager/plugin-record-cards.d.ts +99 -0
  890. package/src/lib/plugin-manager/plugin-record-cards.js +59 -0
  891. package/src/lib/plugin-manager/plugin-record-cards.js.map +1 -0
  892. package/src/lib/plugin-manager/plugin-record-facts.d.ts +111 -0
  893. package/src/lib/plugin-manager/plugin-record-facts.js +51 -0
  894. package/src/lib/plugin-manager/plugin-record-facts.js.map +1 -0
  895. package/src/lib/plugin-manager/plugin-record-routes.d.ts +129 -0
  896. package/src/lib/plugin-manager/plugin-record-routes.js +93 -0
  897. package/src/lib/plugin-manager/plugin-record-routes.js.map +1 -0
  898. package/src/lib/plugin-manager/plugin-record-timeline.d.ts +147 -0
  899. package/src/lib/plugin-manager/plugin-record-timeline.js +39 -0
  900. package/src/lib/plugin-manager/plugin-record-timeline.js.map +1 -0
  901. package/src/lib/plugin-manager/plugin-resource-drafts.d.ts +137 -0
  902. package/src/lib/plugin-manager/plugin-resource-drafts.js +51 -0
  903. package/src/lib/plugin-manager/plugin-resource-drafts.js.map +1 -0
  904. package/src/lib/plugin-manager/plugin-services.d.ts +94 -0
  905. package/src/lib/plugin-manager/plugin-services.js +153 -0
  906. package/src/lib/plugin-manager/plugin-services.js.map +1 -0
  907. package/src/lib/plugin-manager/plugin-styles-ui.d.ts +71 -0
  908. package/src/lib/plugin-manager/plugin-styles-ui.js +80 -0
  909. package/src/lib/plugin-manager/plugin-styles-ui.js.map +1 -0
  910. package/src/lib/plugin-manager/plugin-styles.d.ts +176 -0
  911. package/src/lib/plugin-manager/plugin-styles.js +186 -0
  912. package/src/lib/plugin-manager/plugin-styles.js.map +1 -0
  913. package/src/lib/plugin-manager/plugin-subprocessors.d.ts +135 -0
  914. package/src/lib/plugin-manager/plugin-subprocessors.js +129 -0
  915. package/src/lib/plugin-manager/plugin-subprocessors.js.map +1 -0
  916. package/src/lib/plugin-manager/plugin-tax-profile.d.ts +84 -0
  917. package/src/lib/plugin-manager/plugin-tax-profile.js +39 -0
  918. package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -0
  919. package/src/lib/plugin-manager/plugin-user-erasure.d.ts +53 -0
  920. package/src/lib/plugin-manager/plugin-user-erasure.js +84 -0
  921. package/src/lib/plugin-manager/plugin-user-erasure.js.map +1 -0
  922. package/src/lib/plugin-manager/plugin-zones.d.ts +121 -0
  923. package/src/lib/plugin-manager/plugin-zones.js +74 -0
  924. package/src/lib/plugin-manager/plugin-zones.js.map +1 -0
  925. package/src/lib/plugin-manager/realm-plugins.d.ts +112 -0
  926. package/src/lib/plugin-manager/realm-plugins.js +196 -0
  927. package/src/lib/plugin-manager/realm-plugins.js.map +1 -0
  928. package/src/lib/plugin-manager/realm-server.d.ts +54 -0
  929. package/src/lib/plugin-manager/realm-server.js +88 -0
  930. package/src/lib/plugin-manager/realm-server.js.map +1 -0
  931. package/src/lib/plugin-manager/record-zone-props.d.ts +126 -0
  932. package/src/lib/plugin-manager/record-zone-props.js +31 -0
  933. package/src/lib/plugin-manager/record-zone-props.js.map +1 -0
  934. package/src/lib/plugin-manager/site-page-hooks.d.ts +102 -0
  935. package/src/lib/plugin-manager/site-page-hooks.js +114 -0
  936. package/src/lib/plugin-manager/site-page-hooks.js.map +1 -0
  937. package/src/lib/plugin-manager/site-runtime.d.ts +57 -0
  938. package/src/lib/plugin-manager/site-runtime.js +25 -0
  939. package/src/lib/plugin-manager/site-runtime.js.map +1 -0
  940. package/src/lib/plugin-manager/usage-alert-contributors.d.ts +115 -0
  941. package/src/lib/plugin-manager/usage-alert-contributors.js +106 -0
  942. package/src/lib/plugin-manager/usage-alert-contributors.js.map +1 -0
  943. package/src/lib/types/ast.d.ts +199 -0
  944. package/src/lib/types/ast.js +20 -0
  945. package/src/lib/types/ast.js.map +1 -0
  946. package/src/lib/types/index.d.ts +20 -0
  947. package/src/lib/types/index.js +21 -0
  948. package/src/lib/types/index.js.map +1 -0
  949. package/src/lib/types/nodes.d.ts +608 -0
  950. package/src/lib/types/nodes.js +28 -0
  951. package/src/lib/types/nodes.js.map +1 -0
  952. package/src/lib/types/routing.d.ts +17 -0
  953. package/src/lib/types/routing.js +18 -0
  954. package/src/lib/types/routing.js.map +1 -0
  955. package/src/lib/types/screen.d.ts +23 -0
  956. package/src/lib/types/screen.js +18 -0
  957. package/src/lib/types/screen.js.map +1 -0
  958. package/src/lib/utils.d.ts +25 -0
  959. package/src/lib/utils.js +42 -0
  960. package/src/lib/utils.js.map +1 -0
  961. package/src/server.d.ts +37 -0
  962. package/src/server.js +55 -0
  963. package/src/server.js.map +1 -0
@@ -0,0 +1,343 @@
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
+ */ import { _ as _extends } from "@swc/helpers/_/_extends";
17
+ import { makeAutoObservable } from "mobx";
18
+ import { lifecycleEvent } from "../lifecycle.js";
19
+ import { AglynEvent } from "../emit-manager/index.js";
20
+ export var PluginStatus = /*#__PURE__*/ function(PluginStatus) {
21
+ PluginStatus["WAITING"] = "waiting";
22
+ PluginStatus["LOADING"] = "loading";
23
+ PluginStatus["LOADED"] = "loaded";
24
+ PluginStatus["UNLOADING"] = "unloading";
25
+ return PluginStatus;
26
+ }({});
27
+ // export const plugins: Record<PluginId, Plugin> = {}
28
+ //
29
+ // export function getBundle(pluginId: PluginId) {
30
+ // return plugins[pluginId]
31
+ // }
32
+ //
33
+ // export function hasBundle(pluginId: PluginId) {
34
+ // return pluginId && _hasOwnProperty(pluginId, plugins)
35
+ // }
36
+ //
37
+ // export function registerBundle(schema: Plugin) {
38
+ // const { $id: pluginId } = schema
39
+ // lifecycleEvent(
40
+ // () => {
41
+ // addDependency(schema)
42
+ // plugins[pluginId] = schema
43
+ // // for (const preset of schema.presets || []) {
44
+ // // emitter.emit(AglynEvent.PRESET_REGISTER, { preset })
45
+ // // }
46
+ // },
47
+ // {
48
+ // beforeEvent: AglynEvent.PLUGIN_REGISTERING,
49
+ // beforePayload: [{ schema }],
50
+ // afterEvent: AglynEvent.PLUGIN_REGISTERED,
51
+ // afterPayload: [{ schema }],
52
+ // },
53
+ // )
54
+ // }
55
+ //
56
+ // export function unregisterBundle(pluginId: PluginId) {
57
+ // const bundle = plugins[pluginId]
58
+ // lifecycleEvent(
59
+ // () => {
60
+ // if (!bundle) throw new Error(`No bundle exists with $id ${pluginId}`)
61
+ //
62
+ // // for (const componentId of bundle.componentIds || []) {
63
+ // // emitter.emit(AglynEvent.COMPONENT_UNREGISTER, { componentId, pluginId })
64
+ // // }
65
+ // delete plugins[pluginId]
66
+ // },
67
+ // {
68
+ // beforeEvent: AglynEvent.PLUGIN_UNREGISTERING,
69
+ // beforePayload: [{ pluginId }],
70
+ // afterEvent: AglynEvent.PLUGIN_UNREGISTERED,
71
+ // afterPayload: [{ pluginId }],
72
+ // },
73
+ // )
74
+ // }
75
+ export class PluginManager {
76
+ getDependency(dependencyId) {
77
+ return this.dependencies[dependencyId];
78
+ }
79
+ getDependencyDependents(dependencyId) {
80
+ return this.dependencyDependentsById[dependencyId];
81
+ }
82
+ getDependencyStatus(dependencyId) {
83
+ return this.dependencyStatusById[dependencyId];
84
+ }
85
+ hasDependency(dependencyId) {
86
+ return Boolean(dependencyId && this.getDependency(dependencyId));
87
+ }
88
+ isDependencyWaiting(dependencyId) {
89
+ return this.getDependencyStatus(dependencyId) === "waiting";
90
+ }
91
+ isDependencyLoading(dependencyId) {
92
+ return this.getDependencyStatus(dependencyId) === "loading";
93
+ }
94
+ isDependencyLoaded(dependencyId) {
95
+ return this.getDependencyStatus(dependencyId) === "loaded";
96
+ }
97
+ isDependencyUnloading(dependencyId) {
98
+ return this.getDependencyStatus(dependencyId) === "unloading";
99
+ }
100
+ areAllDependenciesLoaded(dependentId) {
101
+ var _this_getDependency;
102
+ for (const dependencyId of Object.keys(((_this_getDependency = this.getDependency(dependentId)) == null ? void 0 : _this_getDependency.dependencies) || {})){
103
+ if (!this.isDependencyLoaded(dependencyId)) {
104
+ return false;
105
+ }
106
+ }
107
+ return true;
108
+ }
109
+ addDependency(dependency) {
110
+ lifecycleEvent(()=>{
111
+ this.handleAddingDependencyAndDependents(dependency);
112
+ }, {
113
+ beforeEvent: AglynEvent.PLUGIN_REGISTERING,
114
+ beforePayload: [
115
+ {
116
+ schema: dependency
117
+ }
118
+ ],
119
+ afterEvent: AglynEvent.PLUGIN_REGISTERED,
120
+ afterPayload: [
121
+ {
122
+ schema: dependency
123
+ }
124
+ ]
125
+ });
126
+ return;
127
+ }
128
+ addDependencies(dependencies) {
129
+ const _dependencies = Array.isArray(dependencies) ? dependencies : [];
130
+ for (const dependency of _dependencies){
131
+ this.addDependency(dependency);
132
+ }
133
+ }
134
+ destroyDependencies() {
135
+ const dependencyIds = Object.keys(this.dependencies);
136
+ for (const $id of dependencyIds){
137
+ this.removeDependency($id);
138
+ }
139
+ }
140
+ removeDependency($id) {
141
+ lifecycleEvent(()=>{
142
+ this.handleRemovingDependencyAndDependents($id);
143
+ }, {
144
+ beforeEvent: AglynEvent.PLUGIN_UNREGISTERING,
145
+ beforePayload: [
146
+ {
147
+ $id
148
+ }
149
+ ],
150
+ afterEvent: AglynEvent.PLUGIN_UNREGISTERED,
151
+ afterPayload: [
152
+ {
153
+ $id
154
+ }
155
+ ]
156
+ });
157
+ return;
158
+ }
159
+ loadDependency($id) {
160
+ return this.handleLoadingDependencyAndDependents($id);
161
+ }
162
+ unloadDependency($id) {
163
+ return this.handleUnloadingDependencyAndDependents($id);
164
+ }
165
+ getDependencyCopy(dependencyId) {
166
+ const dependency = this.getDependency(dependencyId);
167
+ return dependency ? _extends({}, dependency) : undefined;
168
+ }
169
+ /**
170
+ * Every registered dependency still parked in WAITING, paired with the
171
+ * dependencies it is waiting on that have not loaded (AGL-759).
172
+ *
173
+ * A bundle lands here when a dependency it declared never reached LOADED.
174
+ * With the reverse-dependency edge fixed, a bundle that registers before
175
+ * its dependency is recovered as soon as the dependency finishes — so the
176
+ * only thing left in this list once a batch has settled is a bundle whose
177
+ * dependency was never activated at all (a manifest/enablement gap). That
178
+ * used to present as an empty besigner drawer with no error: the bundle's
179
+ * components simply never registered. Callers report this at a settle
180
+ * point (the plugin loader, after an `ensure`) so the gap says so instead.
181
+ */ getStuckDependencies() {
182
+ const stuck = [];
183
+ for (const id of Object.keys(this.dependencyStatusById)){
184
+ var _this_getDependency;
185
+ if (!this.isDependencyWaiting(id)) continue;
186
+ const waitingOn = Object.keys(((_this_getDependency = this.getDependency(id)) == null ? void 0 : _this_getDependency.dependencies) || {}).filter((dependencyId)=>!this.isDependencyLoaded(dependencyId));
187
+ stuck.push({
188
+ id,
189
+ waitingOn
190
+ });
191
+ }
192
+ return stuck;
193
+ }
194
+ // ____ __________ _____ ____ _ ________
195
+ // / __ \/ ____/ __ \/ ___/ / __ \ | / /_ __/
196
+ // / / / / __/ / /_/ /\__ \ ______ / /_/ / | / / / /
197
+ // / /_/ / /___/ ____/___/ / /_____/ / ____/| |/ / / /
198
+ // /_____/_____/_/ /____/ /_/ |___/ /_/
199
+ // 👇
200
+ handleSettingDependencyProperties(dependencyId, dependency) {
201
+ var _this_dependencyDependentsById, _dependencyId;
202
+ this.dependencyStatusById[dependencyId] = "waiting";
203
+ (_this_dependencyDependentsById = this.dependencyDependentsById)[_dependencyId = dependencyId] || (_this_dependencyDependentsById[_dependencyId] = {});
204
+ this.dependencies[dependencyId] = dependency;
205
+ return;
206
+ }
207
+ handleSettingDependencyDependents(dependencyId) {
208
+ var _this_getDependency;
209
+ for (const dependentId of Object.keys(((_this_getDependency = this.getDependency(dependencyId)) == null ? void 0 : _this_getDependency.dependencies) || {})){
210
+ // Read the bucket back instead of using the value of `||= {}` (AGL-759).
211
+ // This class is `makeAutoObservable`, so assigning a plain `{}` stores an
212
+ // observable COPY of it — while `x ||= {}` evaluates to the plain object
213
+ // that was assigned, not the copy that was stored. Mutating that captured
214
+ // object wrote into something already detached from the manager.
215
+ //
216
+ // Only the FIRST dependent of any given dependency was lost, because
217
+ // every later one found the key present and short-circuited onto the real
218
+ // observable. In manifest order that made `bookings` — the first bundle
219
+ // depending on mui — permanently WAITING on every besigner, with no
220
+ // error: its components simply never registered and the drawer was short
221
+ // a category. `plugins.dependencyDependentsById` reads empty for that
222
+ // first edge, which is the fingerprint.
223
+ if (!this.dependencyDependentsById[dependentId]) {
224
+ this.dependencyDependentsById[dependentId] = {};
225
+ }
226
+ this.dependencyDependentsById[dependentId][dependencyId] = true;
227
+ }
228
+ return;
229
+ }
230
+ handleRemovingDependencyDependents(dependencyId) {
231
+ var _this_getDependency;
232
+ for (const dependentId of Object.keys(((_this_getDependency = this.getDependency(dependencyId)) == null ? void 0 : _this_getDependency.dependencies) || {})){
233
+ var _this_dependencyDependentsById_dependentId;
234
+ (_this_dependencyDependentsById_dependentId = this.dependencyDependentsById[dependentId]) == null ? true : delete _this_dependencyDependentsById_dependentId[dependencyId];
235
+ }
236
+ return;
237
+ }
238
+ handleRemovingDependencyProperties(dependencyId) {
239
+ delete this.dependencyDependentsById[dependencyId];
240
+ delete this.dependencyStatusById[dependencyId];
241
+ delete this.dependencies[dependencyId];
242
+ return;
243
+ }
244
+ handleLoadingDependencyDependents(dependencyId) {
245
+ for (const dependentId of Object.keys(this.getDependencyDependents(dependencyId) || {})){
246
+ if (!this.isDependencyLoaded(dependentId)) {
247
+ this.handleLoadingDependencyAndDependents(dependentId);
248
+ }
249
+ }
250
+ return;
251
+ }
252
+ handleLoadingDependency(dependencyId) {
253
+ if (this.isDependencyWaiting(dependencyId)) {
254
+ var _this_getDependency_load, _this_getDependency;
255
+ this.dependencyStatusById[dependencyId] = "loading";
256
+ (_this_getDependency = this.getDependency(dependencyId)) == null ? void 0 : (_this_getDependency_load = _this_getDependency.load) == null ? void 0 : _this_getDependency_load.call(_this_getDependency);
257
+ this.dependencyStatusById[dependencyId] = "loaded";
258
+ }
259
+ return;
260
+ }
261
+ handleUnloadingDependencyDependents(dependencyId) {
262
+ for (const dependentId of Object.keys(this.getDependencyDependents(dependencyId) || {})){
263
+ this.handleUnloadingDependencyAndDependents(dependentId);
264
+ }
265
+ return;
266
+ }
267
+ handleUnloadingDependency(dependencyId) {
268
+ if (this.isDependencyLoaded(dependencyId)) {
269
+ var _this_getDependency_destroy, _this_getDependency;
270
+ this.dependencyStatusById[dependencyId] = "unloading";
271
+ (_this_getDependency = this.getDependency(dependencyId)) == null ? void 0 : (_this_getDependency_destroy = _this_getDependency.destroy) == null ? void 0 : _this_getDependency_destroy.call(_this_getDependency);
272
+ this.dependencyStatusById[dependencyId] = "waiting";
273
+ }
274
+ return;
275
+ }
276
+ handleAddingDependencyAndDependents(dependency) {
277
+ if (!dependency) throw new Error('Invalid dependency');
278
+ const dependencyId = dependency.$id;
279
+ if (!dependencyId) throw new Error('Invalid dependencyId');
280
+ /**
281
+ * Set properties on local dependencies object
282
+ */ this.handleSettingDependencyProperties(dependencyId, dependency);
283
+ /**
284
+ * Set dependencies' dependent relationships
285
+ */ this.handleSettingDependencyDependents(dependencyId);
286
+ /**
287
+ * Load applicable dependencies
288
+ */ this.handleLoadingDependencyAndDependents(dependencyId);
289
+ return;
290
+ }
291
+ handleLoadingDependencyAndDependents(dependencyId) {
292
+ if (!this.hasDependency(dependencyId)) return;
293
+ /**
294
+ * Verify all dependencies are loaded
295
+ */ if (!this.areAllDependenciesLoaded(dependencyId)) return;
296
+ /**
297
+ * Load the self dependency
298
+ */ this.handleLoadingDependency(dependencyId);
299
+ /**
300
+ * Load waiting dependents
301
+ */ this.handleLoadingDependencyDependents(dependencyId);
302
+ return;
303
+ }
304
+ handleUnloadingDependencyAndDependents(dependencyId) {
305
+ if (!this.hasDependency(dependencyId)) return;
306
+ /**
307
+ * Unload all dependents of the dependency
308
+ */ this.handleUnloadingDependencyDependents(dependencyId);
309
+ /**
310
+ * Unload self dependency
311
+ */ this.handleUnloadingDependency(dependencyId);
312
+ return;
313
+ }
314
+ handleRemovingDependencyAndDependents(dependencyId) {
315
+ if (!this.hasDependency(dependencyId)) return;
316
+ /**
317
+ * Unload dependency and its dependents
318
+ */ this.handleUnloadingDependencyAndDependents(dependencyId);
319
+ /**
320
+ * Remove dependencies dependent relationships
321
+ */ this.handleRemovingDependencyDependents(dependencyId);
322
+ /**
323
+ * Remove self from local dependencies property
324
+ */ this.handleRemovingDependencyProperties(dependencyId);
325
+ return;
326
+ }
327
+ constructor(aglyn){
328
+ this.aglyn = aglyn;
329
+ // ____ __________ _______ _______________________
330
+ // / __ \/ ____/ __ \/ ____/ | / / ____/ _/ ____/ ___/
331
+ // / / / / __/ / /_/ / __/ / |/ / / / // __/ \__ \
332
+ // / /_/ / /___/ ____/ /___/ /| / /____/ // /___ ___/ /
333
+ // /_____/_____/_/ /_____/_/ |_/\____/___/_____//____/
334
+ //
335
+ this.dependencies = {};
336
+ this.dependencyStatusById = {};
337
+ this.dependencyDependentsById = {};
338
+ makeAutoObservable(this);
339
+ }
340
+ }
341
+ export default PluginManager;
342
+
343
+ //# sourceMappingURL=plugin-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/plugin-manager.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 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\nimport type { MdiIconProps } from '../types/nodes'\nimport { makeAutoObservable } from 'mobx'\nimport type { Aglyn } from '../aglyn'\nimport { lifecycleEvent } from '../lifecycle'\nimport { AglynEvent } from '../emit-manager'\n\nexport enum PluginStatus {\n WAITING = 'waiting',\n LOADING = 'loading',\n LOADED = 'loaded',\n UNLOADING = 'unloading',\n}\n\nimport type { PluginId } from '../foundation'\nexport type { PluginId }\nexport type PluginStatusById = Record<PluginId, PluginStatus>\nexport type PluginsById = Record<PluginId, Plugin>\nexport type PluginDependencies = Record<PluginId, true>\nexport type Dependents = Record<PluginId, true>\nexport type PluginDependents = Record<PluginId, Dependents>\n\nexport interface Plugin {\n $id?: PluginId\n displayName?: string\n title?: string\n subtitle?: string\n description?: string\n icon?: MdiIconProps\n dependencies?: PluginDependencies\n load?(...args: any[]): void\n destroy?(...args: any[]): void\n}\n\n// export const plugins: Record<PluginId, Plugin> = {}\n//\n// export function getBundle(pluginId: PluginId) {\n// return plugins[pluginId]\n// }\n//\n// export function hasBundle(pluginId: PluginId) {\n// return pluginId && _hasOwnProperty(pluginId, plugins)\n// }\n//\n// export function registerBundle(schema: Plugin) {\n// const { $id: pluginId } = schema\n// lifecycleEvent(\n// () => {\n// addDependency(schema)\n// plugins[pluginId] = schema\n// // for (const preset of schema.presets || []) {\n// // emitter.emit(AglynEvent.PRESET_REGISTER, { preset })\n// // }\n// },\n// {\n// beforeEvent: AglynEvent.PLUGIN_REGISTERING,\n// beforePayload: [{ schema }],\n// afterEvent: AglynEvent.PLUGIN_REGISTERED,\n// afterPayload: [{ schema }],\n// },\n// )\n// }\n//\n// export function unregisterBundle(pluginId: PluginId) {\n// const bundle = plugins[pluginId]\n// lifecycleEvent(\n// () => {\n// if (!bundle) throw new Error(`No bundle exists with $id ${pluginId}`)\n//\n// // for (const componentId of bundle.componentIds || []) {\n// // emitter.emit(AglynEvent.COMPONENT_UNREGISTER, { componentId, pluginId })\n// // }\n// delete plugins[pluginId]\n// },\n// {\n// beforeEvent: AglynEvent.PLUGIN_UNREGISTERING,\n// beforePayload: [{ pluginId }],\n// afterEvent: AglynEvent.PLUGIN_UNREGISTERED,\n// afterPayload: [{ pluginId }],\n// },\n// )\n// }\n\nexport class PluginManager {\n // ____ __________ _______ _______________________\n // / __ \\/ ____/ __ \\/ ____/ | / / ____/ _/ ____/ ___/\n // / / / / __/ / /_/ / __/ / |/ / / / // __/ \\__ \\\n // / /_/ / /___/ ____/ /___/ /| / /____/ // /___ ___/ /\n // /_____/_____/_/ /_____/_/ |_/\\____/___/_____//____/\n //\n\n public dependencies: PluginsById = {}\n public dependencyStatusById: PluginStatusById = {}\n public dependencyDependentsById: PluginDependents = {}\n\n constructor(protected aglyn?: Aglyn) {\n makeAutoObservable(this)\n }\n\n public getDependency(dependencyId: PluginId): Plugin | undefined {\n return this.dependencies[dependencyId]\n }\n\n public getDependencyDependents(\n dependencyId: PluginId,\n ): Dependents | undefined {\n return this.dependencyDependentsById[dependencyId]\n }\n\n public getDependencyStatus(dependencyId: PluginId): PluginStatus | undefined {\n return this.dependencyStatusById[dependencyId]\n }\n\n public hasDependency(dependencyId: PluginId): boolean {\n return Boolean(dependencyId && this.getDependency(dependencyId))\n }\n\n public isDependencyWaiting(dependencyId: PluginId): boolean {\n return this.getDependencyStatus(dependencyId) === PluginStatus.WAITING\n }\n\n public isDependencyLoading(dependencyId: PluginId): boolean {\n return this.getDependencyStatus(dependencyId) === PluginStatus.LOADING\n }\n\n public isDependencyLoaded(dependencyId: PluginId): boolean {\n return this.getDependencyStatus(dependencyId) === PluginStatus.LOADED\n }\n\n public isDependencyUnloading(dependencyId: PluginId): boolean {\n return this.getDependencyStatus(dependencyId) === PluginStatus.UNLOADING\n }\n\n public areAllDependenciesLoaded(dependentId: PluginId): boolean {\n for (const dependencyId of Object.keys(\n this.getDependency(dependentId)?.dependencies || {},\n )) {\n if (!this.isDependencyLoaded(dependencyId)) {\n return false\n }\n }\n return true\n }\n\n public addDependency(dependency: Plugin) {\n lifecycleEvent(\n () => {\n this.handleAddingDependencyAndDependents(dependency)\n },\n {\n beforeEvent: AglynEvent.PLUGIN_REGISTERING,\n beforePayload: [{ schema: dependency }],\n afterEvent: AglynEvent.PLUGIN_REGISTERED,\n afterPayload: [{ schema: dependency }],\n },\n )\n return\n }\n\n public addDependencies(dependencies?: Array<Plugin>) {\n const _dependencies = Array.isArray(dependencies) ? dependencies : []\n for (const dependency of _dependencies) {\n this.addDependency(dependency)\n }\n }\n\n public destroyDependencies() {\n const dependencyIds = Object.keys(this.dependencies)\n for (const $id of dependencyIds) {\n this.removeDependency($id)\n }\n }\n\n public removeDependency($id: PluginId) {\n lifecycleEvent(\n () => {\n this.handleRemovingDependencyAndDependents($id)\n },\n {\n beforeEvent: AglynEvent.PLUGIN_UNREGISTERING,\n beforePayload: [{ $id }],\n afterEvent: AglynEvent.PLUGIN_UNREGISTERED,\n afterPayload: [{ $id }],\n },\n )\n return\n }\n\n public loadDependency($id: PluginId) {\n return this.handleLoadingDependencyAndDependents($id)\n }\n\n public unloadDependency($id: PluginId) {\n return this.handleUnloadingDependencyAndDependents($id)\n }\n\n public getDependencyCopy(\n dependencyId: PluginId,\n ): Readonly<Plugin> | undefined {\n const dependency = this.getDependency(dependencyId)\n return dependency ? { ...dependency } : undefined\n }\n\n /**\n * Every registered dependency still parked in WAITING, paired with the\n * dependencies it is waiting on that have not loaded (AGL-759).\n *\n * A bundle lands here when a dependency it declared never reached LOADED.\n * With the reverse-dependency edge fixed, a bundle that registers before\n * its dependency is recovered as soon as the dependency finishes — so the\n * only thing left in this list once a batch has settled is a bundle whose\n * dependency was never activated at all (a manifest/enablement gap). That\n * used to present as an empty besigner drawer with no error: the bundle's\n * components simply never registered. Callers report this at a settle\n * point (the plugin loader, after an `ensure`) so the gap says so instead.\n */\n public getStuckDependencies(): Array<{\n id: PluginId\n waitingOn: PluginId[]\n }> {\n const stuck: Array<{ id: PluginId; waitingOn: PluginId[] }> = []\n for (const id of Object.keys(this.dependencyStatusById)) {\n if (!this.isDependencyWaiting(id)) continue\n const waitingOn = Object.keys(\n this.getDependency(id)?.dependencies || {},\n ).filter((dependencyId) => !this.isDependencyLoaded(dependencyId))\n stuck.push({ id, waitingOn })\n }\n return stuck\n }\n\n // ____ __________ _____ ____ _ ________\n // / __ \\/ ____/ __ \\/ ___/ / __ \\ | / /_ __/\n // / / / / __/ / /_/ /\\__ \\ ______ / /_/ / | / / / /\n // / /_/ / /___/ ____/___/ / /_____/ / ____/| |/ / / /\n // /_____/_____/_/ /____/ /_/ |___/ /_/\n // 👇\n\n private handleSettingDependencyProperties(\n dependencyId: PluginId,\n dependency: Plugin,\n ) {\n this.dependencyStatusById[dependencyId] = PluginStatus.WAITING\n this.dependencyDependentsById[dependencyId] ||= {}\n this.dependencies[dependencyId] = dependency\n return\n }\n\n private handleSettingDependencyDependents(dependencyId: PluginId) {\n for (const dependentId of Object.keys(\n this.getDependency(dependencyId)?.dependencies || {},\n )) {\n // Read the bucket back instead of using the value of `||= {}` (AGL-759).\n // This class is `makeAutoObservable`, so assigning a plain `{}` stores an\n // observable COPY of it — while `x ||= {}` evaluates to the plain object\n // that was assigned, not the copy that was stored. Mutating that captured\n // object wrote into something already detached from the manager.\n //\n // Only the FIRST dependent of any given dependency was lost, because\n // every later one found the key present and short-circuited onto the real\n // observable. In manifest order that made `bookings` — the first bundle\n // depending on mui — permanently WAITING on every besigner, with no\n // error: its components simply never registered and the drawer was short\n // a category. `plugins.dependencyDependentsById` reads empty for that\n // first edge, which is the fingerprint.\n if (!this.dependencyDependentsById[dependentId]) {\n this.dependencyDependentsById[dependentId] = {}\n }\n this.dependencyDependentsById[dependentId][dependencyId] = true\n }\n return\n }\n\n private handleRemovingDependencyDependents(dependencyId: PluginId) {\n for (const dependentId of Object.keys(\n this.getDependency(dependencyId)?.dependencies || {},\n )) {\n delete this.dependencyDependentsById[dependentId]?.[dependencyId]\n }\n return\n }\n\n private handleRemovingDependencyProperties(dependencyId: PluginId) {\n delete this.dependencyDependentsById[dependencyId]\n delete this.dependencyStatusById[dependencyId]\n delete this.dependencies[dependencyId]\n return\n }\n\n private handleLoadingDependencyDependents(dependencyId: PluginId) {\n for (const dependentId of Object.keys(\n this.getDependencyDependents(dependencyId) || {},\n )) {\n if (!this.isDependencyLoaded(dependentId)) {\n this.handleLoadingDependencyAndDependents(dependentId)\n }\n }\n return\n }\n\n private handleLoadingDependency(dependencyId: PluginId) {\n if (this.isDependencyWaiting(dependencyId)) {\n this.dependencyStatusById[dependencyId] = PluginStatus.LOADING\n this.getDependency(dependencyId)?.load?.()\n this.dependencyStatusById[dependencyId] = PluginStatus.LOADED\n }\n return\n }\n\n private handleUnloadingDependencyDependents(dependencyId: PluginId) {\n for (const dependentId of Object.keys(\n this.getDependencyDependents(dependencyId) || {},\n )) {\n this.handleUnloadingDependencyAndDependents(dependentId)\n }\n return\n }\n\n private handleUnloadingDependency(dependencyId: PluginId) {\n if (this.isDependencyLoaded(dependencyId)) {\n this.dependencyStatusById[dependencyId] = PluginStatus.UNLOADING\n this.getDependency(dependencyId)?.destroy?.()\n this.dependencyStatusById[dependencyId] = PluginStatus.WAITING\n }\n return\n }\n\n private handleAddingDependencyAndDependents(dependency: Plugin) {\n if (!dependency) throw new Error('Invalid dependency')\n const dependencyId: PluginId = dependency.$id\n if (!dependencyId) throw new Error('Invalid dependencyId')\n /**\n * Set properties on local dependencies object\n */\n this.handleSettingDependencyProperties(dependencyId, dependency)\n /**\n * Set dependencies' dependent relationships\n */\n this.handleSettingDependencyDependents(dependencyId)\n /**\n * Load applicable dependencies\n */\n this.handleLoadingDependencyAndDependents(dependencyId)\n return\n }\n\n private handleLoadingDependencyAndDependents(dependencyId: PluginId) {\n if (!this.hasDependency(dependencyId)) return\n /**\n * Verify all dependencies are loaded\n */\n if (!this.areAllDependenciesLoaded(dependencyId)) return\n /**\n * Load the self dependency\n */\n this.handleLoadingDependency(dependencyId)\n /**\n * Load waiting dependents\n */\n this.handleLoadingDependencyDependents(dependencyId)\n return\n }\n\n private handleUnloadingDependencyAndDependents(dependencyId: PluginId) {\n if (!this.hasDependency(dependencyId)) return\n /**\n * Unload all dependents of the dependency\n */\n this.handleUnloadingDependencyDependents(dependencyId)\n /**\n * Unload self dependency\n */\n this.handleUnloadingDependency(dependencyId)\n return\n }\n\n private handleRemovingDependencyAndDependents(dependencyId: PluginId) {\n if (!this.hasDependency(dependencyId)) return\n /**\n * Unload dependency and its dependents\n */\n this.handleUnloadingDependencyAndDependents(dependencyId)\n\n /**\n * Remove dependencies dependent relationships\n */\n this.handleRemovingDependencyDependents(dependencyId)\n\n /**\n * Remove self from local dependencies property\n */\n this.handleRemovingDependencyProperties(dependencyId)\n return\n }\n}\n\nexport default PluginManager\n"],"names":["makeAutoObservable","lifecycleEvent","AglynEvent","PluginStatus","PluginManager","getDependency","dependencyId","dependencies","getDependencyDependents","dependencyDependentsById","getDependencyStatus","dependencyStatusById","hasDependency","Boolean","isDependencyWaiting","isDependencyLoading","isDependencyLoaded","isDependencyUnloading","areAllDependenciesLoaded","dependentId","Object","keys","addDependency","dependency","handleAddingDependencyAndDependents","beforeEvent","PLUGIN_REGISTERING","beforePayload","schema","afterEvent","PLUGIN_REGISTERED","afterPayload","addDependencies","_dependencies","Array","isArray","destroyDependencies","dependencyIds","$id","removeDependency","handleRemovingDependencyAndDependents","PLUGIN_UNREGISTERING","PLUGIN_UNREGISTERED","loadDependency","handleLoadingDependencyAndDependents","unloadDependency","handleUnloadingDependencyAndDependents","getDependencyCopy","undefined","getStuckDependencies","stuck","id","waitingOn","filter","push","handleSettingDependencyProperties","handleSettingDependencyDependents","handleRemovingDependencyDependents","handleRemovingDependencyProperties","handleLoadingDependencyDependents","handleLoadingDependency","load","handleUnloadingDependencyDependents","handleUnloadingDependency","destroy","Error","aglyn"],"mappings":"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"}
@@ -0,0 +1,97 @@
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
+ /** One plugin's claim on one line. */
18
+ export interface PluginMeteredLineClaim {
19
+ /**
20
+ * The line the sweep knows, e.g. the assist-overage line. Core's own name
21
+ * for a figure it already computes — not a plugin's internal name for it.
22
+ */
23
+ lineId: string;
24
+ /** The plugin that bills it. */
25
+ pluginId: string;
26
+ /**
27
+ * The first month (`YYYY-MM`) the plugin bills the line for, or `null`
28
+ * while the plugin has registered the claim but not yet been switched on.
29
+ *
30
+ * A function rather than a value because the answer comes from deployment
31
+ * configuration that can change without a restart, and because a claim
32
+ * evaluated once at boot would pin the cutover to whenever the process
33
+ * happened to start.
34
+ */
35
+ billsFrom: () => string | null;
36
+ /**
37
+ * Called once per workspace for a month this sweep has CLOSED, so a plugin
38
+ * billing the line can settle what is left of it.
39
+ *
40
+ * A plugin that charges as usage accrues always has a remainder: the part
41
+ * that never reached its threshold before the month ended. Something has to
42
+ * bill that, and the sweep that closes the month is the one thing that
43
+ * already knows every workspace, its month and its Stripe customer — which
44
+ * is why this is a hook here rather than a second cron with a second
45
+ * schedule to keep in step with this one.
46
+ *
47
+ * Called whether or not the meter reported for the workspace, because the
48
+ * remainder is owed either way. Errors are logged and never the sweep's:
49
+ * this is money the plugin bills, and failing the platform's own metering
50
+ * over it would be the larger loss. A plugin makes it idempotent; it is
51
+ * called again every day the sweep runs.
52
+ */
53
+ closeMonth?: (context: PluginMeteredLineMonthContext) => Promise<void>;
54
+ }
55
+ /** What a plugin is told about one workspace's closed month. */
56
+ export interface PluginMeteredLineMonthContext {
57
+ orgId: string;
58
+ /** `YYYY-MM`, the month that closed. */
59
+ month: string;
60
+ /** The workspace's own document, as the sweep already read it. */
61
+ org: Record<string, unknown>;
62
+ /** Its Stripe customer, or `null` when it has none. */
63
+ stripeCustomerId: string | null;
64
+ }
65
+ /**
66
+ * Claims a meter line. One plugin per line: a second plugin claiming a line
67
+ * another already holds throws, because two plugins each believing they bill
68
+ * a line is how it reaches no invoice at all.
69
+ *
70
+ * The same plugin re-registering replaces its own claim, so a module
71
+ * evaluated twice leaves one claim rather than two.
72
+ */
73
+ export declare function registerPluginMeteredLine(claim: Omit<PluginMeteredLineClaim, 'pluginId'> & {
74
+ pluginId?: string;
75
+ }): void;
76
+ /**
77
+ * Does a plugin bill this line for this month, so the sweep must leave it
78
+ * out of the meter figure?
79
+ *
80
+ * A claim whose `billsFrom` throws answers `false` and logs: the sweep is
81
+ * the only thing that bills the line while a claim is broken, and a throw
82
+ * that propagated would fail the whole month's billing for every workspace.
83
+ */
84
+ export declare function pluginBillsMeteredLine(lineId: string, month: string): boolean;
85
+ /**
86
+ * Runs the claiming plugin's close-out for one workspace's closed month.
87
+ *
88
+ * `false` when no plugin claims the line, when it does not bill this month,
89
+ * or when it registered no close-out — three different "nothing happened"s
90
+ * that the sweep does not need to tell apart, and the plugin is the only
91
+ * thing that could.
92
+ */
93
+ export declare function runPluginMeteredLineClose(lineId: string, context: PluginMeteredLineMonthContext): Promise<boolean>;
94
+ /** The plugin billing a line, for diagnostics and staff readouts. */
95
+ export declare function pluginMeteredLineOwner(lineId: string): string | null;
96
+ /** Test seam: forget every claim. */
97
+ export declare function resetPluginMeteredLinesForTests(): void;
@@ -0,0 +1,123 @@
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
+ * A METER LINE A PLUGIN BILLS FOR ITSELF (AGL-3011).
18
+ *
19
+ * The monthly usage sweep prices several lines into one figure and posts it
20
+ * as a single Stripe meter event. A plugin that bills one of those lines its
21
+ * own way — charging it as it accrues, say — must have that line LEFT OUT of
22
+ * the meter figure from the month it takes over, or the customer is billed
23
+ * for it twice.
24
+ *
25
+ * That claim is what this registry holds: a line id, the plugin that owns
26
+ * the billing of it, and the first month from which the plugin bills it. The
27
+ * sweep asks by line id and gets a yes or a no. It never learns how the
28
+ * plugin bills, and the plugin never edits the sweep.
29
+ *
30
+ * ## Only the billing moves, never the measurement
31
+ *
32
+ * A claimed line is still measured, still priced and still written to the
33
+ * month's audit fields. What changes is whether its dollars enter the figure
34
+ * the meter event carries. "We stopped billing it here" and "we stopped
35
+ * counting it" must stay different facts, or a claim would erase a month of
36
+ * usage history along with its invoice line.
37
+ *
38
+ * ## Unclaimed is the safe answer
39
+ *
40
+ * A line nobody claimed, a month before the claim's start, an unparseable
41
+ * start month and a plugin that failed to register all answer the same way:
42
+ * the sweep bills the line as it always has. Every failure mode therefore
43
+ * bills through the channel that already works, rather than through neither.
44
+ */ import { getRegisteringPluginId } from "../app-utils/registering-plugin.js";
45
+ const claims = new Map();
46
+ /**
47
+ * Claims a meter line. One plugin per line: a second plugin claiming a line
48
+ * another already holds throws, because two plugins each believing they bill
49
+ * a line is how it reaches no invoice at all.
50
+ *
51
+ * The same plugin re-registering replaces its own claim, so a module
52
+ * evaluated twice leaves one claim rather than two.
53
+ */ export function registerPluginMeteredLine(claim) {
54
+ var _ref, _getRegisteringPluginId;
55
+ const pluginId = ((_ref = (_getRegisteringPluginId = getRegisteringPluginId()) != null ? _getRegisteringPluginId : claim.pluginId) != null ? _ref : '').trim();
56
+ if (!pluginId) {
57
+ throw new Error(`metered line "${claim.lineId}" claimed with no owner: pass ` + '{ pluginId } when registering outside a plugin register fn');
58
+ }
59
+ const held = claims.get(claim.lineId);
60
+ if (held && held.pluginId !== pluginId) {
61
+ throw new Error(`metered line "${claim.lineId}" is already billed by plugin ` + `"${held.pluginId}"; "${pluginId}" cannot claim it too`);
62
+ }
63
+ claims.set(claim.lineId, {
64
+ lineId: claim.lineId,
65
+ pluginId,
66
+ billsFrom: claim.billsFrom,
67
+ closeMonth: claim.closeMonth
68
+ });
69
+ }
70
+ /**
71
+ * Does a plugin bill this line for this month, so the sweep must leave it
72
+ * out of the meter figure?
73
+ *
74
+ * A claim whose `billsFrom` throws answers `false` and logs: the sweep is
75
+ * the only thing that bills the line while a claim is broken, and a throw
76
+ * that propagated would fail the whole month's billing for every workspace.
77
+ */ export function pluginBillsMeteredLine(lineId, month) {
78
+ const claim = claims.get(lineId);
79
+ if (!claim) return false;
80
+ let from;
81
+ try {
82
+ from = claim.billsFrom();
83
+ } catch (error) {
84
+ console.error(`[plugins] ${claim.pluginId} failed to answer for ${lineId}`, error);
85
+ return false;
86
+ }
87
+ const start = String(from != null ? from : '').trim();
88
+ if (!/^\d{4}-\d{2}$/.test(start)) return false;
89
+ if (!/^\d{4}-\d{2}$/.test(month)) return false;
90
+ // Zero-padded fixed-width `YYYY-MM` orders identically as a string and as
91
+ // a date; the format checks above are what make that true rather than
92
+ // lucky. The same comparison `billsEmailSendOverage` makes on its own gate.
93
+ return month >= start;
94
+ }
95
+ /**
96
+ * Runs the claiming plugin's close-out for one workspace's closed month.
97
+ *
98
+ * `false` when no plugin claims the line, when it does not bill this month,
99
+ * or when it registered no close-out — three different "nothing happened"s
100
+ * that the sweep does not need to tell apart, and the plugin is the only
101
+ * thing that could.
102
+ */ export async function runPluginMeteredLineClose(lineId, context) {
103
+ const claim = claims.get(lineId);
104
+ if (!(claim == null ? void 0 : claim.closeMonth)) return false;
105
+ if (!pluginBillsMeteredLine(lineId, context.month)) return false;
106
+ try {
107
+ await claim.closeMonth(context);
108
+ return true;
109
+ } catch (error) {
110
+ console.error(`[plugins] ${claim.pluginId} failed to close ${lineId} for ${context.orgId}`, error);
111
+ return false;
112
+ }
113
+ }
114
+ /** The plugin billing a line, for diagnostics and staff readouts. */ export function pluginMeteredLineOwner(lineId) {
115
+ var _ref;
116
+ var _claims_get;
117
+ return (_ref = (_claims_get = claims.get(lineId)) == null ? void 0 : _claims_get.pluginId) != null ? _ref : null;
118
+ }
119
+ /** Test seam: forget every claim. */ export function resetPluginMeteredLinesForTests() {
120
+ claims.clear();
121
+ }
122
+
123
+ //# sourceMappingURL=plugin-metered-lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/plugin-metered-lines.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 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\n/**\n * A METER LINE A PLUGIN BILLS FOR ITSELF (AGL-3011).\n *\n * The monthly usage sweep prices several lines into one figure and posts it\n * as a single Stripe meter event. A plugin that bills one of those lines its\n * own way — charging it as it accrues, say — must have that line LEFT OUT of\n * the meter figure from the month it takes over, or the customer is billed\n * for it twice.\n *\n * That claim is what this registry holds: a line id, the plugin that owns\n * the billing of it, and the first month from which the plugin bills it. The\n * sweep asks by line id and gets a yes or a no. It never learns how the\n * plugin bills, and the plugin never edits the sweep.\n *\n * ## Only the billing moves, never the measurement\n *\n * A claimed line is still measured, still priced and still written to the\n * month's audit fields. What changes is whether its dollars enter the figure\n * the meter event carries. \"We stopped billing it here\" and \"we stopped\n * counting it\" must stay different facts, or a claim would erase a month of\n * usage history along with its invoice line.\n *\n * ## Unclaimed is the safe answer\n *\n * A line nobody claimed, a month before the claim's start, an unparseable\n * start month and a plugin that failed to register all answer the same way:\n * the sweep bills the line as it always has. Every failure mode therefore\n * bills through the channel that already works, rather than through neither.\n */\n\nimport { getRegisteringPluginId } from '../app-utils/registering-plugin'\n\n/** One plugin's claim on one line. */\nexport interface PluginMeteredLineClaim {\n /**\n * The line the sweep knows, e.g. the assist-overage line. Core's own name\n * for a figure it already computes — not a plugin's internal name for it.\n */\n lineId: string\n /** The plugin that bills it. */\n pluginId: string\n /**\n * The first month (`YYYY-MM`) the plugin bills the line for, or `null`\n * while the plugin has registered the claim but not yet been switched on.\n *\n * A function rather than a value because the answer comes from deployment\n * configuration that can change without a restart, and because a claim\n * evaluated once at boot would pin the cutover to whenever the process\n * happened to start.\n */\n billsFrom: () => string | null\n /**\n * Called once per workspace for a month this sweep has CLOSED, so a plugin\n * billing the line can settle what is left of it.\n *\n * A plugin that charges as usage accrues always has a remainder: the part\n * that never reached its threshold before the month ended. Something has to\n * bill that, and the sweep that closes the month is the one thing that\n * already knows every workspace, its month and its Stripe customer — which\n * is why this is a hook here rather than a second cron with a second\n * schedule to keep in step with this one.\n *\n * Called whether or not the meter reported for the workspace, because the\n * remainder is owed either way. Errors are logged and never the sweep's:\n * this is money the plugin bills, and failing the platform's own metering\n * over it would be the larger loss. A plugin makes it idempotent; it is\n * called again every day the sweep runs.\n */\n closeMonth?: (context: PluginMeteredLineMonthContext) => Promise<void>\n}\n\n/** What a plugin is told about one workspace's closed month. */\nexport interface PluginMeteredLineMonthContext {\n orgId: string\n /** `YYYY-MM`, the month that closed. */\n month: string\n /** The workspace's own document, as the sweep already read it. */\n org: Record<string, unknown>\n /** Its Stripe customer, or `null` when it has none. */\n stripeCustomerId: string | null\n}\n\nconst claims = new Map<string, PluginMeteredLineClaim>()\n\n/**\n * Claims a meter line. One plugin per line: a second plugin claiming a line\n * another already holds throws, because two plugins each believing they bill\n * a line is how it reaches no invoice at all.\n *\n * The same plugin re-registering replaces its own claim, so a module\n * evaluated twice leaves one claim rather than two.\n */\nexport function registerPluginMeteredLine(\n claim: Omit<PluginMeteredLineClaim, 'pluginId'> & { pluginId?: string },\n): void {\n const pluginId = (getRegisteringPluginId() ?? claim.pluginId ?? '').trim()\n if (!pluginId) {\n throw new Error(\n `metered line \"${claim.lineId}\" claimed with no owner: pass ` +\n '{ pluginId } when registering outside a plugin register fn',\n )\n }\n const held = claims.get(claim.lineId)\n if (held && held.pluginId !== pluginId) {\n throw new Error(\n `metered line \"${claim.lineId}\" is already billed by plugin ` +\n `\"${held.pluginId}\"; \"${pluginId}\" cannot claim it too`,\n )\n }\n claims.set(claim.lineId, {\n lineId: claim.lineId,\n pluginId,\n billsFrom: claim.billsFrom,\n closeMonth: claim.closeMonth,\n })\n}\n\n/**\n * Does a plugin bill this line for this month, so the sweep must leave it\n * out of the meter figure?\n *\n * A claim whose `billsFrom` throws answers `false` and logs: the sweep is\n * the only thing that bills the line while a claim is broken, and a throw\n * that propagated would fail the whole month's billing for every workspace.\n */\nexport function pluginBillsMeteredLine(lineId: string, month: string): boolean {\n const claim = claims.get(lineId)\n if (!claim) return false\n let from: string | null\n try {\n from = claim.billsFrom()\n } catch (error) {\n console.error(`[plugins] ${claim.pluginId} failed to answer for ${lineId}`, error)\n return false\n }\n const start = String(from ?? '').trim()\n if (!/^\\d{4}-\\d{2}$/.test(start)) return false\n if (!/^\\d{4}-\\d{2}$/.test(month)) return false\n // Zero-padded fixed-width `YYYY-MM` orders identically as a string and as\n // a date; the format checks above are what make that true rather than\n // lucky. The same comparison `billsEmailSendOverage` makes on its own gate.\n return month >= start\n}\n\n/**\n * Runs the claiming plugin's close-out for one workspace's closed month.\n *\n * `false` when no plugin claims the line, when it does not bill this month,\n * or when it registered no close-out — three different \"nothing happened\"s\n * that the sweep does not need to tell apart, and the plugin is the only\n * thing that could.\n */\nexport async function runPluginMeteredLineClose(\n lineId: string,\n context: PluginMeteredLineMonthContext,\n): Promise<boolean> {\n const claim = claims.get(lineId)\n if (!claim?.closeMonth) return false\n if (!pluginBillsMeteredLine(lineId, context.month)) return false\n try {\n await claim.closeMonth(context)\n return true\n } catch (error) {\n console.error(\n `[plugins] ${claim.pluginId} failed to close ${lineId} for ${context.orgId}`,\n error,\n )\n return false\n }\n}\n\n/** The plugin billing a line, for diagnostics and staff readouts. */\nexport function pluginMeteredLineOwner(lineId: string): string | null {\n return claims.get(lineId)?.pluginId ?? null\n}\n\n/** Test seam: forget every claim. */\nexport function resetPluginMeteredLinesForTests(): void {\n claims.clear()\n}\n"],"names":["getRegisteringPluginId","claims","Map","registerPluginMeteredLine","claim","pluginId","trim","Error","lineId","held","get","set","billsFrom","closeMonth","pluginBillsMeteredLine","month","from","error","console","start","String","test","runPluginMeteredLineClose","context","orgId","pluginMeteredLineOwner","resetPluginMeteredLinesForTests","clear"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BC,GAED,SAASA,sBAAsB,QAAQ,qCAAiC;AAoDxE,MAAMC,SAAS,IAAIC;AAEnB;;;;;;;CAOC,GACD,OAAO,SAASC,0BACdC,KAAuE;QAErDJ,MAAAA;IAAlB,MAAMK,WAAW,EAACL,QAAAA,0BAAAA,oCAAAA,0BAA4BI,MAAMC,QAAQ,YAA1CL,OAA8C,IAAIM,IAAI;IACxE,IAAI,CAACD,UAAU;QACb,MAAM,IAAIE,MACR,CAAC,cAAc,EAAEH,MAAMI,MAAM,CAAC,8BAA8B,CAAC,GAC3D;IAEN;IACA,MAAMC,OAAOR,OAAOS,GAAG,CAACN,MAAMI,MAAM;IACpC,IAAIC,QAAQA,KAAKJ,QAAQ,KAAKA,UAAU;QACtC,MAAM,IAAIE,MACR,CAAC,cAAc,EAAEH,MAAMI,MAAM,CAAC,8BAA8B,CAAC,GAC3D,CAAC,CAAC,EAAEC,KAAKJ,QAAQ,CAAC,IAAI,EAAEA,SAAS,qBAAqB,CAAC;IAE7D;IACAJ,OAAOU,GAAG,CAACP,MAAMI,MAAM,EAAE;QACvBA,QAAQJ,MAAMI,MAAM;QACpBH;QACAO,WAAWR,MAAMQ,SAAS;QAC1BC,YAAYT,MAAMS,UAAU;IAC9B;AACF;AAEA;;;;;;;CAOC,GACD,OAAO,SAASC,uBAAuBN,MAAc,EAAEO,KAAa;IAClE,MAAMX,QAAQH,OAAOS,GAAG,CAACF;IACzB,IAAI,CAACJ,OAAO,OAAO;IACnB,IAAIY;IACJ,IAAI;QACFA,OAAOZ,MAAMQ,SAAS;IACxB,EAAE,OAAOK,OAAO;QACdC,QAAQD,KAAK,CAAC,CAAC,UAAU,EAAEb,MAAMC,QAAQ,CAAC,sBAAsB,EAAEG,QAAQ,EAAES;QAC5E,OAAO;IACT;IACA,MAAME,QAAQC,OAAOJ,eAAAA,OAAQ,IAAIV,IAAI;IACrC,IAAI,CAAC,gBAAgBe,IAAI,CAACF,QAAQ,OAAO;IACzC,IAAI,CAAC,gBAAgBE,IAAI,CAACN,QAAQ,OAAO;IACzC,0EAA0E;IAC1E,sEAAsE;IACtE,4EAA4E;IAC5E,OAAOA,SAASI;AAClB;AAEA;;;;;;;CAOC,GACD,OAAO,eAAeG,0BACpBd,MAAc,EACde,OAAsC;IAEtC,MAAMnB,QAAQH,OAAOS,GAAG,CAACF;IACzB,IAAI,EAACJ,yBAAAA,MAAOS,UAAU,GAAE,OAAO;IAC/B,IAAI,CAACC,uBAAuBN,QAAQe,QAAQR,KAAK,GAAG,OAAO;IAC3D,IAAI;QACF,MAAMX,MAAMS,UAAU,CAACU;QACvB,OAAO;IACT,EAAE,OAAON,OAAO;QACdC,QAAQD,KAAK,CACX,CAAC,UAAU,EAAEb,MAAMC,QAAQ,CAAC,iBAAiB,EAAEG,OAAO,KAAK,EAAEe,QAAQC,KAAK,EAAE,EAC5EP;QAEF,OAAO;IACT;AACF;AAEA,mEAAmE,GACnE,OAAO,SAASQ,uBAAuBjB,MAAc;;QAC5CP;IAAP,gBAAOA,cAAAA,OAAOS,GAAG,CAACF,4BAAXP,YAAoBI,QAAQ,mBAAI;AACzC;AAEA,mCAAmC,GACnC,OAAO,SAASqB;IACdzB,OAAO0B,KAAK;AACd"}