@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,704 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * The READ side of marketing consent (`docs/specs/email-overhaul.md` §3f).
19
+ *
20
+ * `marketingConsent` has seven writers and, until this module, no reader on
21
+ * any send path: `performCampaignSend` filtered on the suppression list and
22
+ * on nothing else, so a recorded opt-in and a recorded opt-OUT reached the
23
+ * same inbox. This is the join that makes the field mean something.
24
+ *
25
+ * ## A basis is DECLARED, never inferred
26
+ *
27
+ * Nothing here treats an act as consent. Submitting a form, buying, booking,
28
+ * or holding an account are all things a person did for their own reasons,
29
+ * and none of them is an opt-in to marketing email. The only input is a
30
+ * stored `marketingConsent` written from a checkbox the person ticked. That
31
+ * is why {@link readMarketingBasis} takes a document rather than a silo name:
32
+ * there is no silo whose mere membership grants a basis.
33
+ *
34
+ * ## Three states, not two
35
+ *
36
+ * The field is written `true` by six capture paths and `false` by exactly one
37
+ * (`POST /v1/contacts`), so absence is not refusal — it is the far commoner
38
+ * case of a record captured before the checkbox existed. Collapsing absent
39
+ * into refused is what would empty an existing audience overnight; collapsing
40
+ * it into granted is what the product does today. Both are wrong, so the
41
+ * split is carried through to the caller as three counts rather than a
42
+ * boolean.
43
+ *
44
+ * ## A basis also records WHOSE act it was
45
+ *
46
+ * A basis an operator asserted over existing records — see
47
+ * `tools/scripts/backfill-marketing-consent.mjs` — is mailable, because an
48
+ * org that asserted it meant that data to be reachable. It is not, however,
49
+ * the same fact as a checkbox somebody ticked, and two fields that store
50
+ * only `true` and a date cannot tell the difference. So an asserted basis
51
+ * carries {@link MARKETING_CONSENT_SOURCE_FIELD} naming who asserted it,
52
+ * when, and why, and every reader gets that distinction back as
53
+ * {@link MarketingConsentRecord.assertedBy}. Consent is only evidence for as
54
+ * long as its origin survives with it.
55
+ *
56
+ * ## A basis also records WHICH BRAND it was given to
57
+ *
58
+ * Contacts are ORG-scoped and shared across every site in the org, which is
59
+ * deliberate: an agency running many client brands out of one account keeps
60
+ * one address book. Consent is not shareable on the same terms. It runs to a
61
+ * controller — the brand named on the form, in the sender line and in the
62
+ * privacy notice the person read — and not to the account that happens to
63
+ * hold the row. One boolean per person cannot express that, so somebody who
64
+ * opted in to one client's newsletter was mailable by every other client in
65
+ * the agency, on a basis none of them was given.
66
+ *
67
+ * So a basis is stored per (person, host), under
68
+ * {@link MARKETING_CONSENT_BY_HOST_FIELD}, and {@link readMarketingBasis}
69
+ * takes the host it is being read FOR. The host argument is required and has
70
+ * no default: a reader that has not said which brand is asking cannot
71
+ * compile, which is the same guarantee `newResourceScopeFields` gives on the
72
+ * write side of scoped resources.
73
+ *
74
+ * ## FIVE states, because collapsing any two of them is a bug in one
75
+ * direction or the other
76
+ *
77
+ * "This host has no basis for this person" and "another host has one" and "a
78
+ * grant exists that names no host at all" and "this person refused" are
79
+ * different facts, and every pair of them collapses into either a leak or a
80
+ * silent failure to mail somebody who did opt in. They are carried apart all
81
+ * the way to the caller as {@link MarketingConsentReason}, and
82
+ * {@link MarketingConsentSplit} counts them separately rather than reporting
83
+ * one `withheld` total that cannot be explained to a merchant.
84
+ *
85
+ * ## A REFUSAL over-applies; a GRANT never does
86
+ *
87
+ * The pre-host field is still read, and asymmetrically. A stored
88
+ * `marketingConsent: false` refuses for every host, because a refusal
89
+ * recorded against nobody in particular is most safely honored against
90
+ * everybody, and withholding mail is recoverable where sending it is not. A
91
+ * stored `marketingConsent: true` grants to NO host: it is a claim with no
92
+ * controller attached, and spreading it across an agency's unrelated clients
93
+ * is precisely the defect this module exists to end. Such a record reports
94
+ * {@link MarketingConsentRecord.otherGrant} as `'unscoped'` so a console can
95
+ * say why somebody stopped being mailable, and so
96
+ * `tools/scripts/backfill-consent-host.mjs` can find them.
97
+ */
98
+ import { type ConsentGroup } from './consent-groups';
99
+ /**
100
+ * The document field carrying WHO asserted a stored basis, and why.
101
+ *
102
+ * `marketingConsent` on its own records only WHAT the basis is. A record
103
+ * written by an operator and a record written from a checkbox a person
104
+ * ticked are the same two fields with the same two values, so nothing
105
+ * downstream — a console readout, an export, a regulator's question — can
106
+ * tell them apart. That is the difference between consent that is evidence
107
+ * and consent that is an assertion, so it is carried on the record itself
108
+ * rather than left to be reconstructed from when a script happened to run.
109
+ *
110
+ * Absent on every record written from a site's capture surface, which is why
111
+ * {@link readMarketingBasis} reads its absence as the person's own act: the
112
+ * six checkbox writers are the norm and an operator assertion is the thing
113
+ * that has to announce itself. The platform's own console doors (AGL-3185)
114
+ * do write it — which door, which wording version — and say whose act it
115
+ * describes with {@link MarketingConsentSource.actor}, so a record can carry
116
+ * provenance without being read as an assertion made on the person's behalf.
117
+ */
118
+ export declare const MARKETING_CONSENT_SOURCE_FIELD = "marketingConsentSource";
119
+ /**
120
+ * The `kind` an operator backfill stamps. A named constant because the
121
+ * script that writes it and the reader that finds it are in different
122
+ * languages and cannot share a type.
123
+ */
124
+ export declare const OPERATOR_BACKFILL_CONSENT_KIND = "operator-backfill";
125
+ /**
126
+ * The document field a LIST MEMBERSHIP carries beside `marketingConsent`,
127
+ * naming which of the two ways in produced it.
128
+ *
129
+ * `list-members.ts` writes it, with `'contact-opt-in'` for a basis carried
130
+ * across from the person's own record and
131
+ * {@link OPERATOR_ATTESTED_CONSENT_BASIS} for one a console account asserted.
132
+ * It is read here because a membership is a person record like any other to
133
+ * every reader in the send path, and a reader that knew only about
134
+ * {@link MARKETING_CONSENT_SOURCE_FIELD} would report an attestation as the
135
+ * person's own act.
136
+ */
137
+ export declare const MARKETING_CONSENT_BASIS_FIELD = "marketingConsentBasis";
138
+ /**
139
+ * The value of {@link MARKETING_CONSENT_BASIS_FIELD} that means an operator
140
+ * stated they have this person's permission.
141
+ *
142
+ * A string literal shared by the writer and the reader rather than a type,
143
+ * for the reason above: the enrollment path stores this on a document and
144
+ * this module reads it back off one, and a document has no types.
145
+ */
146
+ export declare const OPERATOR_ATTESTED_CONSENT_BASIS = "operator-attested";
147
+ /**
148
+ * The `kind` synthesized for an attested membership that carries no
149
+ * {@link MARKETING_CONSENT_SOURCE_FIELD} of its own.
150
+ *
151
+ * The console's one-address add path stores the attesting account in
152
+ * `marketingConsentByUid` and no provenance object, so the provenance a
153
+ * reader can honestly report for those rows is exactly "an account attested
154
+ * this" plus the account. Naming the kind rather than leaving the source
155
+ * `null` is what lets a console readout say WHO, which is the whole reason
156
+ * the attribution is stored.
157
+ */
158
+ export declare const OPERATOR_ATTESTED_CONSENT_KIND = "operator-attested";
159
+ /**
160
+ * The boolean field a basis has always been stored in.
161
+ *
162
+ * Named rather than spelled out at each site because it now appears in two
163
+ * positions — at the top of a person document, and again inside every entry
164
+ * of {@link MARKETING_CONSENT_BY_HOST_FIELD} — and the second position is
165
+ * only readable by the same parser as the first while both agree on the name.
166
+ */
167
+ export declare const MARKETING_CONSENT_FIELD = "marketingConsent";
168
+ /**
169
+ * The map field holding one consent entry per host: `{ [hostId]: entry }`,
170
+ * where an entry carries exactly the fields the top level carries.
171
+ *
172
+ * ## Why a map on the person document and not a subcollection
173
+ *
174
+ * The send path reads consent out of the audience sweep, while the person's
175
+ * document is already in hand — that placement is what keeps the consent join
176
+ * free. A subcollection would make it one extra read PER RECIPIENT PER
177
+ * CAMPAIGN, on the one path in the product whose cost scales with the size of
178
+ * a customer's list. The map rides along with a document that is being read
179
+ * anyway.
180
+ *
181
+ * ## Why keyed by host id
182
+ *
183
+ * `entry = map[hostId]` is a lookup that has no way to return another host's
184
+ * grant. A list of entries carrying a `hostId` field would have to be
185
+ * searched, and a search is something a caller can get wrong — a `.find()`
186
+ * whose predicate is dropped still returns a grant, just somebody else's.
187
+ * There is no expression of this shape that reads host B's consent while
188
+ * asking about host A.
189
+ *
190
+ * ## Why the entries repeat the top-level field names
191
+ *
192
+ * So that one parser reads both. Provenance, the attested-basis marker, the
193
+ * attesting account and the timestamp all mean the same thing wherever they
194
+ * sit, and a second set of names would be a second set of rules for the two
195
+ * positions to disagree about — which is how the attested-membership case
196
+ * came to be reported as a person's own act in the first place.
197
+ */
198
+ export declare const MARKETING_CONSENT_BY_HOST_FIELD = "marketingConsentByHost";
199
+ /**
200
+ * The field naming every host that has CAPTURED a person record.
201
+ *
202
+ * Not consent, and deliberately not stored with it. Somebody captured by one
203
+ * brand may go on to consent to two, or to none; conflating capture with
204
+ * permission is how an act a person took for their own reasons — booking a
205
+ * table, buying a thing — comes to be read as an opt-in. It is here because a
206
+ * grandfathered basis is a claim about WHEN a record was captured, and that
207
+ * claim only ever belonged to the brands that captured it.
208
+ *
209
+ * ## An ARRAY, and top-level, because it has to be a QUERY
210
+ *
211
+ * It serves both organizations from one field. An agency filters to "the
212
+ * people MY site captured"; a business running three sites as one asks for
213
+ * "everyone captured on A, B or C". Both are `array-contains-any` over this
214
+ * field, which is why it is a top-level array of ids and not a label on a
215
+ * detail page and not a map: Firestore can filter this shape and cannot
216
+ * filter an array of objects.
217
+ *
218
+ * It GROWS. A person who fills in a second site's form is captured by that
219
+ * site too, and the write is an `arrayUnion` on the merge branch as well as
220
+ * on the create — which is exactly what the create-only `hostId` beside it
221
+ * could never record.
222
+ *
223
+ * Read with the scalar `hostId` as a fallback on `contacts`, which has
224
+ * stamped its FIRST capturing host under that name since the collection
225
+ * existed. That is a strict subset of this fact under an older name, and a
226
+ * reader that ignored it would report every existing contact as unattributed.
227
+ */
228
+ export declare const CAPTURED_BY_HOST_FIELD = "capturedByHostIds";
229
+ /**
230
+ * The consent group a stored grant was given to, recorded ON THE ENTRY.
231
+ *
232
+ * The declaration lives on the org and can change; this is what was DISCLOSED
233
+ * to this person at the moment they agreed. Reading pooling from the org's
234
+ * current declaration instead would let adding a site to a group widen every
235
+ * grant ever made, which is the leak with a configuration screen in front of
236
+ * it. So the group travels with the grant, and a group that grows reaches
237
+ * only the captures that come after it.
238
+ */
239
+ export declare const CONSENT_GROUP_ID_FIELD = "consentGroupId";
240
+ /**
241
+ * The group's display name as the capture surface showed it.
242
+ *
243
+ * Stored beside the id because the id is not evidence: answering "what was
244
+ * this person told" with a document key is answering a different question.
245
+ * A group can also be renamed, and the name that matters is the one on the
246
+ * screen they were looking at.
247
+ */
248
+ export declare const CONSENT_GROUP_NAME_FIELD = "consentGroupName";
249
+ /**
250
+ * The provenance stored alongside a basis: who recorded it, when, and why.
251
+ *
252
+ * Written by the operator backfill and, since AGL-3185, by the platform's
253
+ * own console doors for the person's own decision.
254
+ */
255
+ export interface MarketingConsentSource {
256
+ /**
257
+ * What kind of record this is — {@link OPERATOR_BACKFILL_CONSENT_KIND}, or
258
+ * the console door that captured a person's own decision.
259
+ */
260
+ kind: string;
261
+ /**
262
+ * Who recorded it: the operator who asserted it, or the account that made
263
+ * its own decision. Never blank on a well-formed record.
264
+ */
265
+ by: string;
266
+ /** When it was recorded. */
267
+ atMs: number | null;
268
+ /** Why, in prose, for whoever audits this later. */
269
+ reason: string;
270
+ /**
271
+ * Whose act this provenance describes.
272
+ *
273
+ * Absent on every record the operator writers stamp, and read as
274
+ * `'operator'`: an assertion is what provenance meant before a door
275
+ * existed that records the person's own click WITH provenance. Such a door
276
+ * writes `'person'`, which is the only way a record carrying this field
277
+ * reads as the person's own act.
278
+ */
279
+ actor?: MarketingConsentAssertedBy;
280
+ /**
281
+ * The version of the consent wording the person was shown, when the door
282
+ * versions its wording. Absent on an operator assertion, which showed the
283
+ * person nothing.
284
+ */
285
+ textVersion?: string;
286
+ }
287
+ /** Whose act a stored basis represents. */
288
+ export type MarketingConsentAssertedBy = 'person' | 'operator';
289
+ /** What a person's stored consent record says, if anything. */
290
+ export type MarketingBasis =
291
+ /** A checkbox was ticked and stored. Mailable under every policy. */
292
+ 'granted'
293
+ /** A stored refusal. Never mailable, under every policy. */
294
+ | 'declined'
295
+ /** No consent field on the record at all — see {@link MarketingConsentPolicy}. */
296
+ | 'unrecorded';
297
+ /**
298
+ * A grant this host may not use, and which kind it is.
299
+ *
300
+ * Reported so that "nobody has ever consented for this person" and "somebody
301
+ * consented, to a brand that is not the one asking" stay distinguishable. The
302
+ * two produce the same verdict and must not produce the same explanation: the
303
+ * first is a list that was never opted in, and the second is an agency's
304
+ * client reaching for another client's audience.
305
+ *
306
+ * `'other-host'` outranks `'unscoped'` when both are true. Operationally they
307
+ * are the same refusal, and the named host is the more useful half to show.
308
+ */
309
+ export type MarketingConsentOtherGrant = 'none' | 'other-host' | 'unscoped';
310
+ /** One recipient's consent facts, as read off whichever silo produced them. */
311
+ export interface MarketingConsentRecord {
312
+ /**
313
+ * The host this record was read FOR. Every field below answers about this
314
+ * host and no other.
315
+ *
316
+ * Carried on the record rather than remembered by the caller because a
317
+ * consent map is built in one place and consumed in another —
318
+ * {@link splitByMarketingConsent} refuses a map whose records were read for
319
+ * a different host, and it can only do that if the records say.
320
+ */
321
+ hostId: string;
322
+ /**
323
+ * The consent group the read was made against — the declared set of sites
324
+ * that are ONE sender, or the site alone when nothing was declared.
325
+ *
326
+ * A grant is looked up under {@link hostId} alone, because pooling is
327
+ * written forward at capture. A REFUSAL is honored across every site in
328
+ * this group, because a person who unsubscribed from one of three sites
329
+ * that present as one sender has left the sender, and asking them to do it
330
+ * twice more is both hostile and wrong.
331
+ */
332
+ groupId: string;
333
+ /**
334
+ * A grant that exists but is not this host's — see
335
+ * {@link MarketingConsentOtherGrant}. `'none'` when there is no such grant,
336
+ * which is the only value under which an absent basis may grandfather.
337
+ */
338
+ otherGrant: MarketingConsentOtherGrant;
339
+ /**
340
+ * Every host that captured the underlying person record; empty when none
341
+ * is attributed.
342
+ *
343
+ * Attribution, not permission. It is read here for exactly one decision:
344
+ * a record grandfathers on its capture date, and a date another brand
345
+ * earned is not this brand's to rely on. An EMPTY list is the honest
346
+ * unattributed case and grandfathers, for the reason a missing capture
347
+ * DATE does — the unknown leans toward reachable.
348
+ */
349
+ capturedByHostIds: string[];
350
+ /**
351
+ * Whether any of {@link capturedByHostIds} is a member of the group this
352
+ * record was read for.
353
+ *
354
+ * Derived at read time, because the raw list is a fact about the person and
355
+ * this is a fact about the relationship — and only the reader holds the
356
+ * group's membership. It is the input to grandfathering: the argument that
357
+ * a record predates enforcement belongs to whoever collected the address,
358
+ * and three sites declared as one sender collected it together.
359
+ */
360
+ capturedByGroup: boolean;
361
+ basis: MarketingBasis;
362
+ /**
363
+ * Whose act the basis represents, or `null` when there is no basis to
364
+ * attribute. `'person'` for the capture surfaces and for a console door
365
+ * whose provenance says so, `'operator'` for a basis an operator asserted
366
+ * on somebody's behalf.
367
+ *
368
+ * Not a second grade of mailability — {@link marketingConsentVerdict}
369
+ * ignores it, because an org that asserted a basis for its own seed data
370
+ * meant that data to be reachable. It exists so every surface that reports
371
+ * consent can report which kind it has, instead of presenting an assertion
372
+ * as evidence.
373
+ */
374
+ assertedBy: MarketingConsentAssertedBy | null;
375
+ /**
376
+ * The provenance behind the basis; `null` when the writer stamped none,
377
+ * which every site capture surface does. Present for an operator assertion
378
+ * and for a console door's record of the person's own decision — the two
379
+ * are told apart by {@link assertedBy}, not by this being set.
380
+ */
381
+ source: MarketingConsentSource | null;
382
+ /** When the basis was recorded, when the writer stamped it. */
383
+ basisAtMs: number | null;
384
+ /**
385
+ * When the underlying person record was captured, when the silo stores it.
386
+ *
387
+ * `null` is the honest answer for a hand-typed address, which has no record
388
+ * behind it at all, and it is treated as "captured before enforcement" for
389
+ * the reason given on {@link MarketingConsentPolicy.enforceFromMs}.
390
+ */
391
+ capturedAtMs: number | null;
392
+ }
393
+ /**
394
+ * How strictly `unrecorded` is treated. `granted` and `declined` are not
395
+ * affected by this: a stored refusal is honored under every mode, which is
396
+ * the one piece of enforcement that is safe to switch on with no decision
397
+ * from anyone.
398
+ */
399
+ export interface MarketingConsentPolicy {
400
+ /**
401
+ * `'forward'` — NOT retroactive. A record captured on or after
402
+ * {@link enforceFromMs} needs a recorded basis; one captured before it
403
+ * stays reachable and is reported as grandfathered. Turning this on drops
404
+ * nobody who is currently in an audience, which is what makes it the mode
405
+ * a deployment with a real back catalog wants.
406
+ *
407
+ * `'strict'` — retroactive. Every recipient needs a recorded basis, and
408
+ * nothing grandfathers. It can shrink an existing audience sharply,
409
+ * possibly to near zero.
410
+ *
411
+ * `'strict'` is the current default; see
412
+ * {@link DEFAULT_MARKETING_CONSENT_POLICY} for the pre-release condition
413
+ * that makes a retroactive default safe, and for when it stops being so.
414
+ */
415
+ mode: 'forward' | 'strict';
416
+ /**
417
+ * The forward cutoff, in epoch millis.
418
+ *
419
+ * A record with no capture timestamp is treated as captured BEFORE this,
420
+ * because the silos that omit one are the older ones — the direction of the
421
+ * unknown is toward grandfathering, so a missing field can only ever leave
422
+ * somebody reachable, never silently withhold their mail.
423
+ */
424
+ enforceFromMs: number;
425
+ }
426
+ /**
427
+ * The default forward cutoff: 2026-09-01T00:00:00Z.
428
+ *
429
+ * A date rather than a per-org stamp, so the rule has an answer on an org that
430
+ * has never opened the setting.
431
+ *
432
+ * It divides the audience only under `'forward'`, where a record predating it
433
+ * grandfathers and every capture from the checkbox-bearing surfaces onward
434
+ * carries a basis or is withheld. Under `'strict'` it decides nothing, since
435
+ * no record grandfathers at any date.
436
+ *
437
+ * An org may move it later (a longer grace period) or earlier (voluntarily
438
+ * enforcing over more of its own back catalog) through
439
+ * {@link resolveMarketingConsentPolicy}.
440
+ */
441
+ export declare const MARKETING_CONSENT_ENFORCED_FROM_MS: number;
442
+ /**
443
+ * The policy an org gets when it has never configured one.
444
+ *
445
+ * `'strict'` — every recipient needs a recorded basis, and nothing is
446
+ * grandfathered. That is defensible because of WHEN it ships: the product is
447
+ * pre-release with no real customers, so the population a retroactive rule
448
+ * removes is test and seeded demo data. The usual objection to retroactive
449
+ * enforcement — that it silently shrinks a live audience, sometimes to
450
+ * nothing — has nobody here to injure.
451
+ *
452
+ * ⚠️ It stops being defensible the moment real addresses exist. A deployment
453
+ * that has already collected an audience under the old rule sets `'forward'`
454
+ * on its orgs rather than inheriting this, because flipping to strict over a
455
+ * live back catalog withholds mail from people who were legitimately
456
+ * reachable the day before.
457
+ *
458
+ * `enforceFromMs` stays populated and is still read: under `'strict'` it
459
+ * decides nothing, but an org moving back to `'forward'` gets a real cutoff
460
+ * rather than a missing field.
461
+ */
462
+ export declare const DEFAULT_MARKETING_CONSENT_POLICY: MarketingConsentPolicy;
463
+ /**
464
+ * Reads an org's stored `marketingConsentPolicy` into a usable policy.
465
+ *
466
+ * Every unusable value falls back to the default rather than to "off": there
467
+ * is no off. A malformed setting must not be a way to switch the join back
468
+ * out, because the failure mode of that is mail to people who declined.
469
+ *
470
+ * The fallback is {@link DEFAULT_MARKETING_CONSENT_POLICY} itself rather than
471
+ * a mode repeated here. This function is the ONLY path by which any send
472
+ * reaches a policy, so a literal in it would be the real default and the
473
+ * exported constant would be a decoration: changing the constant would move
474
+ * what `marketing-consent.spec.ts` asserts and nothing that mails anybody.
475
+ * Only the two modes a caller may actually store are honored, so a stored
476
+ * value that means neither lands on the default with everything else.
477
+ */
478
+ export declare function resolveMarketingConsentPolicy(stored: unknown): MarketingConsentPolicy;
479
+ /**
480
+ * Reads the consent facts off one person record from any silo.
481
+ *
482
+ * The field names differ by collection and the capture timestamp does too —
483
+ * `contacts`, `leads` and `siteMembers` stamp `createdAt`, a list membership
484
+ * stamps `addedAt` — so both are read from a small set of aliases rather than
485
+ * one name per caller. A caller that has to remember which name its silo uses
486
+ * is a caller that can read the wrong one and silently get `undefined`, which
487
+ * is exactly how `siteMembers` came to be addressed by a blank merge tag.
488
+ *
489
+ * ## TWO fields can say "an operator asserted this", and both are read
490
+ *
491
+ * A backfilled CRM record announces itself with {@link
492
+ * MARKETING_CONSENT_SOURCE_FIELD}; a LIST MEMBERSHIP announces itself with
493
+ * {@link MARKETING_CONSENT_BASIS_FIELD} set to {@link
494
+ * OPERATOR_ATTESTED_CONSENT_BASIS}, because the enrollment path stores what
495
+ * KIND of basis a membership carries and stores the attesting account beside
496
+ * it. Reading only the first would report every attested enrollment — every
497
+ * address a merchant added by hand, and every address an import brings in —
498
+ * as a checkbox the person ticked, which is precisely the conflation the
499
+ * attribution exists to prevent. The send-time consent join reads a
500
+ * membership through this function, so the wrong answer here is the wrong
501
+ * answer in a compliance response.
502
+ *
503
+ * ## The basis comes from `hostId`'s ENTRY, and from nowhere else
504
+ *
505
+ * `entry = map[hostId]` — a lookup with no way to reach another host's grant.
506
+ * The pre-host top-level field is consulted only for the asymmetry the module
507
+ * note states: a `false` there refuses for every host, a `true` there grants
508
+ * to none and reports itself as {@link MarketingConsentOtherGrant} `'unscoped'`
509
+ * instead.
510
+ *
511
+ * @param record any silo's person document data, or `null` for an address
512
+ * with no record behind it (a hand-typed manual audience).
513
+ * @param hostId the site asking. Required and undefaulted: a caller that has
514
+ * not said which brand wants to mail this person has not asked
515
+ * a question this function can answer.
516
+ */
517
+ export declare function readMarketingBasis(record: Record<string, unknown> | null | undefined, group: ConsentGroup): MarketingConsentRecord;
518
+ /**
519
+ * Every host that holds a GRANT for this person, sorted.
520
+ *
521
+ * The console readout and the API projection both need it, and the agency
522
+ * handoff is the third caller: "which of these rows are this client's" is
523
+ * this list intersected with one host.
524
+ *
525
+ * A refusal is not reported here. The question is which brands may mail this
526
+ * person, and an unscoped refusal answers it for all of them at once — see
527
+ * {@link readMarketingBasis}, which is where that asymmetry is decided.
528
+ */
529
+ export declare function marketingConsentHostIds(record: Record<string, unknown> | null | undefined): string[];
530
+ /**
531
+ * The document fields that RECORD a basis for one host, as a spreadable
532
+ * object to merge onto a person document.
533
+ *
534
+ * The one writer helper for eleven capture doors. They wrote
535
+ * `{ marketingConsent: true, marketingConsentAtMs: … }` inline, eleven times,
536
+ * and every one of those grants applied to every brand in the org. A helper
537
+ * that takes the host is what makes the omission impossible: there is no
538
+ * spelling of this call that records a grant without saying whose it is.
539
+ *
540
+ * ⛔ It writes a grant and never a refusal. An opt-out is not the inverse of
541
+ * an opt-in — it belongs beside the site's suppression list, has to survive a
542
+ * later capture that would otherwise overwrite it, and is recorded by
543
+ * `declineMarketingConsentFields` instead.
544
+ *
545
+ * Nested rather than dot-pathed so it composes with a `{ merge: true }` set,
546
+ * which deep-merges maps: writing one host's entry leaves every other host's
547
+ * untouched. A dotted `update` would do the same but cannot be spread into
548
+ * the object literals these doors already build, and cannot create the
549
+ * document when it is new.
550
+ *
551
+ * @param atMs when the person gave it. Defaulted by the caller, not here: a
552
+ * clock read hidden in a helper is one a test cannot pin.
553
+ */
554
+ export declare function marketingConsentFieldsForGroup(group: ConsentGroup, atMs: number, extra?: Readonly<Record<string, unknown>>): Record<string, unknown>;
555
+ /**
556
+ * The group-of-one convenience, for a writer that has a site and no org.
557
+ *
558
+ * Narrow by construction, which is the safe direction: a door that should
559
+ * have pooled and did not withholds mail, where a door that pooled without a
560
+ * disclosure sends it.
561
+ */
562
+ export declare function marketingConsentFieldsForHost(hostId: string, atMs: number, extra?: Readonly<Record<string, unknown>>): Record<string, unknown>;
563
+ /**
564
+ * The document fields that record a REFUSAL for one host.
565
+ *
566
+ * Separate from the grant helper because the two are not one function with a
567
+ * boolean. A refusal is written by the unsubscribe path and by the API's
568
+ * explicit `marketingConsent: false`, neither of which carries provenance a
569
+ * person supplied, and — unlike a grant — the pre-host field is still honored
570
+ * against every host, so the two are not symmetric anywhere in this module.
571
+ *
572
+ * @param extra fields stored on the entry beside the refusal — the console
573
+ * doors pass the person's own provenance here (AGL-3185), the
574
+ * same way the grant helper takes it.
575
+ */
576
+ export declare function declineMarketingConsentFields(hostId: string, atMs: number, extra?: Readonly<Record<string, unknown>>): Record<string, unknown>;
577
+ /** What a policy decided about one recipient. */
578
+ export type MarketingConsentVerdict =
579
+ /** A recorded basis. Mailable. */
580
+ 'consented'
581
+ /** No recorded basis, captured before the cutoff. Mailable, and reported. */
582
+ | 'grandfathered'
583
+ /** Not mailable: a stored refusal, or no basis under an enforcing policy. */
584
+ | 'withheld';
585
+ /**
586
+ * WHY a record landed on its verdict — the states that must not collapse.
587
+ *
588
+ * Three of these are `withheld`, and the whole point is that they are three.
589
+ * A merchant told "412 withheld" cannot act; a merchant told which of these
590
+ * 412 are their own un-opted-in list, which belong to a sister brand, and
591
+ * which said no, can. And every pair of them, merged, is a defect: merge
592
+ * `'other-host'` into `'granted'` and an agency's client mails another
593
+ * client's subscribers; merge it into `'no-basis'` and nobody can see that
594
+ * the leak was ever closed.
595
+ */
596
+ export type MarketingConsentReason =
597
+ /** This host holds a recorded basis. */
598
+ 'granted'
599
+ /** No basis, captured before the cutoff by this host or by nobody. */
600
+ | 'grandfathered'
601
+ /** This host holds a recorded refusal, or an unscoped one does. */
602
+ | 'declined'
603
+ /** A grant exists, and it is not this host's. */
604
+ | 'other-host'
605
+ /** Nobody holds a basis for this person. */
606
+ | 'no-basis'
607
+ /** No basis, and the record's capture date falls under an enforcing rule. */
608
+ | 'not-grandfathered';
609
+ /** One record's verdict and the reason behind it. */
610
+ export interface MarketingConsentDecision {
611
+ verdict: MarketingConsentVerdict;
612
+ reason: MarketingConsentReason;
613
+ }
614
+ /**
615
+ * Applies a policy to one record. Pure, and the only place the rule lives.
616
+ *
617
+ * ## Grandfathering is a claim about a CAPTURE, so it belongs to the capturer
618
+ *
619
+ * Under `'forward'`, a record with no basis stays reachable because it
620
+ * predates enforcement. That argument is made on behalf of the brand that
621
+ * collected the address — it had a relationship with this person before there
622
+ * was a checkbox to tick. A sister brand in the same agency has no such
623
+ * history and inherits none by sharing an address book, so a record captured
624
+ * by another host does not grandfather here. Where no host is attributed the
625
+ * argument has nobody to belong to and nobody to exclude, so it holds: the
626
+ * unknown leans toward reachable, exactly as a missing capture DATE does.
627
+ *
628
+ * ## A grant elsewhere ends grandfathering outright
629
+ *
630
+ * `otherGrant` is evidence that consent WAS collected for this person and
631
+ * that this host is not who it was given to. Grandfathering on top of that
632
+ * would let the agency case back in through the one door the policy leaves
633
+ * open, which is the same leak in a longer sentence.
634
+ */
635
+ export declare function marketingConsentDecision(record: MarketingConsentRecord, policy: MarketingConsentPolicy): MarketingConsentDecision;
636
+ /**
637
+ * The verdict alone, for the callers that only decide whether to send.
638
+ *
639
+ * Delegated rather than reimplemented so there is one rule and not two that
640
+ * agree today.
641
+ */
642
+ export declare function marketingConsentVerdict(record: MarketingConsentRecord, policy: MarketingConsentPolicy): MarketingConsentVerdict;
643
+ /** The split of one audience, kept as counts so a caller can display it. */
644
+ export interface MarketingConsentSplit {
645
+ /** The addresses that may actually be mailed, in the order given. */
646
+ mailable: string[];
647
+ /** Of `mailable`, how many carry a recorded basis. */
648
+ consented: number;
649
+ /**
650
+ * Of `consented`, how many hold a basis an OPERATOR asserted rather than
651
+ * one the person gave — see {@link MarketingConsentRecord.assertedBy}.
652
+ *
653
+ * A subset of `consented` and not a fourth population, because it is not a
654
+ * different mailability. It is reported separately so a surface showing
655
+ * "N consented" can avoid presenting a backfill as N opt-ins.
656
+ */
657
+ consentedByOperator: number;
658
+ /** Of `mailable`, how many are reachable only because of grandfathering. */
659
+ grandfathered: number;
660
+ /** Refused by the consent rule, and therefore never metered or mailed. */
661
+ withheld: number;
662
+ /**
663
+ * Of `withheld`, how many hold a recorded refusal.
664
+ *
665
+ * The three counts below partition `withheld` — they exist because one
666
+ * total cannot be acted on. A merchant looking at a short audience needs to
667
+ * know whether they are looking at people who said no, people nobody ever
668
+ * asked, or people who opted in to a DIFFERENT brand in the same account
669
+ * and were correctly left alone.
670
+ */
671
+ withheldDeclined: number;
672
+ /** Of `withheld`, how many hold a grant that belongs to another brand. */
673
+ withheldOtherHost: number;
674
+ /** Of `withheld`, how many hold no basis anywhere. */
675
+ withheldNoBasis: number;
676
+ }
677
+ /**
678
+ * Splits an audience into who may be mailed and who may not, FOR ONE HOST.
679
+ *
680
+ * Returns counts rather than addresses for the reported populations: the
681
+ * console surface that shows this figure is telling a merchant how their
682
+ * audience divides, and handing back the withheld ADDRESSES would turn a
683
+ * consent readout into a way to export the people who declined.
684
+ *
685
+ * ## The host argument, and why a mismatch throws
686
+ *
687
+ * A consent map is built where the person documents are read and consumed
688
+ * somewhere else. Between those two points the host can be lost — a helper
689
+ * that takes one hostId and passes another, a cached map reused for a second
690
+ * site, a merge of two audiences. The result would be host A's grants
691
+ * deciding host B's send, silently and with every count still adding up.
692
+ *
693
+ * So the host is stated at both ends and compared. A mismatch is a wiring
694
+ * defect that no runtime value can produce, and it fails loudly rather than
695
+ * mailing somebody on a basis they gave to a different company. This is the
696
+ * same refusal `newResourceScopeFields` makes over an empty scope, for the
697
+ * same reason: a caller that computed the wrong thing is worth a stack trace.
698
+ *
699
+ * @param emails normalized, de-duplicated recipient addresses.
700
+ * @param records consent facts by address, every one read for `hostId`; a
701
+ * missing entry reads as a record-less address.
702
+ * @param hostId the site sending. Every record must have been read for it.
703
+ */
704
+ export declare function splitByMarketingConsent(emails: readonly string[], records: ReadonlyMap<string, MarketingConsentRecord>, policy: MarketingConsentPolicy, group: ConsentGroup): MarketingConsentSplit;