@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,989 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ /**
3
+ * @license
4
+ * Copyright 2026 Aglyn LLC
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */ /**
18
+ * Static plugin-bundle checks (AGL-426) — Strapi `strapi-plugin verify`
19
+ * parity, but ALSO enforced server-side: the publish API runs the same
20
+ * checks, so a bundle that fails locally fails there identically.
21
+ *
22
+ * The bundle is PARSED and the tree analysed (AGL-964). The checks used to
23
+ * match source text with regexes, which meant they could not see computed
24
+ * member access, could not follow a value into a call, and could not tell
25
+ * code from a comment — `g['ev'+'al'](…)` passed while the words `eval(`
26
+ * inside a comment failed. On a minified bundle, which every published
27
+ * artifact is, that is close to no signal at all.
28
+ *
29
+ * These are still cheap heuristics, NOT a sandbox: they catch honest build
30
+ * mistakes (leftover imports, missing entry exports, oversized bundles),
31
+ * flag the APIs the platform never wants in marketplace code, and surface
32
+ * the questions a reviewer should ask. A determined author can still hide
33
+ * intent from any static pass. The real security boundary stays the trust
34
+ * chain (sandbox iframe + per-manifest CSP / staff review + realm signing /
35
+ * sha pinning / the kill switch).
36
+ */ import { parse } from "acorn";
37
+ const CHECK_LABELS = {
38
+ parse: 'Parses as an ES module',
39
+ entry: 'Exports an entry point',
40
+ 'self-contained': 'Self-contained (no static imports)',
41
+ size: 'Within the size limit',
42
+ 'code-execution': 'No eval / Function constructor',
43
+ globals: 'No computed access on a global',
44
+ storage: 'No direct storage or cookie access',
45
+ 'dynamic-import': 'No dynamic import of unknown code',
46
+ network: 'Network calls match the manifest',
47
+ obfuscation: 'No obfuscation shapes',
48
+ contributions: 'Registrations match the declared contributions'
49
+ };
50
+ /** Check order as displayed — findings first would reorder on every bundle. */ const CHECK_ORDER = [
51
+ 'parse',
52
+ 'entry',
53
+ 'self-contained',
54
+ 'size',
55
+ 'code-execution',
56
+ 'globals',
57
+ 'storage',
58
+ 'dynamic-import',
59
+ 'network',
60
+ 'obfuscation',
61
+ 'contributions'
62
+ ];
63
+ export const MAX_PLUGIN_BUNDLE_BYTES = 1000000;
64
+ /**
65
+ * Stamped onto a cached verdict (AGL-962) so a stored result outlives only
66
+ * the checker that produced it.
67
+ *
68
+ * `checkPluginBundle` is pure over immutable, content-addressed bytes, so a
69
+ * verdict for a given sha256 never changes — but the CHECKS do. **Bump this
70
+ * whenever a rule is added, removed or loosened**, and every stored verdict
71
+ * from the old checker is ignored and recomputed on next read. Forgetting to
72
+ * bump means a reviewer sees a verdict from a checker that no longer exists,
73
+ * which is the failure mode re-running the verifier was meant to prevent.
74
+ *
75
+ * 2 — AST analysis replaces the regex scan (AGL-964).
76
+ * 3 — per-check summary added to the verdict (AGL-1087).
77
+ * 4 — calls through an alias are resolved (AGL-1090).
78
+ * 5 — URLs held in a constant are resolved (AGL-1093).
79
+ * 6 — registrations are compared with the declared contributions (AGL-3116).
80
+ */ export const PLUGIN_VERIFIER_VERSION = 6;
81
+ /**
82
+ * Whether a stored verdict may be served instead of re-running the checks.
83
+ *
84
+ * Fails closed on every mismatch: no verdict, a verdict for different bytes
85
+ * (a republished version keeps its version string but changes sha), or a
86
+ * verdict from a checker that has since changed. Any of those means
87
+ * download-and-recompute, which costs one page view rather than showing a
88
+ * reviewer a verdict that was never true of the bundle in front of them.
89
+ */ export function isStoredVerdictCurrent(stored, sha256) {
90
+ if (!stored || !sha256) return false;
91
+ return stored.sha256 === sha256 && Number(stored.verifierVersion) === PLUGIN_VERIFIER_VERSION;
92
+ }
93
+ /**
94
+ * Globals whose properties are the platform's business. Computed access on
95
+ * one of these is flagged as computed access rather than by trying to
96
+ * enumerate the property names an author might reach — `g[k]` hides its
97
+ * property from any static pass, so the ACCESS is the finding.
98
+ */ const GLOBAL_ROOTS = new Set([
99
+ 'globalThis',
100
+ 'window',
101
+ 'self',
102
+ 'top',
103
+ 'parent',
104
+ 'frames',
105
+ 'document'
106
+ ]);
107
+ /** Storage the platform never wants reached directly (use host-mediated data). */ const STORAGE_NAMES = new Set([
108
+ 'localStorage',
109
+ 'sessionStorage',
110
+ 'indexedDB'
111
+ ]);
112
+ /** Network entry points, by the name they are called/constructed under. */ const NETWORK_CALLS = new Set([
113
+ 'fetch',
114
+ 'sendBeacon'
115
+ ]);
116
+ const NETWORK_CONSTRUCTORS = new Set([
117
+ 'XMLHttpRequest',
118
+ 'WebSocket',
119
+ 'EventSource'
120
+ ]);
121
+ /**
122
+ * Names worth following through an alias (AGL-1090).
123
+ *
124
+ * `const f = fetch; f(url)` used to pass every check, and the network row
125
+ * rendered a green "no network calls" rather than going quiet — a two-line
126
+ * indirection defeating the signal this whole verifier exists to produce.
127
+ * Aliasing a VALUE was the exact gap the project was created to close, and
128
+ * resolving global objects (`const g = globalThis`) never covered it.
129
+ *
130
+ * Reassignment, `arr[0]`, an object property and passing the function as an
131
+ * argument all stay out of reach. The bar is that the cheap form is not free.
132
+ */ const ALIASABLE_CALLABLES = new Set([
133
+ 'eval',
134
+ 'Function',
135
+ 'fetch',
136
+ 'sendBeacon',
137
+ 'XMLHttpRequest',
138
+ 'WebSocket',
139
+ 'EventSource'
140
+ ]);
141
+ /**
142
+ * Callees that legitimately take an absolute URL and reach nothing — so a URL
143
+ * literal passed to them is not a call the network check failed to follow.
144
+ * `createElementNS` matters most: an SVG namespace argument appears in a large
145
+ * share of real bundles.
146
+ */ const URL_TAKING_NON_CALLS = new Set([
147
+ 'URL',
148
+ 'URLSearchParams',
149
+ 'createElementNS',
150
+ 'createDocument'
151
+ ]);
152
+ /** Beyond this, a single line is not source a reviewer can read. */ const MAX_READABLE_LINE = 100000;
153
+ /** A base64 blob at least this long is worth decoding before approving. */ const MIN_SUSPICIOUS_BASE64 = 1024;
154
+ /** How many `_0x…` names before the bundle counts as machine-obfuscated. */ const MIN_OBFUSCATED_NAMES = 5;
155
+ /** Verdicts are stored on a version doc; keep them bounded. */ const MAX_PROBLEMS = 40;
156
+ const OBFUSCATED_NAME = /^_0x[0-9a-f]{4,}$/i;
157
+ const BASE64_BLOB = /^[A-Za-z0-9+/\r\n]+={0,2}$/;
158
+ /**
159
+ * Child keys that are NOT expressions in the surrounding scope — a
160
+ * non-computed `.property`, an object literal key, a label. Walking into
161
+ * them would read `x.localStorage` on an unrelated object as a global
162
+ * storage access.
163
+ */ const skippedChild = (node, key)=>{
164
+ switch(node.type){
165
+ case 'MemberExpression':
166
+ return key === 'property' && !node['computed'];
167
+ case 'Property':
168
+ case 'PropertyDefinition':
169
+ case 'MethodDefinition':
170
+ return key === 'key' && !node['computed'];
171
+ case 'LabeledStatement':
172
+ case 'BreakStatement':
173
+ case 'ContinueStatement':
174
+ return key === 'label';
175
+ case 'ImportSpecifier':
176
+ case 'ExportSpecifier':
177
+ return true;
178
+ default:
179
+ return false;
180
+ }
181
+ };
182
+ /** Depth-first walk over every expression-position node in the tree. */ function walk(root, visit) {
183
+ const stack = [
184
+ root
185
+ ];
186
+ while(stack.length){
187
+ const node = stack.pop();
188
+ if (!node) continue;
189
+ visit(node);
190
+ for (const key of Object.keys(node)){
191
+ if (key === 'type' || key === 'start' || key === 'end') continue;
192
+ if (skippedChild(node, key)) continue;
193
+ const value = node[key];
194
+ if (Array.isArray(value)) {
195
+ for (const item of value){
196
+ if (item && typeof item === 'object' && typeof item.type === 'string') stack.push(item);
197
+ }
198
+ } else if (value && typeof value === 'object' && typeof value.type === 'string') {
199
+ stack.push(value);
200
+ }
201
+ }
202
+ }
203
+ }
204
+ /**
205
+ * The string a node evaluates to, when that is knowable without running it.
206
+ * Covers the shapes used to hide a property name from a text scan: a
207
+ * string literal, a template with no interpolation, and literals added
208
+ * together (`'ev' + 'al'`).
209
+ */ function staticString(node, constants) {
210
+ var _constants_get;
211
+ if (!node) return null;
212
+ if (node.type === 'Literal') return typeof node['value'] === 'string' ? node['value'] : null;
213
+ // A name bound once to a constant string (AGL-1093). `const ENDPOINT =
214
+ // 'https://…'; fetch(ENDPOINT)` is the idiomatic way to write a request,
215
+ // and refusing to read it meant the network diff quietly did not run for
216
+ // the bundles most likely to be honest.
217
+ if (node.type === 'Identifier' && constants) return (_constants_get = constants.get(node['name'])) != null ? _constants_get : null;
218
+ if (node.type === 'TemplateLiteral') {
219
+ var _node_expressions, _node_quasis;
220
+ const expressions = (_node_expressions = node['expressions']) != null ? _node_expressions : [];
221
+ const quasis = (_node_quasis = node['quasis']) != null ? _node_quasis : [];
222
+ if (!expressions.length) {
223
+ var _ref;
224
+ var _quasis__value, _quasis_;
225
+ return quasis.length === 1 ? (_ref = (_quasis_ = quasis[0]) == null ? void 0 : (_quasis__value = _quasis_.value) == null ? void 0 : _quasis__value.cooked) != null ? _ref : null : null;
226
+ }
227
+ // `${BASE}/zen` — resolvable exactly when every hole is.
228
+ let out = '';
229
+ for(let index = 0; index < quasis.length; index += 1){
230
+ var _ref1;
231
+ var _quasis_index_value, _quasis_index;
232
+ out += (_ref1 = (_quasis_index = quasis[index]) == null ? void 0 : (_quasis_index_value = _quasis_index.value) == null ? void 0 : _quasis_index_value.cooked) != null ? _ref1 : '';
233
+ if (index < expressions.length) {
234
+ const filled = staticString(expressions[index], constants);
235
+ if (filled === null) return null;
236
+ out += filled;
237
+ }
238
+ }
239
+ return out;
240
+ }
241
+ if (node.type === 'BinaryExpression' && node['operator'] === '+') {
242
+ const left = staticString(node['left'], constants);
243
+ const right = staticString(node['right'], constants);
244
+ return left !== null && right !== null ? left + right : null;
245
+ }
246
+ return null;
247
+ }
248
+ /** The property name a member expression reads, computed or not. */ function propertyName(node, constants) {
249
+ const property = node['property'];
250
+ if (!node['computed']) return (property == null ? void 0 : property.type) === 'Identifier' ? property['name'] : null;
251
+ return staticString(property, constants);
252
+ }
253
+ /**
254
+ * The origin of a URL argument, when it is a knowable http(s) URL.
255
+ *
256
+ * Scheme-checked HERE, once (AGL-1094). An opaque origin — every `data:`,
257
+ * `blob:` and `javascript:` URL — makes `new URL(x).origin` the STRING
258
+ * `"null"`, and a caller that then re-parsed that string threw `Invalid URL`
259
+ * and took the whole checker down with it. Nothing downstream should have to
260
+ * know that, so nothing downstream gets the chance.
261
+ */ function literalOrigin(node, constants) {
262
+ const value = staticString(node, constants);
263
+ if (!value) return null;
264
+ try {
265
+ const url = new URL(value);
266
+ return /^https?:$/.test(url.protocol) ? url.origin : null;
267
+ } catch (unused) {
268
+ return null;
269
+ }
270
+ }
271
+ /** The detection result of a bundle no pass could read. */ const NOTHING_DETECTED = {
272
+ contributes: {},
273
+ unresolved: []
274
+ };
275
+ /**
276
+ * Registration calls whose argument says what a bundle contributes, by the
277
+ * name they are reached through: `h.aglyn.registerConsoleExtension(...)`,
278
+ * `registerConsoleExtension(...)` after the realm template's host mapping,
279
+ * `aglyn.components.registerComponent(...)`.
280
+ */ const REGISTRATION_CALLS = new Set([
281
+ 'registerConsoleExtension',
282
+ 'registerSiteRuntime',
283
+ 'registerComponent',
284
+ 'addDependency',
285
+ 'defineUiFeatureBundle'
286
+ ]);
287
+ /**
288
+ * Console extension fields the shell draws on every screen of a workspace:
289
+ * nav tabs, organization tabs, providers, staff pages and the dashboard and
290
+ * settings entries. A plugin registering any of them loads with the shell.
291
+ */ const SHELL_EXTENSION_FIELDS = [
292
+ 'navItems',
293
+ 'orgNavItems',
294
+ 'providers',
295
+ 'staffPages',
296
+ 'dashboardCards',
297
+ 'settingsSections'
298
+ ];
299
+ /**
300
+ * What `register()` visibly registers (AGL-3116), read from the tree.
301
+ *
302
+ * A heuristic like every check here: it reads registration calls whose
303
+ * arguments are written out — an object literal, a string or a named slot —
304
+ * and reports every call it cannot read as `unresolved` rather than guessing.
305
+ * The declaration stays the contract; this is how a publisher learns theirs
306
+ * is incomplete before a published page fails to load the plugin.
307
+ */ function detectRegistrations(program, constants) {
308
+ const slots = new Set();
309
+ const routes = new Set();
310
+ const orgRoutes = new Set();
311
+ const components = new Set();
312
+ const features = new Set();
313
+ const unresolved = new Set();
314
+ let shell = false;
315
+ const objectProperty = (object, name)=>{
316
+ var _object_properties;
317
+ if ((object == null ? void 0 : object.type) !== 'ObjectExpression') return undefined;
318
+ for (const property of (_object_properties = object['properties']) != null ? _object_properties : []){
319
+ if (property.type !== 'Property') continue;
320
+ const key = property['key'];
321
+ const keyName = !property['computed'] && (key == null ? void 0 : key.type) === 'Identifier' ? key['name'] : staticString(key, constants);
322
+ if (keyName === name) return property['value'];
323
+ }
324
+ return undefined;
325
+ };
326
+ const listOf = (node)=>{
327
+ var _node_elements;
328
+ return (node == null ? void 0 : node.type) === 'ArrayExpression' ? (_node_elements = node['elements']) != null ? _node_elements : [] : null;
329
+ };
330
+ // A slot as a widget names it: a string, or a catalog entry
331
+ // (`CONSOLE_WIDGET_SLOTS.hostActivity`), whose property IS the slot id.
332
+ const slotName = (node)=>{
333
+ const literal = staticString(node, constants);
334
+ if (literal !== null) return literal;
335
+ return (node == null ? void 0 : node.type) === 'MemberExpression' ? propertyName(node, constants) : null;
336
+ };
337
+ walk(program, (node)=>{
338
+ var _node_arguments;
339
+ if (node.type !== 'CallExpression') return;
340
+ const callee = node['callee'];
341
+ const name = (callee == null ? void 0 : callee.type) === 'Identifier' ? callee['name'] : (callee == null ? void 0 : callee.type) === 'MemberExpression' ? propertyName(callee, constants) : null;
342
+ if (!name || !REGISTRATION_CALLS.has(name)) return;
343
+ const args = (_node_arguments = node['arguments']) != null ? _node_arguments : [];
344
+ if (name === 'registerConsoleExtension') {
345
+ const extension = args[0];
346
+ if ((extension == null ? void 0 : extension.type) !== 'ObjectExpression') {
347
+ unresolved.add('a console extension built at runtime');
348
+ return;
349
+ }
350
+ const widgets = objectProperty(extension, 'widgets');
351
+ if (widgets) {
352
+ const list = listOf(widgets);
353
+ if (!list) unresolved.add('a console widget list built at runtime');
354
+ for (const widget of list != null ? list : []){
355
+ const slot = slotName(objectProperty(widget, 'slot'));
356
+ if (slot) slots.add(slot);
357
+ else unresolved.add('a console widget whose slot is built at runtime');
358
+ }
359
+ }
360
+ for (const field of SHELL_EXTENSION_FIELDS){
361
+ const value = objectProperty(extension, field);
362
+ if (!value) continue;
363
+ shell = true;
364
+ if (field !== 'navItems' && field !== 'orgNavItems') continue;
365
+ const into = field === 'navItems' ? routes : orgRoutes;
366
+ const list = listOf(value);
367
+ if (!list) unresolved.add(`console ${field} built at runtime`);
368
+ for (const item of list != null ? list : []){
369
+ const href = staticString(objectProperty(item, 'href'), constants);
370
+ if (href) into.add(href);
371
+ else unresolved.add(`a console ${field} entry whose href is built at runtime`);
372
+ }
373
+ }
374
+ return;
375
+ }
376
+ if (name === 'registerSiteRuntime') {
377
+ const id = staticString(objectProperty(args[0], 'runtimeId'), constants);
378
+ if (id) features.add(id);
379
+ else unresolved.add('a site runtime whose runtimeId is built at runtime');
380
+ return;
381
+ }
382
+ if (name === 'registerComponent') {
383
+ const id = staticString(objectProperty(args[1], '$id'), constants);
384
+ if (id) components.add(id);
385
+ else unresolved.add('a canvas component whose $id is built at runtime');
386
+ return;
387
+ }
388
+ // `addDependency` / `defineUiFeatureBundle`: a component bundle whose
389
+ // entries register later, from a list this pass does not follow.
390
+ unresolved.add('a canvas component bundle');
391
+ });
392
+ const contributes = {};
393
+ if (components.size || features.size) {
394
+ contributes.site = _extends({}, components.size ? {
395
+ components: [
396
+ ...components
397
+ ].sort()
398
+ } : {}, features.size ? {
399
+ features: [
400
+ ...features
401
+ ].sort()
402
+ } : {});
403
+ }
404
+ if (slots.size || routes.size || orgRoutes.size || shell) {
405
+ contributes.console = _extends({}, slots.size ? {
406
+ slots: [
407
+ ...slots
408
+ ].sort()
409
+ } : {}, routes.size ? {
410
+ routes: [
411
+ ...routes
412
+ ].sort()
413
+ } : {}, orgRoutes.size ? {
414
+ orgRoutes: [
415
+ ...orgRoutes
416
+ ].sort()
417
+ } : {}, shell ? {
418
+ shell: true
419
+ } : {});
420
+ }
421
+ return {
422
+ contributes,
423
+ unresolved: [
424
+ ...unresolved
425
+ ].sort()
426
+ };
427
+ }
428
+ /** A declaration in the words a reviewer reads: `console slots hostActivity`. */ function describeContributions(contributes) {
429
+ var _contributes_site, _contributes_console;
430
+ var _site_components, _site_features, _shell_slots, _shell_routes, _shell_orgRoutes;
431
+ const parts = [];
432
+ const site = (_contributes_site = contributes.site) != null ? _contributes_site : {};
433
+ const shell = (_contributes_console = contributes.console) != null ? _contributes_console : {};
434
+ if ((_site_components = site.components) == null ? void 0 : _site_components.length) parts.push(`site components ${site.components.join(', ')}`);
435
+ if ((_site_features = site.features) == null ? void 0 : _site_features.length) parts.push(`site features ${site.features.join(', ')}`);
436
+ if ((_shell_slots = shell.slots) == null ? void 0 : _shell_slots.length) parts.push(`console slots ${shell.slots.join(', ')}`);
437
+ if ((_shell_routes = shell.routes) == null ? void 0 : _shell_routes.length) parts.push(`console routes ${shell.routes.join(', ')}`);
438
+ if ((_shell_orgRoutes = shell.orgRoutes) == null ? void 0 : _shell_orgRoutes.length) {
439
+ parts.push(`console organization routes ${shell.orgRoutes.join(', ')}`);
440
+ }
441
+ if (shell.shell) parts.push('the console shell');
442
+ return parts.join(' · ') || 'nothing';
443
+ }
444
+ /**
445
+ * The `contributions` area (AGL-3116): what the bundle registers against what
446
+ * its manifest declares.
447
+ *
448
+ * Every registration the tree shows must be declared, because the loaders
449
+ * read ONLY the declaration: a slot the manifest omits is a slot whose
450
+ * screens never load the plugin, and a component it omits is an element that
451
+ * renders empty on every published page that places it. A declared entry the
452
+ * bundle never registers is a warning — the plugin loads there for nothing.
453
+ */ function compareContributions(detected, options, add, details, markUnknown) {
454
+ var _found_site, _declared_site, _found_site1, _declared_site1, _found_console, _declared_console, _found_console1, _declared_console1, _found_console2, _declared_console2, _found_console3, _declared_console3, _declared_site2, _found_site2, _declared_site3, _found_site3, _declared_console4, _found_console4;
455
+ const found = detected.contributes;
456
+ const registers = describeContributions(found);
457
+ const registersSomething = Boolean(found.site || found.console) || detected.unresolved.length > 0;
458
+ const unreadable = detected.unresolved.length ? ` It also makes registrations the checker could not read: ${detected.unresolved.join('; ')}.` : '';
459
+ const declared = options == null ? void 0 : options.declaredContributions;
460
+ if (declared === undefined) {
461
+ // Nothing to compare against is `unknown`, never a pass — the same
462
+ // reading the network row gives a bundle checked without its manifest.
463
+ if (!registersSomething) {
464
+ details.set('contributions', 'registers nothing');
465
+ return;
466
+ }
467
+ markUnknown('contributions');
468
+ details.set('contributions', `registers ${registers} — no manifest was supplied, so nothing was compared`);
469
+ return;
470
+ }
471
+ if (declared === null) {
472
+ details.set('contributions', registersSomething ? `undeclared · registers ${registers}` : 'declares and registers nothing');
473
+ if (!registersSomething) return;
474
+ add((options == null ? void 0 : options.requireContributions) ? 'error' : 'warning', 'contributions', `the manifest declares no "contributes", and register() registers ` + `${registers}.${unreadable} Declare it — ` + `"contributes": ${JSON.stringify(found)} — because the loaders place ` + 'a plugin by its declaration alone. Undeclared, a published page ' + 'loads it only where its element is placed and the console loads it ' + 'with the shell.');
475
+ return;
476
+ }
477
+ details.set('contributions', `declares ${describeContributions(declared)}`);
478
+ const missing = (label, registered, listed, consequence)=>{
479
+ for (const id of registered != null ? registered : []){
480
+ if ((listed != null ? listed : []).includes(id)) continue;
481
+ add('error', 'contributions', `register() registers ${label} "${id}", which the manifest does not ` + `declare — ${consequence}`);
482
+ }
483
+ };
484
+ missing('the site component', (_found_site = found.site) == null ? void 0 : _found_site.components, (_declared_site = declared.site) == null ? void 0 : _declared_site.components, 'a published page that places it would never load the plugin');
485
+ missing('the site feature', (_found_site1 = found.site) == null ? void 0 : _found_site1.features, (_declared_site1 = declared.site) == null ? void 0 : _declared_site1.features, 'no published page would ever load the plugin to run it');
486
+ missing('a widget in the console slot', (_found_console = found.console) == null ? void 0 : _found_console.slots, (_declared_console = declared.console) == null ? void 0 : _declared_console.slots, 'a screen that renders the slot would never load the plugin');
487
+ missing('the console route', (_found_console1 = found.console) == null ? void 0 : _found_console1.routes, (_declared_console1 = declared.console) == null ? void 0 : _declared_console1.routes, 'the route would not find the plugin that serves it');
488
+ missing('the console organization route', (_found_console2 = found.console) == null ? void 0 : _found_console2.orgRoutes, (_declared_console2 = declared.console) == null ? void 0 : _declared_console2.orgRoutes, 'the route would not find the plugin that serves it');
489
+ if (((_found_console3 = found.console) == null ? void 0 : _found_console3.shell) && !((_declared_console3 = declared.console) == null ? void 0 : _declared_console3.shell)) {
490
+ add('error', 'contributions', 'register() adds a nav tab, a provider or another entry the console ' + 'shell draws on every screen, and the manifest does not declare ' + '"console": { "shell": true } — the shell would draw it only on ' + 'screens that happened to load the plugin for something else');
491
+ }
492
+ if (detected.unresolved.length) {
493
+ add('warning', 'contributions', `the checker could not read ${detected.unresolved.join('; ')} — ` + 'confirm the declaration covers what it registers');
494
+ }
495
+ const unused = (label, listed, registered)=>{
496
+ // Only when every registration of that kind was readable: an unreadable
497
+ // one may be exactly the entry that is declared.
498
+ if (detected.unresolved.length) return;
499
+ for (const id of listed != null ? listed : []){
500
+ if ((registered != null ? registered : []).includes(id)) continue;
501
+ add('warning', 'contributions', `the manifest declares ${label} "${id}", and register() never ` + 'registers it — the plugin would load there for nothing');
502
+ }
503
+ };
504
+ unused('the site component', (_declared_site2 = declared.site) == null ? void 0 : _declared_site2.components, (_found_site2 = found.site) == null ? void 0 : _found_site2.components);
505
+ unused('the site feature', (_declared_site3 = declared.site) == null ? void 0 : _declared_site3.features, (_found_site3 = found.site) == null ? void 0 : _found_site3.features);
506
+ unused('the console slot', (_declared_console4 = declared.console) == null ? void 0 : _declared_console4.slots, (_found_console4 = found.console) == null ? void 0 : _found_console4.slots);
507
+ }
508
+ function analyseBundle(source, options) {
509
+ var _ref;
510
+ const problems = [];
511
+ const seen = new Set();
512
+ // Every area starts as "ran, found nothing" and is downgraded by its own
513
+ // findings, so the summary cannot drift from the problem list (AGL-1087).
514
+ const status = new Map(CHECK_ORDER.map((id)=>[
515
+ id,
516
+ 'pass'
517
+ ]));
518
+ const details = new Map();
519
+ const add = (level, check, message)=>{
520
+ if (level === 'error') status.set(check, 'fail');
521
+ else if (status.get(check) === 'pass') status.set(check, 'question');
522
+ if (seen.has(message) || seen.size >= MAX_PROBLEMS) return;
523
+ seen.add(message);
524
+ problems.push({
525
+ level,
526
+ message,
527
+ check
528
+ });
529
+ };
530
+ /** Mark the areas that never ran, so they cannot read as clean. */ const unknownFrom = (...ids)=>{
531
+ for (const id of ids)status.set(id, 'unknown');
532
+ };
533
+ const summarise = ()=>CHECK_ORDER.map((id)=>{
534
+ var _status_get;
535
+ return _extends({
536
+ id,
537
+ label: CHECK_LABELS[id],
538
+ status: (_status_get = status.get(id)) != null ? _status_get : 'unknown'
539
+ }, details.has(id) ? {
540
+ detail: details.get(id)
541
+ } : {});
542
+ });
543
+ const maxBytes = (_ref = options == null ? void 0 : options.maxBytes) != null ? _ref : MAX_PLUGIN_BUNDLE_BYTES;
544
+ const bytes = new TextEncoder().encode(source).byteLength;
545
+ details.set('size', `${bytes.toLocaleString('en-US')} bytes of ${maxBytes.toLocaleString('en-US')}`);
546
+ if (bytes === 0) {
547
+ add('error', 'size', 'bundle is empty');
548
+ unknownFrom('parse', 'entry', 'self-contained', 'code-execution', 'globals', 'storage', 'dynamic-import', 'network', 'obfuscation', 'contributions');
549
+ return {
550
+ ok: false,
551
+ problems,
552
+ checks: summarise(),
553
+ exports: {
554
+ register: false,
555
+ registerApi: false
556
+ },
557
+ contributions: NOTHING_DETECTED
558
+ };
559
+ }
560
+ if (bytes > maxBytes) {
561
+ add('error', 'size', `bundle is ${bytes} bytes (limit ${maxBytes})`);
562
+ }
563
+ const parseOptions = {
564
+ ecmaVersion: 'latest',
565
+ sourceType: 'module',
566
+ allowHashBang: true,
567
+ allowAwaitOutsideFunction: true
568
+ };
569
+ let program;
570
+ try {
571
+ program = parse(source, parseOptions);
572
+ } catch (error) {
573
+ // Unparseable means unanalysable, and the loader would fail on it too.
574
+ // Nothing else ran, and saying so is the whole point of `unknown`: a
575
+ // bundle nobody could read must not show nine green rows.
576
+ add('error', 'parse', `bundle does not parse as an ES module: ${error instanceof Error ? error.message : String(error)}`);
577
+ unknownFrom('entry', 'self-contained', 'code-execution', 'globals', 'storage', 'dynamic-import', 'network', 'obfuscation', 'contributions');
578
+ return {
579
+ ok: false,
580
+ problems,
581
+ checks: summarise(),
582
+ exports: {
583
+ register: false,
584
+ registerApi: false
585
+ },
586
+ contributions: NOTHING_DETECTED
587
+ };
588
+ }
589
+ // Names bound to a global, so `const g = globalThis; g['ev'+'al']` reads
590
+ // as access on a global rather than on some object we know nothing about.
591
+ const aliases = new Set();
592
+ const noteAlias = (name, init)=>{
593
+ if (typeof name !== 'string' || !init) return;
594
+ const roots = init.type === 'LogicalExpression' ? [
595
+ init['left'],
596
+ init['right']
597
+ ] : [
598
+ init
599
+ ];
600
+ for (const root of roots){
601
+ if ((root == null ? void 0 : root.type) === 'Identifier' && GLOBAL_ROOTS.has(root['name'])) {
602
+ aliases.add(name);
603
+ }
604
+ }
605
+ };
606
+ // Local name -> the constant string it holds (AGL-1093).
607
+ //
608
+ // A binding is only usable when the whole tree agrees on it: declared once,
609
+ // never assigned again, and never a parameter or another binder anywhere.
610
+ // Any of those means the value at a given call site is a GUESS, and a guess
611
+ // is how a checker starts making claims about code it did not read.
612
+ const constants = new Map();
613
+ {
614
+ const bound = new Map();
615
+ const poisoned = new Set();
616
+ const declared = new Set();
617
+ const poison = (name)=>{
618
+ if (typeof name === 'string') poisoned.add(name);
619
+ };
620
+ /** Every name a pattern binds — a parameter shadowing a constant is a
621
+ * different variable, and resolving it to the outer value would be a
622
+ * fabrication. */ const poisonPattern = (node)=>{
623
+ if (!node) return;
624
+ if (node.type === 'Identifier') return poison(node['name']);
625
+ for (const key of [
626
+ 'left',
627
+ 'argument',
628
+ 'properties',
629
+ 'elements',
630
+ 'value'
631
+ ]){
632
+ const value = node[key];
633
+ if (Array.isArray(value)) value.forEach((item)=>poisonPattern(item));
634
+ else if (value) poisonPattern(value);
635
+ }
636
+ };
637
+ walk(program, (node)=>{
638
+ if (node.type === 'VariableDeclarator') {
639
+ const id = node['id'];
640
+ if ((id == null ? void 0 : id.type) === 'Identifier') {
641
+ const name = id['name'];
642
+ if (declared.has(name)) poison(name);
643
+ declared.add(name);
644
+ bound.set(name, node['init']);
645
+ } else {
646
+ poisonPattern(id);
647
+ }
648
+ } else if (node.type === 'AssignmentExpression') {
649
+ poisonPattern(node['left']);
650
+ } else if (node.type === 'UpdateExpression') {
651
+ poisonPattern(node['argument']);
652
+ } else if (node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression') {
653
+ var _node_params;
654
+ var _node_id;
655
+ ;
656
+ ((_node_params = node['params']) != null ? _node_params : []).forEach(poisonPattern);
657
+ if (((_node_id = node['id']) == null ? void 0 : _node_id.type) === 'Identifier') poison(node['id']['name']);
658
+ } else if (node.type === 'CatchClause') {
659
+ poisonPattern(node['param']);
660
+ } else if (node.type === 'ClassDeclaration' || node.type === 'ClassExpression') {
661
+ var _node_id1;
662
+ if (((_node_id1 = node['id']) == null ? void 0 : _node_id1.type) === 'Identifier') poison(node['id']['name']);
663
+ }
664
+ });
665
+ // Two passes, so `const BASE = 'https://x'` then `BASE + '/y'` resolves.
666
+ // A third buys almost nothing and each is a full re-read of the bindings.
667
+ for(let pass = 0; pass < 2; pass += 1){
668
+ for (const [name, init] of bound){
669
+ if (poisoned.has(name) || constants.has(name)) continue;
670
+ const value = staticString(init, constants);
671
+ if (value !== null) constants.set(name, value);
672
+ }
673
+ }
674
+ }
675
+ // Local name -> the callable it stands for (AGL-1090). `const f = fetch`,
676
+ // `const d = globalThis.fetch`, `const {fetch: h} = globalThis`.
677
+ const callableAliases = new Map();
678
+ /** The aliasable callable an initializer denotes, if any. */ const callableFrom = (init)=>{
679
+ if (!init) return null;
680
+ if (init.type === 'Identifier' && ALIASABLE_CALLABLES.has(init['name'])) {
681
+ return init['name'];
682
+ }
683
+ // `globalThis.fetch` / `window['fe' + 'tch']` — the property is what the
684
+ // name will stand for, and only when the object is a global (an unknown
685
+ // object's `.fetch` is somebody else's method).
686
+ if (init.type === 'MemberExpression') {
687
+ const property = propertyName(init);
688
+ const object = init['object'];
689
+ if (property && ALIASABLE_CALLABLES.has(property) && (object == null ? void 0 : object.type) === 'Identifier' && (GLOBAL_ROOTS.has(object['name']) || aliases.has(object['name']))) {
690
+ return property;
691
+ }
692
+ }
693
+ return null;
694
+ };
695
+ const noteCallableAlias = (id, init)=>{
696
+ if (!id) return;
697
+ if (id.type === 'Identifier') {
698
+ const callable = callableFrom(init);
699
+ if (callable) callableAliases.set(id['name'], callable);
700
+ return;
701
+ }
702
+ // `const { fetch } = globalThis` and `const { fetch: h } = globalThis`.
703
+ if (id.type === 'ObjectPattern' && init) {
704
+ var _id_properties;
705
+ const fromGlobal = init.type === 'Identifier' && (GLOBAL_ROOTS.has(init['name']) || aliases.has(init['name']));
706
+ if (!fromGlobal) return;
707
+ for (const property of (_id_properties = id['properties']) != null ? _id_properties : []){
708
+ const key = property['key'];
709
+ const value = property['value'];
710
+ const name = (key == null ? void 0 : key.type) === 'Identifier' ? key['name'] : staticString(key);
711
+ if (name && ALIASABLE_CALLABLES.has(name) && (value == null ? void 0 : value.type) === 'Identifier') {
712
+ callableAliases.set(value['name'], name);
713
+ }
714
+ }
715
+ }
716
+ };
717
+ // Global-object aliases first, as a complete pass: the callable pass below
718
+ // resolves `g.fetch` against them, and walk order is not source order.
719
+ walk(program, (node)=>{
720
+ if (node.type === 'VariableDeclarator') {
721
+ const id = node['id'];
722
+ if ((id == null ? void 0 : id.type) === 'Identifier') noteAlias(id['name'], node['init']);
723
+ } else if (node.type === 'AssignmentExpression' && node['operator'] === '=') {
724
+ const left = node['left'];
725
+ if ((left == null ? void 0 : left.type) === 'Identifier') noteAlias(left['name'], node['right']);
726
+ }
727
+ });
728
+ walk(program, (node)=>{
729
+ if (node.type === 'VariableDeclarator') {
730
+ noteCallableAlias(node['id'], node['init']);
731
+ } else if (node.type === 'AssignmentExpression' && node['operator'] === '=') {
732
+ noteCallableAlias(node['left'], node['right']);
733
+ }
734
+ });
735
+ const isGlobalRef = (node)=>!!node && node.type === 'Identifier' && (GLOBAL_ROOTS.has(node['name']) || aliases.has(node['name']));
736
+ const declared = options == null ? void 0 : options.declaredNetwork;
737
+ const allowlist = new Set((declared != null ? declared : []).map((origin)=>{
738
+ try {
739
+ return new URL(origin).origin;
740
+ } catch (unused) {
741
+ return origin;
742
+ }
743
+ }));
744
+ /** Level for a network finding: a claim only when we know what was declared. */ const networkLevel = declared ? 'error' : 'warning';
745
+ // What the bundle reaches for, so the summary row can SAY it (AGL-1087) —
746
+ // "calls https://api.stripe.com, declared" is the line a reviewer would
747
+ // otherwise open the bundle to get.
748
+ const networkApis = new Set();
749
+ const networkOrigins = new Set();
750
+ let runtimeUrls = 0;
751
+ /** Origins handed to a callee the checker could not resolve (AGL-1090). */ const unresolvedOrigins = new Set();
752
+ const noteNetwork = (api, urlArg)=>{
753
+ const origin = literalOrigin(urlArg, constants);
754
+ networkApis.add(api);
755
+ if (origin) networkOrigins.add(origin);
756
+ else runtimeUrls += 1;
757
+ if (!declared) {
758
+ add('warning', 'network', `bundle makes network calls (${api}) — check them against the ` + "manifest's declared network capability");
759
+ return;
760
+ }
761
+ if (!allowlist.size) {
762
+ add(networkLevel, 'network', `bundle calls ${api} but the manifest declares no network ` + 'capability — declare every origin under capabilities.network ' + '(the CSP blocks the rest at runtime)');
763
+ return;
764
+ }
765
+ if (!origin) {
766
+ add('warning', 'network', `${api} is called with a URL that is only known at runtime — it ` + 'cannot be checked against the declared origins');
767
+ return;
768
+ }
769
+ if (!allowlist.has(origin)) {
770
+ add(networkLevel, 'network', `${api} calls ${origin}, which the manifest does not declare ` + `(declared: ${[
771
+ ...allowlist
772
+ ].join(', ')})`);
773
+ }
774
+ };
775
+ /**
776
+ * A call the checker could not resolve, given an absolute URL.
777
+ *
778
+ * Reported as a QUESTION, never a refusal: most of these are helpers, and
779
+ * refusing every unrecognised call that mentions a URL would make the
780
+ * verifier useless. But leaving them silent is what let the network row
781
+ * claim "no network calls" over a bundle whose calls it simply could not
782
+ * follow — and a URL to an origin the manifest never declared is exactly
783
+ * what a reviewer should be pointed at.
784
+ */ const noteUnresolvedUrl = (name, urlArg)=>{
785
+ if (name && URL_TAKING_NON_CALLS.has(name)) return;
786
+ const origin = literalOrigin(urlArg, constants);
787
+ if (!origin) return;
788
+ // A declared origin is consistent with the manifest and permitted by the
789
+ // CSP, so there is no question to raise about it.
790
+ if (allowlist.has(origin)) return;
791
+ unresolvedOrigins.add(origin);
792
+ add('warning', 'network', `${name ? `${name}()` : 'a call'} is passed ${origin}, which the ` + 'manifest does not declare — the checker could not tell whether it ' + 'reaches the network, so read this call');
793
+ };
794
+ let exportsRegister = false;
795
+ let exportsRegisterApi = false;
796
+ const noteExport = (name)=>{
797
+ if (name === 'register') exportsRegister = true;
798
+ else if (name === 'registerApi') exportsRegisterApi = true;
799
+ };
800
+ let obfuscatedNames = 0;
801
+ walk(program, (node)=>{
802
+ switch(node.type){
803
+ // ---- entry exports + self-containment ----
804
+ case 'ImportDeclaration':
805
+ add('error', 'self-contained', 'bundle has static imports — realm bundles must be self-contained ' + '(react/@aglyn/aglyn come from the host ABI; see the realm rollup ' + 'template)');
806
+ break;
807
+ case 'ExportAllDeclaration':
808
+ case 'ExportNamedDeclaration':
809
+ {
810
+ var _node_specifiers;
811
+ if (node['source']) {
812
+ add('error', 'self-contained', 'bundle re-exports from another module — realm bundles must be ' + 'self-contained (see the realm rollup template)');
813
+ }
814
+ const declaration = node['declaration'];
815
+ if (declaration) {
816
+ var _declaration_declarations;
817
+ if (declaration['id']) noteExport(declaration['id']['name']);
818
+ for (const declarator of (_declaration_declarations = declaration['declarations']) != null ? _declaration_declarations : []){
819
+ const id = declarator['id'];
820
+ if ((id == null ? void 0 : id.type) === 'Identifier') noteExport(id['name']);
821
+ }
822
+ }
823
+ for (const specifier of (_node_specifiers = node['specifiers']) != null ? _node_specifiers : []){
824
+ const exported = specifier['exported'];
825
+ noteExport((exported == null ? void 0 : exported.type) === 'Identifier' ? exported['name'] : staticString(exported));
826
+ }
827
+ break;
828
+ }
829
+ // ---- dynamic import ----
830
+ case 'ImportExpression':
831
+ {
832
+ const specifier = staticString(node['source'], constants);
833
+ if (specifier === null) {
834
+ add('error', 'dynamic-import', 'dynamic import with a specifier computed at runtime is not ' + 'allowed — the loader cannot know what would be fetched');
835
+ } else if (/^https?:/i.test(specifier)) {
836
+ add('error', 'dynamic-import', 'dynamic import of remote URLs is not allowed');
837
+ }
838
+ break;
839
+ }
840
+ // ---- calls ----
841
+ case 'CallExpression':
842
+ case 'NewExpression':
843
+ {
844
+ var _node_arguments, _ref, _ref1;
845
+ const callee = node['callee'];
846
+ const args = (_node_arguments = node['arguments']) != null ? _node_arguments : [];
847
+ const written = (callee == null ? void 0 : callee.type) === 'Identifier' ? callee['name'] : (callee == null ? void 0 : callee.type) === 'MemberExpression' ? propertyName(callee, constants) : null;
848
+ // An alias resolves to what it stands for (AGL-1090), so `f(url)`
849
+ // after `const f = fetch` is a fetch call.
850
+ const name = (_ref = (_ref1 = written && callableAliases.get(written)) != null ? _ref1 : written) != null ? _ref : null;
851
+ if (name === 'eval') add('error', 'code-execution', 'eval() is not allowed');
852
+ if (name === 'Function') add('error', 'code-execution', 'the Function constructor is not allowed');
853
+ // `(()=>{}).constructor('return 1')()` — the Function constructor
854
+ // reached through any function value, which is why the CALL is the
855
+ // finding rather than the name `Function`.
856
+ if (name === 'constructor' && (callee == null ? void 0 : callee.type) === 'MemberExpression') add('error', 'code-execution', 'calling .constructor() is not allowed — it reaches the ' + 'Function constructor from any function value');
857
+ if (name && NETWORK_CALLS.has(name)) noteNetwork(name, args[0]);
858
+ else if (name && NETWORK_CONSTRUCTORS.has(name)) noteNetwork(name, node.type === 'NewExpression' ? args[0] : args[1]);
859
+ else noteUnresolvedUrl(name, args[0]);
860
+ break;
861
+ }
862
+ // ---- member access ----
863
+ case 'MemberExpression':
864
+ {
865
+ const object = node['object'];
866
+ const name = propertyName(node, constants);
867
+ if (isGlobalRef(object) && name === null) {
868
+ add('error', 'globals', `computed property access on ${object['name'] || 'a global'} is not allowed — a property chosen at runtime cannot be ` + 'reviewed');
869
+ break;
870
+ }
871
+ // Property names only mean anything on a global: `response.cookie`
872
+ // and `state.localStorage` are somebody else's object.
873
+ if (name === 'cookie' && isGlobalRef(object)) add('error', 'storage', 'document.cookie access is not allowed');
874
+ if (name && STORAGE_NAMES.has(name) && isGlobalRef(object)) add('error', 'storage', 'browser storage access is not allowed (use host-mediated data)');
875
+ if (name === 'eval' && isGlobalRef(object)) add('error', 'code-execution', 'eval() is not allowed');
876
+ break;
877
+ }
878
+ // ---- bare references ----
879
+ case 'Identifier':
880
+ {
881
+ const name = node['name'];
882
+ if (STORAGE_NAMES.has(name)) add('error', 'storage', 'browser storage access is not allowed (use host-mediated data)');
883
+ if (OBFUSCATED_NAME.test(name)) obfuscatedNames += 1;
884
+ break;
885
+ }
886
+ // ---- obfuscation ----
887
+ case 'Literal':
888
+ {
889
+ const value = node['value'];
890
+ if (typeof value === 'string' && value.length >= MIN_SUSPICIOUS_BASE64 && BASE64_BLOB.test(value)) {
891
+ add('warning', 'obfuscation', `bundle embeds a ${value.length}-character base64 literal — ` + 'decode it before approving');
892
+ }
893
+ break;
894
+ }
895
+ default:
896
+ break;
897
+ }
898
+ });
899
+ if (!exportsRegister && !exportsRegisterApi) {
900
+ add('error', 'entry', 'bundle exports neither register(host) nor registerApi() — ' + 'nothing for the loader to call');
901
+ }
902
+ if (obfuscatedNames >= MIN_OBFUSCATED_NAMES) {
903
+ add('warning', 'obfuscation', `bundle uses ${obfuscatedNames} machine-obfuscated identifiers ` + '(_0x… naming) — minifiers do not produce these');
904
+ }
905
+ const longestLine = source.split('\n').reduce((longest, line)=>Math.max(longest, line.length), 0);
906
+ if (longestLine > MAX_READABLE_LINE) {
907
+ add('warning', 'obfuscation', `bundle has a single ${longestLine}-character line — nothing on it ` + 'can be read in review; ask for a readable build or a source map');
908
+ }
909
+ details.set('entry', [
910
+ exportsRegister ? 'register(host)' : null,
911
+ exportsRegisterApi ? 'registerApi()' : null
912
+ ].filter(Boolean).join(', ') || 'none');
913
+ // What the network check actually saw. Without the manifest it saw the
914
+ // calls but could not judge them, and that is `unknown`, not a pass — the
915
+ // row a reviewer must not read as "checked and fine".
916
+ if (!declared) {
917
+ if (networkApis.size) {
918
+ status.set('network', 'unknown');
919
+ details.set('network', `calls ${[
920
+ ...networkApis
921
+ ].join(', ')} — no declared origins were ` + 'supplied, so nothing was compared');
922
+ } else {
923
+ details.set('network', 'no network calls');
924
+ }
925
+ } else if (!networkApis.size) {
926
+ details.set('network', unresolvedOrigins.size ? `no resolved network calls, but ${[
927
+ ...unresolvedOrigins
928
+ ].join(', ')} ` + 'is passed to a call the checker could not follow' : 'no network calls');
929
+ } else {
930
+ const origins = networkOrigins.size ? [
931
+ ...networkOrigins
932
+ ].map((origin)=>allowlist.has(origin) ? `${origin} (declared)` : `${origin} (NOT declared)`).join(', ') : '';
933
+ details.set('network', [
934
+ `calls ${[
935
+ ...networkApis
936
+ ].join(', ')}`,
937
+ origins,
938
+ runtimeUrls ? `${runtimeUrls} call(s) with a URL only known at runtime` : ''
939
+ ].filter(Boolean).join(' · '));
940
+ }
941
+ const detected = detectRegistrations(program, constants);
942
+ compareContributions(detected, options, add, details, (check)=>status.set(check, 'unknown'));
943
+ return {
944
+ ok: !problems.some((problem)=>problem.level === 'error'),
945
+ problems,
946
+ checks: summarise(),
947
+ exports: {
948
+ register: exportsRegister,
949
+ registerApi: exportsRegisterApi
950
+ },
951
+ contributions: detected
952
+ };
953
+ }
954
+ /**
955
+ * Run the checks over a bundle. NEVER throws (AGL-1094).
956
+ *
957
+ * The publish route calls this directly, so an unexpected failure in here
958
+ * used to mean a 500 and no explanation for the publisher — and in the review
959
+ * sweep it looked exactly like a missing artifact, which sent the
960
+ * investigation to the storage bucket instead of to this file. A checker that
961
+ * cannot analyse a bundle has an answer: say so, in the verdict, as an error.
962
+ */ export function checkPluginBundle(source, options) {
963
+ try {
964
+ return analyseBundle(source, options);
965
+ } catch (error) {
966
+ return {
967
+ ok: false,
968
+ problems: [
969
+ {
970
+ level: 'error',
971
+ check: 'parse',
972
+ message: 'the verifier failed on this bundle — treat it as unchecked and ' + `report it: ${error instanceof Error ? error.message : String(error)}`
973
+ }
974
+ ],
975
+ checks: CHECK_ORDER.map((id)=>({
976
+ id,
977
+ label: CHECK_LABELS[id],
978
+ status: id === 'parse' ? 'fail' : 'unknown'
979
+ })),
980
+ exports: {
981
+ register: false,
982
+ registerApi: false
983
+ },
984
+ contributions: NOTHING_DETECTED
985
+ };
986
+ }
987
+ }
988
+
989
+ //# sourceMappingURL=plugin-bundle-checks.js.map