@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 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/contact-custom-fields.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 * Custom contact fields (AGL-2601): what a VALUE under a definition may be,\n * and the three doors a value comes in through.\n *\n * `crm.ts` declares the definition — `ContactFieldDefinition`, its key\n * grammar and its collection. This module is everything that happens between\n * a definition and a value: a form submission carrying a mapped field, an API\n * body carrying a `custom` map, and a publish that must not lose the mapping\n * an author drew. Each door coerces by the definition's TYPE, and the rule is\n * one function so a number typed into a form and a number sent over the API\n * cannot be stored as different things.\n *\n * Pure like the module it extends: no Firestore, no React. The bound on how\n * many definitions one org keeps is stated here because every reader of the\n * collection — the console hook, the submit route, the API — has to read it\n * whole, and a reader without a limit is a reader whose cost is somebody\n * else's decision.\n */\n\nimport {\n type ContactCustomValue,\n type ContactFieldDefinition,\n type ContactFieldType,\n type CrmFieldObject,\n fieldDefinitionObject,\n} from './crm'\nimport type { FormFieldDecl } from './forms'\n\n/**\n * How many field definitions one organization may hold, and therefore the\n * `limit()` every reader of `orgs/{orgId}/contactFields` applies.\n *\n * The collection is read WHOLE — there is no index on it and the list is\n * sorted by `order` in memory — so this is the ceiling on that read. A\n * hundred is far past what a profile form can carry; an org that wants more\n * has outgrown a per-contact map and needs a dataset.\n */\nexport const CONTACT_FIELDS_MAX_PER_ORG = 100\n\n/** Every value type a definition may declare, in the order a picker lists them. */\nexport const CONTACT_FIELD_TYPES: readonly ContactFieldType[] = [\n 'text',\n 'number',\n 'date',\n 'select',\n 'checkbox',\n 'url',\n]\n\n/** How a field type reads on screen — typed so a type cannot ship unlabeled. */\nexport const CONTACT_FIELD_TYPE_LABELS: Record<ContactFieldType, string> = {\n text: 'Text',\n number: 'Number',\n date: 'Date',\n select: 'Choice',\n checkbox: 'Checkbox',\n url: 'Link',\n}\n\nexport function isContactFieldType(value: unknown): value is ContactFieldType {\n return (\n typeof value === 'string' &&\n (CONTACT_FIELD_TYPES as readonly string[]).includes(value)\n )\n}\n\n/** The longest string a text or link field stores. */\nconst CONTACT_TEXT_VALUE_MAX = 2000\n\n/**\n * Definitions in the order a form, a column set and an export show them.\n *\n * `order` first, then the key, so two definitions that were given the same\n * position — which a reorder in flight can produce for one write — still\n * come out in one stable order on every surface rather than flickering.\n */\nexport function sortContactFieldDefinitions<\n T extends Pick<ContactFieldDefinition, 'order' | 'key'>,\n>(definitions: readonly T[]): T[] {\n return [...definitions].sort(\n (a, b) =>\n (Number(a.order) || 0) - (Number(b.order) || 0) ||\n a.key.localeCompare(b.key),\n )\n}\n\n/**\n * The definitions that describe ONE object, in `order` (AGL-2661).\n *\n * Every reader of the collection gets it whole — it is one bounded read —\n * and narrows here, through the one reader of `object`, so a definition\n * written before the key existed lands on the contacts tab and nowhere\n * else. Keys are unique within what this returns, not across it.\n */\nexport function fieldDefinitionsForObject<\n T extends Pick<ContactFieldDefinition, 'order' | 'key' | 'object'>,\n>(definitions: readonly T[], object: CrmFieldObject): T[] {\n return sortContactFieldDefinitions(\n definitions.filter((definition) => fieldDefinitionObject(definition) === object),\n )\n}\n\n/** The definitions a value may still be WRITTEN under — sorted, not retired. */\nexport function activeContactFieldDefinitions<\n T extends Pick<ContactFieldDefinition, 'order' | 'key' | 'retiredAt'>,\n>(definitions: readonly T[]): T[] {\n return sortContactFieldDefinitions(\n definitions.filter((definition) => !definition.retiredAt),\n )\n}\n\n/** Checkbox values a browser form actually posts for a ticked box. */\nconst AFFIRMATIVE = new Set(['true', 'on', 'yes', '1', 'checked'])\n/** And what it posts, or what a client sends, for an unticked one. */\nconst NEGATIVE = new Set(['false', 'off', 'no', '0', 'unchecked'])\n\n/**\n * One raw value, as the definition's type stores it — or `undefined` when\n * nothing usable was given.\n *\n * `undefined` and `null` are different answers on purpose. `null` is the\n * explicit \"cleared\" that keeps the key present for a `where` clause to find;\n * it is what a console save or an API body writes when it MEANS to clear.\n * `undefined` is \"there is no value here\", which a form submission produces\n * for a field left blank — and a blank field on a form must not clear a\n * value the merchant set by hand, so the caller drops the key rather than\n * writing it.\n *\n * - `text` and `url` store the trimmed string, capped. A link has to parse\n * as an `http(s)` URL, because the column renders it as one and a bare\n * word would be a broken anchor on every row.\n * - `number` stores a finite number. A numeric STRING is accepted because a\n * form posts every field as text, but anything that is not one number is\n * dropped rather than stored as `NaN`, which Firestore would refuse.\n * - `checkbox` stores a boolean, reading the strings a browser posts for a\n * ticked or an unticked box.\n * - `date` stores an ISO 8601 string, so a date filter compares as text and\n * an export reads as a date, whichever locale typed it.\n * - `select` stores one of the declared options, exactly, or nothing: a\n * choice outside the list would be a value the picker could never show.\n */\nexport function coerceContactCustomValue(\n definition: Pick<ContactFieldDefinition, 'type' | 'options'>,\n raw: unknown,\n): ContactCustomValue | undefined {\n if (raw === undefined || raw === null) return undefined\n switch (definition.type) {\n case 'text': {\n const text = String(raw).trim().slice(0, CONTACT_TEXT_VALUE_MAX)\n return text ? text : undefined\n }\n case 'url': {\n const text = String(raw).trim().slice(0, CONTACT_TEXT_VALUE_MAX)\n if (!text) return undefined\n try {\n const url = new URL(text)\n return url.protocol === 'http:' || url.protocol === 'https:'\n ? text\n : undefined\n } catch {\n return undefined\n }\n }\n case 'number': {\n if (typeof raw === 'number') return Number.isFinite(raw) ? raw : undefined\n if (typeof raw === 'boolean') return undefined\n const text = String(raw).trim()\n if (!text) return undefined\n const parsed = Number(text)\n return Number.isFinite(parsed) ? parsed : undefined\n }\n case 'checkbox': {\n if (typeof raw === 'boolean') return raw\n const text = String(raw).trim().toLowerCase()\n if (AFFIRMATIVE.has(text)) return true\n if (NEGATIVE.has(text)) return false\n return undefined\n }\n case 'date': {\n if (typeof raw === 'boolean') return undefined\n const ms =\n typeof raw === 'number'\n ? raw\n : raw instanceof Date\n ? raw.getTime()\n : Date.parse(String(raw).trim())\n return Number.isFinite(ms) ? new Date(ms).toISOString() : undefined\n }\n case 'select': {\n const text = String(raw).trim()\n const options = Array.isArray(definition.options) ? definition.options : []\n return text && options.includes(text) ? text : undefined\n }\n default:\n return undefined\n }\n}\n\n/**\n * What a form submission writes into the contact's `custom`: one entry per\n * declared field that names a contact field, coerced by that field's type.\n *\n * Only ACTIVE definitions receive a value — a mapping onto a retired field\n * is a mapping the author has not yet removed, and writing under a retired\n * key would put a value where no surface offers to show it. A field the\n * visitor left blank contributes nothing (see `coerceContactCustomValue`),\n * so a submission never clears a value a merchant set by hand.\n *\n * Two declared fields mapped onto one key is an authoring mistake this\n * function does not refuse; the FIRST declared field to yield a value wins,\n * in declaration order, so the answer is at least stable.\n */\nexport function collectMappedContactCustom(options: {\n /** The submitted values, keyed by the declared `fieldName`. */\n fields: Record<string, unknown>\n /** The form's declaration, as stored on its document. */\n decls: readonly FormFieldDecl[] | null | undefined\n /** The org's definitions, retired ones included — they are filtered here. */\n definitions: readonly ContactFieldDefinition[]\n}): Record<string, ContactCustomValue> {\n const active = new Map(\n activeContactFieldDefinitions(options.definitions).map((definition) => [\n definition.key,\n definition,\n ]),\n )\n const custom: Record<string, ContactCustomValue> = {}\n for (const decl of options.decls ?? []) {\n const key = decl.contactFieldKey\n if (!key || key in custom) continue\n const definition = active.get(key)\n if (!definition) continue\n const value = coerceContactCustomValue(definition, options.fields[decl.fieldName])\n if (value !== undefined) custom[key] = value\n }\n return custom\n}\n\n/**\n * The declaration a publish writes, with the mappings the author drew on the\n * previous one carried across.\n *\n * `formFieldDeclsFromNodes` reads a declaration off the DESIGN — the names,\n * types and options the nodes carry — and knows nothing about where a field\n * saves to, because that is edited on the form's own page rather than drawn\n * on the canvas. A publish that replaced the stored `fields` wholesale would\n * therefore drop every mapping on every publish, and the author would find\n * their profile fields silently empty after the next design change.\n *\n * Carried BY FIELD NAME, which is the submission key and the identity a\n * declared field has. A field renamed on the canvas is a new field and starts\n * unmapped; a field removed takes its mapping with it. Nothing else on the\n * previous declaration survives — the design is still the source of truth\n * for everything it draws.\n */\nexport function carryContactFieldMappings(\n previous: readonly FormFieldDecl[] | null | undefined,\n next: readonly FormFieldDecl[],\n): FormFieldDecl[] {\n const carried = new Map<string, string>()\n for (const decl of previous ?? []) {\n if (decl?.fieldName && decl.contactFieldKey) {\n carried.set(decl.fieldName, decl.contactFieldKey)\n }\n }\n return next.map((decl) => {\n const key = carried.get(decl.fieldName)\n return key ? { ...decl, contactFieldKey: key } : decl\n })\n}\n\n/**\n * The declaration with ONE field's destination changed: `key` maps it onto\n * that custom field, `null` unmaps it.\n *\n * Unmapping DELETES the property rather than setting it to `undefined`. The\n * declaration is written back to the form document as one array, and an\n * `undefined` inside an array is a value Firestore refuses outright — the\n * save would fail on the field the author just cleared, which is the one\n * they are least likely to suspect. Every other field, and every other\n * property of this one, comes through untouched: the design is still the\n * source of everything else on a declared field.\n */\nexport function withContactFieldMapping(\n decls: readonly FormFieldDecl[],\n fieldName: string,\n key: string | null,\n): FormFieldDecl[] {\n return decls.map((decl) => {\n if (decl.fieldName !== fieldName) return decl\n const next: FormFieldDecl = { ...decl }\n delete next.contactFieldKey\n return key ? { ...next, contactFieldKey: key } : next\n })\n}\n\n/** What one coercion refusal tells an API caller, per type. */\nfunction customValueExpectation(\n definition: Pick<ContactFieldDefinition, 'type' | 'options'>,\n): string {\n switch (definition.type) {\n case 'number':\n return 'Must be a number'\n case 'checkbox':\n return 'Must be true or false'\n case 'date':\n return 'Must be an ISO 8601 date'\n case 'url':\n return 'Must be an http(s) URL'\n case 'select':\n return `Must be one of: ${(definition.options ?? []).join(', ')}`\n default:\n return 'Must be text'\n }\n}\n\n/**\n * A `custom` map sent to the API, validated against the org's definitions.\n *\n * Unknown keys are REFUSED rather than dropped, following the contact\n * resource's own rule for its top-level keys: a silent drop reads as \"we\n * stored your value\" when nothing was stored, and an integration pushing a\n * field it spelled wrong would never learn. Each refusal is named\n * `custom.<key>` so a client can match it to the entry it sent.\n *\n * A retired field is refused too. Its values are still READ — an export has\n * to show what was written under it — but nothing writes under a key the\n * console no longer offers, or the field could never actually go away.\n *\n * `null` is accepted for every type and means \"clear\": the key stays present\n * with an explicit nothing, which is the shape the console writes and the\n * shape a `where` clause can find.\n */\nexport function readContactCustomInput(\n raw: unknown,\n definitions: readonly ContactFieldDefinition[],\n /**\n * The object the map is written on, for the refusals' wording — the\n * caller has already narrowed `definitions` to it. Contacts when unsaid.\n */\n object: CrmFieldObject = 'contact',\n): { values: Record<string, ContactCustomValue> } | { errors: Record<string, string> } {\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {\n return { errors: { custom: 'Must be an object of field values keyed by field key' } }\n }\n const byKey = new Map(\n sortContactFieldDefinitions(definitions).map((definition) => [\n definition.key,\n definition,\n ]),\n )\n const values: Record<string, ContactCustomValue> = {}\n const errors: Record<string, string> = {}\n for (const [key, value] of Object.entries(raw as Record<string, unknown>)) {\n const definition = byKey.get(key)\n if (!definition) {\n errors[`custom.${key}`] = `No such ${object} field`\n continue\n }\n if (definition.retiredAt) {\n errors[`custom.${key}`] = `Retired ${object} field — restore it to write it`\n continue\n }\n if (value === null) {\n values[key] = null\n continue\n }\n const coerced = coerceContactCustomValue(definition, value)\n if (coerced === undefined) {\n errors[`custom.${key}`] = customValueExpectation(definition)\n continue\n }\n values[key] = coerced\n }\n return Object.keys(errors).length ? { errors } : { values }\n}\n\n/**\n * `readContactCustomInput` for ANY object (AGL-2661): the org's whole\n * definition list in, the ones describing `object` judged.\n *\n * The narrowing happens here rather than at every caller so a company\n * body cannot be validated against a contact field of the same key —\n * `region` on both is two fields, and a value sent to one must never be\n * read by the other's type. What comes back is exactly what the contact\n * reader answers: a map to store, or refusals named `custom.<key>`.\n */\nexport function readCrmCustomInput(\n raw: unknown,\n definitions: readonly ContactFieldDefinition[],\n object: CrmFieldObject,\n): { values: Record<string, ContactCustomValue> } | { errors: Record<string, string> } {\n return readContactCustomInput(raw, fieldDefinitionsForObject(definitions, object), object)\n}\n"],"names":["fieldDefinitionObject","CONTACT_FIELDS_MAX_PER_ORG","CONTACT_FIELD_TYPES","CONTACT_FIELD_TYPE_LABELS","text","number","date","select","checkbox","url","isContactFieldType","value","includes","CONTACT_TEXT_VALUE_MAX","sortContactFieldDefinitions","definitions","sort","a","b","Number","order","key","localeCompare","fieldDefinitionsForObject","object","filter","definition","activeContactFieldDefinitions","retiredAt","AFFIRMATIVE","Set","NEGATIVE","coerceContactCustomValue","raw","undefined","type","String","trim","slice","URL","protocol","isFinite","parsed","toLowerCase","has","ms","Date","getTime","parse","toISOString","options","Array","isArray","collectMappedContactCustom","active","Map","map","custom","decl","decls","contactFieldKey","get","fields","fieldName","carryContactFieldMappings","previous","next","carried","set","withContactFieldMapping","customValueExpectation","join","readContactCustomInput","errors","byKey","values","Object","entries","coerced","keys","length","readCrmCustomInput"],"mappings":";AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;CAiBC,GAED,SAKEA,qBAAqB,QAChB,WAAO;AAGd;;;;;;;;CAQC,GACD,OAAO,MAAMC,6BAA6B,IAAG;AAE7C,iFAAiF,GACjF,OAAO,MAAMC,sBAAmD;IAC9D;IACA;IACA;IACA;IACA;IACA;CACD,CAAA;AAED,8EAA8E,GAC9E,OAAO,MAAMC,4BAA8D;IACzEC,MAAM;IACNC,QAAQ;IACRC,MAAM;IACNC,QAAQ;IACRC,UAAU;IACVC,KAAK;AACP,EAAC;AAED,OAAO,SAASC,mBAAmBC,KAAc;IAC/C,OACE,OAAOA,UAAU,YACjB,AAACT,oBAA0CU,QAAQ,CAACD;AAExD;AAEA,oDAAoD,GACpD,MAAME,yBAAyB;AAE/B;;;;;;CAMC,GACD,OAAO,SAASC,4BAEdC,WAAyB;IACzB,OAAO;WAAIA;KAAY,CAACC,IAAI,CAC1B,CAACC,GAAGC,IACF,AAACC,CAAAA,OAAOF,EAAEG,KAAK,KAAK,CAAA,IAAMD,CAAAA,OAAOD,EAAEE,KAAK,KAAK,CAAA,KAC7CH,EAAEI,GAAG,CAACC,aAAa,CAACJ,EAAEG,GAAG;AAE/B;AAEA;;;;;;;CAOC,GACD,OAAO,SAASE,0BAEdR,WAAyB,EAAES,MAAsB;IACjD,OAAOV,4BACLC,YAAYU,MAAM,CAAC,CAACC,aAAe1B,sBAAsB0B,gBAAgBF;AAE7E;AAEA,8EAA8E,GAC9E,OAAO,SAASG,8BAEdZ,WAAyB;IACzB,OAAOD,4BACLC,YAAYU,MAAM,CAAC,CAACC,aAAe,CAACA,WAAWE,SAAS;AAE5D;AAEA,oEAAoE,GACpE,MAAMC,cAAc,IAAIC,IAAI;IAAC;IAAQ;IAAM;IAAO;IAAK;CAAU;AACjE,oEAAoE,GACpE,MAAMC,WAAW,IAAID,IAAI;IAAC;IAAS;IAAO;IAAM;IAAK;CAAY;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;CAwBC,GACD,OAAO,SAASE,yBACdN,UAA4D,EAC5DO,GAAY;IAEZ,IAAIA,QAAQC,aAAaD,QAAQ,MAAM,OAAOC;IAC9C,OAAQR,WAAWS,IAAI;QACrB,KAAK;YAAQ;gBACX,MAAM/B,OAAOgC,OAAOH,KAAKI,IAAI,GAAGC,KAAK,CAAC,GAAGzB;gBACzC,OAAOT,OAAOA,OAAO8B;YACvB;QACA,KAAK;YAAO;gBACV,MAAM9B,OAAOgC,OAAOH,KAAKI,IAAI,GAAGC,KAAK,CAAC,GAAGzB;gBACzC,IAAI,CAACT,MAAM,OAAO8B;gBAClB,IAAI;oBACF,MAAMzB,MAAM,IAAI8B,IAAInC;oBACpB,OAAOK,IAAI+B,QAAQ,KAAK,WAAW/B,IAAI+B,QAAQ,KAAK,WAChDpC,OACA8B;gBACN,EAAE,eAAM;oBACN,OAAOA;gBACT;YACF;QACA,KAAK;YAAU;gBACb,IAAI,OAAOD,QAAQ,UAAU,OAAOd,OAAOsB,QAAQ,CAACR,OAAOA,MAAMC;gBACjE,IAAI,OAAOD,QAAQ,WAAW,OAAOC;gBACrC,MAAM9B,OAAOgC,OAAOH,KAAKI,IAAI;gBAC7B,IAAI,CAACjC,MAAM,OAAO8B;gBAClB,MAAMQ,SAASvB,OAAOf;gBACtB,OAAOe,OAAOsB,QAAQ,CAACC,UAAUA,SAASR;YAC5C;QACA,KAAK;YAAY;gBACf,IAAI,OAAOD,QAAQ,WAAW,OAAOA;gBACrC,MAAM7B,OAAOgC,OAAOH,KAAKI,IAAI,GAAGM,WAAW;gBAC3C,IAAId,YAAYe,GAAG,CAACxC,OAAO,OAAO;gBAClC,IAAI2B,SAASa,GAAG,CAACxC,OAAO,OAAO;gBAC/B,OAAO8B;YACT;QACA,KAAK;YAAQ;gBACX,IAAI,OAAOD,QAAQ,WAAW,OAAOC;gBACrC,MAAMW,KACJ,OAAOZ,QAAQ,WACXA,MACAA,eAAea,OACbb,IAAIc,OAAO,KACXD,KAAKE,KAAK,CAACZ,OAAOH,KAAKI,IAAI;gBACnC,OAAOlB,OAAOsB,QAAQ,CAACI,MAAM,IAAIC,KAAKD,IAAII,WAAW,KAAKf;YAC5D;QACA,KAAK;YAAU;gBACb,MAAM9B,OAAOgC,OAAOH,KAAKI,IAAI;gBAC7B,MAAMa,UAAUC,MAAMC,OAAO,CAAC1B,WAAWwB,OAAO,IAAIxB,WAAWwB,OAAO,GAAG,EAAE;gBAC3E,OAAO9C,QAAQ8C,QAAQtC,QAAQ,CAACR,QAAQA,OAAO8B;YACjD;QACA;YACE,OAAOA;IACX;AACF;AAEA;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASmB,2BAA2BH,OAO1C;QAQoBA;IAPnB,MAAMI,SAAS,IAAIC,IACjB5B,8BAA8BuB,QAAQnC,WAAW,EAAEyC,GAAG,CAAC,CAAC9B,aAAe;YACrEA,WAAWL,GAAG;YACdK;SACD;IAEH,MAAM+B,SAA6C,CAAC;IACpD,KAAK,MAAMC,SAAQR,iBAAAA,QAAQS,KAAK,YAAbT,iBAAiB,EAAE,CAAE;QACtC,MAAM7B,MAAMqC,KAAKE,eAAe;QAChC,IAAI,CAACvC,OAAOA,OAAOoC,QAAQ;QAC3B,MAAM/B,aAAa4B,OAAOO,GAAG,CAACxC;QAC9B,IAAI,CAACK,YAAY;QACjB,MAAMf,QAAQqB,yBAAyBN,YAAYwB,QAAQY,MAAM,CAACJ,KAAKK,SAAS,CAAC;QACjF,IAAIpD,UAAUuB,WAAWuB,MAAM,CAACpC,IAAI,GAAGV;IACzC;IACA,OAAO8C;AACT;AAEA;;;;;;;;;;;;;;;;CAgBC,GACD,OAAO,SAASO,0BACdC,QAAqD,EACrDC,IAA8B;IAE9B,MAAMC,UAAU,IAAIZ;IACpB,KAAK,MAAMG,QAAQO,mBAAAA,WAAY,EAAE,CAAE;QACjC,IAAIP,CAAAA,wBAAAA,KAAMK,SAAS,KAAIL,KAAKE,eAAe,EAAE;YAC3CO,QAAQC,GAAG,CAACV,KAAKK,SAAS,EAAEL,KAAKE,eAAe;QAClD;IACF;IACA,OAAOM,KAAKV,GAAG,CAAC,CAACE;QACf,MAAMrC,MAAM8C,QAAQN,GAAG,CAACH,KAAKK,SAAS;QACtC,OAAO1C,MAAM,aAAKqC;YAAME,iBAAiBvC;aAAQqC;IACnD;AACF;AAEA;;;;;;;;;;;CAWC,GACD,OAAO,SAASW,wBACdV,KAA+B,EAC/BI,SAAiB,EACjB1C,GAAkB;IAElB,OAAOsC,MAAMH,GAAG,CAAC,CAACE;QAChB,IAAIA,KAAKK,SAAS,KAAKA,WAAW,OAAOL;QACzC,MAAMQ,OAAsB,aAAKR;QACjC,OAAOQ,KAAKN,eAAe;QAC3B,OAAOvC,MAAM,aAAK6C;YAAMN,iBAAiBvC;aAAQ6C;IACnD;AACF;AAEA,6DAA6D,GAC7D,SAASI,uBACP5C,UAA4D;IAE5D,OAAQA,WAAWS,IAAI;QACrB,KAAK;YACH,OAAO;QACT,KAAK;YACH,OAAO;QACT,KAAK;YACH,OAAO;QACT,KAAK;YACH,OAAO;QACT,KAAK;gBACwBT;YAA3B,OAAO,CAAC,gBAAgB,EAAE,EAACA,sBAAAA,WAAWwB,OAAO,YAAlBxB,sBAAsB,EAAE,EAAE6C,IAAI,CAAC,OAAO;QACnE;YACE,OAAO;IACX;AACF;AAEA;;;;;;;;;;;;;;;;CAgBC,GACD,OAAO,SAASC,uBACdvC,GAAY,EACZlB,WAA8C,EAC9C;;;GAGC,GACDS,SAAyB,SAAS;IAElC,IAAI,CAACS,OAAO,OAAOA,QAAQ,YAAYkB,MAAMC,OAAO,CAACnB,MAAM;QACzD,OAAO;YAAEwC,QAAQ;gBAAEhB,QAAQ;YAAuD;QAAE;IACtF;IACA,MAAMiB,QAAQ,IAAInB,IAChBzC,4BAA4BC,aAAayC,GAAG,CAAC,CAAC9B,aAAe;YAC3DA,WAAWL,GAAG;YACdK;SACD;IAEH,MAAMiD,SAA6C,CAAC;IACpD,MAAMF,SAAiC,CAAC;IACxC,KAAK,MAAM,CAACpD,KAAKV,MAAM,IAAIiE,OAAOC,OAAO,CAAC5C,KAAiC;QACzE,MAAMP,aAAagD,MAAMb,GAAG,CAACxC;QAC7B,IAAI,CAACK,YAAY;YACf+C,MAAM,CAAC,CAAC,OAAO,EAAEpD,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAEG,OAAO,MAAM,CAAC;YACnD;QACF;QACA,IAAIE,WAAWE,SAAS,EAAE;YACxB6C,MAAM,CAAC,CAAC,OAAO,EAAEpD,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAEG,OAAO,+BAA+B,CAAC;YAC5E;QACF;QACA,IAAIb,UAAU,MAAM;YAClBgE,MAAM,CAACtD,IAAI,GAAG;YACd;QACF;QACA,MAAMyD,UAAU9C,yBAAyBN,YAAYf;QACrD,IAAImE,YAAY5C,WAAW;YACzBuC,MAAM,CAAC,CAAC,OAAO,EAAEpD,KAAK,CAAC,GAAGiD,uBAAuB5C;YACjD;QACF;QACAiD,MAAM,CAACtD,IAAI,GAAGyD;IAChB;IACA,OAAOF,OAAOG,IAAI,CAACN,QAAQO,MAAM,GAAG;QAAEP;IAAO,IAAI;QAAEE;IAAO;AAC5D;AAEA;;;;;;;;;CASC,GACD,OAAO,SAASM,mBACdhD,GAAY,EACZlB,WAA8C,EAC9CS,MAAsB;IAEtB,OAAOgD,uBAAuBvC,KAAKV,0BAA0BR,aAAaS,SAASA;AACrF"}
@@ -0,0 +1,52 @@
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
+ import { type ConsentGroup } from './consent-groups';
18
+ /**
19
+ * The holder of nothing: the group a contact is flattened through when no
20
+ * site has captured it and no facet exists — a row written by a path that
21
+ * predates attribution, read at the org level (AGL-2630).
22
+ *
23
+ * An empty `groupId` reads an empty facet (`readContactFacet` answers the
24
+ * empty facet for a key the map lacks) and REFUSES a write
25
+ * (`contactFacetPath` throws on an empty holder), which is the right pair:
26
+ * the row still shows its shared identity, and nothing edits a facet
27
+ * nobody holds. Exported so a surface can test for it rather than for an
28
+ * empty string.
29
+ */
30
+ export declare const NO_HOLDER_GROUP: ConsentGroup;
31
+ /**
32
+ * The group a CROSS-HOLDER reader flattens one contact through (AGL-2630).
33
+ *
34
+ * Under a site there is one answer for every row — the site's own group,
35
+ * `consentGroupForHost` — and the reader never asks this. At the
36
+ * organization level there is no viewing site, and a contact captured by
37
+ * three sites has up to three facets; the org-wide member reading them all
38
+ * needs ONE to show the row's profile, owner and stage under, and to write
39
+ * an edit back to. This picks the person's PRIMARY holder: the first
40
+ * capturing site, in capture order, whose group actually holds a facet;
41
+ * then any facet at all, resolved back to its declared group or to the
42
+ * site whose id it is keyed by; then the first capturing site even with no
43
+ * facet yet (the facet is written on the first edit). A row nobody captured
44
+ * and nobody wrote a facet for reads through {@link NO_HOLDER_GROUP}.
45
+ *
46
+ * Capture order rather than sorted order, deliberately: `capturedByHostIds`
47
+ * is maintained by `arrayUnion`, so its first entry is the site that met
48
+ * the person first, and that site's profile is the one a person reading
49
+ * across brands would expect to see. `contactCaptureHostIds` sorts the same
50
+ * array for RENDERING, where a stable order matters more than a first.
51
+ */
52
+ export declare function contactPrimaryGroup(row: Record<string, unknown> | null | undefined, org: Record<string, unknown> | null | undefined): ConsentGroup;
@@ -0,0 +1,98 @@
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
+ * WHICH HOLDER A CROSS-SITE READER SEES A CONTACT THROUGH (AGL-2630).
18
+ *
19
+ * A contact document carries one facet per holder, and every field but the
20
+ * shared identity lives in one of them. A surface standing on a site reads
21
+ * that site's group; a surface standing at the organization — the org-level
22
+ * Contacts list, and the whole-collection export that writes the same file
23
+ * — has no site to read as and needs one answer per row.
24
+ *
25
+ * In the library rather than in the CRM plugin because both of those
26
+ * readers need it and one of them is an app: an app may not import a
27
+ * feature plugin (AGL-2662).
28
+ */ import { CONTACT_FACETS_FIELD } from "./contacts.js";
29
+ import { CAPTURED_BY_HOST_FIELD } from "./marketing-consent.js";
30
+ import { consentGroupForHost, readConsentGroups, soloConsentGroup } from "./consent-groups.js";
31
+ /**
32
+ * The holder of nothing: the group a contact is flattened through when no
33
+ * site has captured it and no facet exists — a row written by a path that
34
+ * predates attribution, read at the org level (AGL-2630).
35
+ *
36
+ * An empty `groupId` reads an empty facet (`readContactFacet` answers the
37
+ * empty facet for a key the map lacks) and REFUSES a write
38
+ * (`contactFacetPath` throws on an empty holder), which is the right pair:
39
+ * the row still shows its shared identity, and nothing edits a facet
40
+ * nobody holds. Exported so a surface can test for it rather than for an
41
+ * empty string.
42
+ */ export const NO_HOLDER_GROUP = Object.freeze({
43
+ hostId: '',
44
+ groupId: '',
45
+ name: null,
46
+ hostIds: [],
47
+ declared: false
48
+ });
49
+ /**
50
+ * The group a CROSS-HOLDER reader flattens one contact through (AGL-2630).
51
+ *
52
+ * Under a site there is one answer for every row — the site's own group,
53
+ * `consentGroupForHost` — and the reader never asks this. At the
54
+ * organization level there is no viewing site, and a contact captured by
55
+ * three sites has up to three facets; the org-wide member reading them all
56
+ * needs ONE to show the row's profile, owner and stage under, and to write
57
+ * an edit back to. This picks the person's PRIMARY holder: the first
58
+ * capturing site, in capture order, whose group actually holds a facet;
59
+ * then any facet at all, resolved back to its declared group or to the
60
+ * site whose id it is keyed by; then the first capturing site even with no
61
+ * facet yet (the facet is written on the first edit). A row nobody captured
62
+ * and nobody wrote a facet for reads through {@link NO_HOLDER_GROUP}.
63
+ *
64
+ * Capture order rather than sorted order, deliberately: `capturedByHostIds`
65
+ * is maintained by `arrayUnion`, so its first entry is the site that met
66
+ * the person first, and that site's profile is the one a person reading
67
+ * across brands would expect to see. `contactCaptureHostIds` sorts the same
68
+ * array for RENDERING, where a stable order matters more than a first.
69
+ */ export function contactPrimaryGroup(row, org) {
70
+ const record = row != null ? row : {};
71
+ const facets = record[CONTACT_FACETS_FIELD];
72
+ const facetKeys = facets && typeof facets === 'object' && !Array.isArray(facets) ? Object.keys(facets) : [];
73
+ const raw = record[CAPTURED_BY_HOST_FIELD];
74
+ const captured = Array.isArray(raw) ? raw.map((id)=>String(id != null ? id : '').trim()).filter(Boolean) : [];
75
+ for (const hostId of captured){
76
+ const group = consentGroupForHost(org, hostId);
77
+ if (facetKeys.includes(group.groupId)) return group;
78
+ }
79
+ for (const key of facetKeys){
80
+ const declared = readConsentGroups(org)[key];
81
+ if (declared) {
82
+ return {
83
+ hostId: declared.hostIds[0],
84
+ groupId: key,
85
+ name: declared.name,
86
+ hostIds: [
87
+ ...declared.hostIds
88
+ ],
89
+ declared: true
90
+ };
91
+ }
92
+ return soloConsentGroup(key);
93
+ }
94
+ if (captured.length) return consentGroupForHost(org, captured[0]);
95
+ return NO_HOLDER_GROUP;
96
+ }
97
+
98
+ //# sourceMappingURL=contact-holder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/contact-holder.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 * WHICH HOLDER A CROSS-SITE READER SEES A CONTACT THROUGH (AGL-2630).\n *\n * A contact document carries one facet per holder, and every field but the\n * shared identity lives in one of them. A surface standing on a site reads\n * that site's group; a surface standing at the organization — the org-level\n * Contacts list, and the whole-collection export that writes the same file\n * — has no site to read as and needs one answer per row.\n *\n * In the library rather than in the CRM plugin because both of those\n * readers need it and one of them is an app: an app may not import a\n * feature plugin (AGL-2662).\n */\n\nimport { CONTACT_FACETS_FIELD } from './contacts'\nimport { CAPTURED_BY_HOST_FIELD } from './marketing-consent'\nimport {\n type ConsentGroup,\n consentGroupForHost,\n readConsentGroups,\n soloConsentGroup,\n} from './consent-groups'\n\n/**\n * The holder of nothing: the group a contact is flattened through when no\n * site has captured it and no facet exists — a row written by a path that\n * predates attribution, read at the org level (AGL-2630).\n *\n * An empty `groupId` reads an empty facet (`readContactFacet` answers the\n * empty facet for a key the map lacks) and REFUSES a write\n * (`contactFacetPath` throws on an empty holder), which is the right pair:\n * the row still shows its shared identity, and nothing edits a facet\n * nobody holds. Exported so a surface can test for it rather than for an\n * empty string.\n */\nexport const NO_HOLDER_GROUP: ConsentGroup = Object.freeze({\n hostId: '',\n groupId: '',\n name: null,\n hostIds: [],\n declared: false,\n}) as ConsentGroup\n\n/**\n * The group a CROSS-HOLDER reader flattens one contact through (AGL-2630).\n *\n * Under a site there is one answer for every row — the site's own group,\n * `consentGroupForHost` — and the reader never asks this. At the\n * organization level there is no viewing site, and a contact captured by\n * three sites has up to three facets; the org-wide member reading them all\n * needs ONE to show the row's profile, owner and stage under, and to write\n * an edit back to. This picks the person's PRIMARY holder: the first\n * capturing site, in capture order, whose group actually holds a facet;\n * then any facet at all, resolved back to its declared group or to the\n * site whose id it is keyed by; then the first capturing site even with no\n * facet yet (the facet is written on the first edit). A row nobody captured\n * and nobody wrote a facet for reads through {@link NO_HOLDER_GROUP}.\n *\n * Capture order rather than sorted order, deliberately: `capturedByHostIds`\n * is maintained by `arrayUnion`, so its first entry is the site that met\n * the person first, and that site's profile is the one a person reading\n * across brands would expect to see. `contactCaptureHostIds` sorts the same\n * array for RENDERING, where a stable order matters more than a first.\n */\nexport function contactPrimaryGroup(\n row: Record<string, unknown> | null | undefined,\n org: Record<string, unknown> | null | undefined,\n): ConsentGroup {\n const record = row ?? {}\n const facets = record[CONTACT_FACETS_FIELD]\n const facetKeys =\n facets && typeof facets === 'object' && !Array.isArray(facets)\n ? Object.keys(facets as Record<string, unknown>)\n : []\n const raw = record[CAPTURED_BY_HOST_FIELD]\n const captured = Array.isArray(raw)\n ? raw.map((id) => String(id ?? '').trim()).filter(Boolean)\n : []\n for (const hostId of captured) {\n const group = consentGroupForHost(org, hostId)\n if (facetKeys.includes(group.groupId)) return group\n }\n for (const key of facetKeys) {\n const declared = readConsentGroups(org)[key]\n if (declared) {\n return {\n hostId: declared.hostIds[0],\n groupId: key,\n name: declared.name,\n hostIds: [...declared.hostIds],\n declared: true,\n }\n }\n return soloConsentGroup(key)\n }\n if (captured.length) return consentGroupForHost(org, captured[0])\n return NO_HOLDER_GROUP\n}"],"names":["CONTACT_FACETS_FIELD","CAPTURED_BY_HOST_FIELD","consentGroupForHost","readConsentGroups","soloConsentGroup","NO_HOLDER_GROUP","Object","freeze","hostId","groupId","name","hostIds","declared","contactPrimaryGroup","row","org","record","facets","facetKeys","Array","isArray","keys","raw","captured","map","id","String","trim","filter","Boolean","group","includes","key","length"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;CAYC,GAED,SAASA,oBAAoB,QAAQ,gBAAY;AACjD,SAASC,sBAAsB,QAAQ,yBAAqB;AAC5D,SAEEC,mBAAmB,EACnBC,iBAAiB,EACjBC,gBAAgB,QACX,sBAAkB;AAEzB;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,kBAAgCC,OAAOC,MAAM,CAAC;IACzDC,QAAQ;IACRC,SAAS;IACTC,MAAM;IACNC,SAAS,EAAE;IACXC,UAAU;AACZ,GAAkB;AAElB;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,SAASC,oBACdC,GAA+C,EAC/CC,GAA+C;IAE/C,MAAMC,SAASF,cAAAA,MAAO,CAAC;IACvB,MAAMG,SAASD,MAAM,CAAChB,qBAAqB;IAC3C,MAAMkB,YACJD,UAAU,OAAOA,WAAW,YAAY,CAACE,MAAMC,OAAO,CAACH,UACnDX,OAAOe,IAAI,CAACJ,UACZ,EAAE;IACR,MAAMK,MAAMN,MAAM,CAACf,uBAAuB;IAC1C,MAAMsB,WAAWJ,MAAMC,OAAO,CAACE,OAC3BA,IAAIE,GAAG,CAAC,CAACC,KAAOC,OAAOD,aAAAA,KAAM,IAAIE,IAAI,IAAIC,MAAM,CAACC,WAChD,EAAE;IACN,KAAK,MAAMrB,UAAUe,SAAU;QAC7B,MAAMO,QAAQ5B,oBAAoBa,KAAKP;QACvC,IAAIU,UAAUa,QAAQ,CAACD,MAAMrB,OAAO,GAAG,OAAOqB;IAChD;IACA,KAAK,MAAME,OAAOd,UAAW;QAC3B,MAAMN,WAAWT,kBAAkBY,IAAI,CAACiB,IAAI;QAC5C,IAAIpB,UAAU;YACZ,OAAO;gBACLJ,QAAQI,SAASD,OAAO,CAAC,EAAE;gBAC3BF,SAASuB;gBACTtB,MAAME,SAASF,IAAI;gBACnBC,SAAS;uBAAIC,SAASD,OAAO;iBAAC;gBAC9BC,UAAU;YACZ;QACF;QACA,OAAOR,iBAAiB4B;IAC1B;IACA,IAAIT,SAASU,MAAM,EAAE,OAAO/B,oBAAoBa,KAAKQ,QAAQ,CAAC,EAAE;IAChE,OAAOlB;AACT"}
@@ -0,0 +1,136 @@
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
+ * MERGING TWO CONTACT DOCUMENTS INTO ONE (AGL-2625) — the pure half.
19
+ *
20
+ * Contacts are keyed by email, so exact duplicates cannot exist; one human
21
+ * with `jane@acme.com` and `jane@gmail.com` is two documents, with tags,
22
+ * deals, tasks and a timeline split between them. A merge folds the second
23
+ * into the first: the SURVIVOR keeps its address as the identity, the MERGED
24
+ * record's address becomes an alternate on it, and every field is combined
25
+ * by one rule the dialog can show before the write happens.
26
+ *
27
+ * ## The rule
28
+ *
29
+ * - A scalar — a name, a phone, a title, a stage, an owner — is the
30
+ * survivor's where the survivor has one, and fills from the merged record
31
+ * where the survivor is empty. Nothing the survivor holds is overwritten.
32
+ * - A list — tags, campaign filings, the timeline, the sites that captured
33
+ * the person, the forms, the companies — is the UNION, deduplicated and
34
+ * bounded where the write paths bound it.
35
+ * - A figure that counts something — orders, lifetime value, refunds — is
36
+ * the SUM: two records of one person's purchases are one person's
37
+ * purchases. A "first" is the earlier, a "last" is the later.
38
+ * - Notes are appended, survivor first: a note is a list of sentences, and
39
+ * dropping the merged record's would be the one silent loss in a merge
40
+ * that is otherwise lossless.
41
+ * - A recorded REFUSAL of marketing mail on either record stands on the
42
+ * survivor. The merge asserts the two are one person, and that person
43
+ * said no.
44
+ *
45
+ * Applied per holder: each group's facet on the merged record is folded
46
+ * into the same group's facet on the survivor, and a group only the merged
47
+ * record had comes across whole. No holder's records reach another holder's
48
+ * facet, which is the guarantee the facet shape exists for.
49
+ *
50
+ * ## Why this is a plan and not a write
51
+ *
52
+ * The console shows the two records side by side and says which value wins
53
+ * before anything is committed; the server performs the write. Both read
54
+ * this function, so the preview cannot show one outcome and the write land
55
+ * another. The plan is plain values — no sentinels — so it can be rendered,
56
+ * and it is shaped for a merge-`set`, which deep-merges the facet map one
57
+ * holder at a time and replaces an array whole: exactly the two behaviors
58
+ * the rule above needs.
59
+ */
60
+ import { type ContactInteraction } from './contacts';
61
+ export interface ContactMergePlan {
62
+ /**
63
+ * What the survivor becomes, as a merge-`set` payload: every derived
64
+ * field with its full value, and only the groups the merged record held
65
+ * under `facets`. Plain values throughout — the writer adds its own
66
+ * `updatedAt`.
67
+ */
68
+ survivor: Record<string, unknown>;
69
+ /** Every address the survivor answers to afterwards, primary first. */
70
+ emails: string[];
71
+ /** The merged record's addresses — what its leads and index entries are keyed by. */
72
+ mergedEmails: string[];
73
+ /**
74
+ * The companies that lose a contact: those BOTH records were filed under,
75
+ * which counted two people and now count one. A company only one record
76
+ * named keeps its count — the survivor still names it.
77
+ */
78
+ companyCounts: Array<{
79
+ companyId: string;
80
+ delta: -1;
81
+ }>;
82
+ /** The union of both records' scope tokens — who may read the survivor. */
83
+ visibleTo: string[];
84
+ }
85
+ type Doc = Record<string, unknown>;
86
+ /**
87
+ * Both timelines as one: deduplicated by event, newest first, and capped
88
+ * the way every capture caps it — so a merge of two full timelines keeps
89
+ * the fifty most recent visits rather than growing the document past what
90
+ * a capture may write.
91
+ */
92
+ export declare function mergeInteractions(survivor: readonly ContactInteraction[] | undefined, merged: readonly ContactInteraction[] | undefined): ContactInteraction[];
93
+ /**
94
+ * One holder's facet after the merge.
95
+ *
96
+ * `survivor` is that holder's facet on the surviving record — possibly
97
+ * absent, when only the merged record was held by this group — and `merged`
98
+ * the same holder's facet on the record being folded in.
99
+ */
100
+ export declare function mergeContactFacet(survivor: Doc | undefined, merged: Doc | undefined): Doc;
101
+ /**
102
+ * The plan for folding `merged` into `survivor`.
103
+ *
104
+ * Both are the stored documents as read. The survivor's `email` is the
105
+ * identity that stands; the merged record's becomes an alternate.
106
+ */
107
+ export declare function planContactMerge(survivor: Doc, merged: Doc): ContactMergePlan;
108
+ /** Where a previewed value comes from. */
109
+ export type ContactMergeSource = 'survivor' | 'merged' | 'both' | 'none';
110
+ /** One line of the side-by-side the dialog shows. */
111
+ export interface ContactMergePreviewRow {
112
+ key: string;
113
+ label: string;
114
+ /** The surviving record's value, as text. */
115
+ survivor: string;
116
+ /** The merged record's value, as text. */
117
+ merged: string;
118
+ /** What the survivor carries afterwards. */
119
+ result: string;
120
+ from: ContactMergeSource;
121
+ }
122
+ export interface ContactMergePreviewOptions {
123
+ /** The owner's display name for a uid; the uid itself when absent. */
124
+ memberName?: (uid: string) => string;
125
+ }
126
+ /**
127
+ * The merge as the viewing group would see it, field by field.
128
+ *
129
+ * Reads through ONE group's facet, the way the record page does, so a
130
+ * holder previewing a merge sees its own values and never another holder's.
131
+ * Every row carries the survivor's value, the merged record's, and the
132
+ * result the plan would write, so the dialog is a rendering and not a second
133
+ * opinion.
134
+ */
135
+ export declare function contactMergePreview(survivor: Doc, merged: Doc, groupId: string, options?: ContactMergePreviewOptions): ContactMergePreviewRow[];
136
+ export {};