@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,771 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ /**
3
+ * @license
4
+ * Copyright 2026 Aglyn LLC
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */ import { HostEntityType } from "../foundation/definitions/platform.types.js";
18
+ import { MEDIA_ALT_MAX_LENGTH } from "./media-metadata.js";
19
+ import { absoluteMediaSrc } from "./media-ref.js";
20
+ import { urlSlugSegment } from "./url-slug.js";
21
+ /**
22
+ * Custom content authors (AGL-2486).
23
+ *
24
+ * ## An author is a RECORD, not an account
25
+ *
26
+ * Until now a post's byline was `entry.authorName` — one free-typed string
27
+ * (AGL-686), retyped on every entry, with no url, no portrait, no social
28
+ * profiles and no way to say the piece was written by the company rather than
29
+ * a person. That is enough to print a name under a headline and not enough to
30
+ * be `schema.org/author`, which wants an ENTITY: something with a stable
31
+ * identity a crawler can join across articles and against the site's own
32
+ * publisher entity.
33
+ *
34
+ * So the author becomes a document the customer authors and an entry
35
+ * REFERENCES (`entry.authorId`). Publishing a piece under a pen name, a guest
36
+ * contributor, or the company itself is then the ordinary case rather than a
37
+ * retyped string, and renaming an author updates every post at render time —
38
+ * the same property `categoryId` bought the taxonomy in AGL-582.
39
+ *
40
+ * ## Scope: the HOST, at `hosts/{hostId}/authors/{authorId}`
41
+ *
42
+ * Not the org, and this follows the data rather than inventing a rule.
43
+ * Content collections live at `hosts/{hostId}/collections/{collectionId}` and
44
+ * their entries underneath; the console surface that manages them is
45
+ * `/[orgSlug]/hosts/[host]/content`; and the entity an author has to
46
+ * serialise consistently with — `host.seo.entity`, the site's publisher — is
47
+ * a field of the host document. An author referenced from an entry therefore
48
+ * resolves inside the same document tree the entry already lives in, with the
49
+ * host's existing rules and the tenant's existing Admin-SDK reads. An
50
+ * org-scoped store would need a second root, a second read on every entry
51
+ * render, and a sharing model ("which sites may publish under this byline")
52
+ * that nothing in the product asks for yet.
53
+ *
54
+ * ## The type is a BRANCH, not a label
55
+ *
56
+ * `schema.org/Person` and `schema.org/Organization` do not carry the same
57
+ * fields: a Person has `jobTitle` and `worksFor` and its portrait is `image`;
58
+ * an Organization has no job title and its mark is `logo`. Emitting one
59
+ * shape with the other's keys is invalid structured data that validates as
60
+ * "ignored", so {@link contentAuthorJsonLd} branches on the type and the
61
+ * console hides the fields that do not apply.
62
+ */ /**
63
+ * How many authors one host may hold (AGL-2486).
64
+ *
65
+ * A flat PLATFORM cap, deliberately, in the shape of
66
+ * `ENTRIES_MAX_PER_COLLECTION` / `ACTIONS_MAX_PER_HOST` (AGL-2266) and
67
+ * `WEBHOOK_MAX_PER_HOST` (AGL-1360): nothing here is priced, no
68
+ * `OrgEntitlements` key is added, every plan gets the same number. The reason
69
+ * a number exists at all is the one those issues wrote down — a
70
+ * client-creatable host subcollection with no cap is unbounded Firestore
71
+ * documents mintable from the browser against a $0 subscription — and adding
72
+ * a new subcollection without one would be that hole, freshly dug.
73
+ *
74
+ * 200 is far past any real masthead (the largest content collection in
75
+ * production holds double digits of ENTRIES, let alone bylines) and small
76
+ * enough that the console can list every author in a single unpaginated read.
77
+ */ export const AUTHORS_MAX_PER_HOST = 200;
78
+ /** Longest stored author name; the byline is a name, not a paragraph. */ export const AUTHOR_NAME_MAX_LENGTH = 120;
79
+ /** Longest stored author slug; it is one path segment, not a sentence. */ export const AUTHOR_SLUG_MAX_LENGTH = 80;
80
+ /**
81
+ * The site-wide segment an author's page lives under (AGL-2518):
82
+ * `/author/{slug}`, and `/author/{slug}/page/{n}` after it.
83
+ *
84
+ * Singular, and site-wide rather than nested under a collection. AGL-2517
85
+ * put this archive at `/{collection}/author/{slug}`, which gives one person
86
+ * as many pages as the site has collections — three partial archives of the
87
+ * same author, none of them the address a byline should link to, all three
88
+ * competing for the same search result. A person is not a property of a
89
+ * collection.
90
+ *
91
+ * NOT added to `RESERVED_SCREEN_ROUTE_SEGMENTS`. The catch-all resolves
92
+ * published screens BEFORE it reaches this route, exactly as it does for a
93
+ * collection's own `/{slug}`, so a site that already publishes a page at
94
+ * `/author` keeps it and simply has no author pages — the same trade every
95
+ * other platform-built address on a tenant site makes.
96
+ */ export const AUTHOR_ROUTE_SEGMENT = 'author';
97
+ /** Most `sameAs` profile links one author may carry. */ export const AUTHOR_SAME_AS_MAX = 12;
98
+ /** Most display links one author may carry. */ export const AUTHOR_LINKS_MAX = 12;
99
+ /**
100
+ * The platforms whose mark is fixed (AGL-2516).
101
+ *
102
+ * `icon` is an `mdi` id, resolved to a path by whichever surface draws it —
103
+ * the renderer imports these few directly rather than through the catalog,
104
+ * because the set is closed and known at build time.
105
+ *
106
+ * Ordered as a masthead would list them rather than alphabetically: the
107
+ * places writers are actually followed first, then the ways to reach them.
108
+ */ export const AUTHOR_SOCIAL_PLATFORMS = [
109
+ {
110
+ id: 'x',
111
+ label: 'X',
112
+ icon: 'twitter'
113
+ },
114
+ {
115
+ id: 'linkedin',
116
+ label: 'LinkedIn',
117
+ icon: 'linkedin'
118
+ },
119
+ {
120
+ id: 'github',
121
+ label: 'GitHub',
122
+ icon: 'github'
123
+ },
124
+ {
125
+ id: 'mastodon',
126
+ label: 'Mastodon',
127
+ icon: 'mastodon'
128
+ },
129
+ {
130
+ id: 'youtube',
131
+ label: 'YouTube',
132
+ icon: 'youtube'
133
+ },
134
+ {
135
+ id: 'instagram',
136
+ label: 'Instagram',
137
+ icon: 'instagram'
138
+ },
139
+ {
140
+ id: 'facebook',
141
+ label: 'Facebook',
142
+ icon: 'facebook'
143
+ },
144
+ {
145
+ id: 'website',
146
+ label: 'Website',
147
+ icon: 'web'
148
+ },
149
+ {
150
+ id: 'email',
151
+ label: 'Email',
152
+ icon: 'email'
153
+ },
154
+ {
155
+ id: 'rss',
156
+ label: 'RSS',
157
+ icon: 'rss'
158
+ }
159
+ ];
160
+ /** The platform a link declares, or `undefined` when it is a custom one. */ export function authorLinkPlatform(platform) {
161
+ const id = typeof platform === 'string' ? platform.trim() : '';
162
+ if (!id) return undefined;
163
+ return AUTHOR_SOCIAL_PLATFORMS.find((entry)=>entry.id === id);
164
+ }
165
+ /**
166
+ * What a link is CALLED, which is never the author's choice on a known
167
+ * platform.
168
+ *
169
+ * A custom link with no label falls back to its own URL rather than to
170
+ * something generic: "Link" beside four other "Link"s is not an accessible
171
+ * name, and the URL at least distinguishes them.
172
+ */ export function authorLinkLabel(link) {
173
+ const known = authorLinkPlatform(link.platform);
174
+ if (known) return known.label;
175
+ return text(link.label, 60) || text(link.url, 400);
176
+ }
177
+ /**
178
+ * Schemes an author link may use.
179
+ *
180
+ * `https:` and `mailto:` only, matching the share bar and the Entry Author
181
+ * card's own href guard. `http:` is excluded deliberately — a byline link is
182
+ * published on every post its author wrote, and a mixed-content warning
183
+ * across a whole archive is a poor trade for a scheme nobody should still be
184
+ * publishing. Everything else, `javascript:` first among them, is a script
185
+ * injection wearing a URL.
186
+ */ const SAFE_AUTHOR_LINK_HREF = /^(https:\/\/|mailto:)/i;
187
+ /**
188
+ * Sanitize the stored link rows into the shape a renderer may assume.
189
+ *
190
+ * Drops any row without a usable, safely-schemed URL — a link that goes
191
+ * nowhere is worse than an absent one, because it still takes a click. A row
192
+ * naming a platform keeps ONLY the platform (its label and icon come from the
193
+ * registry, so a stored label or icon beside one is stale data that must not
194
+ * win); a custom row keeps its label and icon and drops any platform id that
195
+ * did not resolve.
196
+ */ export function normalizeContentAuthorLinks(value) {
197
+ if (!Array.isArray(value)) return [];
198
+ const links = [];
199
+ for (const row of value){
200
+ if (!row || typeof row !== 'object') continue;
201
+ const raw = row;
202
+ const url = text(raw['url'], 400);
203
+ if (!url || !SAFE_AUTHOR_LINK_HREF.test(url)) continue;
204
+ const known = authorLinkPlatform(raw['platform']);
205
+ if (known) {
206
+ links.push({
207
+ platform: known.id,
208
+ url
209
+ });
210
+ } else {
211
+ links.push({
212
+ label: text(raw['label'], 60),
213
+ icon: text(raw['icon'], 120),
214
+ iconPath: text(raw['iconPath'], 4000),
215
+ url
216
+ });
217
+ }
218
+ if (links.length >= AUTHOR_LINKS_MAX) break;
219
+ }
220
+ return links;
221
+ }
222
+ /**
223
+ * The author's schema type, tolerant of every spelling the store holds.
224
+ *
225
+ * The numeric enum is what `HostEntityType` declares, but the Setup → SEO →
226
+ * Entity form persists its Select value — a TEMPLATE LITERAL, i.e. the string
227
+ * `"1"` or `"2"` — and the tenant's structured data compared that with
228
+ * `=== HostEntityType.PERSON` (the number `2`). Strict equality across a
229
+ * string and a number is always false, so a site that declared itself a
230
+ * Person published `"@type": "Organization"` regardless (AGL-2486). Coercing
231
+ * here, once, is what stops the same defect being re-derived per call site.
232
+ *
233
+ * Anything unrecognised — absent, empty, a stray value — resolves to
234
+ * `Organization`, which is the default this repo has always emitted.
235
+ */ export function contentAuthorSchemaType(type) {
236
+ return Number(type) === HostEntityType.PERSON ? 'Person' : 'Organization';
237
+ }
238
+ const text = (value, max = AUTHOR_NAME_MAX_LENGTH)=>typeof value === 'string' ? value.trim().slice(0, max) : '';
239
+ /**
240
+ * A stored author document, sanitized into the shape the rest of the codebase
241
+ * may assume — the {@link mapCollectionCategories} treatment, one collection
242
+ * over: only strings survive, `sameAs` keeps string entries only, and an
243
+ * author with no name resolves to `null` because a nameless byline is not a
244
+ * byline and `schema.org` requires `name` on both branches.
245
+ */ export function normalizeContentAuthor(value, id) {
246
+ if (!value || typeof value !== 'object') return null;
247
+ const raw = value;
248
+ const name = text(raw['name']);
249
+ if (!name) return null;
250
+ const sameAs = Array.isArray(raw['sameAs']) ? raw['sameAs'].map((item)=>text(item, 400)).filter(Boolean).slice(0, AUTHOR_SAME_AS_MAX) : [];
251
+ return _extends({}, id ? {
252
+ $id: id
253
+ } : typeof raw['$id'] === 'string' ? {
254
+ $id: raw['$id']
255
+ } : {}, {
256
+ type: contentAuthorSchemaType(raw['type']) === 'Person' ? HostEntityType.PERSON : HostEntityType.ORGANIZATION,
257
+ name,
258
+ // Through the URL slugifier rather than stored raw: this is a path
259
+ // segment, and a stored `Chris Taylor` would build `/author/Chris Taylor`
260
+ // while every incoming request arrived slugified and matched nothing.
261
+ slug: urlSlugSegment(text(raw['slug'], AUTHOR_SLUG_MAX_LENGTH)),
262
+ url: text(raw['url'], 400),
263
+ image: text(raw['image'], 1000),
264
+ jobTitle: text(raw['jobTitle']),
265
+ worksFor: text(raw['worksFor']),
266
+ sameAs,
267
+ links: normalizeContentAuthorLinks(raw['links']),
268
+ bio: text(raw['bio'], 600),
269
+ // Shorter than the bio it overrides, because it is read alone in a search
270
+ // result rather than beside a heading — past this nothing survives the
271
+ // snippet, so storing more only hides the cut from whoever wrote it.
272
+ seoDescription: text(raw['seoDescription'], 300),
273
+ seoImage: text(raw['seoImage'], 1000),
274
+ seoImageAlt: text(raw['seoImageAlt'], MEDIA_ALT_MAX_LENGTH)
275
+ });
276
+ }
277
+ /**
278
+ * The segment that addresses one author's page.
279
+ *
280
+ * Precedence is the author's stored {@link ContentAuthorRecord.slug} first
281
+ * and the slugified name second — the opposite of what AGL-2517 built, which
282
+ * put the record ID first "so the link survives a rename".
283
+ *
284
+ * A Firestore auto-id does survive a rename, and it is also unreadable. This
285
+ * is a PUBLIC address on a marketing site: it goes in a byline, a share
286
+ * sheet, a CV. `/author/hT3kQ9xLmZ2` is not an address anyone can read, and
287
+ * the rename it protects against is answered better by the stored slug, which
288
+ * is stable AND readable. The id is still ACCEPTED on the way in (see
289
+ * `entryMatchesAuthorRoute`), so a link built under the old precedence keeps
290
+ * resolving.
291
+ *
292
+ * Empty when there is nothing addressable, so a caller renders plain text
293
+ * rather than a link to `/author/`.
294
+ */ export function contentAuthorSlug(options) {
295
+ var _options_author, _options_author1, _options_author2;
296
+ return urlSlugSegment((_options_author = options.author) == null ? void 0 : _options_author.slug) || urlSlugSegment((_options_author1 = options.author) == null ? void 0 : _options_author1.name) || urlSlugSegment(options.authorName) || urlSlugSegment(options.authorId) || urlSlugSegment((_options_author2 = options.author) == null ? void 0 : _options_author2.$id);
297
+ }
298
+ /**
299
+ * Every segment that should resolve to this author.
300
+ *
301
+ * The archive answers to the stored slug, the display name, the legacy
302
+ * free-typed byline and the record id, because which of those a link happens
303
+ * to carry depends on when it was built and by what — and a byline that
304
+ * 404s is worse than one pointing at a page with an unexpected URL.
305
+ *
306
+ * Deduped, and empties dropped: a set containing `''` would match a request
307
+ * for `/author/` against every author on the site.
308
+ */ export function contentAuthorSlugCandidates(options) {
309
+ var _options_author, _options_author1, _options_author2;
310
+ return Array.from(new Set([
311
+ (_options_author = options.author) == null ? void 0 : _options_author.slug,
312
+ (_options_author1 = options.author) == null ? void 0 : _options_author1.name,
313
+ options.authorName,
314
+ options.authorId,
315
+ (_options_author2 = options.author) == null ? void 0 : _options_author2.$id
316
+ ].map((value)=>urlSlugSegment(value)).filter(Boolean)));
317
+ }
318
+ /** Does `slug` address this author? */ export function contentAuthorMatchesSlug(options, slug) {
319
+ const wanted = urlSlugSegment(slug);
320
+ if (!wanted) return false;
321
+ return contentAuthorSlugCandidates(options).includes(wanted);
322
+ }
323
+ /**
324
+ * The author's page on this site — `/author/{slug}` (AGL-2518).
325
+ *
326
+ * Empty when nothing addresses the author, which is what lets a template bind
327
+ * this unconditionally: a link whose href does not resolve renders as inert
328
+ * markup of the same element (AGL-1268/1357), so an entry with no byline
329
+ * shows no link rather than one pointing nowhere.
330
+ */ export function contentAuthorPageUrl(options) {
331
+ const slug = contentAuthorSlug(options);
332
+ return slug ? `/${AUTHOR_ROUTE_SEGMENT}/${slug}` : '';
333
+ }
334
+ /**
335
+ * The paginated sub-path of an author page — `/author/{slug}/page/{n}`.
336
+ *
337
+ * The same word the collection listing pages with, deliberately: a reader who
338
+ * has learned one URL shape on the site has learned both, and a second
339
+ * spelling would buy nothing. Declared here rather than imported from
340
+ * `collection-entries`, which imports THIS module.
341
+ */ const AUTHOR_PAGE_SEGMENT = 'page';
342
+ /**
343
+ * The canonical URL of one page of an author's archive (AGL-2518).
344
+ *
345
+ * Page 1 is the bare `/author/{slug}` — there is no `/author/{slug}/page/1`,
346
+ * so the first page cannot become a second address for itself. The rule
347
+ * `collectionListUrl` states, one route over.
348
+ */ export function contentAuthorPageAtUrl(options) {
349
+ const base = contentAuthorPageUrl(options);
350
+ if (!base) return '';
351
+ const page = Number(options.page);
352
+ return Number.isFinite(page) && page > 1 ? `${base}/${AUTHOR_PAGE_SEGMENT}/${Math.floor(page)}` : base;
353
+ }
354
+ /**
355
+ * Where an author archive's pager can go from here (AGL-2518).
356
+ *
357
+ * The `collectionPaginationLinks` contract, restated for this route: **the
358
+ * edges resolve to the empty string, never to a URL**, which is what lets a
359
+ * designed author template bind `{{pagination.prevUrl}}` unconditionally. A
360
+ * link whose href is `''` renders as an inert placeholder of the same element
361
+ * (AGL-1268/1357), which is the correct pager on page 1 of 1.
362
+ *
363
+ * ONE computation, because it has the same two consumers that must agree: the
364
+ * built-in fallback's pager nodes and the tokens a template binds.
365
+ */ export function contentAuthorPaginationLinks(options) {
366
+ const positive = (value)=>{
367
+ const parsed = Math.floor(Number(value));
368
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : 1;
369
+ };
370
+ const page = positive(options.page);
371
+ const totalPages = positive(options.totalPages);
372
+ const href = (n)=>contentAuthorPageAtUrl(_extends({}, options, {
373
+ page: n
374
+ }));
375
+ return {
376
+ page,
377
+ totalPages,
378
+ prevUrl: page > 1 ? href(page - 1) : '',
379
+ nextUrl: page < totalPages ? href(page + 1) : ''
380
+ };
381
+ }
382
+ /**
383
+ * Parse a path into an author route, or `null` when the path is not one.
384
+ *
385
+ * The two shapes are `/author/{slug}` and `/author/{slug}/page/{n}`, matching
386
+ * the collection listing's own pagination so a reader who has learned one URL
387
+ * shape on the site has learned both.
388
+ *
389
+ * A pure parser, deliberately, for the reason `parseCollectionRoute` is one:
390
+ * the tenant loader and its tests must not be able to disagree about what the
391
+ * route table says. Page `0`, a negative page and a non-numeric page all
392
+ * resolve to `null` rather than to page 1, so a nonsense URL 404s instead of
393
+ * silently serving the first page under a second address.
394
+ */ export function parseContentAuthorRoute(segments) {
395
+ const parts = (segments != null ? segments : []).filter(Boolean);
396
+ if (parts[0] !== AUTHOR_ROUTE_SEGMENT) return null;
397
+ const authorSlug = urlSlugSegment(parts[1]);
398
+ if (!authorSlug) return null;
399
+ if (parts.length === 2) return {
400
+ authorSlug,
401
+ page: 1
402
+ };
403
+ if (parts.length === 4 && parts[2] === AUTHOR_PAGE_SEGMENT) {
404
+ const page = Number(parts[3]);
405
+ return Number.isInteger(page) && page >= 1 ? {
406
+ authorSlug,
407
+ page
408
+ } : null;
409
+ }
410
+ return null;
411
+ }
412
+ /**
413
+ * `schema.org` JSON-LD for one author (AGL-2486) — a `Person` or an
414
+ * `Organization`, with the fields that branch actually defines.
415
+ *
416
+ * | field | Person | Organization |
417
+ * | ---------- | ------------------------- | ------------ |
418
+ * | `name` | required | required |
419
+ * | `url` | optional | optional |
420
+ * | portrait | `image` | `logo` |
421
+ * | `jobTitle` | optional | — not valid |
422
+ * | `worksFor` | optional (`Organization`) | — not valid |
423
+ * | `sameAs` | optional | optional |
424
+ *
425
+ * The image goes through {@link absoluteMediaSrc}, the same resolver
426
+ * `og:image` and `Article.image` use (AGL-1343/1407), so a portrait picked
427
+ * from the DAM reaches the structured data as a fetchable absolute URL rather
428
+ * than the literal string `media:{scope}/{id}`. An unresolvable reference —
429
+ * or a site-relative path with no origin to resolve against — emits NO image
430
+ * key at all rather than a broken one.
431
+ *
432
+ * Returns `undefined` for an author with no usable name, so every call site
433
+ * can spread the result conditionally instead of emitting `"author": null`.
434
+ *
435
+ * ## Escaping
436
+ *
437
+ * Nothing is escaped HERE, and that is correct: this returns a VALUE, and the
438
+ * one place a value becomes markup is `Aglyn.safeJsonLd`, which every
439
+ * `<script type="application/ld+json">` in the repo is built with. It escapes
440
+ * `<`, `>`, `&` and U+2028/U+2029 to their `\uXXXX` forms after
441
+ * `JSON.stringify`, so an author named `</script><img onerror=…>` serialises
442
+ * as inert text rather than closing the element (AGL-496). Escaping a second
443
+ * time here would double-encode and put literal backslashes in a byline.
444
+ */ export function contentAuthorJsonLd(author, context) {
445
+ var _normalized_sameAs, _normalized_links;
446
+ const normalized = normalizeContentAuthor(author, author == null ? void 0 : author.$id);
447
+ if (!normalized) return undefined;
448
+ const schemaType = contentAuthorSchemaType(normalized.type);
449
+ const image = absoluteMediaSrc(normalized.image, {
450
+ hostId: context == null ? void 0 : context.hostId,
451
+ origin: context == null ? void 0 : context.origin
452
+ });
453
+ const sameAs = Array.from(new Set([
454
+ ...(_normalized_sameAs = normalized.sameAs) != null ? _normalized_sameAs : [],
455
+ ...((_normalized_links = normalized.links) != null ? _normalized_links : []).map((link)=>{
456
+ var _link_url;
457
+ return (_link_url = link.url) != null ? _link_url : '';
458
+ }).filter((url)=>/^https:\/\//i.test(url))
459
+ ])).slice(0, AUTHOR_SAME_AS_MAX);
460
+ return _extends({
461
+ '@type': schemaType,
462
+ name: normalized.name
463
+ }, normalized.url ? {
464
+ url: normalized.url
465
+ } : {}, image ? schemaType === 'Person' ? {
466
+ image
467
+ } : {
468
+ logo: image
469
+ } : {}, schemaType === 'Person' && normalized.jobTitle ? {
470
+ jobTitle: normalized.jobTitle
471
+ } : {}, schemaType === 'Person' && normalized.worksFor ? {
472
+ worksFor: {
473
+ '@type': 'Organization',
474
+ name: normalized.worksFor
475
+ }
476
+ } : {}, sameAs.length ? {
477
+ sameAs
478
+ } : {});
479
+ }
480
+ /**
481
+ * `schema.org` JSON-LD for the SITE entity (`host.seo.entity`) — the value
482
+ * `Article.publisher` and `WebSite.publisher` are built from.
483
+ *
484
+ * Lives beside {@link contentAuthorJsonLd} on purpose (AGL-2486): a site
485
+ * entity and a post author answer the same question about two different
486
+ * subjects, and the reason the Person branch was broken for two years is that
487
+ * the answer was written inline at its one call site where nothing could
488
+ * test it. One module, two entry points, one `Person`/`Organization`
489
+ * decision — {@link contentAuthorSchemaType}.
490
+ *
491
+ * `logo` is emitted verbatim on BOTH branches, unchanged from what the tenant
492
+ * has always published. It is `host.seo.entity.logo`, a plain URL field on
493
+ * the Setup form rather than a media-picker target, and re-keying it to
494
+ * `image` for a Person would change the publisher block on every page of
495
+ * every site that set one — a separate decision from this one.
496
+ */ export function hostSeoEntityJsonLd(entity) {
497
+ const name = text(entity == null ? void 0 : entity.name, 400);
498
+ if (!name) return undefined;
499
+ return {
500
+ '@type': contentAuthorSchemaType(entity == null ? void 0 : entity.type),
501
+ name
502
+ };
503
+ }
504
+ /**
505
+ * The publisher's picture, under the property its TYPE actually has
506
+ * (AGL-2486).
507
+ *
508
+ * `schema.org` gives `logo` to an Organization and not to a Person; a Person
509
+ * carries `image`. The tenant emitted `logo` for both, so a site that declared
510
+ * itself a Person published a property its own `@type` does not define —
511
+ * ignored by every consumer, which is the worst kind of wrong: the field is
512
+ * set, the console says it is published, and nothing renders it.
513
+ *
514
+ * That is the same shape as the bug one function up, where a string `"2"` was
515
+ * compared with a numeric enum and no site could ever publish `Person` at all.
516
+ * Both resolve here so the type is decided in exactly one place.
517
+ *
518
+ * Returns a spreadable object so callers stay a spread rather than a ternary:
519
+ * `{...hostSeoEntityImageJsonLd(entity)}` adds nothing when there is no
520
+ * picture, which is what an absent property should cost.
521
+ */ export function hostSeoEntityImageJsonLd(entity, context) {
522
+ /*
523
+ Through `absoluteMediaSrc`, exactly as an author's portrait goes
524
+ (AGL-1343/1407). The stored value has three generations — a raw storage
525
+ URL, a site-relative CDN path, and a `media:` reference — and the site
526
+ entity's was the one path still emitting whichever it found. A `media:`
527
+ reference reaches Google as the literal string `media:{scope}/{id}`,
528
+ which does not fetch; a site-relative path with no origin does not either.
529
+
530
+ An unresolvable value emits NO key rather than a broken one — the same
531
+ rule the author serializer states, and the reason both return a spreadable
532
+ object instead of a URL.
533
+ */ /*
534
+ TRIMMED first. `absoluteMediaSrc` does not trim, and a whitespace-only
535
+ value — what a field cleared by typing spaces leaves behind — is not
536
+ empty to it: it reads as a relative path and comes back joined to the
537
+ origin, so the site would publish `https://example.com/ ` as its
538
+ publisher logo. Trimmed here rather than in the resolver, which og:image
539
+ and every author portrait also go through.
540
+ */ const stored = typeof (entity == null ? void 0 : entity.logo) === 'string' ? entity.logo.trim() : '';
541
+ const image = stored ? absoluteMediaSrc(stored, {
542
+ hostId: context == null ? void 0 : context.hostId,
543
+ origin: context == null ? void 0 : context.origin
544
+ }) : '';
545
+ if (!image) return {};
546
+ return contentAuthorSchemaType(entity == null ? void 0 : entity.type) === 'Person' ? {
547
+ image
548
+ } : {
549
+ logo: image
550
+ };
551
+ }
552
+ /**
553
+ * The author record an entry publishes under, or `null` for "the site".
554
+ *
555
+ * ## Precedence, and why the legacy string keeps working
556
+ *
557
+ * 1. `entry.authorId` resolving against the host's authors — the new shape.
558
+ * 2. `entry.authorName` — every entry written before AGL-2486, and every
559
+ * entry whose editor chose "custom byline" instead of a record. Promoted
560
+ * to a `Person` with just a name, which is EXACTLY the JSON-LD the tenant
561
+ * already emitted for it, so no published page's structured data changes.
562
+ * 3. `null` — the caller falls back to the site's publisher entity, as before.
563
+ *
564
+ * An `authorId` pointing at a DELETED author falls through to step 2 and then
565
+ * to the site rather than resolving to nothing: an author record removed from
566
+ * the masthead must not silently strip the byline off ten years of posts.
567
+ */ export function resolveEntryAuthor(entry, authors) {
568
+ var _ref, _ref1;
569
+ const authorId = ((_ref = entry == null ? void 0 : entry.authorId) != null ? _ref : '').trim();
570
+ if (authorId) {
571
+ const match = (authors != null ? authors : []).find((author)=>(author == null ? void 0 : author.$id) === authorId);
572
+ const normalized = normalizeContentAuthor(match, authorId);
573
+ if (normalized) return normalized;
574
+ }
575
+ const legacy = ((_ref1 = entry == null ? void 0 : entry.authorName) != null ? _ref1 : '').trim();
576
+ if (legacy) {
577
+ return {
578
+ type: HostEntityType.PERSON,
579
+ name: legacy,
580
+ sameAs: []
581
+ };
582
+ }
583
+ return null;
584
+ }
585
+ /**
586
+ * The byline TEXT for an entry — what `{{entry.author}}` and the Entry Meta
587
+ * block print (AGL-1459). Resolves a record's name, falls back to the legacy
588
+ * string, and returns `''` when neither exists so the block renders nothing
589
+ * rather than the word "undefined".
590
+ */ export function resolveEntryAuthorName(entry, authors) {
591
+ var _ref;
592
+ var _resolveEntryAuthor;
593
+ return (_ref = (_resolveEntryAuthor = resolveEntryAuthor(entry, authors)) == null ? void 0 : _resolveEntryAuthor.name) != null ? _ref : '';
594
+ }
595
+ /** The fragment identifier the site entity is published under. */ export const SITE_ENTITY_FRAGMENT = '#organization';
596
+ /**
597
+ * EVERY PROFILE THE SITE CLAIMS AS ITSELF — `schema.org` `sameAs` (AGL-3148).
598
+ *
599
+ * Two fields hold these and only one was ever published. `seo.entity.sameAs`
600
+ * is the SEO form, and a production read found it unset on every host on the
601
+ * platform; `business.socialLinks` is the contact card the site's own footer
602
+ * renders from, and it is the one publishers actually fill in. So the
603
+ * structured data named no profiles at all on any site, while the profiles sat
604
+ * one field over being drawn into the page.
605
+ *
606
+ * Folding the second into `sameAs` is the AGL-2516 move one level up: a link
607
+ * the SITE prints is a profile the site claims, and asking a publisher to
608
+ * retype it into an SEO field to be believed is asking them to maintain the
609
+ * same list twice. The entity field stays FIRST, because it is the one written
610
+ * deliberately for this purpose.
611
+ *
612
+ * https-only and de-duplicated, matching both serializers beside it: a profile
613
+ * URL that is not fetchable teaches a consumer nothing, and one identity listed
614
+ * twice reads as two.
615
+ */ export function siteProfileUrls(host) {
616
+ var _ref, _ref1;
617
+ var _host_business, _host_seo_entity, _host_seo;
618
+ const rendered = ((_ref = host == null ? void 0 : (_host_business = host.business) == null ? void 0 : _host_business.socialLinks) != null ? _ref : []).map((link)=>{
619
+ var _ref;
620
+ return (_ref = link == null ? void 0 : link.url) != null ? _ref : '';
621
+ });
622
+ return Array.from(new Set([
623
+ ...(_ref1 = host == null ? void 0 : (_host_seo = host.seo) == null ? void 0 : (_host_seo_entity = _host_seo.entity) == null ? void 0 : _host_seo_entity.sameAs) != null ? _ref1 : [],
624
+ ...rendered
625
+ ].map((value)=>text(value, 800)).filter((value)=>/^https:\/\//i.test(value)))).slice(0, AUTHOR_SAME_AS_MAX);
626
+ }
627
+ /**
628
+ * The X (Twitter) handle among a set of profile URLs, as `@name` (AGL-3148).
629
+ *
630
+ * `twitter:site` and `twitter:creator` take a handle, and nothing on the
631
+ * platform stores one — what publishers and authors store is the profile URL,
632
+ * in the same list that feeds `sameAs`. Reading the handle back out of the URL
633
+ * is what lets both cards be attributed without a second field to fill in and
634
+ * keep in step.
635
+ *
636
+ * Both hostnames, because a link saved before the rename is still the same
637
+ * profile. Only a bare profile path qualifies: `x.com/AglynSoftware` is an
638
+ * account, while `x.com/AglynSoftware/status/123` is one post by it and
639
+ * `x.com/i/lists/9` is not an account at all — attributing a card to either
640
+ * would name something that is not the author of anything.
641
+ */ export function xHandleFromProfiles(urls) {
642
+ for (const value of urls != null ? urls : []){
643
+ let url;
644
+ try {
645
+ url = new URL(value);
646
+ } catch (unused) {
647
+ continue;
648
+ }
649
+ if (!/^(www\.)?(x|twitter)\.com$/i.test(url.hostname)) continue;
650
+ const segments = url.pathname.split('/').filter(Boolean);
651
+ if (segments.length !== 1) continue;
652
+ const handle = segments[0];
653
+ // X handles are 1–15 of `[A-Za-z0-9_]`. Anything else is one of the
654
+ // reserved paths (`i`, `home`, `search`) rather than somebody's account.
655
+ if (!/^[A-Za-z0-9_]{1,15}$/.test(handle)) continue;
656
+ if (/^(i|home|search|explore|notifications|messages|settings)$/i.test(handle)) continue;
657
+ return `@${handle}`;
658
+ }
659
+ return undefined;
660
+ }
661
+ /**
662
+ * The site's publisher as a STANDALONE, fully populated `schema.org` node
663
+ * (AGL-2716).
664
+ *
665
+ * ## Why this exists next to {@link hostSeoEntityJsonLd}
666
+ *
667
+ * That function builds the value `publisher` takes: a `@type` and a `name`,
668
+ * nested inside a `WebSite` or an `Article`, gated on the author having filled
669
+ * in the Entity form. It is deliberately narrow, and every call site nests it.
670
+ *
671
+ * A consumer asking "who runs this site, and how do I reach them" — an AI
672
+ * assistant answering a contact question, a readiness audit checking whether a
673
+ * business is identifiable — looks for a TOP-LEVEL node of type `Organization`
674
+ * carrying `name`, `description`, `contactPoint` and `address`. A publisher
675
+ * nested two levels inside a `WebSite` answers a different question, and a
676
+ * publisher that is absent because nobody filled in a form answers none.
677
+ *
678
+ * So this one:
679
+ *
680
+ * - is emitted as its own `<script type="application/ld+json">`, at the top
681
+ * level, where it can be found without walking into another node;
682
+ * - FALLS BACK to the site's own identity when the Entity form is empty, so
683
+ * every site on the platform publishes a complete entity rather than only
684
+ * the sites whose author found the form;
685
+ * - carries the contact and address fields, which are what turn "a name" into
686
+ * "a business a consumer can verify".
687
+ *
688
+ * ## Why the fallback is safe
689
+ *
690
+ * It changes nothing that already exists: `hostSeoEntityJsonLd` still gates on
691
+ * `entity.name`, so `publisher` appears exactly where it appeared before. The
692
+ * fallback only decides what THIS node says, and a site's display name is its
693
+ * publisher's name on the overwhelming majority of sites — the two differ when
694
+ * a company's trading name differs from its site's, which is precisely the case
695
+ * the Entity form exists to express.
696
+ *
697
+ * ## `@id`
698
+ *
699
+ * Both this node and the nested `publisher` carry the same `@id` when an
700
+ * origin is known, so a consumer merges them into one entity instead of
701
+ * reading a site that names its publisher twice with different detail.
702
+ *
703
+ * Returns `undefined` only when there is no name to be had from anywhere —
704
+ * a host document with no entity, no display name and no SEO title.
705
+ */ export function siteEntityJsonLd(host, context) {
706
+ var _ref, _ref1;
707
+ var _host_seo, _host_seo1, _context_origin, _host_seo2, _entity_address, _entity_address1, _entity_address2, _entity_address3, _entity_address4;
708
+ const entity = (_ref = host == null ? void 0 : (_host_seo = host.seo) == null ? void 0 : _host_seo.entity) != null ? _ref : undefined;
709
+ const name = text(entity == null ? void 0 : entity.name, 400) || text(host == null ? void 0 : host.displayName, 400) || text(host == null ? void 0 : (_host_seo1 = host.seo) == null ? void 0 : _host_seo1.title, 400);
710
+ if (!name) return undefined;
711
+ const origin = (_ref1 = context == null ? void 0 : (_context_origin = context.origin) == null ? void 0 : _context_origin.replace(/\/+$/, '')) != null ? _ref1 : '';
712
+ const description = text(entity == null ? void 0 : entity.description, 800) || text(host == null ? void 0 : (_host_seo2 = host.seo) == null ? void 0 : _host_seo2.description, 800);
713
+ const url = text(entity == null ? void 0 : entity.url, 800) || origin;
714
+ /*
715
+ `sameAs` is de-duplicated and https-only, matching the author serializer:
716
+ a profile URL that is not fetchable teaches a consumer nothing, and the
717
+ same profile listed twice reads as two identities.
718
+
719
+ Through `siteProfileUrls` (AGL-3148) so the site's rendered social links
720
+ count as profiles it claims, rather than only the SEO field that no host
721
+ on the platform had filled in.
722
+ */ const sameAs = siteProfileUrls(host);
723
+ /*
724
+ A contactPoint needs something to contact. `contactType` alone is a label
725
+ on nothing, so the point is emitted only when an address or a number is
726
+ present — `schema.org` requires neither, and a consumer that finds a
727
+ ContactPoint with no channel has been told less than it would learn from
728
+ its absence.
729
+ */ const email = text(entity == null ? void 0 : entity.email, 320);
730
+ const telephone = text(entity == null ? void 0 : entity.telephone, 64);
731
+ const contactType = text(entity == null ? void 0 : entity.contactType, 120) || 'customer support';
732
+ const contactPoint = email || telephone ? _extends({
733
+ '@type': 'ContactPoint',
734
+ contactType
735
+ }, email ? {
736
+ email
737
+ } : {}, telephone ? {
738
+ telephone
739
+ } : {}) : undefined;
740
+ const addressFields = {
741
+ streetAddress: text(entity == null ? void 0 : (_entity_address = entity.address) == null ? void 0 : _entity_address.streetAddress, 200),
742
+ addressLocality: text(entity == null ? void 0 : (_entity_address1 = entity.address) == null ? void 0 : _entity_address1.addressLocality, 120),
743
+ addressRegion: text(entity == null ? void 0 : (_entity_address2 = entity.address) == null ? void 0 : _entity_address2.addressRegion, 120),
744
+ postalCode: text(entity == null ? void 0 : (_entity_address3 = entity.address) == null ? void 0 : _entity_address3.postalCode, 40),
745
+ addressCountry: text(entity == null ? void 0 : (_entity_address4 = entity.address) == null ? void 0 : _entity_address4.addressCountry, 120)
746
+ };
747
+ const address = Object.entries(addressFields).filter(([, value])=>value);
748
+ const schemaType = contentAuthorSchemaType(entity == null ? void 0 : entity.type);
749
+ return _extends({
750
+ '@context': 'https://schema.org',
751
+ '@type': schemaType
752
+ }, origin ? {
753
+ '@id': `${origin}/${SITE_ENTITY_FRAGMENT}`
754
+ } : {}, {
755
+ name
756
+ }, description ? {
757
+ description
758
+ } : {}, url ? {
759
+ url
760
+ } : {}, hostSeoEntityImageJsonLd(entity, context), sameAs.length ? {
761
+ sameAs
762
+ } : {}, contactPoint ? {
763
+ contactPoint
764
+ } : {}, address.length ? {
765
+ address: _extends({
766
+ '@type': 'PostalAddress'
767
+ }, Object.fromEntries(address))
768
+ } : {});
769
+ }
770
+
771
+ //# sourceMappingURL=content-authors.js.map