@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,268 @@
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
+ * The profile fields an identity provider sent, from wherever it put them
18
+ * (AGL-1131).
19
+ *
20
+ * AGL-1131 assumed mapping attributes in Google Workspace would be enough,
21
+ * because "GCIP surfaces mapped SAML attributes on the token" and the JIT
22
+ * path already reads `decoded['name']`. Measured after the mapping was
23
+ * added: the tenant auth record still had `displayName: null`, on both the
24
+ * account and its `saml.aglyn-workspace` provider entry, on a sign-in that
25
+ * definitely happened.
26
+ *
27
+ * The reason is that a SAML assertion's attributes arrive under
28
+ * `firebase.sign_in_attributes`, NOT as a top-level `name` claim. Nothing in
29
+ * the codebase read that, so mapping attributes correctly still produced
30
+ * nothing. OIDC providers do populate `name`, which is why the existing code
31
+ * looked right.
32
+ *
33
+ * Deliberately generous about attribute naming, because the name is chosen
34
+ * by the CUSTOMER's IdP admin, not by us. Workspace suggests `firstName`,
35
+ * ADFS emits the full schema URIs, Okta commonly uses `given_name`. Guessing
36
+ * wrong costs a blank name and a support ticket, so this checks all of them
37
+ * rather than picking a house style nobody else follows.
38
+ */ /** Attribute keys that hold a complete display name, best first. */ const FULL_NAME_KEYS = [
39
+ 'name',
40
+ 'displayName',
41
+ 'display_name',
42
+ 'cn',
43
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'
44
+ ];
45
+ const FIRST_NAME_KEYS = [
46
+ 'firstName',
47
+ 'first_name',
48
+ 'given_name',
49
+ 'givenName',
50
+ 'givenname',
51
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname'
52
+ ];
53
+ const LAST_NAME_KEYS = [
54
+ 'lastName',
55
+ 'last_name',
56
+ 'family_name',
57
+ 'familyName',
58
+ 'surname',
59
+ 'sn',
60
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname'
61
+ ];
62
+ /**
63
+ * A SAML attribute value may be a string or a single-element array — the
64
+ * assertion permits repeats, and GCIP passes the shape through.
65
+ */ function readAttribute(bag, keys) {
66
+ if (!bag) return '';
67
+ for (const key of keys){
68
+ const raw = bag[key];
69
+ const value = Array.isArray(raw) ? raw[0] : raw;
70
+ const text = typeof value === 'string' ? value.trim() : '';
71
+ if (text) return text;
72
+ }
73
+ return '';
74
+ }
75
+ /**
76
+ * Where GCIP puts a SAML assertion's attributes. Guarded rather than cast:
77
+ * this runs on EVERY interactive sign-in, including email/password accounts
78
+ * that have no `firebase` claim at all.
79
+ */ function signInAttributes(decoded) {
80
+ const firebase = decoded.firebase;
81
+ if (!firebase || typeof firebase !== 'object') return undefined;
82
+ const attributes = firebase.sign_in_attributes;
83
+ return attributes && typeof attributes === 'object' ? attributes : undefined;
84
+ }
85
+ /**
86
+ * Resolve a display name from a decoded ID token, or `''` when the provider
87
+ * genuinely sent nothing.
88
+ *
89
+ * Empty rather than a placeholder: callers seed only ABSENT fields, and a
90
+ * fabricated name would be indistinguishable from one the user chose and
91
+ * would never be corrected.
92
+ */ export function resolveIdpDisplayName(decoded) {
93
+ if (!decoded) return '';
94
+ // A top-level `name` wins — OIDC providers populate it, and it is the
95
+ // provider's own idea of the whole name rather than our reassembly.
96
+ const topLevel = typeof decoded.name === 'string' ? decoded.name.trim() : '';
97
+ if (topLevel) return topLevel;
98
+ const attributes = signInAttributes(decoded);
99
+ const full = readAttribute(attributes, FULL_NAME_KEYS);
100
+ if (full) return full;
101
+ const first = readAttribute(attributes, FIRST_NAME_KEYS);
102
+ const last = readAttribute(attributes, LAST_NAME_KEYS);
103
+ // Either half alone is still better than nothing — a first name renders a
104
+ // usable roster row, and demanding both would discard it.
105
+ return [
106
+ first,
107
+ last
108
+ ].filter(Boolean).join(' ');
109
+ }
110
+ const PHOTO_KEYS = [
111
+ 'picture',
112
+ 'photoUrl',
113
+ 'photo_url',
114
+ 'photoURL',
115
+ 'thumbnailPhotoUrl'
116
+ ];
117
+ const PHONE_KEYS = [
118
+ 'phoneNumber',
119
+ 'phone_number',
120
+ 'phone',
121
+ 'telephoneNumber',
122
+ 'mobile',
123
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone'
124
+ ];
125
+ /**
126
+ * Resolve an avatar URL from a decoded ID token, or `''`.
127
+ *
128
+ * Only `https:` survives. The value is written to the roster and rendered as
129
+ * an `<img src>` for every member of the org, so an assertion carrying a
130
+ * `javascript:` or `data:` URL would turn a mapped IdP attribute into stored
131
+ * script that we hand to teammates. The IdP is trusted to say who someone is,
132
+ * which is not the same as being trusted to supply markup.
133
+ */ export function resolveIdpPhotoUrl(decoded) {
134
+ if (!decoded) return '';
135
+ const attributes = signInAttributes(decoded);
136
+ const candidate = (typeof decoded['picture'] === 'string' ? decoded['picture'].trim() : '') || readAttribute(attributes, PHOTO_KEYS);
137
+ if (!candidate) return '';
138
+ try {
139
+ return new URL(candidate).protocol === 'https:' ? candidate : '';
140
+ } catch (unused) {
141
+ // Not a URL at all — a relative path or free text.
142
+ return '';
143
+ }
144
+ }
145
+ /**
146
+ * Resolve a phone number from a decoded ID token, or `''`.
147
+ *
148
+ * Returned verbatim rather than normalised to E.164: this is the number the
149
+ * directory holds, and guessing a country code for a national-format string
150
+ * invents digits. `normalizePhone` is applied where a user confirms it, not
151
+ * here.
152
+ */ export function resolveIdpPhone(decoded) {
153
+ if (!decoded) return '';
154
+ const topLevel = typeof decoded['phone_number'] === 'string' ? decoded['phone_number'].trim() : '';
155
+ return topLevel || readAttribute(signInAttributes(decoded), PHONE_KEYS);
156
+ }
157
+ /**
158
+ * Address attribute names, same generosity as the name keys and for the same
159
+ * reason: the customer's IdP admin chooses these, not us.
160
+ *
161
+ * Google Workspace's SAML attribute mapping offers `Street address`,
162
+ * `Locality`, `Region` and `Postal code` from the Directory and lets the admin
163
+ * name each one; Okta and ADFS emit `streetAddress`/`l`/`st`/`postalCode` and
164
+ * the full `schemas.xmlsoap.org` URIs respectively. LDAP's own short forms
165
+ * (`l` for locality, `st` for state, `c` for country) are included because
166
+ * both of those are ultimately reading a directory that spells them that way.
167
+ */ const ADDRESS_LINE1_KEYS = [
168
+ 'streetAddress',
169
+ 'street_address',
170
+ 'addressLine1',
171
+ 'address_line1',
172
+ 'line1',
173
+ 'street',
174
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress'
175
+ ];
176
+ const ADDRESS_LINE2_KEYS = [
177
+ 'addressLine2',
178
+ 'address_line2',
179
+ 'line2',
180
+ 'street_address_2',
181
+ 'streetAddress2'
182
+ ];
183
+ const ADDRESS_CITY_KEYS = [
184
+ 'locality',
185
+ 'city',
186
+ 'l',
187
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality'
188
+ ];
189
+ const ADDRESS_STATE_KEYS = [
190
+ 'region',
191
+ 'state',
192
+ 'province',
193
+ 'st',
194
+ 'stateOrProvince',
195
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince'
196
+ ];
197
+ const ADDRESS_POSTAL_KEYS = [
198
+ 'postalCode',
199
+ 'postal_code',
200
+ 'postalcode',
201
+ 'zip',
202
+ 'zipCode',
203
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode'
204
+ ];
205
+ const ADDRESS_COUNTRY_KEYS = [
206
+ 'country',
207
+ 'countryCode',
208
+ 'country_code',
209
+ 'c',
210
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country'
211
+ ];
212
+ /**
213
+ * OIDC's `address` claim is a JSON OBJECT, not a string (OpenID Connect Core
214
+ * §5.1.1), with its own field names. SAML has no equivalent — its attributes
215
+ * arrive flat in `sign_in_attributes` — so this is the OIDC-only half, read
216
+ * for the same reason `resolveIdpDisplayName` prefers a top-level `name`.
217
+ */ function oidcAddressClaim(decoded) {
218
+ const address = decoded['address'];
219
+ return address && typeof address === 'object' && !Array.isArray(address) ? address : undefined;
220
+ }
221
+ /**
222
+ * Resolve a postal address from a decoded ID token.
223
+ *
224
+ * Every field independently optional: a directory that holds a city and no
225
+ * street is a normal directory, and demanding a complete address would
226
+ * discard the parts it does have. `normalizeAddress` downstream is what turns
227
+ * "some parts" into either a stored address or `null`.
228
+ *
229
+ * `state`, never `region`, in the RESULT — that is the canonical spelling in
230
+ * `AglynPostalAddress`, matching Stripe's customer address. `region` appears
231
+ * only as an INPUT key, because that is what Google Workspace calls it.
232
+ */ export function resolveIdpAddress(decoded) {
233
+ const empty = {
234
+ line1: '',
235
+ line2: '',
236
+ city: '',
237
+ state: '',
238
+ postalCode: '',
239
+ country: ''
240
+ };
241
+ if (!decoded) return empty;
242
+ const attributes = signInAttributes(decoded);
243
+ const oidc = oidcAddressClaim(decoded);
244
+ // SAML attributes win a tie. An org that has mapped its directory into the
245
+ // assertion has said what it wants us to use, and the OIDC claim is the
246
+ // fallback for providers that send the standard object instead.
247
+ const read = (keys, oidcKeys)=>readAttribute(attributes, keys) || readAttribute(oidc, oidcKeys);
248
+ return {
249
+ line1: read(ADDRESS_LINE1_KEYS, [
250
+ 'street_address'
251
+ ]),
252
+ line2: read(ADDRESS_LINE2_KEYS, []),
253
+ city: read(ADDRESS_CITY_KEYS, [
254
+ 'locality'
255
+ ]),
256
+ state: read(ADDRESS_STATE_KEYS, [
257
+ 'region'
258
+ ]),
259
+ postalCode: read(ADDRESS_POSTAL_KEYS, [
260
+ 'postal_code'
261
+ ]),
262
+ country: read(ADDRESS_COUNTRY_KEYS, [
263
+ 'country'
264
+ ])
265
+ };
266
+ }
267
+
268
+ //# sourceMappingURL=idp-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/idp-profile.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 * The profile fields an identity provider sent, from wherever it put them\n * (AGL-1131).\n *\n * AGL-1131 assumed mapping attributes in Google Workspace would be enough,\n * because \"GCIP surfaces mapped SAML attributes on the token\" and the JIT\n * path already reads `decoded['name']`. Measured after the mapping was\n * added: the tenant auth record still had `displayName: null`, on both the\n * account and its `saml.aglyn-workspace` provider entry, on a sign-in that\n * definitely happened.\n *\n * The reason is that a SAML assertion's attributes arrive under\n * `firebase.sign_in_attributes`, NOT as a top-level `name` claim. Nothing in\n * the codebase read that, so mapping attributes correctly still produced\n * nothing. OIDC providers do populate `name`, which is why the existing code\n * looked right.\n *\n * Deliberately generous about attribute naming, because the name is chosen\n * by the CUSTOMER's IdP admin, not by us. Workspace suggests `firstName`,\n * ADFS emits the full schema URIs, Okta commonly uses `given_name`. Guessing\n * wrong costs a blank name and a support ticket, so this checks all of them\n * rather than picking a house style nobody else follows.\n */\n\n/** Attribute keys that hold a complete display name, best first. */\nconst FULL_NAME_KEYS = [\n 'name',\n 'displayName',\n 'display_name',\n 'cn',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name',\n]\n\nconst FIRST_NAME_KEYS = [\n 'firstName',\n 'first_name',\n 'given_name',\n 'givenName',\n 'givenname',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname',\n]\n\nconst LAST_NAME_KEYS = [\n 'lastName',\n 'last_name',\n 'family_name',\n 'familyName',\n 'surname',\n 'sn',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname',\n]\n\n/**\n * A SAML attribute value may be a string or a single-element array — the\n * assertion permits repeats, and GCIP passes the shape through.\n */\nfunction readAttribute(\n bag: Record<string, unknown> | null | undefined,\n keys: readonly string[],\n): string {\n if (!bag) return ''\n for (const key of keys) {\n const raw = bag[key]\n const value = Array.isArray(raw) ? raw[0] : raw\n const text = typeof value === 'string' ? value.trim() : ''\n if (text) return text\n }\n return ''\n}\n\nexport interface IdpNameClaims {\n name?: unknown\n firebase?: { sign_in_attributes?: Record<string, unknown> } | unknown\n [claim: string]: unknown\n}\n\n/**\n * Where GCIP puts a SAML assertion's attributes. Guarded rather than cast:\n * this runs on EVERY interactive sign-in, including email/password accounts\n * that have no `firebase` claim at all.\n */\nfunction signInAttributes(\n decoded: IdpNameClaims,\n): Record<string, unknown> | undefined {\n const firebase = decoded.firebase\n if (!firebase || typeof firebase !== 'object') return undefined\n const attributes = (firebase as { sign_in_attributes?: unknown })\n .sign_in_attributes\n return attributes && typeof attributes === 'object'\n ? (attributes as Record<string, unknown>)\n : undefined\n}\n\n/**\n * Resolve a display name from a decoded ID token, or `''` when the provider\n * genuinely sent nothing.\n *\n * Empty rather than a placeholder: callers seed only ABSENT fields, and a\n * fabricated name would be indistinguishable from one the user chose and\n * would never be corrected.\n */\nexport function resolveIdpDisplayName(\n decoded: IdpNameClaims | null | undefined,\n): string {\n if (!decoded) return ''\n // A top-level `name` wins — OIDC providers populate it, and it is the\n // provider's own idea of the whole name rather than our reassembly.\n const topLevel = typeof decoded.name === 'string' ? decoded.name.trim() : ''\n if (topLevel) return topLevel\n\n const attributes = signInAttributes(decoded)\n const full = readAttribute(attributes, FULL_NAME_KEYS)\n if (full) return full\n\n const first = readAttribute(attributes, FIRST_NAME_KEYS)\n const last = readAttribute(attributes, LAST_NAME_KEYS)\n // Either half alone is still better than nothing — a first name renders a\n // usable roster row, and demanding both would discard it.\n return [first, last].filter(Boolean).join(' ')\n}\n\nconst PHOTO_KEYS = [\n 'picture',\n 'photoUrl',\n 'photo_url',\n 'photoURL',\n 'thumbnailPhotoUrl',\n]\n\nconst PHONE_KEYS = [\n 'phoneNumber',\n 'phone_number',\n 'phone',\n 'telephoneNumber',\n 'mobile',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone',\n]\n\n/**\n * Resolve an avatar URL from a decoded ID token, or `''`.\n *\n * Only `https:` survives. The value is written to the roster and rendered as\n * an `<img src>` for every member of the org, so an assertion carrying a\n * `javascript:` or `data:` URL would turn a mapped IdP attribute into stored\n * script that we hand to teammates. The IdP is trusted to say who someone is,\n * which is not the same as being trusted to supply markup.\n */\nexport function resolveIdpPhotoUrl(\n decoded: IdpNameClaims | null | undefined,\n): string {\n if (!decoded) return ''\n const attributes = signInAttributes(decoded)\n const candidate =\n (typeof decoded['picture'] === 'string' ? decoded['picture'].trim() : '') ||\n readAttribute(attributes, PHOTO_KEYS)\n if (!candidate) return ''\n try {\n return new URL(candidate).protocol === 'https:' ? candidate : ''\n } catch {\n // Not a URL at all — a relative path or free text.\n return ''\n }\n}\n\n/**\n * Resolve a phone number from a decoded ID token, or `''`.\n *\n * Returned verbatim rather than normalised to E.164: this is the number the\n * directory holds, and guessing a country code for a national-format string\n * invents digits. `normalizePhone` is applied where a user confirms it, not\n * here.\n */\nexport function resolveIdpPhone(\n decoded: IdpNameClaims | null | undefined,\n): string {\n if (!decoded) return ''\n const topLevel =\n typeof decoded['phone_number'] === 'string'\n ? (decoded['phone_number'] as string).trim()\n : ''\n return topLevel || readAttribute(signInAttributes(decoded), PHONE_KEYS)\n}\n\n/**\n * Address attribute names, same generosity as the name keys and for the same\n * reason: the customer's IdP admin chooses these, not us.\n *\n * Google Workspace's SAML attribute mapping offers `Street address`,\n * `Locality`, `Region` and `Postal code` from the Directory and lets the admin\n * name each one; Okta and ADFS emit `streetAddress`/`l`/`st`/`postalCode` and\n * the full `schemas.xmlsoap.org` URIs respectively. LDAP's own short forms\n * (`l` for locality, `st` for state, `c` for country) are included because\n * both of those are ultimately reading a directory that spells them that way.\n */\nconst ADDRESS_LINE1_KEYS = [\n 'streetAddress',\n 'street_address',\n 'addressLine1',\n 'address_line1',\n 'line1',\n 'street',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress',\n]\n\nconst ADDRESS_LINE2_KEYS = [\n 'addressLine2',\n 'address_line2',\n 'line2',\n 'street_address_2',\n 'streetAddress2',\n]\n\nconst ADDRESS_CITY_KEYS = [\n 'locality',\n 'city',\n 'l',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality',\n]\n\nconst ADDRESS_STATE_KEYS = [\n 'region',\n 'state',\n 'province',\n 'st',\n 'stateOrProvince',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince',\n]\n\nconst ADDRESS_POSTAL_KEYS = [\n 'postalCode',\n 'postal_code',\n 'postalcode',\n 'zip',\n 'zipCode',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode',\n]\n\nconst ADDRESS_COUNTRY_KEYS = [\n 'country',\n 'countryCode',\n 'country_code',\n 'c',\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country',\n]\n\n/**\n * The postal address an identity provider sent, as loose parts (AGL-1963).\n *\n * Deliberately NOT an `AglynPostalAddress`, and this module deliberately does\n * not import one. `normalizeAddress` is what decides whether these parts add\n * up to an address at all — it drops blanks, rejects a country that is not\n * ISO-3166 alpha-2, and returns `null` when nothing survives. Returning a\n * half-populated object from here would hand the caller something that reads\n * as truthy to every `if (address)` while holding a city and no street, which\n * is exactly the shape AGL-1963 says must not exist.\n */\nexport interface IdpAddressParts {\n line1: string\n line2: string\n city: string\n state: string\n postalCode: string\n country: string\n}\n\n/**\n * OIDC's `address` claim is a JSON OBJECT, not a string (OpenID Connect Core\n * §5.1.1), with its own field names. SAML has no equivalent — its attributes\n * arrive flat in `sign_in_attributes` — so this is the OIDC-only half, read\n * for the same reason `resolveIdpDisplayName` prefers a top-level `name`.\n */\nfunction oidcAddressClaim(\n decoded: IdpNameClaims,\n): Record<string, unknown> | undefined {\n const address = decoded['address']\n return address && typeof address === 'object' && !Array.isArray(address)\n ? (address as Record<string, unknown>)\n : undefined\n}\n\n/**\n * Resolve a postal address from a decoded ID token.\n *\n * Every field independently optional: a directory that holds a city and no\n * street is a normal directory, and demanding a complete address would\n * discard the parts it does have. `normalizeAddress` downstream is what turns\n * \"some parts\" into either a stored address or `null`.\n *\n * `state`, never `region`, in the RESULT — that is the canonical spelling in\n * `AglynPostalAddress`, matching Stripe's customer address. `region` appears\n * only as an INPUT key, because that is what Google Workspace calls it.\n */\nexport function resolveIdpAddress(\n decoded: IdpNameClaims | null | undefined,\n): IdpAddressParts {\n const empty: IdpAddressParts = {\n line1: '',\n line2: '',\n city: '',\n state: '',\n postalCode: '',\n country: '',\n }\n if (!decoded) return empty\n const attributes = signInAttributes(decoded)\n const oidc = oidcAddressClaim(decoded)\n // SAML attributes win a tie. An org that has mapped its directory into the\n // assertion has said what it wants us to use, and the OIDC claim is the\n // fallback for providers that send the standard object instead.\n const read = (keys: readonly string[], oidcKeys: readonly string[]) =>\n readAttribute(attributes, keys) || readAttribute(oidc, oidcKeys)\n return {\n line1: read(ADDRESS_LINE1_KEYS, ['street_address']),\n line2: read(ADDRESS_LINE2_KEYS, []),\n city: read(ADDRESS_CITY_KEYS, ['locality']),\n state: read(ADDRESS_STATE_KEYS, ['region']),\n postalCode: read(ADDRESS_POSTAL_KEYS, ['postal_code']),\n country: read(ADDRESS_COUNTRY_KEYS, ['country']),\n }\n}\n"],"names":["FULL_NAME_KEYS","FIRST_NAME_KEYS","LAST_NAME_KEYS","readAttribute","bag","keys","key","raw","value","Array","isArray","text","trim","signInAttributes","decoded","firebase","undefined","attributes","sign_in_attributes","resolveIdpDisplayName","topLevel","name","full","first","last","filter","Boolean","join","PHOTO_KEYS","PHONE_KEYS","resolveIdpPhotoUrl","candidate","URL","protocol","resolveIdpPhone","ADDRESS_LINE1_KEYS","ADDRESS_LINE2_KEYS","ADDRESS_CITY_KEYS","ADDRESS_STATE_KEYS","ADDRESS_POSTAL_KEYS","ADDRESS_COUNTRY_KEYS","oidcAddressClaim","address","resolveIdpAddress","empty","line1","line2","city","state","postalCode","country","oidc","read","oidcKeys"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;;CAsBC,GAED,kEAAkE,GAClE,MAAMA,iBAAiB;IACrB;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,kBAAkB;IACtB;IACA;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,iBAAiB;IACrB;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED;;;CAGC,GACD,SAASC,cACPC,GAA+C,EAC/CC,IAAuB;IAEvB,IAAI,CAACD,KAAK,OAAO;IACjB,KAAK,MAAME,OAAOD,KAAM;QACtB,MAAME,MAAMH,GAAG,CAACE,IAAI;QACpB,MAAME,QAAQC,MAAMC,OAAO,CAACH,OAAOA,GAAG,CAAC,EAAE,GAAGA;QAC5C,MAAMI,OAAO,OAAOH,UAAU,WAAWA,MAAMI,IAAI,KAAK;QACxD,IAAID,MAAM,OAAOA;IACnB;IACA,OAAO;AACT;AAQA;;;;CAIC,GACD,SAASE,iBACPC,OAAsB;IAEtB,MAAMC,WAAWD,QAAQC,QAAQ;IACjC,IAAI,CAACA,YAAY,OAAOA,aAAa,UAAU,OAAOC;IACtD,MAAMC,aAAa,AAACF,SACjBG,kBAAkB;IACrB,OAAOD,cAAc,OAAOA,eAAe,WACtCA,aACDD;AACN;AAEA;;;;;;;CAOC,GACD,OAAO,SAASG,sBACdL,OAAyC;IAEzC,IAAI,CAACA,SAAS,OAAO;IACrB,sEAAsE;IACtE,oEAAoE;IACpE,MAAMM,WAAW,OAAON,QAAQO,IAAI,KAAK,WAAWP,QAAQO,IAAI,CAACT,IAAI,KAAK;IAC1E,IAAIQ,UAAU,OAAOA;IAErB,MAAMH,aAAaJ,iBAAiBC;IACpC,MAAMQ,OAAOnB,cAAcc,YAAYjB;IACvC,IAAIsB,MAAM,OAAOA;IAEjB,MAAMC,QAAQpB,cAAcc,YAAYhB;IACxC,MAAMuB,OAAOrB,cAAcc,YAAYf;IACvC,0EAA0E;IAC1E,0DAA0D;IAC1D,OAAO;QAACqB;QAAOC;KAAK,CAACC,MAAM,CAACC,SAASC,IAAI,CAAC;AAC5C;AAEA,MAAMC,aAAa;IACjB;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,aAAa;IACjB;IACA;IACA;IACA;IACA;IACA;CACD;AAED;;;;;;;;CAQC,GACD,OAAO,SAASC,mBACdhB,OAAyC;IAEzC,IAAI,CAACA,SAAS,OAAO;IACrB,MAAMG,aAAaJ,iBAAiBC;IACpC,MAAMiB,YACJ,AAAC,CAAA,OAAOjB,OAAO,CAAC,UAAU,KAAK,WAAWA,OAAO,CAAC,UAAU,CAACF,IAAI,KAAK,EAAC,KACvET,cAAcc,YAAYW;IAC5B,IAAI,CAACG,WAAW,OAAO;IACvB,IAAI;QACF,OAAO,IAAIC,IAAID,WAAWE,QAAQ,KAAK,WAAWF,YAAY;IAChE,EAAE,eAAM;QACN,mDAAmD;QACnD,OAAO;IACT;AACF;AAEA;;;;;;;CAOC,GACD,OAAO,SAASG,gBACdpB,OAAyC;IAEzC,IAAI,CAACA,SAAS,OAAO;IACrB,MAAMM,WACJ,OAAON,OAAO,CAAC,eAAe,KAAK,WAC/B,AAACA,OAAO,CAAC,eAAe,CAAYF,IAAI,KACxC;IACN,OAAOQ,YAAYjB,cAAcU,iBAAiBC,UAAUe;AAC9D;AAEA;;;;;;;;;;CAUC,GACD,MAAMM,qBAAqB;IACzB;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,qBAAqB;IACzB;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,oBAAoB;IACxB;IACA;IACA;IACA;CACD;AAED,MAAMC,qBAAqB;IACzB;IACA;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,sBAAsB;IAC1B;IACA;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,uBAAuB;IAC3B;IACA;IACA;IACA;IACA;CACD;AAsBD;;;;;CAKC,GACD,SAASC,iBACP3B,OAAsB;IAEtB,MAAM4B,UAAU5B,OAAO,CAAC,UAAU;IAClC,OAAO4B,WAAW,OAAOA,YAAY,YAAY,CAACjC,MAAMC,OAAO,CAACgC,WAC3DA,UACD1B;AACN;AAEA;;;;;;;;;;;CAWC,GACD,OAAO,SAAS2B,kBACd7B,OAAyC;IAEzC,MAAM8B,QAAyB;QAC7BC,OAAO;QACPC,OAAO;QACPC,MAAM;QACNC,OAAO;QACPC,YAAY;QACZC,SAAS;IACX;IACA,IAAI,CAACpC,SAAS,OAAO8B;IACrB,MAAM3B,aAAaJ,iBAAiBC;IACpC,MAAMqC,OAAOV,iBAAiB3B;IAC9B,2EAA2E;IAC3E,wEAAwE;IACxE,gEAAgE;IAChE,MAAMsC,OAAO,CAAC/C,MAAyBgD,WACrClD,cAAcc,YAAYZ,SAASF,cAAcgD,MAAME;IACzD,OAAO;QACLR,OAAOO,KAAKjB,oBAAoB;YAAC;SAAiB;QAClDW,OAAOM,KAAKhB,oBAAoB,EAAE;QAClCW,MAAMK,KAAKf,mBAAmB;YAAC;SAAW;QAC1CW,OAAOI,KAAKd,oBAAoB;YAAC;SAAS;QAC1CW,YAAYG,KAAKb,qBAAqB;YAAC;SAAc;QACrDW,SAASE,KAAKZ,sBAAsB;YAAC;SAAU;IACjD;AACF"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * The image content types media ingress accepts.
19
+ *
20
+ * Every upload surface used to answer "is this an image?" with
21
+ * `contentType.startsWith('image/')`, against a string the CALLER chooses.
22
+ * Three separate decisions hang off that answer, and an open prefix gets all
23
+ * three wrong for a type nobody has ever heard of:
24
+ *
25
+ * - **Entitlement.** Everything that is not an image rides the `videoMedia`
26
+ * gate, so `image/x-anything` is how arbitrary bytes reach a workspace
27
+ * whose plan does not include file uploads.
28
+ * - **Ceilings.** An unrecognised `image/…` resolves the image ceiling
29
+ * rather than the (much smaller) one its real format would get.
30
+ * - **Structure.** `inspectUploadBytes` only matches magic numbers for types
31
+ * it knows, so an unrecognised label means no signature check runs at all
32
+ * — the executable and macro checks still apply, but "these bytes are not
33
+ * the format you declared" cannot be asked.
34
+ *
35
+ * The set below is exactly the image half of that module's signature table,
36
+ * plus SVG, which is text and has no magic number. A spec pins the two
37
+ * together so a format added to one cannot go missing from the other.
38
+ */
39
+ export declare const IMAGE_UPLOAD_TYPES: ReadonlySet<string>;
40
+ /** A content type reduced to its bare type: no parameters, lower case. */
41
+ export declare function bareContentType(contentType: unknown): string;
42
+ /**
43
+ * The canonical type for an image label, or the bare label unchanged when it
44
+ * is not one this platform recognises. Never widens: a type that was not an
45
+ * accepted image before does not become one here.
46
+ */
47
+ export declare function normalizeImageContentType(contentType: unknown): string;
48
+ /** Whether media ingress treats this content type as an image. */
49
+ export declare function isImageUploadContentType(contentType: unknown): boolean;
@@ -0,0 +1,86 @@
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
+ * The image content types media ingress accepts.
18
+ *
19
+ * Every upload surface used to answer "is this an image?" with
20
+ * `contentType.startsWith('image/')`, against a string the CALLER chooses.
21
+ * Three separate decisions hang off that answer, and an open prefix gets all
22
+ * three wrong for a type nobody has ever heard of:
23
+ *
24
+ * - **Entitlement.** Everything that is not an image rides the `videoMedia`
25
+ * gate, so `image/x-anything` is how arbitrary bytes reach a workspace
26
+ * whose plan does not include file uploads.
27
+ * - **Ceilings.** An unrecognised `image/…` resolves the image ceiling
28
+ * rather than the (much smaller) one its real format would get.
29
+ * - **Structure.** `inspectUploadBytes` only matches magic numbers for types
30
+ * it knows, so an unrecognised label means no signature check runs at all
31
+ * — the executable and macro checks still apply, but "these bytes are not
32
+ * the format you declared" cannot be asked.
33
+ *
34
+ * The set below is exactly the image half of that module's signature table,
35
+ * plus SVG, which is text and has no magic number. A spec pins the two
36
+ * together so a format added to one cannot go missing from the other.
37
+ */ export const IMAGE_UPLOAD_TYPES = new Set([
38
+ 'image/png',
39
+ 'image/jpeg',
40
+ 'image/gif',
41
+ 'image/webp',
42
+ 'image/avif',
43
+ 'image/heic',
44
+ 'image/heif',
45
+ 'image/bmp',
46
+ 'image/tiff',
47
+ 'image/x-icon',
48
+ 'image/vnd.microsoft.icon',
49
+ // A document wearing an image label. Accepted, sanitized at every ingress,
50
+ // and served under a sandboxing CSP — see `sanitize-svg`.
51
+ 'image/svg+xml'
52
+ ]);
53
+ /**
54
+ * Labels browsers and older tools emit for a format that already has a
55
+ * canonical type. Folded rather than added to the set above, so that one
56
+ * format is one stored type: the CDN's active-document check, the signature
57
+ * table and the SVG sanitizer all key off the type, and a second spelling is
58
+ * a second thing each of them has to remember.
59
+ */ const IMAGE_TYPE_ALIASES = {
60
+ 'image/jpg': 'image/jpeg',
61
+ 'image/pjpeg': 'image/jpeg',
62
+ 'image/x-png': 'image/png',
63
+ 'image/x-ms-bmp': 'image/bmp',
64
+ 'image/x-bmp': 'image/bmp',
65
+ 'image/x-tiff': 'image/tiff',
66
+ 'image/ico': 'image/x-icon',
67
+ 'image/x-icon+xml': 'image/x-icon',
68
+ 'image/svg': 'image/svg+xml'
69
+ };
70
+ /** A content type reduced to its bare type: no parameters, lower case. */ export function bareContentType(contentType) {
71
+ return String(contentType != null ? contentType : '').split(';')[0].trim().toLowerCase();
72
+ }
73
+ /**
74
+ * The canonical type for an image label, or the bare label unchanged when it
75
+ * is not one this platform recognises. Never widens: a type that was not an
76
+ * accepted image before does not become one here.
77
+ */ export function normalizeImageContentType(contentType) {
78
+ var _IMAGE_TYPE_ALIASES_bare;
79
+ const bare = bareContentType(contentType);
80
+ return (_IMAGE_TYPE_ALIASES_bare = IMAGE_TYPE_ALIASES[bare]) != null ? _IMAGE_TYPE_ALIASES_bare : bare;
81
+ }
82
+ /** Whether media ingress treats this content type as an image. */ export function isImageUploadContentType(contentType) {
83
+ return IMAGE_UPLOAD_TYPES.has(normalizeImageContentType(contentType));
84
+ }
85
+
86
+ //# sourceMappingURL=image-upload-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/image-upload-types.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 * The image content types media ingress accepts.\n *\n * Every upload surface used to answer \"is this an image?\" with\n * `contentType.startsWith('image/')`, against a string the CALLER chooses.\n * Three separate decisions hang off that answer, and an open prefix gets all\n * three wrong for a type nobody has ever heard of:\n *\n * - **Entitlement.** Everything that is not an image rides the `videoMedia`\n * gate, so `image/x-anything` is how arbitrary bytes reach a workspace\n * whose plan does not include file uploads.\n * - **Ceilings.** An unrecognised `image/…` resolves the image ceiling\n * rather than the (much smaller) one its real format would get.\n * - **Structure.** `inspectUploadBytes` only matches magic numbers for types\n * it knows, so an unrecognised label means no signature check runs at all\n * — the executable and macro checks still apply, but \"these bytes are not\n * the format you declared\" cannot be asked.\n *\n * The set below is exactly the image half of that module's signature table,\n * plus SVG, which is text and has no magic number. A spec pins the two\n * together so a format added to one cannot go missing from the other.\n */\nexport const IMAGE_UPLOAD_TYPES: ReadonlySet<string> = new Set([\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/webp',\n 'image/avif',\n 'image/heic',\n 'image/heif',\n 'image/bmp',\n 'image/tiff',\n 'image/x-icon',\n 'image/vnd.microsoft.icon',\n // A document wearing an image label. Accepted, sanitized at every ingress,\n // and served under a sandboxing CSP — see `sanitize-svg`.\n 'image/svg+xml',\n])\n\n/**\n * Labels browsers and older tools emit for a format that already has a\n * canonical type. Folded rather than added to the set above, so that one\n * format is one stored type: the CDN's active-document check, the signature\n * table and the SVG sanitizer all key off the type, and a second spelling is\n * a second thing each of them has to remember.\n */\nconst IMAGE_TYPE_ALIASES: Readonly<Record<string, string>> = {\n 'image/jpg': 'image/jpeg',\n 'image/pjpeg': 'image/jpeg',\n 'image/x-png': 'image/png',\n 'image/x-ms-bmp': 'image/bmp',\n 'image/x-bmp': 'image/bmp',\n 'image/x-tiff': 'image/tiff',\n 'image/ico': 'image/x-icon',\n 'image/x-icon+xml': 'image/x-icon',\n 'image/svg': 'image/svg+xml',\n}\n\n/** A content type reduced to its bare type: no parameters, lower case. */\nexport function bareContentType(contentType: unknown): string {\n return String(contentType ?? '')\n .split(';')[0]\n .trim()\n .toLowerCase()\n}\n\n/**\n * The canonical type for an image label, or the bare label unchanged when it\n * is not one this platform recognises. Never widens: a type that was not an\n * accepted image before does not become one here.\n */\nexport function normalizeImageContentType(contentType: unknown): string {\n const bare = bareContentType(contentType)\n return IMAGE_TYPE_ALIASES[bare] ?? bare\n}\n\n/** Whether media ingress treats this content type as an image. */\nexport function isImageUploadContentType(contentType: unknown): boolean {\n return IMAGE_UPLOAD_TYPES.has(normalizeImageContentType(contentType))\n}\n"],"names":["IMAGE_UPLOAD_TYPES","Set","IMAGE_TYPE_ALIASES","bareContentType","contentType","String","split","trim","toLowerCase","normalizeImageContentType","bare","isImageUploadContentType","has"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,MAAMA,qBAA0C,IAAIC,IAAI;IAC7D;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,2EAA2E;IAC3E,0DAA0D;IAC1D;CACD,EAAC;AAEF;;;;;;CAMC,GACD,MAAMC,qBAAuD;IAC3D,aAAa;IACb,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,oBAAoB;IACpB,aAAa;AACf;AAEA,wEAAwE,GACxE,OAAO,SAASC,gBAAgBC,WAAoB;IAClD,OAAOC,OAAOD,sBAAAA,cAAe,IAC1BE,KAAK,CAAC,IAAI,CAAC,EAAE,CACbC,IAAI,GACJC,WAAW;AAChB;AAEA;;;;CAIC,GACD,OAAO,SAASC,0BAA0BL,WAAoB;QAErDF;IADP,MAAMQ,OAAOP,gBAAgBC;IAC7B,QAAOF,2BAAAA,kBAAkB,CAACQ,KAAK,YAAxBR,2BAA4BQ;AACrC;AAEA,gEAAgE,GAChE,OAAO,SAASC,yBAAyBP,WAAoB;IAC3D,OAAOJ,mBAAmBY,GAAG,CAACH,0BAA0BL;AAC1D"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 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 * from './server';
18
+ export * from './contexts';
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 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
+ */ // Full app-utils surface = server-safe utils + the client-only React
17
+ // contexts. Split so `@aglyn/aglyn/server` can re-export just `./server`
18
+ // (no `createContext`) for tenant Server Components (AGL-405); this barrel,
19
+ // reached via `@aglyn/aglyn`, keeps both for client consumers unchanged.
20
+ export * from "./server.js";
21
+ export * from "./contexts.js";
22
+
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2022 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// Full app-utils surface = server-safe utils + the client-only React\n// contexts. Split so `@aglyn/aglyn/server` can re-export just `./server`\n// (no `createContext`) for tenant Server Components (AGL-405); this barrel,\n// reached via `@aglyn/aglyn`, keeps both for client consumers unchanged.\nexport * from './server'\nexport * from './contexts'\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,qEAAqE;AACrE,yEAAyE;AACzE,4EAA4E;AAC5E,yEAAyE;AACzE,cAAc,cAAU;AACxB,cAAc,gBAAY"}