@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,108 @@
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
+ * What support each plan actually commits to (AGL-1103).
19
+ *
20
+ * Support was one binary gate — `plan !== 'free'` — so a Starter org and an
21
+ * Enterprise org got the identical queue, the identical silence, and no stated
22
+ * target either could hold us to. The plans imply tiers; nothing implemented
23
+ * them.
24
+ *
25
+ * These numbers are a COMMERCIAL COMMITMENT, not an engineering choice. They
26
+ * are set deliberately long: a published target is easy to tighten and painful
27
+ * to loosen, and the only thing worse than a slow promise is a fast one that
28
+ * gets missed. Changing them changes what customers are owed, so they live
29
+ * here alone and nowhere else.
30
+ */
31
+ import type { OrgPlan } from '../foundation';
32
+ /** Ordered weakest → strongest; the queue sorts on this. */
33
+ export type SupportTier = 'community' | 'standard' | 'business' | 'priority' | 'dedicated';
34
+ /**
35
+ * A first-response window.
36
+ *
37
+ * The unit is explicit per tier rather than normalised, because the two are
38
+ * genuinely different promises and collapsing them hides that. "3 business
39
+ * days" spans a weekend; "48 hours" does not. Enterprise is quoted in clock
40
+ * hours precisely because it is the tier that does not stop on Friday.
41
+ */
42
+ export interface ResponseWindow {
43
+ min: number;
44
+ max: number;
45
+ unit: 'business-days' | 'hours';
46
+ }
47
+ export interface SupportCommitment {
48
+ tier: SupportTier;
49
+ /** Shown to customers. */
50
+ label: string;
51
+ /** `null` means no ticket commitment — the forum is the channel. */
52
+ firstResponse: ResponseWindow | null;
53
+ /** A named human, not a queue. Enterprise only. */
54
+ namedManager: boolean;
55
+ /**
56
+ * Access to the community forum.
57
+ *
58
+ * True on every tier including Community, and that is the whole meaning of
59
+ * "forum only": a tier with no ticket commitment whose forum was also shut
60
+ * would have no support channel at all, which is not a tier — it is nothing
61
+ * wearing a tier's name.
62
+ */
63
+ forum: boolean;
64
+ }
65
+ /**
66
+ * Every plan's commitment.
67
+ *
68
+ * `Record<OrgPlan, …>` on purpose: a new plan fails to compile here rather
69
+ * than silently inheriting whatever the lookup's fallback happens to be, which
70
+ * for support means either promising something we never agreed or promising
71
+ * nothing to someone who paid.
72
+ */
73
+ export declare const SUPPORT_BY_PLAN: Record<OrgPlan, SupportCommitment>;
74
+ /** Strength order, weakest first — the index IS the rank. */
75
+ export declare const SUPPORT_TIER_ORDER: SupportTier[];
76
+ /** Higher is stronger. Used to order the staff queue. */
77
+ export declare function supportTierRank(tier: SupportTier): number;
78
+ export declare function supportForPlan(plan: OrgPlan | undefined | null): SupportCommitment;
79
+ /** "7–14 business days" · "24–48 hours" · "1 business day". */
80
+ export declare function describeResponseWindow(window: ResponseWindow | null): string | null;
81
+ /**
82
+ * Advance past `count` business days, skipping Saturday and Sunday.
83
+ *
84
+ * Deliberately does NOT know about public holidays. A half-right holiday
85
+ * calendar is worse than none — it would quietly shorten the deadline in
86
+ * whichever country it did not cover, and support is answered from more than
87
+ * one. The stated window is long enough to absorb them; when that stops being
88
+ * true this needs a real calendar, not a patch.
89
+ */
90
+ export declare function addBusinessDays(fromMs: number, count: number): number;
91
+ /**
92
+ * When a first response is owed at the latest, or `null` if nothing is owed.
93
+ *
94
+ * Always the MAX of the window. The range is what we tell customers; the
95
+ * commitment is its upper bound, and that is the only number a breach can be
96
+ * measured against.
97
+ */
98
+ export declare function responseDueAt(commitment: SupportCommitment, openedAtMs: number): number | null;
99
+ /**
100
+ * Is the ladder still strictly better as plans get stronger?
101
+ *
102
+ * Exported so a test can assert it, because the failure is silent and the
103
+ * units differ across tiers: quoting Enterprise in business hours rather than
104
+ * clock hours makes it slower than Agency while every individual number still
105
+ * looks reasonable on its own. Compares worst cases as elapsed wall-clock from
106
+ * a Monday, which is the only basis on which the two units are comparable.
107
+ */
108
+ export declare function ladderIsMonotonic(mondayMs: number): boolean;
@@ -0,0 +1,201 @@
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
+ * What support each plan actually commits to (AGL-1103).
18
+ *
19
+ * Support was one binary gate — `plan !== 'free'` — so a Starter org and an
20
+ * Enterprise org got the identical queue, the identical silence, and no stated
21
+ * target either could hold us to. The plans imply tiers; nothing implemented
22
+ * them.
23
+ *
24
+ * These numbers are a COMMERCIAL COMMITMENT, not an engineering choice. They
25
+ * are set deliberately long: a published target is easy to tighten and painful
26
+ * to loosen, and the only thing worse than a slow promise is a fast one that
27
+ * gets missed. Changing them changes what customers are owed, so they live
28
+ * here alone and nowhere else.
29
+ */ /**
30
+ * Every plan's commitment.
31
+ *
32
+ * `Record<OrgPlan, …>` on purpose: a new plan fails to compile here rather
33
+ * than silently inheriting whatever the lookup's fallback happens to be, which
34
+ * for support means either promising something we never agreed or promising
35
+ * nothing to someone who paid.
36
+ */ export const SUPPORT_BY_PLAN = {
37
+ free: {
38
+ tier: 'community',
39
+ label: 'Community',
40
+ firstResponse: null,
41
+ namedManager: false,
42
+ forum: true
43
+ },
44
+ starter: {
45
+ tier: 'community',
46
+ label: 'Community',
47
+ // Forum only, same as Free: ticket support starts at Pro. Starter pays
48
+ // for product, not for our time.
49
+ firstResponse: null,
50
+ namedManager: false,
51
+ forum: true
52
+ },
53
+ pro: {
54
+ tier: 'standard',
55
+ label: 'Standard',
56
+ firstResponse: {
57
+ min: 7,
58
+ max: 14,
59
+ unit: 'business-days'
60
+ },
61
+ namedManager: false,
62
+ forum: true
63
+ },
64
+ business: {
65
+ tier: 'business',
66
+ label: 'Business',
67
+ firstResponse: {
68
+ min: 4,
69
+ max: 6,
70
+ unit: 'business-days'
71
+ },
72
+ namedManager: false,
73
+ forum: true
74
+ },
75
+ scale: {
76
+ tier: 'business',
77
+ label: 'Business',
78
+ firstResponse: {
79
+ min: 4,
80
+ max: 6,
81
+ unit: 'business-days'
82
+ },
83
+ namedManager: false,
84
+ forum: true
85
+ },
86
+ advanced: {
87
+ tier: 'business',
88
+ label: 'Business',
89
+ firstResponse: {
90
+ min: 4,
91
+ max: 6,
92
+ unit: 'business-days'
93
+ },
94
+ namedManager: false,
95
+ forum: true
96
+ },
97
+ agency: {
98
+ tier: 'priority',
99
+ label: 'Priority',
100
+ firstResponse: {
101
+ min: 1,
102
+ max: 3,
103
+ unit: 'business-days'
104
+ },
105
+ namedManager: false,
106
+ forum: true
107
+ },
108
+ enterprise: {
109
+ tier: 'dedicated',
110
+ label: 'Dedicated',
111
+ // Quoted in CLOCK hours, and that is the point of the tier: 24–48 hours
112
+ // runs through a weekend, where "1–3 business days" does not. Read as
113
+ // business hours it would be 3–6 business days — SLOWER than Agency
114
+ // above, inverting the ladder. `ladderIsMonotonic` below asserts it is
115
+ // not, so this cannot silently regress.
116
+ firstResponse: {
117
+ min: 24,
118
+ max: 48,
119
+ unit: 'hours'
120
+ },
121
+ namedManager: true,
122
+ forum: true
123
+ }
124
+ };
125
+ /** Strength order, weakest first — the index IS the rank. */ export const SUPPORT_TIER_ORDER = [
126
+ 'community',
127
+ 'standard',
128
+ 'business',
129
+ 'priority',
130
+ 'dedicated'
131
+ ];
132
+ /** Higher is stronger. Used to order the staff queue. */ export function supportTierRank(tier) {
133
+ return SUPPORT_TIER_ORDER.indexOf(tier);
134
+ }
135
+ export function supportForPlan(plan) {
136
+ var _SUPPORT_BY_PLAN_plan;
137
+ // An unknown or missing plan gets the community tier, never a paid one:
138
+ // failing open here would hand an unpaid org a response target.
139
+ return (_SUPPORT_BY_PLAN_plan = SUPPORT_BY_PLAN[plan]) != null ? _SUPPORT_BY_PLAN_plan : SUPPORT_BY_PLAN.free;
140
+ }
141
+ /** "7–14 business days" · "24–48 hours" · "1 business day". */ export function describeResponseWindow(window) {
142
+ if (!window) return null;
143
+ const unit = window.unit === 'hours' ? 'hours' : window.max === 1 ? 'business day' : 'business days';
144
+ const range = window.min === window.max ? `${window.max}` : `${window.min}–${window.max}`;
145
+ return `${range} ${unit}`;
146
+ }
147
+ const DAY_MS = 24 * 60 * 60 * 1000;
148
+ const HOUR_MS = 60 * 60 * 1000;
149
+ /**
150
+ * Advance past `count` business days, skipping Saturday and Sunday.
151
+ *
152
+ * Deliberately does NOT know about public holidays. A half-right holiday
153
+ * calendar is worse than none — it would quietly shorten the deadline in
154
+ * whichever country it did not cover, and support is answered from more than
155
+ * one. The stated window is long enough to absorb them; when that stops being
156
+ * true this needs a real calendar, not a patch.
157
+ */ export function addBusinessDays(fromMs, count) {
158
+ let cursor = fromMs;
159
+ let remaining = count;
160
+ while(remaining > 0){
161
+ cursor += DAY_MS;
162
+ const day = new Date(cursor).getUTCDay();
163
+ if (day !== 0 && day !== 6) remaining -= 1;
164
+ }
165
+ return cursor;
166
+ }
167
+ /**
168
+ * When a first response is owed at the latest, or `null` if nothing is owed.
169
+ *
170
+ * Always the MAX of the window. The range is what we tell customers; the
171
+ * commitment is its upper bound, and that is the only number a breach can be
172
+ * measured against.
173
+ */ export function responseDueAt(commitment, openedAtMs) {
174
+ const window = commitment.firstResponse;
175
+ if (!window) return null;
176
+ return window.unit === 'hours' ? openedAtMs + window.max * HOUR_MS : addBusinessDays(openedAtMs, window.max);
177
+ }
178
+ /**
179
+ * Is the ladder still strictly better as plans get stronger?
180
+ *
181
+ * Exported so a test can assert it, because the failure is silent and the
182
+ * units differ across tiers: quoting Enterprise in business hours rather than
183
+ * clock hours makes it slower than Agency while every individual number still
184
+ * looks reasonable on its own. Compares worst cases as elapsed wall-clock from
185
+ * a Monday, which is the only basis on which the two units are comparable.
186
+ */ export function ladderIsMonotonic(mondayMs) {
187
+ const seen = new Map();
188
+ for (const commitment of Object.values(SUPPORT_BY_PLAN)){
189
+ const due = responseDueAt(commitment, mondayMs);
190
+ if (due === null) continue;
191
+ const elapsed = due - mondayMs;
192
+ const previous = seen.get(commitment.tier);
193
+ // Plans sharing a tier must quote the same window.
194
+ if (previous !== undefined && previous !== elapsed) return false;
195
+ seen.set(commitment.tier, elapsed);
196
+ }
197
+ const ranked = SUPPORT_TIER_ORDER.filter((tier)=>seen.has(tier)).map((tier)=>seen.get(tier));
198
+ return ranked.every((value, index)=>index === 0 || value < ranked[index - 1]);
199
+ }
200
+
201
+ //# sourceMappingURL=support-tiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/support-tiers.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * What support each plan actually commits to (AGL-1103).\n *\n * Support was one binary gate — `plan !== 'free'` — so a Starter org and an\n * Enterprise org got the identical queue, the identical silence, and no stated\n * target either could hold us to. The plans imply tiers; nothing implemented\n * them.\n *\n * These numbers are a COMMERCIAL COMMITMENT, not an engineering choice. They\n * are set deliberately long: a published target is easy to tighten and painful\n * to loosen, and the only thing worse than a slow promise is a fast one that\n * gets missed. Changing them changes what customers are owed, so they live\n * here alone and nowhere else.\n */\n\nimport type { OrgPlan } from '../foundation'\n\n/** Ordered weakest → strongest; the queue sorts on this. */\nexport type SupportTier =\n | 'community'\n | 'standard'\n | 'business'\n | 'priority'\n | 'dedicated'\n\n/**\n * A first-response window.\n *\n * The unit is explicit per tier rather than normalised, because the two are\n * genuinely different promises and collapsing them hides that. \"3 business\n * days\" spans a weekend; \"48 hours\" does not. Enterprise is quoted in clock\n * hours precisely because it is the tier that does not stop on Friday.\n */\nexport interface ResponseWindow {\n min: number\n max: number\n unit: 'business-days' | 'hours'\n}\n\nexport interface SupportCommitment {\n tier: SupportTier\n /** Shown to customers. */\n label: string\n /** `null` means no ticket commitment — the forum is the channel. */\n firstResponse: ResponseWindow | null\n /** A named human, not a queue. Enterprise only. */\n namedManager: boolean\n /**\n * Access to the community forum.\n *\n * True on every tier including Community, and that is the whole meaning of\n * \"forum only\": a tier with no ticket commitment whose forum was also shut\n * would have no support channel at all, which is not a tier — it is nothing\n * wearing a tier's name.\n */\n forum: boolean\n}\n\n/**\n * Every plan's commitment.\n *\n * `Record<OrgPlan, …>` on purpose: a new plan fails to compile here rather\n * than silently inheriting whatever the lookup's fallback happens to be, which\n * for support means either promising something we never agreed or promising\n * nothing to someone who paid.\n */\nexport const SUPPORT_BY_PLAN: Record<OrgPlan, SupportCommitment> = {\n free: {\n tier: 'community',\n label: 'Community',\n firstResponse: null,\n namedManager: false,\n forum: true,\n },\n starter: {\n tier: 'community',\n label: 'Community',\n // Forum only, same as Free: ticket support starts at Pro. Starter pays\n // for product, not for our time.\n firstResponse: null,\n namedManager: false,\n forum: true,\n },\n pro: {\n tier: 'standard',\n label: 'Standard',\n firstResponse: { min: 7, max: 14, unit: 'business-days' },\n namedManager: false,\n forum: true,\n },\n business: {\n tier: 'business',\n label: 'Business',\n firstResponse: { min: 4, max: 6, unit: 'business-days' },\n namedManager: false,\n forum: true,\n },\n scale: {\n tier: 'business',\n label: 'Business',\n firstResponse: { min: 4, max: 6, unit: 'business-days' },\n namedManager: false,\n forum: true,\n },\n advanced: {\n tier: 'business',\n label: 'Business',\n firstResponse: { min: 4, max: 6, unit: 'business-days' },\n namedManager: false,\n forum: true,\n },\n agency: {\n tier: 'priority',\n label: 'Priority',\n firstResponse: { min: 1, max: 3, unit: 'business-days' },\n namedManager: false,\n forum: true,\n },\n enterprise: {\n tier: 'dedicated',\n label: 'Dedicated',\n // Quoted in CLOCK hours, and that is the point of the tier: 24–48 hours\n // runs through a weekend, where \"1–3 business days\" does not. Read as\n // business hours it would be 3–6 business days — SLOWER than Agency\n // above, inverting the ladder. `ladderIsMonotonic` below asserts it is\n // not, so this cannot silently regress.\n firstResponse: { min: 24, max: 48, unit: 'hours' },\n namedManager: true,\n forum: true,\n },\n}\n\n/** Strength order, weakest first — the index IS the rank. */\nexport const SUPPORT_TIER_ORDER: SupportTier[] = [\n 'community',\n 'standard',\n 'business',\n 'priority',\n 'dedicated',\n]\n\n/** Higher is stronger. Used to order the staff queue. */\nexport function supportTierRank(tier: SupportTier): number {\n return SUPPORT_TIER_ORDER.indexOf(tier)\n}\n\nexport function supportForPlan(plan: OrgPlan | undefined | null): SupportCommitment {\n // An unknown or missing plan gets the community tier, never a paid one:\n // failing open here would hand an unpaid org a response target.\n return SUPPORT_BY_PLAN[plan as OrgPlan] ?? SUPPORT_BY_PLAN.free\n}\n\n/** \"7–14 business days\" · \"24–48 hours\" · \"1 business day\". */\nexport function describeResponseWindow(window: ResponseWindow | null): string | null {\n if (!window) return null\n const unit =\n window.unit === 'hours'\n ? 'hours'\n : window.max === 1\n ? 'business day'\n : 'business days'\n const range = window.min === window.max ? `${window.max}` : `${window.min}–${window.max}`\n return `${range} ${unit}`\n}\n\nconst DAY_MS = 24 * 60 * 60 * 1000\nconst HOUR_MS = 60 * 60 * 1000\n\n/**\n * Advance past `count` business days, skipping Saturday and Sunday.\n *\n * Deliberately does NOT know about public holidays. A half-right holiday\n * calendar is worse than none — it would quietly shorten the deadline in\n * whichever country it did not cover, and support is answered from more than\n * one. The stated window is long enough to absorb them; when that stops being\n * true this needs a real calendar, not a patch.\n */\nexport function addBusinessDays(fromMs: number, count: number): number {\n let cursor = fromMs\n let remaining = count\n while (remaining > 0) {\n cursor += DAY_MS\n const day = new Date(cursor).getUTCDay()\n if (day !== 0 && day !== 6) remaining -= 1\n }\n return cursor\n}\n\n/**\n * When a first response is owed at the latest, or `null` if nothing is owed.\n *\n * Always the MAX of the window. The range is what we tell customers; the\n * commitment is its upper bound, and that is the only number a breach can be\n * measured against.\n */\nexport function responseDueAt(\n commitment: SupportCommitment,\n openedAtMs: number,\n): number | null {\n const window = commitment.firstResponse\n if (!window) return null\n return window.unit === 'hours'\n ? openedAtMs + window.max * HOUR_MS\n : addBusinessDays(openedAtMs, window.max)\n}\n\n/**\n * Is the ladder still strictly better as plans get stronger?\n *\n * Exported so a test can assert it, because the failure is silent and the\n * units differ across tiers: quoting Enterprise in business hours rather than\n * clock hours makes it slower than Agency while every individual number still\n * looks reasonable on its own. Compares worst cases as elapsed wall-clock from\n * a Monday, which is the only basis on which the two units are comparable.\n */\nexport function ladderIsMonotonic(mondayMs: number): boolean {\n const seen = new Map<SupportTier, number>()\n for (const commitment of Object.values(SUPPORT_BY_PLAN)) {\n const due = responseDueAt(commitment, mondayMs)\n if (due === null) continue\n const elapsed = due - mondayMs\n const previous = seen.get(commitment.tier)\n // Plans sharing a tier must quote the same window.\n if (previous !== undefined && previous !== elapsed) return false\n seen.set(commitment.tier, elapsed)\n }\n const ranked = SUPPORT_TIER_ORDER.filter((tier) => seen.has(tier)).map((tier) =>\n seen.get(tier) as number,\n )\n return ranked.every((value, index) => index === 0 || value < ranked[index - 1])\n}\n"],"names":["SUPPORT_BY_PLAN","free","tier","label","firstResponse","namedManager","forum","starter","pro","min","max","unit","business","scale","advanced","agency","enterprise","SUPPORT_TIER_ORDER","supportTierRank","indexOf","supportForPlan","plan","describeResponseWindow","window","range","DAY_MS","HOUR_MS","addBusinessDays","fromMs","count","cursor","remaining","day","Date","getUTCDay","responseDueAt","commitment","openedAtMs","ladderIsMonotonic","mondayMs","seen","Map","Object","values","due","elapsed","previous","get","undefined","set","ranked","filter","has","map","every","value","index"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;CAaC,GA6CD;;;;;;;CAOC,GACD,OAAO,MAAMA,kBAAsD;IACjEC,MAAM;QACJC,MAAM;QACNC,OAAO;QACPC,eAAe;QACfC,cAAc;QACdC,OAAO;IACT;IACAC,SAAS;QACPL,MAAM;QACNC,OAAO;QACP,uEAAuE;QACvE,iCAAiC;QACjCC,eAAe;QACfC,cAAc;QACdC,OAAO;IACT;IACAE,KAAK;QACHN,MAAM;QACNC,OAAO;QACPC,eAAe;YAAEK,KAAK;YAAGC,KAAK;YAAIC,MAAM;QAAgB;QACxDN,cAAc;QACdC,OAAO;IACT;IACAM,UAAU;QACRV,MAAM;QACNC,OAAO;QACPC,eAAe;YAAEK,KAAK;YAAGC,KAAK;YAAGC,MAAM;QAAgB;QACvDN,cAAc;QACdC,OAAO;IACT;IACAO,OAAO;QACLX,MAAM;QACNC,OAAO;QACPC,eAAe;YAAEK,KAAK;YAAGC,KAAK;YAAGC,MAAM;QAAgB;QACvDN,cAAc;QACdC,OAAO;IACT;IACAQ,UAAU;QACRZ,MAAM;QACNC,OAAO;QACPC,eAAe;YAAEK,KAAK;YAAGC,KAAK;YAAGC,MAAM;QAAgB;QACvDN,cAAc;QACdC,OAAO;IACT;IACAS,QAAQ;QACNb,MAAM;QACNC,OAAO;QACPC,eAAe;YAAEK,KAAK;YAAGC,KAAK;YAAGC,MAAM;QAAgB;QACvDN,cAAc;QACdC,OAAO;IACT;IACAU,YAAY;QACVd,MAAM;QACNC,OAAO;QACP,wEAAwE;QACxE,sEAAsE;QACtE,oEAAoE;QACpE,uEAAuE;QACvE,wCAAwC;QACxCC,eAAe;YAAEK,KAAK;YAAIC,KAAK;YAAIC,MAAM;QAAQ;QACjDN,cAAc;QACdC,OAAO;IACT;AACF,EAAC;AAED,2DAA2D,GAC3D,OAAO,MAAMW,qBAAoC;IAC/C;IACA;IACA;IACA;IACA;CACD,CAAA;AAED,uDAAuD,GACvD,OAAO,SAASC,gBAAgBhB,IAAiB;IAC/C,OAAOe,mBAAmBE,OAAO,CAACjB;AACpC;AAEA,OAAO,SAASkB,eAAeC,IAAgC;QAGtDrB;IAFP,wEAAwE;IACxE,gEAAgE;IAChE,QAAOA,wBAAAA,eAAe,CAACqB,KAAgB,YAAhCrB,wBAAoCA,gBAAgBC,IAAI;AACjE;AAEA,6DAA6D,GAC7D,OAAO,SAASqB,uBAAuBC,MAA6B;IAClE,IAAI,CAACA,QAAQ,OAAO;IACpB,MAAMZ,OACJY,OAAOZ,IAAI,KAAK,UACZ,UACAY,OAAOb,GAAG,KAAK,IACb,iBACA;IACR,MAAMc,QAAQD,OAAOd,GAAG,KAAKc,OAAOb,GAAG,GAAG,GAAGa,OAAOb,GAAG,EAAE,GAAG,GAAGa,OAAOd,GAAG,CAAC,CAAC,EAAEc,OAAOb,GAAG,EAAE;IACzF,OAAO,GAAGc,MAAM,CAAC,EAAEb,MAAM;AAC3B;AAEA,MAAMc,SAAS,KAAK,KAAK,KAAK;AAC9B,MAAMC,UAAU,KAAK,KAAK;AAE1B;;;;;;;;CAQC,GACD,OAAO,SAASC,gBAAgBC,MAAc,EAAEC,KAAa;IAC3D,IAAIC,SAASF;IACb,IAAIG,YAAYF;IAChB,MAAOE,YAAY,EAAG;QACpBD,UAAUL;QACV,MAAMO,MAAM,IAAIC,KAAKH,QAAQI,SAAS;QACtC,IAAIF,QAAQ,KAAKA,QAAQ,GAAGD,aAAa;IAC3C;IACA,OAAOD;AACT;AAEA;;;;;;CAMC,GACD,OAAO,SAASK,cACdC,UAA6B,EAC7BC,UAAkB;IAElB,MAAMd,SAASa,WAAWhC,aAAa;IACvC,IAAI,CAACmB,QAAQ,OAAO;IACpB,OAAOA,OAAOZ,IAAI,KAAK,UACnB0B,aAAad,OAAOb,GAAG,GAAGgB,UAC1BC,gBAAgBU,YAAYd,OAAOb,GAAG;AAC5C;AAEA;;;;;;;;CAQC,GACD,OAAO,SAAS4B,kBAAkBC,QAAgB;IAChD,MAAMC,OAAO,IAAIC;IACjB,KAAK,MAAML,cAAcM,OAAOC,MAAM,CAAC3C,iBAAkB;QACvD,MAAM4C,MAAMT,cAAcC,YAAYG;QACtC,IAAIK,QAAQ,MAAM;QAClB,MAAMC,UAAUD,MAAML;QACtB,MAAMO,WAAWN,KAAKO,GAAG,CAACX,WAAWlC,IAAI;QACzC,mDAAmD;QACnD,IAAI4C,aAAaE,aAAaF,aAAaD,SAAS,OAAO;QAC3DL,KAAKS,GAAG,CAACb,WAAWlC,IAAI,EAAE2C;IAC5B;IACA,MAAMK,SAASjC,mBAAmBkC,MAAM,CAAC,CAACjD,OAASsC,KAAKY,GAAG,CAAClD,OAAOmD,GAAG,CAAC,CAACnD,OACtEsC,KAAKO,GAAG,CAAC7C;IAEX,OAAOgD,OAAOI,KAAK,CAAC,CAACC,OAAOC,QAAUA,UAAU,KAAKD,QAAQL,MAAM,CAACM,QAAQ,EAAE;AAChF"}
@@ -0,0 +1,36 @@
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
+ export interface TimeZoneGeoHint {
18
+ /**
19
+ * The country, when the zone identifies one honestly. `null` means "not a
20
+ * prior-consent region, and this cannot say which country" — a real answer
21
+ * for the posture, and the only truthful one for the record.
22
+ */
23
+ country: string | null;
24
+ /** Whether this zone sits in a region that must be asked before tracking. */
25
+ priorConsent: boolean;
26
+ }
27
+ /** The browser's IANA zone, or `''` where `Intl` cannot answer. */
28
+ export declare function readBrowserTimeZone(): string;
29
+ /**
30
+ * The region hint for an IANA zone, or `null` when it says nothing useful.
31
+ *
32
+ * `null` is the answer for an unknown zone, and callers must treat it exactly
33
+ * as they treat a missing header: strictest posture. It is never a licence to
34
+ * assume the permissive side.
35
+ */
36
+ export declare function geoHintFromTimeZone(timeZone: string | null | undefined): TimeZoneGeoHint | null;
@@ -0,0 +1,180 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ /**
17
+ * A last-resort region signal, read from the browser's own time zone.
18
+ *
19
+ * ## Why this exists
20
+ *
21
+ * The consent posture is decided from the request's country, and the country
22
+ * comes from an edge header. `readRequestGeo` now tries eight of them, but a
23
+ * deployment can still have none: a self-hosted container behind a plain
24
+ * reverse proxy, a preview build, or `localhost`. Every one of those resolves
25
+ * to "region unknown", which is deliberately the STRICTEST posture — so the
26
+ * visitor is asked to opt in.
27
+ *
28
+ * That is the safe direction and it is still wrong for most of the world. It
29
+ * also means a self-host operator in the US sees a prior-consent banner they
30
+ * do not need and cannot switch off, and has no way to tell that the cause is
31
+ * a missing header rather than a deliberate setting.
32
+ *
33
+ * ## Why the time zone, and not an IP lookup
34
+ *
35
+ * ⛔ Deliberately NOT a geolocation service. Sending a visitor's IP address to
36
+ * a third party in order to decide what to ask them about privacy is its own
37
+ * disclosure and its own subprocessor — the cure would be worse than the
38
+ * problem it treats.
39
+ *
40
+ * The time zone is already in the page, costs no request, identifies no one,
41
+ * and is exactly as coarse as the question: this is not "where are you", it is
42
+ * "are you somewhere that requires asking first".
43
+ *
44
+ * ## What it will not do
45
+ *
46
+ * It never returns a country for a non-European zone. `America/Chicago` is
47
+ * ninety-nine percent the United States and it is also `US`, `CA` and `MX`
48
+ * territory in places — and the country is STORED on the consent record, where
49
+ * a confident guess is worse than an absent value. So the answer for those is
50
+ * "not a prior-consent region, country unknown", which is all the posture
51
+ * needs and all this can honestly say.
52
+ *
53
+ * ⚠️ A VPN, a travelling laptop or a manually-set clock can all disagree with
54
+ * the visitor's actual location. This ranks BELOW every header for that
55
+ * reason, and the strict posture is still what an unrecognized zone gets.
56
+ */ /**
57
+ * The IANA area prefixes that are never a prior-consent region.
58
+ *
59
+ * Listed positively rather than as "anything that is not Europe/": an unknown
60
+ * or malformed zone must fall through to the strict posture, and a negative
61
+ * test would hand it the permissive one.
62
+ */ const NON_EUROPEAN_AREAS = [
63
+ 'America/',
64
+ 'Asia/',
65
+ 'Australia/',
66
+ 'Africa/',
67
+ 'Pacific/',
68
+ 'Antarctica/',
69
+ 'US/',
70
+ 'Canada/',
71
+ 'Brazil/',
72
+ 'Mexico/',
73
+ 'Japan',
74
+ 'Singapore',
75
+ 'Hongkong',
76
+ 'NZ'
77
+ ];
78
+ /**
79
+ * Zones inside a prior-consent country that do NOT start with `Europe/`.
80
+ *
81
+ * The EU's outermost regions and the EEA's islands are the reason this list
82
+ * exists: the GDPR applies in Guadeloupe and the Canaries exactly as it does
83
+ * in Paris and Madrid, and every one of them is filed by IANA under `America/`,
84
+ * `Atlantic/` or `Indian/`. Matching on `Europe/` alone would place all of
85
+ * them on the permissive side, which is the one direction this must never get
86
+ * wrong.
87
+ */ const PRIOR_CONSENT_NON_EUROPE_ZONES = {
88
+ 'Atlantic/Canary': 'ES',
89
+ 'Atlantic/Madeira': 'PT',
90
+ 'Atlantic/Azores': 'PT',
91
+ 'Atlantic/Reykjavik': 'IS',
92
+ 'Atlantic/Faroe': 'DK',
93
+ 'Atlantic/Jan_Mayen': 'NO',
94
+ 'America/Cayenne': 'GF',
95
+ 'America/Guadeloupe': 'GP',
96
+ 'America/Martinique': 'MQ',
97
+ 'America/Marigot': 'GP',
98
+ 'America/St_Barthelemy': 'GP',
99
+ 'Indian/Reunion': 'RE',
100
+ 'Indian/Mayotte': 'YT',
101
+ 'Arctic/Longyearbyen': 'NO'
102
+ };
103
+ /**
104
+ * `Europe/<City>` zones whose country is NOT in the prior-consent set.
105
+ *
106
+ * The EEA is not the same shape as the continent. Without these, a visitor in
107
+ * Moscow or Istanbul would be treated as a European one — harmless for the
108
+ * consent posture, since it only makes it stricter, but it would store a
109
+ * region claim that is simply untrue.
110
+ */ const EUROPE_ZONES_OUTSIDE_THE_SET = [
111
+ 'Europe/Moscow',
112
+ 'Europe/Istanbul',
113
+ 'Europe/Kiev',
114
+ 'Europe/Kyiv',
115
+ 'Europe/Minsk',
116
+ 'Europe/Belgrade',
117
+ 'Europe/Sarajevo',
118
+ 'Europe/Skopje',
119
+ 'Europe/Tirane',
120
+ 'Europe/Podgorica',
121
+ 'Europe/Chisinau',
122
+ 'Europe/Volgograd',
123
+ 'Europe/Samara',
124
+ 'Europe/Kaliningrad',
125
+ 'Europe/Simferopol'
126
+ ];
127
+ /** The browser's IANA zone, or `''` where `Intl` cannot answer. */ export function readBrowserTimeZone() {
128
+ try {
129
+ return Intl.DateTimeFormat().resolvedOptions().timeZone || '';
130
+ } catch (unused) {
131
+ // Some locked-down and embedded runtimes throw rather than return.
132
+ return '';
133
+ }
134
+ }
135
+ /**
136
+ * The region hint for an IANA zone, or `null` when it says nothing useful.
137
+ *
138
+ * `null` is the answer for an unknown zone, and callers must treat it exactly
139
+ * as they treat a missing header: strictest posture. It is never a licence to
140
+ * assume the permissive side.
141
+ */ export function geoHintFromTimeZone(timeZone) {
142
+ const zone = (timeZone != null ? timeZone : '').trim();
143
+ if (!zone) return null;
144
+ const mapped = PRIOR_CONSENT_NON_EUROPE_ZONES[zone];
145
+ if (mapped) return {
146
+ country: mapped,
147
+ priorConsent: true
148
+ };
149
+ if (zone.indexOf('Europe/') === 0) {
150
+ if (EUROPE_ZONES_OUTSIDE_THE_SET.indexOf(zone) >= 0) {
151
+ // Europe, but outside the EEA/UK/CH set. No country claim: the zone
152
+ // identifies a city, and several of these span more than one country.
153
+ return {
154
+ country: null,
155
+ priorConsent: false
156
+ };
157
+ }
158
+ /*
159
+ * Prior consent, with no country named. The posture is all that is needed
160
+ * and it is all this can support — `Europe/Zurich` is Switzerland, but
161
+ * `Europe/Brussels` is also Luxembourg's zone in practice, and a stored
162
+ * country that is merely probable is worse than an absent one.
163
+ */ return {
164
+ country: null,
165
+ priorConsent: true
166
+ };
167
+ }
168
+ for (const area of NON_EUROPEAN_AREAS){
169
+ const matches = area.endsWith('/') ? zone.indexOf(area) === 0 : zone === area;
170
+ if (matches) return {
171
+ country: null,
172
+ priorConsent: false
173
+ };
174
+ }
175
+ // UTC, GMT, `Etc/*`, a fixed offset, or anything unrecognized. A visitor
176
+ // hiding their zone is not a visitor to assume the permissive side about.
177
+ return null;
178
+ }
179
+
180
+ //# sourceMappingURL=timezone-geo-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/timezone-geo-hint.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A last-resort region signal, read from the browser's own time zone.\n *\n * ## Why this exists\n *\n * The consent posture is decided from the request's country, and the country\n * comes from an edge header. `readRequestGeo` now tries eight of them, but a\n * deployment can still have none: a self-hosted container behind a plain\n * reverse proxy, a preview build, or `localhost`. Every one of those resolves\n * to \"region unknown\", which is deliberately the STRICTEST posture — so the\n * visitor is asked to opt in.\n *\n * That is the safe direction and it is still wrong for most of the world. It\n * also means a self-host operator in the US sees a prior-consent banner they\n * do not need and cannot switch off, and has no way to tell that the cause is\n * a missing header rather than a deliberate setting.\n *\n * ## Why the time zone, and not an IP lookup\n *\n * ⛔ Deliberately NOT a geolocation service. Sending a visitor's IP address to\n * a third party in order to decide what to ask them about privacy is its own\n * disclosure and its own subprocessor — the cure would be worse than the\n * problem it treats.\n *\n * The time zone is already in the page, costs no request, identifies no one,\n * and is exactly as coarse as the question: this is not \"where are you\", it is\n * \"are you somewhere that requires asking first\".\n *\n * ## What it will not do\n *\n * It never returns a country for a non-European zone. `America/Chicago` is\n * ninety-nine percent the United States and it is also `US`, `CA` and `MX`\n * territory in places — and the country is STORED on the consent record, where\n * a confident guess is worse than an absent value. So the answer for those is\n * \"not a prior-consent region, country unknown\", which is all the posture\n * needs and all this can honestly say.\n *\n * ⚠️ A VPN, a travelling laptop or a manually-set clock can all disagree with\n * the visitor's actual location. This ranks BELOW every header for that\n * reason, and the strict posture is still what an unrecognized zone gets.\n */\n\n/**\n * The IANA area prefixes that are never a prior-consent region.\n *\n * Listed positively rather than as \"anything that is not Europe/\": an unknown\n * or malformed zone must fall through to the strict posture, and a negative\n * test would hand it the permissive one.\n */\nconst NON_EUROPEAN_AREAS = [\n 'America/',\n 'Asia/',\n 'Australia/',\n 'Africa/',\n 'Pacific/',\n 'Antarctica/',\n 'US/',\n 'Canada/',\n 'Brazil/',\n 'Mexico/',\n 'Japan',\n 'Singapore',\n 'Hongkong',\n 'NZ',\n]\n\n/**\n * Zones inside a prior-consent country that do NOT start with `Europe/`.\n *\n * The EU's outermost regions and the EEA's islands are the reason this list\n * exists: the GDPR applies in Guadeloupe and the Canaries exactly as it does\n * in Paris and Madrid, and every one of them is filed by IANA under `America/`,\n * `Atlantic/` or `Indian/`. Matching on `Europe/` alone would place all of\n * them on the permissive side, which is the one direction this must never get\n * wrong.\n */\nconst PRIOR_CONSENT_NON_EUROPE_ZONES: Readonly<Record<string, string>> = {\n 'Atlantic/Canary': 'ES',\n 'Atlantic/Madeira': 'PT',\n 'Atlantic/Azores': 'PT',\n 'Atlantic/Reykjavik': 'IS',\n 'Atlantic/Faroe': 'DK',\n 'Atlantic/Jan_Mayen': 'NO',\n 'America/Cayenne': 'GF',\n 'America/Guadeloupe': 'GP',\n 'America/Martinique': 'MQ',\n 'America/Marigot': 'GP',\n 'America/St_Barthelemy': 'GP',\n 'Indian/Reunion': 'RE',\n 'Indian/Mayotte': 'YT',\n 'Arctic/Longyearbyen': 'NO',\n}\n\n/**\n * `Europe/<City>` zones whose country is NOT in the prior-consent set.\n *\n * The EEA is not the same shape as the continent. Without these, a visitor in\n * Moscow or Istanbul would be treated as a European one — harmless for the\n * consent posture, since it only makes it stricter, but it would store a\n * region claim that is simply untrue.\n */\nconst EUROPE_ZONES_OUTSIDE_THE_SET = [\n 'Europe/Moscow',\n 'Europe/Istanbul',\n 'Europe/Kiev',\n 'Europe/Kyiv',\n 'Europe/Minsk',\n 'Europe/Belgrade',\n 'Europe/Sarajevo',\n 'Europe/Skopje',\n 'Europe/Tirane',\n 'Europe/Podgorica',\n 'Europe/Chisinau',\n 'Europe/Volgograd',\n 'Europe/Samara',\n 'Europe/Kaliningrad',\n 'Europe/Simferopol',\n]\n\nexport interface TimeZoneGeoHint {\n /**\n * The country, when the zone identifies one honestly. `null` means \"not a\n * prior-consent region, and this cannot say which country\" — a real answer\n * for the posture, and the only truthful one for the record.\n */\n country: string | null\n /** Whether this zone sits in a region that must be asked before tracking. */\n priorConsent: boolean\n}\n\n/** The browser's IANA zone, or `''` where `Intl` cannot answer. */\nexport function readBrowserTimeZone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || ''\n } catch {\n // Some locked-down and embedded runtimes throw rather than return.\n return ''\n }\n}\n\n/**\n * The region hint for an IANA zone, or `null` when it says nothing useful.\n *\n * `null` is the answer for an unknown zone, and callers must treat it exactly\n * as they treat a missing header: strictest posture. It is never a licence to\n * assume the permissive side.\n */\nexport function geoHintFromTimeZone(\n timeZone: string | null | undefined,\n): TimeZoneGeoHint | null {\n const zone = (timeZone ?? '').trim()\n if (!zone) return null\n\n const mapped = PRIOR_CONSENT_NON_EUROPE_ZONES[zone]\n if (mapped) return { country: mapped, priorConsent: true }\n\n if (zone.indexOf('Europe/') === 0) {\n if (EUROPE_ZONES_OUTSIDE_THE_SET.indexOf(zone) >= 0) {\n // Europe, but outside the EEA/UK/CH set. No country claim: the zone\n // identifies a city, and several of these span more than one country.\n return { country: null, priorConsent: false }\n }\n /*\n * Prior consent, with no country named. The posture is all that is needed\n * and it is all this can support — `Europe/Zurich` is Switzerland, but\n * `Europe/Brussels` is also Luxembourg's zone in practice, and a stored\n * country that is merely probable is worse than an absent one.\n */\n return { country: null, priorConsent: true }\n }\n\n for (const area of NON_EUROPEAN_AREAS) {\n const matches = area.endsWith('/') ? zone.indexOf(area) === 0 : zone === area\n if (matches) return { country: null, priorConsent: false }\n }\n\n // UTC, GMT, `Etc/*`, a fixed offset, or anything unrecognized. A visitor\n // hiding their zone is not a visitor to assume the permissive side about.\n return null\n}\n"],"names":["NON_EUROPEAN_AREAS","PRIOR_CONSENT_NON_EUROPE_ZONES","EUROPE_ZONES_OUTSIDE_THE_SET","readBrowserTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","geoHintFromTimeZone","zone","trim","mapped","country","priorConsent","indexOf","area","matches","endsWith"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCC,GAED;;;;;;CAMC,GACD,MAAMA,qBAAqB;IACzB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED;;;;;;;;;CASC,GACD,MAAMC,iCAAmE;IACvE,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;IACtB,kBAAkB;IAClB,sBAAsB;IACtB,mBAAmB;IACnB,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,yBAAyB;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;AACzB;AAEA;;;;;;;CAOC,GACD,MAAMC,+BAA+B;IACnC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAaD,iEAAiE,GACjE,OAAO,SAASC;IACd,IAAI;QACF,OAAOC,KAAKC,cAAc,GAAGC,eAAe,GAAGC,QAAQ,IAAI;IAC7D,EAAE,eAAM;QACN,mEAAmE;QACnE,OAAO;IACT;AACF;AAEA;;;;;;CAMC,GACD,OAAO,SAASC,oBACdD,QAAmC;IAEnC,MAAME,OAAO,CAACF,mBAAAA,WAAY,IAAIG,IAAI;IAClC,IAAI,CAACD,MAAM,OAAO;IAElB,MAAME,SAASV,8BAA8B,CAACQ,KAAK;IACnD,IAAIE,QAAQ,OAAO;QAAEC,SAASD;QAAQE,cAAc;IAAK;IAEzD,IAAIJ,KAAKK,OAAO,CAAC,eAAe,GAAG;QACjC,IAAIZ,6BAA6BY,OAAO,CAACL,SAAS,GAAG;YACnD,oEAAoE;YACpE,sEAAsE;YACtE,OAAO;gBAAEG,SAAS;gBAAMC,cAAc;YAAM;QAC9C;QACA;;;;;KAKC,GACD,OAAO;YAAED,SAAS;YAAMC,cAAc;QAAK;IAC7C;IAEA,KAAK,MAAME,QAAQf,mBAAoB;QACrC,MAAMgB,UAAUD,KAAKE,QAAQ,CAAC,OAAOR,KAAKK,OAAO,CAACC,UAAU,IAAIN,SAASM;QACzE,IAAIC,SAAS,OAAO;YAAEJ,SAAS;YAAMC,cAAc;QAAM;IAC3D;IAEA,yEAAyE;IACzE,0EAA0E;IAC1E,OAAO;AACT"}