@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,705 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ /**
17
+ * Markdown-lite (AGL-123): the tiny subset blog entries use — headings,
18
+ * bold/italic, links, images, bullet and numbered lists, paragraphs, fenced
19
+ * code blocks, tables and blockquotes. Parsed into plain data blocks that
20
+ * renderers turn into elements themselves (no HTML string is ever produced,
21
+ * so there is nothing to sanitize).
22
+ */ import { isMediaRef, parseMediaRef } from "./media-ref.js";
23
+ import { parseCollectionLinkValue, parseEntryLinkValue, parseFeedLinkValue, parseScreenLinkValue, resolveScreenHref, SCREEN_LINK_VALUE_PREFIX, screenRoutesAnswerFor } from "./screen-link-value.js";
24
+ const INLINE_PATTERN = /(\*\*([^*]+)\*\*)|(\*([^*]+)\*)|(\[([^\]]+)\]\(([^)\s]+)\))/g;
25
+ /**
26
+ * Only absolute http(s) survives; anything else renders as text. The `http:`
27
+ * half reaches LINKS only — {@link safeImageUrl} refuses it before it gets
28
+ * here (AGL-1713).
29
+ */ function safeUrl(url) {
30
+ return /^https?:\/\//i.test(url) ? url : null;
31
+ }
32
+ /**
33
+ * Whether a link target is one the parser will keep — the PUBLIC half of
34
+ * {@link safeLinkUrl}, so an editor can refuse what the parser would drop
35
+ * instead of discovering the disagreement on the published page (AGL-1686).
36
+ */ export function isSupportedLinkHref(url) {
37
+ return safeLinkUrl(url) !== null;
38
+ }
39
+ /**
40
+ * Whether an image source is one the parser will keep. The predicate an
41
+ * authoring surface must validate against, for the reason
42
+ * {@link isSupportedLinkHref} exists and one the editor learned the hard way:
43
+ * AGL-1645 widened the visual editor's image check to accept site-relative
44
+ * paths without widening this file, so every image picked from the media
45
+ * library serialized into the document and then vanished on the next parse.
46
+ * One predicate, two callers, no drift.
47
+ */ export function isSupportedImageSrc(url) {
48
+ return safeImageUrl(url) !== null;
49
+ }
50
+ /**
51
+ * Whether a link target is a stored REFERENCE rather than an address
52
+ * (AGL-3118): a screen, a collection listing, an entry or a feed, named by id
53
+ * so a rename cannot break it. Only the marked, well-formed forms count — a
54
+ * bare id is indistinguishable from a relative path with no slash, so it
55
+ * stays what the dialect has always made of it.
56
+ *
57
+ * Kept verbatim in the parsed link: a renderer resolves it against the same
58
+ * routing map element links use, and the serializer writes it back as typed.
59
+ */ export function isMarkdownLinkReference(url) {
60
+ if (url.startsWith(SCREEN_LINK_VALUE_PREFIX)) {
61
+ return parseScreenLinkValue(url) !== undefined;
62
+ }
63
+ return parseCollectionLinkValue(url) !== undefined || parseEntryLinkValue(url) !== undefined || parseFeedLinkValue(url) !== undefined;
64
+ }
65
+ /**
66
+ * Link targets additionally allow SITE-RELATIVE paths (AGL-582) so entry
67
+ * markdown can link to other pages of the same site — renderers give those
68
+ * client-side navigation — and link REFERENCES (AGL-3118), which renderers
69
+ * resolve to wherever the target lives now. Protocol-relative `//host` is
70
+ * rejected: it would silently leave the site.
71
+ */ function safeLinkUrl(url) {
72
+ if (/^\/(?!\/)/.test(url)) return url;
73
+ if (isMarkdownLinkReference(url)) return url;
74
+ return safeUrl(url);
75
+ }
76
+ /**
77
+ * Image sources take everything a link takes, PLUS a media reference
78
+ * (AGL-1686).
79
+ *
80
+ * Images were the one slot still on absolute-`http(s)`-only, and that was
81
+ * silently eating two forms the product now produces:
82
+ *
83
+ * 1. `media:{scope}/{mediaId}` — what "Browse media" stores everywhere else
84
+ * (AGL-1215). The reference names the asset and lets the renderer decide
85
+ * how to fetch it, which is the only form that survives a folder move, a
86
+ * replace, a route change, and a component shared across sites.
87
+ * 2. A site-relative `/api/media/cdn/…` or `/images/hero.png`. The visual
88
+ * editor's own `isValidImageUrl` accepts these (AGL-1645) and
89
+ * `safeLinkUrl` always has — so the parser was the one place that
90
+ * disagreed, and it disagreed by DROPPING the whole block. An image with
91
+ * an unparseable src emits no block at all, so the failure was not a
92
+ * broken-image icon or a console error; the picture simply was not there.
93
+ *
94
+ * A malformed reference is still refused. `parseMediaRef` is the same grammar
95
+ * `formatMediaRef` mints against, so `media:` junk an author typed never
96
+ * becomes a block whose src no renderer can resolve — the parse boundary
97
+ * keeps the promise `resolveMediaSrc` makes on the other side.
98
+ *
99
+ * Protocol-relative stays refused here exactly as it is for links.
100
+ *
101
+ * It takes two things LESS than a link. A link REFERENCE (AGL-3118) names a
102
+ * page, not a file, so no renderer has a picture to fetch for one; kept, it
103
+ * would reach an `<img src="entry:…">`.
104
+ *
105
+ * And `http:` (AGL-1713). An image is fetched the moment the page renders; a
106
+ * link is followed by the reader's
107
+ * choice, past an interstitial the browser puts up. So an `http:` image on our
108
+ * TLS pages is mixed content that every current browser blocks outright — the
109
+ * permissive form never rendered a picture, it only moved the failure from
110
+ * authoring time to the viewer, and stored a src that is a CSP violation
111
+ * waiting for AGL-1702 to enforce. Refusing it here reports at authoring time
112
+ * through `isSupportedImageSrc`, which the editor and the besigner picker both
113
+ * validate against. This is the same asymmetry AGL-1701 struck between
114
+ * `SAFE_SRC` and `SAFE_HREF` on the published marketplace node, and the same
115
+ * reason it left `homepageUrl`/`repositoryUrl` as any-https.
116
+ */ function safeImageUrl(url) {
117
+ if (isMediaRef(url)) return parseMediaRef(url) ? url : null;
118
+ if (/^http:\/\//i.test(url)) return null;
119
+ if (isMarkdownLinkReference(url)) return null;
120
+ return safeLinkUrl(url);
121
+ }
122
+ /**
123
+ * True for hrefs the parser emitted as site-relative (start with `/`) AND that
124
+ * a client router can actually settle on.
125
+ *
126
+ * `/api/…` is excluded because those paths serve FILES, not pages —
127
+ * `/api/media/cdn/{scope}/{id}` is the download URL every media reference
128
+ * resolves to, and it is what "Browse media" hands an author who links a PDF
129
+ * or a logo kit. Routed through `AppLink` the click starts a client-side
130
+ * navigation that can never complete: the response is an attachment, so the
131
+ * router mounts its navigation-pending overlay and waits forever.
132
+ *
133
+ * The tell is a page trapped behind a spinner, NOT a failed download — the
134
+ * browser fetches the attachment underneath the overlay, so the file lands in
135
+ * Downloads while the site sits there looking broken. That mismatch sends you
136
+ * hunting the media endpoint, which answers `200` with a correct
137
+ * `Content-Disposition: attachment` every time.
138
+ *
139
+ * Both callers use this purely to choose `AppLink` vs a plain anchor, so
140
+ * narrowing it here fixes markdown bodies and collection item links together.
141
+ */ export function isInternalMarkdownHref(href) {
142
+ return /^\/(?!\/)/.test(href) && !/^\/api\//.test(href);
143
+ }
144
+ /**
145
+ * What one parsed link renders as (AGL-3118), for every markdown-lite
146
+ * renderer on a site: the Markdown element, the entry body and the legacy
147
+ * article surface.
148
+ *
149
+ * A link REFERENCE resolves against the routing map element links use, so a
150
+ * link in a post follows its target through a rename exactly as a button
151
+ * does, and a target the map does not have (unpublished, deleted, or never
152
+ * asked for) renders as the link's text — never as an anchor whose href is
153
+ * the stored reference. Every other href is the one the parser kept.
154
+ *
155
+ * An editing surface withholds every href, so there the only question is
156
+ * whether a link is drawn at all: a reference the map KNOWS is gone reads as
157
+ * the text the published page will show, and one the map cannot judge yet —
158
+ * nothing of its kind has loaded — keeps the link look, for the reason
159
+ * `isScreenLinkBroken` gives.
160
+ */ export function resolveMarkdownLink(href, context = {}) {
161
+ var _context_screens;
162
+ const screens = (_context_screens = context.screens) != null ? _context_screens : undefined;
163
+ const reference = isMarkdownLinkReference(href);
164
+ const resolved = reference ? resolveScreenHref(screens, href) : href;
165
+ if (context.suppressNavigation) {
166
+ const gone = reference && resolved === undefined && screenRoutesAnswerFor(screens, href);
167
+ return gone ? {
168
+ kind: 'text'
169
+ } : {
170
+ kind: 'inert'
171
+ };
172
+ }
173
+ if (resolved === undefined) return {
174
+ kind: 'text'
175
+ };
176
+ return isInternalMarkdownHref(resolved) ? {
177
+ kind: 'internal',
178
+ href: resolved
179
+ } : {
180
+ kind: 'external',
181
+ href: resolved
182
+ };
183
+ }
184
+ /**
185
+ * Appends plain text, merging into a trailing text inline so the emitted
186
+ * model is canonical (no adjacent text runs). Canonical inlines are what
187
+ * makes `serializeMarkdownLite` a true inverse: a degraded link squeezed
188
+ * between two text gaps re-parses to the same single text inline (AGL-582).
189
+ */ function pushText(inlines, text) {
190
+ if (!text) return;
191
+ const last = inlines[inlines.length - 1];
192
+ if ((last == null ? void 0 : last.type) === 'text') last.text += text;
193
+ else inlines.push({
194
+ type: 'text',
195
+ text
196
+ });
197
+ }
198
+ export function parseMarkdownInlines(text) {
199
+ const inlines = [];
200
+ let cursor = 0;
201
+ for (const match of text.matchAll(INLINE_PATTERN)){
202
+ var _match_index;
203
+ const index = (_match_index = match.index) != null ? _match_index : 0;
204
+ if (index > cursor) {
205
+ pushText(inlines, text.slice(cursor, index));
206
+ }
207
+ if (match[2] != null) {
208
+ inlines.push({
209
+ type: 'bold',
210
+ text: match[2]
211
+ });
212
+ } else if (match[4] != null) {
213
+ inlines.push({
214
+ type: 'italic',
215
+ text: match[4]
216
+ });
217
+ } else if (match[6] != null) {
218
+ const href = safeLinkUrl(match[7]);
219
+ if (href) inlines.push({
220
+ type: 'link',
221
+ text: match[6],
222
+ href
223
+ });
224
+ else pushText(inlines, match[6]);
225
+ }
226
+ cursor = index + match[0].length;
227
+ }
228
+ if (cursor < text.length) {
229
+ pushText(inlines, text.slice(cursor));
230
+ }
231
+ return inlines;
232
+ }
233
+ /**
234
+ * An ATX heading at ANY of markdown's six levels (AGL-1082). The dialect only
235
+ * RENDERS two, but it must not mistake the other four for prose: matching just
236
+ * `#{2,3}` made `# Title` — how essentially every repo README opens — fall
237
+ * through to a paragraph carrying a literal `#`, silently, in every renderer.
238
+ */ const HEADING_PATTERN = /^(#{1,6})\s+(.*)$/;
239
+ /**
240
+ * Clamps an ATX level onto the two the block union carries. `#` promotes to
241
+ * the top rendered level and `####`+ demote to the bottom one, so an out-of-
242
+ * range heading degrades to the NEAREST heading rather than to prose — the
243
+ * same lossy-but-visible degradation the dialect already applies to a `*`
244
+ * inside a bold run. Deliberately NOT widening `level` to `1 | 2 | 3`: every
245
+ * renderer reads it as `level === 2 ? h2 : h3`, so a third value would type-
246
+ * check clean and silently render an h1 as an h3 in six places. This also
247
+ * makes the markdown path agree with the HTML-paste path, which has always
248
+ * mapped `<h1>` to a level-2 heading.
249
+ */ function clampHeadingLevel(hashes) {
250
+ return hashes <= 2 ? 2 : 3;
251
+ }
252
+ /** ```` ``` ```` or longer, optionally naming a language. */ const FENCE_PATTERN = /^`{3,}\s*([^\s`]*)\s*$/;
253
+ /** A bullet-list marker: `- ` or `* `. */ const BULLET_ITEM_PATTERN = /^[-*]\s+/;
254
+ /**
255
+ * An ordered-list marker (AGL-1320): `1. ` or `1) `, capped at nine digits
256
+ * like CommonMark so a stray year cannot become an absurd `start`. The
257
+ * trailing `\s+` is load-bearing twice over: it keeps `1.no space` prose, and
258
+ * it makes an EMPTY item impossible, which is the other half of CommonMark's
259
+ * interrupt rule (a bare `1.` may not interrupt a paragraph either).
260
+ */ const ORDERED_ITEM_PATTERN = /^(\d{1,9})[.)]\s+/;
261
+ /** A delimiter cell of a GFM table's second row: `---`, `:--`, `:-:`, `--:`. */ const DELIMITER_CELL = /^:?-+:?$/;
262
+ /** Splits a table row on `|`, dropping the optional outer pipes. */ function splitTableRow(line) {
263
+ let text = line.trim();
264
+ if (text.startsWith('|')) text = text.slice(1);
265
+ if (text.endsWith('|')) text = text.slice(0, -1);
266
+ return text.split('|').map((cell)=>cell.trim());
267
+ }
268
+ function alignOfDelimiter(cell) {
269
+ const left = cell.startsWith(':');
270
+ const right = cell.endsWith(':');
271
+ if (left && right) return 'center';
272
+ return right ? 'right' : 'left';
273
+ }
274
+ /**
275
+ * A pipe table when the chunk's SECOND line is all delimiter cells — the
276
+ * same rule GFM uses, and the reason a paragraph mentioning `a | b` is
277
+ * still a paragraph. Cells are squared off to the header's width: ragged
278
+ * rows pad with empty cells and overflow is dropped, so the model the
279
+ * serializer writes back re-parses to itself.
280
+ */ function parseTable(lines) {
281
+ const [headerLine, delimiterLine] = lines;
282
+ if (!headerLine || !delimiterLine || !headerLine.includes('|')) return null;
283
+ const delimiters = splitTableRow(delimiterLine);
284
+ if (!delimiters.every((cell)=>DELIMITER_CELL.test(cell))) return null;
285
+ const header = splitTableRow(headerLine).map(parseMarkdownInlines);
286
+ const columns = header.length;
287
+ const squared = (cells)=>Array.from({
288
+ length: columns
289
+ }, (_, index)=>{
290
+ var _cells_index;
291
+ return parseMarkdownInlines((_cells_index = cells[index]) != null ? _cells_index : '');
292
+ });
293
+ return {
294
+ type: 'table',
295
+ align: Array.from({
296
+ length: columns
297
+ }, (_, index)=>{
298
+ var _delimiters_index;
299
+ return alignOfDelimiter((_delimiters_index = delimiters[index]) != null ? _delimiters_index : '---');
300
+ }),
301
+ header,
302
+ rows: lines.slice(2).map((line)=>squared(splitTableRow(line)))
303
+ };
304
+ }
305
+ /**
306
+ * Where a list begins, and which one (AGL-1320).
307
+ *
308
+ * `interrupting` is true when prose of the SAME chunk is already pending —
309
+ * i.e. this line would break a paragraph in two. CommonMark's rule, adopted
310
+ * verbatim: bullets may interrupt a paragraph freely, an ordered list only
311
+ * when it starts at 1. That is what keeps prose reading `1997. A good year
312
+ * for the web.` prose, while `…that includes:` followed by `1.`/`2.` becomes
313
+ * the enumerated list a statute describes. At the head of a chunk nothing is
314
+ * being interrupted, so any start number opens a list and a counter-notice
315
+ * resuming at `7.` still counts from seven.
316
+ */ function listStartOf(line, interrupting) {
317
+ if (BULLET_ITEM_PATTERN.test(line)) return {
318
+ kind: 'list',
319
+ start: 0
320
+ };
321
+ const ordered = ORDERED_ITEM_PATTERN.exec(line);
322
+ if (!ordered) return null;
323
+ const start = Number(ordered[1]);
324
+ if (interrupting && start !== 1) return null;
325
+ return {
326
+ kind: 'orderedList',
327
+ start
328
+ };
329
+ }
330
+ /**
331
+ * One blank-line-delimited chunk of non-fenced source, as blocks.
332
+ *
333
+ * Usually one block — but a chunk splits at a list (AGL-1320), because the
334
+ * shape legal and instructional prose reaches for most is an introducing line
335
+ * with its items directly beneath, no blank line between. A list runs to the
336
+ * first line that is not an item; whatever follows starts a fresh paragraph,
337
+ * which a later list may interrupt in turn. The serializer writes the pieces
338
+ * back as separate blank-line-delimited chunks, so the split round-trips.
339
+ */ function parseChunk(chunk) {
340
+ const trimmed = chunk.trim();
341
+ if (!trimmed) return [];
342
+ const image = /^!\[([^\]]*)\]\(([^)\s]+)\)$/.exec(trimmed);
343
+ if (image) {
344
+ const src = safeImageUrl(image[2]);
345
+ return src ? [
346
+ {
347
+ type: 'image',
348
+ src,
349
+ alt: image[1]
350
+ }
351
+ ] : [];
352
+ }
353
+ const heading = HEADING_PATTERN.exec(trimmed);
354
+ if (heading) {
355
+ return [
356
+ {
357
+ type: 'heading',
358
+ level: clampHeadingLevel(heading[1].length),
359
+ inlines: parseMarkdownInlines(heading[2])
360
+ }
361
+ ];
362
+ }
363
+ const lines = trimmed.split('\n');
364
+ const table = parseTable(lines);
365
+ if (table) return [
366
+ table
367
+ ];
368
+ // A quote when EVERY line of the chunk is `>`-prefixed — a paragraph merely
369
+ // mentioning `>` stays a paragraph, and a quote does NOT interrupt prose the
370
+ // way a list does (`> ` is far rarer mid-paragraph than a numbered step, and
371
+ // the all-lines rule is the cheaper guarantee). Fenced code never reaches
372
+ // here (fences are cut out before chunking), so a `> ` inside a snippet is
373
+ // snippet text, not a quote (AGL-1315).
374
+ if (lines.every((line)=>/^>(\s|$)/.test(line.trim()))) {
375
+ const text = lines.map((line)=>line.trim().replace(/^>\s?/, '')).filter(Boolean).join(' ');
376
+ return [
377
+ {
378
+ type: 'quote',
379
+ inlines: parseMarkdownInlines(text)
380
+ }
381
+ ];
382
+ }
383
+ const blocks = [];
384
+ // Prose lines are buffered RAW and joined with spaces, the way a multi-line
385
+ // paragraph has always read.
386
+ let prose = [];
387
+ const flushProse = ()=>{
388
+ if (prose.length) {
389
+ blocks.push({
390
+ type: 'paragraph',
391
+ inlines: parseMarkdownInlines(prose.join(' '))
392
+ });
393
+ }
394
+ prose = [];
395
+ };
396
+ for(let index = 0; index < lines.length; index++){
397
+ var _lines_index;
398
+ const line = ((_lines_index = lines[index]) != null ? _lines_index : '').trim();
399
+ const list = listStartOf(line, prose.length > 0);
400
+ if (!list) {
401
+ var _lines_index1;
402
+ prose.push((_lines_index1 = lines[index]) != null ? _lines_index1 : '');
403
+ continue;
404
+ }
405
+ flushProse();
406
+ const pattern = list.kind === 'list' ? BULLET_ITEM_PATTERN : ORDERED_ITEM_PATTERN;
407
+ const items = [];
408
+ // The run ends at the first line that is not an item of THIS kind, so a
409
+ // bullet closes a numbered run and vice versa. Only the FIRST ordered
410
+ // marker is read, which is why a source numbered `1. 1. 1.` renumbers on
411
+ // the way out.
412
+ while(index < lines.length){
413
+ var _lines_index2;
414
+ const item = ((_lines_index2 = lines[index]) != null ? _lines_index2 : '').trim();
415
+ if (!pattern.test(item)) break;
416
+ items.push(parseMarkdownInlines(item.replace(pattern, '')));
417
+ index++;
418
+ }
419
+ index--;
420
+ blocks.push(list.kind === 'list' ? {
421
+ type: 'list',
422
+ items
423
+ } : {
424
+ type: 'orderedList',
425
+ start: list.start,
426
+ items
427
+ });
428
+ }
429
+ flushProse();
430
+ return blocks;
431
+ }
432
+ /**
433
+ * Blocks are blank-line separated, EXCEPT inside a ``` fence — a code
434
+ * block owns its blank lines, so the scan is line-driven rather than a
435
+ * split on `\n{2,}` (AGL-974). An unterminated fence runs to the end of
436
+ * the document, which is what a README truncated mid-snippet needs.
437
+ */ export function parseMarkdownLite(body) {
438
+ const blocks = [];
439
+ const lines = body.split('\n');
440
+ let pending = [];
441
+ const flush = ()=>{
442
+ // A chunk yields MORE than one block when a list interrupts its prose
443
+ // (AGL-1320) — and none at all when it holds nothing renderable.
444
+ if (pending.length) blocks.push(...parseChunk(pending.join('\n')));
445
+ pending = [];
446
+ };
447
+ for(let index = 0; index < lines.length; index++){
448
+ var _lines_index;
449
+ const line = (_lines_index = lines[index]) != null ? _lines_index : '';
450
+ const fence = FENCE_PATTERN.exec(line.trim());
451
+ if (fence) {
452
+ var _lines_index1, _fence_;
453
+ var _text_, _text_1;
454
+ flush();
455
+ const text = [];
456
+ while(++index < lines.length && !FENCE_PATTERN.test(((_lines_index1 = lines[index]) != null ? _lines_index1 : '').trim())){
457
+ var _lines_index2;
458
+ text.push((_lines_index2 = lines[index]) != null ? _lines_index2 : '');
459
+ }
460
+ // Blank edges are the fence's own padding, not part of the snippet.
461
+ while(text.length && !((_text_ = text[0]) == null ? void 0 : _text_.trim()))text.shift();
462
+ while(text.length && !((_text_1 = text[text.length - 1]) == null ? void 0 : _text_1.trim()))text.pop();
463
+ blocks.push({
464
+ type: 'code',
465
+ lang: (_fence_ = fence[1]) != null ? _fence_ : '',
466
+ text: text.join('\n')
467
+ });
468
+ continue;
469
+ }
470
+ if (line.trim()) pending.push(line);
471
+ else flush();
472
+ }
473
+ flush();
474
+ return blocks;
475
+ }
476
+ /** A link or an image in markdown-lite source: bang, text, target. */ const SOURCE_LINK_PATTERN = /(!?)\[([^\]]*)\]\(([^)\s]+)\)/g;
477
+ /**
478
+ * Markdown-lite SOURCE with its link references resolved (AGL-3118), for a
479
+ * reader that hands the source on instead of rendering it — the Markdown twin
480
+ * of a page, which an agent follows links out of.
481
+ *
482
+ * `resolve` answers a reference with the URL to write in its place, or with
483
+ * `undefined` for a target that is gone, and that link becomes its text
484
+ * alone: a reference no reader can follow is worse than no link at all. An
485
+ * image whose source is a reference becomes its alt text, because the parser
486
+ * draws no image for one.
487
+ *
488
+ * Everything else stays exactly as written, and fenced code is not touched —
489
+ * a reference quoted in a snippet is the snippet's text, as the parser has it.
490
+ */ export function resolveMarkdownSourceLinks(source, resolve) {
491
+ if (!source.includes('](')) return source;
492
+ let fenced = false;
493
+ return source.split('\n').map((line)=>{
494
+ if (FENCE_PATTERN.test(line.trim())) {
495
+ fenced = !fenced;
496
+ return line;
497
+ }
498
+ if (fenced || !line.includes('](')) return line;
499
+ return line.replace(SOURCE_LINK_PATTERN, (match, bang, text, href)=>{
500
+ if (!isMarkdownLinkReference(href)) return match;
501
+ const target = bang ? undefined : resolve(href);
502
+ // A URL cannot close the parentheses it sits in or break at a space.
503
+ return target ? `[${text}](${target.replace(/\)/g, '%29').replace(/\s/g, '%20')})` : text;
504
+ });
505
+ }).join('\n');
506
+ }
507
+ /**
508
+ * The plain text an inline run reads as — the words with the emphasis and
509
+ * link syntax removed. What a heading contributes to an anchor slug and to a
510
+ * table-of-contents label (AGL-1162), where `## The **fine** print` has to
511
+ * become "The fine print" and `the-fine-print`, not two of either.
512
+ */ export function markdownInlinesToText(inlines) {
513
+ return inlines.map((inline)=>inline.text).join('');
514
+ }
515
+ /**
516
+ * Anchor id for one heading's text (AGL-1162).
517
+ *
518
+ * Deterministic by construction — the same words always produce the same id,
519
+ * which is the whole point: a legal page's true source is a markdown file
520
+ * elsewhere, and re-pasting it must not silently break every link that ever
521
+ * pointed into it. Accents fold to their base letter (NFKD then drop the
522
+ * combining marks) so `Résumé` and `Resume` are the same anchor rather than
523
+ * one of them being an unreadable percent-encoded id.
524
+ *
525
+ * A heading of nothing but punctuation or non-Latin script slugifies to
526
+ * empty; those get `SLUG_FALLBACK` here and are told apart by the numbering
527
+ * in {@link collectMarkdownHeadings}, because an id is required for the link
528
+ * to work at all and no id is worse than a dull one.
529
+ */ export const SLUG_FALLBACK = 'section';
530
+ export function slugifyHeading(text) {
531
+ return text.normalize('NFKD')// Combining diacritics left behind by the decomposition above.
532
+ .replace(/[\u0300-\u036f]/g, '').toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '') || SLUG_FALLBACK;
533
+ }
534
+ /**
535
+ * Every heading in a parsed document, with a unique anchor slug (AGL-1162).
536
+ *
537
+ * Duplicates take a `-2`, `-3`, … suffix in document order, and the loop
538
+ * re-checks the suffixed candidate: a document holding two `## Notice`
539
+ * headings AND a literal `## Notice 2` must not hand the same id to two
540
+ * elements, which is exactly what a plain counter would do.
541
+ *
542
+ * Deliberately NOT a widening of the `MarkdownBlock` union. The union is
543
+ * rendered exhaustively in six places, so a slug carried on the heading
544
+ * block would have to be produced by every writer of that union — including
545
+ * the visual editor's serializer, which round-trips through markdown source
546
+ * that has nowhere to put one. Derived here instead, from the same parse the
547
+ * renderer already has, so the markdown text stays the only source of truth.
548
+ */ export function collectMarkdownHeadings(blocks) {
549
+ const headings = [];
550
+ const used = new Set();
551
+ blocks.forEach((block, index)=>{
552
+ if (block.type !== 'heading') return;
553
+ const text = markdownInlinesToText(block.inlines).trim();
554
+ const base = slugifyHeading(text);
555
+ let slug = base;
556
+ let suffix = 1;
557
+ while(used.has(slug)){
558
+ suffix += 1;
559
+ slug = `${base}-${suffix}`;
560
+ }
561
+ used.add(slug);
562
+ headings.push({
563
+ level: block.level,
564
+ text,
565
+ slug,
566
+ index
567
+ });
568
+ });
569
+ return headings;
570
+ }
571
+ /**
572
+ * The same headings keyed by block index, which is the shape every renderer
573
+ * actually wants (AGL-1162).
574
+ *
575
+ * A renderer maps over `blocks` and needs the slug for the block in hand;
576
+ * {@link collectMarkdownHeadings} returns a list, so each of them had to
577
+ * rebuild this map. There were six markdown renderers and one of them did —
578
+ * five published headings a table of contents could never link to, and the
579
+ * one that worked did it with a private `useMemo` nobody else could reach.
580
+ * Living here means a new renderer gets the numbering, the fallback and the
581
+ * duplicate-suffix rules for free rather than approximating them.
582
+ */ export function markdownHeadingSlugs(blocks) {
583
+ const map = {};
584
+ for (const heading of collectMarkdownHeadings(blocks)){
585
+ map[heading.index] = heading.slug;
586
+ }
587
+ return map;
588
+ }
589
+ /**
590
+ * How far below a heading's anchor the viewport stops (AGL-1162) — enough to
591
+ * clear a sticky site header, so a `#slug` link does not land with the
592
+ * heading hidden underneath the nav. Shared so the published page, the entry
593
+ * body and the console preview all scroll to the same place.
594
+ */ export const HEADING_ANCHOR_SCROLL_MARGIN = 96;
595
+ /** Newlines cannot exist inside an inline run — flatten them to a space. */ const flattenInlineText = (text)=>text.replace(/\s*\n+\s*/g, ' ');
596
+ /**
597
+ * Serializes inlines back to markdown-lite source (AGL-582). Characters an
598
+ * inline run cannot represent (the dialect has NO escapes) are dropped:
599
+ * `*` inside bold/italic, `]` in link text/alt, `)` or whitespace in URLs.
600
+ * Parser-emitted inlines never contain them, so for those this is exact.
601
+ */ export function serializeMarkdownInlines(inlines) {
602
+ let out = '';
603
+ for (const inline of inlines){
604
+ if (inline.type === 'bold' || inline.type === 'italic') {
605
+ const text = flattenInlineText(inline.text).replace(/\*/g, '');
606
+ if (!text) continue;
607
+ out += inline.type === 'bold' ? `**${text}**` : `*${text}*`;
608
+ } else if (inline.type === 'link') {
609
+ const text = flattenInlineText(inline.text).replace(/\]/g, '');
610
+ const href = inline.href.replace(/[)\s]/g, '');
611
+ out += text && href ? `[${text}](${href})` : text;
612
+ } else {
613
+ out += flattenInlineText(inline.text);
614
+ }
615
+ }
616
+ return out;
617
+ }
618
+ /**
619
+ * Inverse of `parseMarkdownLite` — the WYSIWYG round-trip contract
620
+ * (AGL-582): for any parser-produced model, the serialized string re-parses
621
+ * to a deep-equal model, and serializing is stable (a second
622
+ * parse→serialize round-trip returns the identical string). Editor-produced
623
+ * models are additionally NORMALIZED the same way the parser would: blocks
624
+ * and list items that would parse to nothing (empty text) are omitted, and
625
+ * block lines are edge-trimmed. Entry bodies stay markdown-lite strings in
626
+ * Firestore — this is the only writer the visual editor goes through.
627
+ *
628
+ * Every block is written as its own chunk, separated by a BLANK line, which
629
+ * is what holds the invariant now that a list may interrupt a paragraph
630
+ * (AGL-1320): `intro:` + `1. a` re-parses to the same paragraph + list pair
631
+ * whether or not the author left a blank line between them. The blank line is
632
+ * therefore load-bearing, not cosmetic: writing the two chunks adjacent would
633
+ * re-parse correctly today only by luck of the interrupt rule.
634
+ */ export function serializeMarkdownLite(blocks) {
635
+ const chunks = [];
636
+ for (const block of blocks){
637
+ if (block.type === 'image') {
638
+ const src = block.src.replace(/[)\s]/g, '');
639
+ const alt = flattenInlineText(block.alt).replace(/\]/g, '');
640
+ if (src) chunks.push(`![${alt}](${src})`);
641
+ continue;
642
+ }
643
+ if (block.type === 'list') {
644
+ const lines = block.items.map((item)=>serializeMarkdownInlines(item).trim()).filter(Boolean).map((line)=>`- ${line}`);
645
+ if (lines.length) chunks.push(lines.join('\n'));
646
+ continue;
647
+ }
648
+ if (block.type === 'orderedList') {
649
+ // Markers are RE-NUMBERED from `start` (AGL-1320) rather than written
650
+ // back verbatim: the parser only reads the first one, so contiguous
651
+ // markers are the single form that re-parses to this exact model.
652
+ // A missing/absurd start falls back to 1, the way a hand-written list
653
+ // reads anyway.
654
+ const start = Number.isFinite(block.start) ? Math.max(0, Math.trunc(block.start)) : 1;
655
+ const lines = block.items.map((item)=>serializeMarkdownInlines(item).trim()).filter(Boolean).map((line, index)=>`${start + index}. ${line}`);
656
+ if (lines.length) chunks.push(lines.join('\n'));
657
+ continue;
658
+ }
659
+ if (block.type === 'code') {
660
+ // The fence is the only delimiter the dialect has, so a fence INSIDE
661
+ // the snippet would end it early — those backticks drop, the same way
662
+ // an unrepresentable `*` drops from a bold run.
663
+ const text = block.text.replace(/^(\s*)`{3,}/gm, '$1').replace(/^(?:[ \t]*\n)+/, '').replace(/(?:\n[ \t]*)+$/, '');
664
+ const lang = block.lang.replace(/[^\w+#.-]/g, '');
665
+ chunks.push([
666
+ `\`\`\`${lang}`,
667
+ ...text ? [
668
+ text
669
+ ] : [],
670
+ '```'
671
+ ].join('\n'));
672
+ continue;
673
+ }
674
+ if (block.type === 'table') {
675
+ // `|` separates cells and there are no escapes, so a pipe inside a
676
+ // cell drops. Empty cells are kept — they are meaningful in a table.
677
+ const row = (cells)=>`| ${cells.map((cell)=>serializeMarkdownInlines(cell).replace(/\|/g, '').trim()).join(' | ')} |`;
678
+ if (!block.header.length) continue;
679
+ const delimiters = block.header.map((_, index)=>{
680
+ var _block_align_index;
681
+ const align = (_block_align_index = block.align[index]) != null ? _block_align_index : 'left';
682
+ return align === 'center' ? ':-:' : align === 'right' ? '--:' : '---';
683
+ });
684
+ chunks.push([
685
+ row(block.header),
686
+ `| ${delimiters.join(' | ')} |`,
687
+ // Squared off to the header: the parser reads it back that way,
688
+ // so writing anything else would not round-trip.
689
+ ...block.rows.map((cells)=>row(Array.from({
690
+ length: block.header.length
691
+ }, (_, index)=>{
692
+ var _cells_index;
693
+ return (_cells_index = cells[index]) != null ? _cells_index : [];
694
+ })))
695
+ ].join('\n'));
696
+ continue;
697
+ }
698
+ const line = serializeMarkdownInlines(block.inlines).trim();
699
+ if (!line) continue;
700
+ chunks.push(block.type === 'heading' ? `${'#'.repeat(block.level)} ${line}` : block.type === 'quote' ? `> ${line}` : line);
701
+ }
702
+ return chunks.join('\n\n');
703
+ }
704
+
705
+ //# sourceMappingURL=markdown-lite.js.map