@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,432 @@
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
+ * EVERY CRM CSV, WRITTEN ONCE (AGL-2662).
18
+ *
19
+ * ## Why these moved out of the plugin
20
+ *
21
+ * Each CRM section already wrote a file from the rows it had LOADED, and
22
+ * the whole-collection export writes the same file from the server over
23
+ * every row there is. The console app may not import a feature plugin —
24
+ * plugins reach an app only through the generated loader manifests — so a
25
+ * server route could not have called the plugin's writers, and writing a
26
+ * second set would have given one feature two file formats, discovered by
27
+ * whichever merchant opened both in a spreadsheet.
28
+ *
29
+ * So the columns and the cells live here, in the library both sides may
30
+ * import. The plugin's `contacts-csv.ts`, `companies-csv.ts`,
31
+ * `deals-csv.ts`, `tasks-csv.ts` and `leads-csv.ts` keep their names and
32
+ * delegate: the sections import what they always did, and there is one
33
+ * implementation under all of it. Their specs are unchanged and are the
34
+ * proof that the move changed no byte of any file.
35
+ *
36
+ * ## What a resolver is for, and what an absent one means
37
+ *
38
+ * A stored document holds ids — an owner uid, a pipeline id, a linked
39
+ * record id — and a spreadsheet cannot read an id. Each writer therefore
40
+ * takes optional resolvers, and every one of them degrades the same way:
41
+ * ABSENT resolver writes the id itself rather than an empty cell, because
42
+ * a row whose owner is a uid is still a row whose owner can be found, and
43
+ * a blank is a claim that nobody owns it.
44
+ *
45
+ * The owner columns carry an ADDRESS where they can, which is also what
46
+ * the contacts and companies imports resolve an owner by — so an exported
47
+ * file re-imports without a hand mapping.
48
+ */ import { _ as _extends } from "@swc/helpers/_/_extends";
49
+ import { CONTACT_SOURCE_LABELS, contactDisplayName, interactionsForGroup, readContactFacet } from "./contacts.js";
50
+ import { CONTACT_LIFECYCLE_STAGE_LABELS, CRM_LEAD_STATUS_LABELS, CRM_TASK_KIND_LABELS, crmLeadStatus, isContactLifecycleStage } from "./crm.js";
51
+ import { csvDocument } from "./csv-import.js";
52
+ /*==========================================
53
+ * CELLS EVERY FILE SHARES
54
+ *=========================================*/ /** Cents as a major-unit decimal — `125000` → `1250.00`; `''` for none. */ export function csvAmount(cents) {
55
+ return typeof cents === 'number' && Number.isFinite(cents) ? (cents / 100).toFixed(2) : '';
56
+ }
57
+ /** An epoch as an ISO timestamp, or `''` for none. */ export function csvInstant(ms) {
58
+ return typeof ms === 'number' && Number.isFinite(ms) ? new Date(ms).toISOString() : '';
59
+ }
60
+ /**
61
+ * An epoch as a local calendar DATE — `YYYY-MM-DD`.
62
+ *
63
+ * For the fields that are a day rather than a moment: an expected close is
64
+ * stored at local noon precisely so the day survives a timezone round trip,
65
+ * and writing it as an instant would hand a spreadsheet a time nobody
66
+ * chose. The same arithmetic the deal drawer's date field uses, so the
67
+ * file and the field read one day.
68
+ */ export function csvLocalDate(ms) {
69
+ if (typeof ms !== 'number' || !Number.isFinite(ms)) return '';
70
+ const offset = new Date(ms).getTimezoneOffset() * 60000;
71
+ return new Date(ms - offset).toISOString().slice(0, 10);
72
+ }
73
+ /** Epoch millis or a Firestore timestamp as an ISO instant, or `''`. */ export function csvStoredInstant(value) {
74
+ var _value_toDate;
75
+ if (typeof value === 'number') return csvInstant(value);
76
+ const asDate = value == null ? void 0 : (_value_toDate = value.toDate) == null ? void 0 : _value_toDate.call(value);
77
+ return asDate ? asDate.toISOString() : '';
78
+ }
79
+ /** The one degradation rule: a resolved name, else the id, else empty. */ function named(id, resolve) {
80
+ return id ? (resolve == null ? void 0 : resolve(id)) || id : '';
81
+ }
82
+ /**
83
+ * The standard columns, in order, headed as the import reads them. A
84
+ * custom field's column follows these, headed by its label.
85
+ */ export const CONTACT_CSV_COLUMNS = [
86
+ 'Email',
87
+ 'Name',
88
+ 'Phone',
89
+ 'Job title',
90
+ 'Company',
91
+ 'Owner',
92
+ 'Lifecycle stage',
93
+ 'Address line 1',
94
+ 'Address line 2',
95
+ 'City',
96
+ 'State',
97
+ 'Postal code',
98
+ 'Country',
99
+ 'Tags',
100
+ 'Sources',
101
+ 'Last interaction',
102
+ 'Last engaged',
103
+ 'Notes'
104
+ ];
105
+ /** The header row, with one column per custom field after the standard ones. */ export function contactCsvHeader(customFields = []) {
106
+ return [
107
+ ...CONTACT_CSV_COLUMNS,
108
+ ...customFields.map((field)=>field.label)
109
+ ];
110
+ }
111
+ /** A custom value as a cell: a boolean as yes/no, everything else as text. */ const customCell = (value)=>{
112
+ if (value === null || value === undefined) return '';
113
+ if (typeof value === 'boolean') return value ? 'yes' : 'no';
114
+ return String(value);
115
+ };
116
+ /** One contact's cells, in the header's order. */ export function contactCsvCells(contact, options = {}) {
117
+ var _contact_email, _contact_name, _contact_phone, _contact_jobTitle, _contact_companyName, _ref, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6, _contact_tags, _contact_sources, _contact_notes;
118
+ var _contact_address, _contact_address1, _contact_address2, _contact_address3, _contact_address4, _contact_address5, _contact_interactions;
119
+ const { ownerEmail, customFields = [] } = options;
120
+ return [
121
+ (_contact_email = contact.email) != null ? _contact_email : '',
122
+ (_contact_name = contact.name) != null ? _contact_name : '',
123
+ (_contact_phone = contact.phone) != null ? _contact_phone : '',
124
+ (_contact_jobTitle = contact.jobTitle) != null ? _contact_jobTitle : '',
125
+ (_contact_companyName = contact.companyName) != null ? _contact_companyName : '',
126
+ contact.ownerUid ? (_ref = ownerEmail == null ? void 0 : ownerEmail(contact.ownerUid)) != null ? _ref : contact.ownerUid : '',
127
+ contact.lifecycleStage ? CONTACT_LIFECYCLE_STAGE_LABELS[contact.lifecycleStage] : '',
128
+ (_ref1 = (_contact_address = contact.address) == null ? void 0 : _contact_address.line1) != null ? _ref1 : '',
129
+ (_ref2 = (_contact_address1 = contact.address) == null ? void 0 : _contact_address1.line2) != null ? _ref2 : '',
130
+ (_ref3 = (_contact_address2 = contact.address) == null ? void 0 : _contact_address2.city) != null ? _ref3 : '',
131
+ (_ref4 = (_contact_address3 = contact.address) == null ? void 0 : _contact_address3.state) != null ? _ref4 : '',
132
+ (_ref5 = (_contact_address4 = contact.address) == null ? void 0 : _contact_address4.postalCode) != null ? _ref5 : '',
133
+ (_ref6 = (_contact_address5 = contact.address) == null ? void 0 : _contact_address5.country) != null ? _ref6 : '',
134
+ ((_contact_tags = contact.tags) != null ? _contact_tags : []).join('|'),
135
+ Object.keys((_contact_sources = contact.sources) != null ? _contact_sources : {}).join('|'),
136
+ ((_contact_interactions = contact.interactions) == null ? void 0 : _contact_interactions[0]) ? new Date(contact.interactions[0].atMs).toISOString() : '',
137
+ contact.lastEmailEngagementAtMs ? new Date(contact.lastEmailEngagementAtMs).toISOString() : '',
138
+ (_contact_notes = contact.notes) != null ? _contact_notes : '',
139
+ ...customFields.map((field)=>{
140
+ var _contact_custom;
141
+ return customCell((_contact_custom = contact.custom) == null ? void 0 : _contact_custom[field.key]);
142
+ })
143
+ ];
144
+ }
145
+ /** The whole file, header first. */ export function contactsCsv(rows, options = {}) {
146
+ return csvDocument(contactCsvHeader(options.customFields), rows.map((contact)=>contactCsvCells(contact, options)));
147
+ }
148
+ /** The columns, in order, headed as the import reads them. */ export const COMPANY_CSV_COLUMNS = [
149
+ 'Company',
150
+ 'Domain',
151
+ 'Website',
152
+ 'Phone',
153
+ 'Industry',
154
+ 'Owner',
155
+ 'Address line 1',
156
+ 'Address line 2',
157
+ 'City',
158
+ 'State',
159
+ 'Postal code',
160
+ 'Country',
161
+ 'Tags',
162
+ 'Notes',
163
+ 'Contacts'
164
+ ];
165
+ /** One company's cells, in the header's order. */ export function companyCsvCells(company, options = {}) {
166
+ var _company_name, _company_domain, _company_website, _company_phone, _company_industry, _ref, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6, _company_tags, _company_notes, _company_contactsCount;
167
+ var _company_address, _company_address1, _company_address2, _company_address3, _company_address4, _company_address5;
168
+ const { ownerEmail } = options;
169
+ return [
170
+ (_company_name = company.name) != null ? _company_name : '',
171
+ (_company_domain = company.domain) != null ? _company_domain : '',
172
+ (_company_website = company.website) != null ? _company_website : '',
173
+ (_company_phone = company.phone) != null ? _company_phone : '',
174
+ (_company_industry = company.industry) != null ? _company_industry : '',
175
+ company.ownerUid ? (_ref = ownerEmail == null ? void 0 : ownerEmail(company.ownerUid)) != null ? _ref : company.ownerUid : '',
176
+ (_ref1 = (_company_address = company.address) == null ? void 0 : _company_address.line1) != null ? _ref1 : '',
177
+ (_ref2 = (_company_address1 = company.address) == null ? void 0 : _company_address1.line2) != null ? _ref2 : '',
178
+ (_ref3 = (_company_address2 = company.address) == null ? void 0 : _company_address2.city) != null ? _ref3 : '',
179
+ (_ref4 = (_company_address3 = company.address) == null ? void 0 : _company_address3.state) != null ? _ref4 : '',
180
+ (_ref5 = (_company_address4 = company.address) == null ? void 0 : _company_address4.postalCode) != null ? _ref5 : '',
181
+ (_ref6 = (_company_address5 = company.address) == null ? void 0 : _company_address5.country) != null ? _ref6 : '',
182
+ ((_company_tags = company.tags) != null ? _company_tags : []).join('|'),
183
+ (_company_notes = company.notes) != null ? _company_notes : '',
184
+ Number((_company_contactsCount = company.contactsCount) != null ? _company_contactsCount : 0)
185
+ ];
186
+ }
187
+ /** The whole file, header first. */ export function companiesCsv(rows, options = {}) {
188
+ return csvDocument(COMPANY_CSV_COLUMNS, rows.map((company)=>companyCsvCells(company, options)));
189
+ }
190
+ /*==========================================
191
+ * DEALS
192
+ *=========================================*/ /** The currency a deal with no code of its own is read in. */ export const CSV_DEFAULT_DEAL_CURRENCY = 'usd';
193
+ /** How a deal's `status` reads in a file. */ export const CSV_DEAL_STATUS_LABELS = {
194
+ open: 'Open',
195
+ won: 'Won',
196
+ lost: 'Lost'
197
+ };
198
+ export const DEAL_CSV_COLUMNS = [
199
+ 'Title',
200
+ 'Pipeline',
201
+ 'Stage',
202
+ 'Amount',
203
+ 'Currency',
204
+ 'Owner',
205
+ 'Expected close',
206
+ 'Status',
207
+ 'Contact',
208
+ 'Company',
209
+ 'Closed',
210
+ 'Lost reason',
211
+ 'Notes'
212
+ ];
213
+ /** One deal's cells, in the header's order. */ export function dealCsvCells(deal, options = {}) {
214
+ var _deal_pipelineId, _deal_stageId, _deal_title, _ref, _ref1, _ref2, _CSV_DEAL_STATUS_LABELS_deal_status, _deal_contactName, _deal_companyName, _deal_lostReason, _deal_notes;
215
+ const { pipelineName, stageName, ownerEmail } = options;
216
+ const pipelineId = (_deal_pipelineId = deal.pipelineId) != null ? _deal_pipelineId : '';
217
+ const stageId = (_deal_stageId = deal.stageId) != null ? _deal_stageId : '';
218
+ return [
219
+ (_deal_title = deal.title) != null ? _deal_title : '',
220
+ (_ref = pipelineName == null ? void 0 : pipelineName(pipelineId)) != null ? _ref : pipelineId,
221
+ (_ref1 = stageName == null ? void 0 : stageName(pipelineId, stageId)) != null ? _ref1 : stageId,
222
+ csvAmount(deal.amountCents),
223
+ typeof deal.amountCents === 'number' ? String(deal.currency || CSV_DEFAULT_DEAL_CURRENCY).toUpperCase() : '',
224
+ deal.ownerUid ? (_ref2 = ownerEmail == null ? void 0 : ownerEmail(deal.ownerUid)) != null ? _ref2 : deal.ownerUid : '',
225
+ // A close DATE, in the reader's own zone — stored at local noon, so
226
+ // the calendar day is what comes back out.
227
+ csvLocalDate(deal.expectedCloseAtMs),
228
+ deal.status ? (_CSV_DEAL_STATUS_LABELS_deal_status = CSV_DEAL_STATUS_LABELS[deal.status]) != null ? _CSV_DEAL_STATUS_LABELS_deal_status : deal.status : '',
229
+ (_deal_contactName = deal.contactName) != null ? _deal_contactName : '',
230
+ (_deal_companyName = deal.companyName) != null ? _deal_companyName : '',
231
+ csvInstant(deal.closedAtMs),
232
+ (_deal_lostReason = deal.lostReason) != null ? _deal_lostReason : '',
233
+ (_deal_notes = deal.notes) != null ? _deal_notes : ''
234
+ ];
235
+ }
236
+ /** The whole file, header first. */ export function dealsCsv(rows, options = {}) {
237
+ return csvDocument(DEAL_CSV_COLUMNS, rows.map((deal)=>dealCsvCells(deal, options)));
238
+ }
239
+ export const TASK_CSV_COLUMNS = [
240
+ 'Title',
241
+ 'Kind',
242
+ 'Priority',
243
+ 'Status',
244
+ 'Due',
245
+ 'Assignee',
246
+ 'Contact',
247
+ 'Company',
248
+ 'Deal',
249
+ 'Completed',
250
+ 'Notes'
251
+ ];
252
+ const TASK_PRIORITY_LABELS = {
253
+ low: 'Low',
254
+ normal: 'Normal',
255
+ high: 'High'
256
+ };
257
+ const TASK_STATUS_LABELS = {
258
+ open: 'Open',
259
+ done: 'Done'
260
+ };
261
+ /** One task's cells, in the header's order. */ export function taskCsvCells(task, options = {}) {
262
+ var _task_title, _CRM_TASK_KIND_LABELS_task_kind, _TASK_PRIORITY_LABELS_task_priority, _TASK_STATUS_LABELS_task_status, _ref, _task_notes;
263
+ const { assigneeEmail, recordName } = options;
264
+ const link = (kind, id)=>named(id, (value)=>recordName == null ? void 0 : recordName(kind, value));
265
+ return [
266
+ (_task_title = task.title) != null ? _task_title : '',
267
+ task.kind ? (_CRM_TASK_KIND_LABELS_task_kind = CRM_TASK_KIND_LABELS[task.kind]) != null ? _CRM_TASK_KIND_LABELS_task_kind : task.kind : '',
268
+ task.priority ? (_TASK_PRIORITY_LABELS_task_priority = TASK_PRIORITY_LABELS[task.priority]) != null ? _TASK_PRIORITY_LABELS_task_priority : task.priority : '',
269
+ task.status ? (_TASK_STATUS_LABELS_task_status = TASK_STATUS_LABELS[task.status]) != null ? _TASK_STATUS_LABELS_task_status : task.status : '',
270
+ csvInstant(task.dueAtMs),
271
+ task.assigneeUid ? (_ref = assigneeEmail == null ? void 0 : assigneeEmail(task.assigneeUid)) != null ? _ref : task.assigneeUid : '',
272
+ link('contact', task.contactId),
273
+ link('company', task.companyId),
274
+ link('deal', task.dealId),
275
+ csvInstant(task.completedAtMs),
276
+ (_task_notes = task.notes) != null ? _task_notes : ''
277
+ ];
278
+ }
279
+ /** The whole file, header first. */ export function tasksCsv(rows, options = {}) {
280
+ return csvDocument(TASK_CSV_COLUMNS, rows.map((task)=>taskCsvCells(task, options)));
281
+ }
282
+ /*==========================================
283
+ * LEADS
284
+ *=========================================*/ /** How one capture surface reads in a file. */ export function csvLeadSourceLabel(source) {
285
+ if (source === 'signup') return 'Sign-up';
286
+ if (source === 'booking') return 'Booking';
287
+ if (source === 'import') return CONTACT_SOURCE_LABELS.import;
288
+ if (source === 'form') return CONTACT_SOURCE_LABELS.form;
289
+ if (source.startsWith('form:')) return `Form ${source.slice('form:'.length)}`;
290
+ return source;
291
+ }
292
+ /** Every surface that produced a capture — the array, or the older single field. */ export function csvLeadSources(lead) {
293
+ const sources = lead['sources'];
294
+ if (Array.isArray(sources) && sources.length) {
295
+ return sources.map((source)=>String(source));
296
+ }
297
+ return typeof lead['source'] === 'string' && lead['source'] ? [
298
+ lead['source']
299
+ ] : [];
300
+ }
301
+ /** The columns every leads file carries, in the list's order. */ export const LEAD_CSV_COLUMNS = [
302
+ 'Email',
303
+ 'Name',
304
+ 'Status',
305
+ 'Owner',
306
+ 'Sources',
307
+ 'First seen',
308
+ 'Last seen',
309
+ 'Captures',
310
+ 'Unqualified reason',
311
+ 'Converted',
312
+ 'Notes'
313
+ ];
314
+ /** The header row: the standard columns, with `Site` after `Owner` at the org level. */ export function leadCsvHeader(options = {}) {
315
+ const columns = [
316
+ ...LEAD_CSV_COLUMNS
317
+ ];
318
+ if (options.siteName) columns.splice(columns.indexOf('Owner') + 1, 0, 'Site');
319
+ return columns;
320
+ }
321
+ /** One lead's cells, in the header's order. */ export function leadCsvCells(lead, options = {}) {
322
+ var _lead_hostId, _lead_submissionCount, _lead_email, _lead_name, _ref, _siteName, _lead_firstSeenAtMs, _lead_lastSeenAtMs, _lead_unqualifiedReason, _lead_notes;
323
+ const { ownerEmail, siteName } = options;
324
+ const hostId = String((_lead_hostId = lead.hostId) != null ? _lead_hostId : '');
325
+ const captures = Number((_lead_submissionCount = lead['submissionCount']) != null ? _lead_submissionCount : 0);
326
+ return [
327
+ String((_lead_email = lead['email']) != null ? _lead_email : ''),
328
+ String((_lead_name = lead['name']) != null ? _lead_name : ''),
329
+ CRM_LEAD_STATUS_LABELS[crmLeadStatus(lead)],
330
+ lead.ownerUid ? (_ref = ownerEmail == null ? void 0 : ownerEmail(lead.ownerUid)) != null ? _ref : lead.ownerUid : '',
331
+ ...siteName ? [
332
+ (_siteName = siteName(hostId)) != null ? _siteName : hostId
333
+ ] : [],
334
+ csvLeadSources(lead).map(csvLeadSourceLabel).join('|'),
335
+ csvStoredInstant((_lead_firstSeenAtMs = lead['firstSeenAtMs']) != null ? _lead_firstSeenAtMs : lead['createdAt']),
336
+ csvStoredInstant((_lead_lastSeenAtMs = lead['lastSeenAtMs']) != null ? _lead_lastSeenAtMs : lead['createdAt']),
337
+ Number.isFinite(captures) && captures > 0 ? String(captures) : '',
338
+ (_lead_unqualifiedReason = lead.unqualifiedReason) != null ? _lead_unqualifiedReason : '',
339
+ csvInstant(lead.convertedAtMs),
340
+ (_lead_notes = lead.notes) != null ? _lead_notes : ''
341
+ ];
342
+ }
343
+ /** The whole file, header first. */ export function leadsCsv(rows, options = {}) {
344
+ return csvDocument(leadCsvHeader(options), rows.map((lead)=>leadCsvCells(lead, options)));
345
+ }
346
+ /*==========================================
347
+ * WHAT THE WHOLE-COLLECTION EXPORT WRITES
348
+ *=========================================*/ /** The five tables a whole-collection export can be asked for. */ export const CRM_EXPORT_RESOURCES = [
349
+ 'contacts',
350
+ 'companies',
351
+ 'deals',
352
+ 'tasks',
353
+ 'leads'
354
+ ];
355
+ export function isCrmExportResource(value) {
356
+ return typeof value === 'string' && CRM_EXPORT_RESOURCES.includes(value);
357
+ }
358
+ /** The header row one resource's file carries. */ export function crmExportHeader(resource, options = {}) {
359
+ switch(resource){
360
+ case 'contacts':
361
+ return contactCsvHeader(options.customFields);
362
+ case 'companies':
363
+ return [
364
+ ...COMPANY_CSV_COLUMNS
365
+ ];
366
+ case 'deals':
367
+ return [
368
+ ...DEAL_CSV_COLUMNS
369
+ ];
370
+ case 'tasks':
371
+ return [
372
+ ...TASK_CSV_COLUMNS
373
+ ];
374
+ default:
375
+ return leadCsvHeader(options);
376
+ }
377
+ }
378
+ /**
379
+ * One stored document's cells for one resource's file.
380
+ *
381
+ * The bridge the server route stands on: it holds a raw document rather
382
+ * than the projected row a list built, and this is the one place that
383
+ * turns the first into the second — so the streamed file and the file the
384
+ * Export button writes are the same columns filled the same way.
385
+ */ export function crmExportCells(resource, document, options = {}) {
386
+ switch(resource){
387
+ case 'contacts':
388
+ return contactCsvCells(document, options);
389
+ case 'companies':
390
+ return companyCsvCells(document, options);
391
+ case 'deals':
392
+ return dealCsvCells(document, options);
393
+ case 'tasks':
394
+ return taskCsvCells(document, options);
395
+ default:
396
+ return leadCsvCells(document, options);
397
+ }
398
+ }
399
+ /**
400
+ * A stored contact document as the contacts file reads it.
401
+ *
402
+ * The projection the Contacts list makes before it writes its own file,
403
+ * spelled here so the server can make the same one: a contact document
404
+ * holds one facet per HOLDER, and every field the file writes but the
405
+ * address itself — the phone, the company, the tags, the notes, the
406
+ * lifecycle stage, the custom values — lives in the viewing holder's facet.
407
+ * Reading them off the top of the document is how one business's file ends
408
+ * up carrying another's notes.
409
+ */ export function contactCsvRowFromDoc(document, holder) {
410
+ var _facet_phone, _facet_jobTitle, _facet_companyName, _facet_ownerUid, _facet_address, _facet_tags, _facet_notes, _facet_custom;
411
+ const facet = readContactFacet(document, holder.groupId);
412
+ return _extends({
413
+ email: typeof document['email'] === 'string' ? document['email'] : '',
414
+ name: contactDisplayName(document, holder.groupId),
415
+ phone: (_facet_phone = facet.phone) != null ? _facet_phone : '',
416
+ jobTitle: (_facet_jobTitle = facet.jobTitle) != null ? _facet_jobTitle : '',
417
+ companyName: (_facet_companyName = facet.companyName) != null ? _facet_companyName : '',
418
+ ownerUid: (_facet_ownerUid = facet.ownerUid) != null ? _facet_ownerUid : '',
419
+ lifecycleStage: isContactLifecycleStage(facet.lifecycleStage) ? facet.lifecycleStage : '',
420
+ address: (_facet_address = facet.address) != null ? _facet_address : null,
421
+ tags: (_facet_tags = facet.tags) != null ? _facet_tags : [],
422
+ sources: facet.sources,
423
+ interactions: interactionsForGroup(facet.interactions, holder.hostIds)
424
+ }, typeof facet.lastEmailEngagementAtMs === 'number' && Number.isFinite(facet.lastEmailEngagementAtMs) && facet.lastEmailEngagementAtMs > 0 ? {
425
+ lastEmailEngagementAtMs: facet.lastEmailEngagementAtMs
426
+ } : {}, {
427
+ notes: (_facet_notes = facet.notes) != null ? _facet_notes : '',
428
+ custom: (_facet_custom = facet.custom) != null ? _facet_custom : {}
429
+ });
430
+ }
431
+
432
+ //# sourceMappingURL=crm-csv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/crm-csv.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 * EVERY CRM CSV, WRITTEN ONCE (AGL-2662).\n *\n * ## Why these moved out of the plugin\n *\n * Each CRM section already wrote a file from the rows it had LOADED, and\n * the whole-collection export writes the same file from the server over\n * every row there is. The console app may not import a feature plugin —\n * plugins reach an app only through the generated loader manifests — so a\n * server route could not have called the plugin's writers, and writing a\n * second set would have given one feature two file formats, discovered by\n * whichever merchant opened both in a spreadsheet.\n *\n * So the columns and the cells live here, in the library both sides may\n * import. The plugin's `contacts-csv.ts`, `companies-csv.ts`,\n * `deals-csv.ts`, `tasks-csv.ts` and `leads-csv.ts` keep their names and\n * delegate: the sections import what they always did, and there is one\n * implementation under all of it. Their specs are unchanged and are the\n * proof that the move changed no byte of any file.\n *\n * ## What a resolver is for, and what an absent one means\n *\n * A stored document holds ids — an owner uid, a pipeline id, a linked\n * record id — and a spreadsheet cannot read an id. Each writer therefore\n * takes optional resolvers, and every one of them degrades the same way:\n * ABSENT resolver writes the id itself rather than an empty cell, because\n * a row whose owner is a uid is still a row whose owner can be found, and\n * a blank is a claim that nobody owns it.\n *\n * The owner columns carry an ADDRESS where they can, which is also what\n * the contacts and companies imports resolve an owner by — so an exported\n * file re-imports without a hand mapping.\n */\n\nimport type { AglynPostalAddress } from '../foundation'\nimport {\n CONTACT_SOURCE_LABELS,\n contactDisplayName,\n interactionsForGroup,\n readContactFacet,\n} from './contacts'\nimport {\n CONTACT_LIFECYCLE_STAGE_LABELS,\n CRM_LEAD_STATUS_LABELS,\n CRM_TASK_KIND_LABELS,\n type ContactCustomValue,\n type ContactFieldDefinition,\n type ContactLifecycleStage,\n type CrmCompany,\n type CrmLeadFields,\n type CrmTask,\n crmLeadStatus,\n isContactLifecycleStage,\n} from './crm'\nimport { csvDocument } from './csv-import'\n\n/*==========================================\n * CELLS EVERY FILE SHARES\n *=========================================*/\n\n/** Cents as a major-unit decimal — `125000` → `1250.00`; `''` for none. */\nexport function csvAmount(cents: number | null | undefined): string {\n return typeof cents === 'number' && Number.isFinite(cents)\n ? (cents / 100).toFixed(2)\n : ''\n}\n\n/** An epoch as an ISO timestamp, or `''` for none. */\nexport function csvInstant(ms: number | null | undefined): string {\n return typeof ms === 'number' && Number.isFinite(ms)\n ? new Date(ms).toISOString()\n : ''\n}\n\n/**\n * An epoch as a local calendar DATE — `YYYY-MM-DD`.\n *\n * For the fields that are a day rather than a moment: an expected close is\n * stored at local noon precisely so the day survives a timezone round trip,\n * and writing it as an instant would hand a spreadsheet a time nobody\n * chose. The same arithmetic the deal drawer's date field uses, so the\n * file and the field read one day.\n */\nexport function csvLocalDate(ms: number | null | undefined): string {\n if (typeof ms !== 'number' || !Number.isFinite(ms)) return ''\n const offset = new Date(ms).getTimezoneOffset() * 60_000\n return new Date(ms - offset).toISOString().slice(0, 10)\n}\n\n/** Epoch millis or a Firestore timestamp as an ISO instant, or `''`. */\nexport function csvStoredInstant(value: unknown): string {\n if (typeof value === 'number') return csvInstant(value)\n const asDate = (value as { toDate?: () => Date } | null | undefined)?.toDate?.()\n return asDate ? asDate.toISOString() : ''\n}\n\n/** The one degradation rule: a resolved name, else the id, else empty. */\nfunction named(id: string | undefined, resolve?: (id: string) => string | undefined) {\n return id ? (resolve?.(id) || id) : ''\n}\n\n/*==========================================\n * CONTACTS\n *=========================================*/\n\n/** As much of a projected contact row as the file reads. */\nexport interface ContactCsvRow {\n email?: string\n name?: string\n phone?: string\n jobTitle?: string\n companyName?: string\n ownerUid?: string\n lifecycleStage?: ContactLifecycleStage | ''\n address?: AglynPostalAddress | null\n tags?: string[]\n sources?: Record<string, unknown>\n interactions?: Array<{ atMs: number }>\n /** The last open or click on one of the site's campaigns (AGL-2616). */\n lastEmailEngagementAtMs?: number\n notes?: string\n /** This holder's custom values, keyed by definition key. */\n custom?: Record<string, ContactCustomValue>\n}\n\nexport interface ContactCsvOptions {\n /**\n * The owner's address for a stored uid — what the import resolves an\n * owner by. Absent, the uid is written as it is.\n */\n ownerEmail?: (uid: string) => string\n /** The org's custom fields, one column each, headed by the field's label. */\n customFields?: readonly Pick<ContactFieldDefinition, 'key' | 'label'>[]\n}\n\n/**\n * The standard columns, in order, headed as the import reads them. A\n * custom field's column follows these, headed by its label.\n */\nexport const CONTACT_CSV_COLUMNS = [\n 'Email',\n 'Name',\n 'Phone',\n 'Job title',\n 'Company',\n 'Owner',\n 'Lifecycle stage',\n 'Address line 1',\n 'Address line 2',\n 'City',\n 'State',\n 'Postal code',\n 'Country',\n 'Tags',\n 'Sources',\n 'Last interaction',\n 'Last engaged',\n 'Notes',\n] as const\n\n/** The header row, with one column per custom field after the standard ones. */\nexport function contactCsvHeader(\n customFields: ContactCsvOptions['customFields'] = [],\n): string[] {\n return [...CONTACT_CSV_COLUMNS, ...customFields.map((field) => field.label)]\n}\n\n/** A custom value as a cell: a boolean as yes/no, everything else as text. */\nconst customCell = (value: ContactCustomValue | undefined): string => {\n if (value === null || value === undefined) return ''\n if (typeof value === 'boolean') return value ? 'yes' : 'no'\n return String(value)\n}\n\n/** One contact's cells, in the header's order. */\nexport function contactCsvCells(\n contact: ContactCsvRow,\n options: ContactCsvOptions = {},\n): unknown[] {\n const { ownerEmail, customFields = [] } = options\n return [\n contact.email ?? '',\n contact.name ?? '',\n contact.phone ?? '',\n contact.jobTitle ?? '',\n contact.companyName ?? '',\n contact.ownerUid ? (ownerEmail?.(contact.ownerUid) ?? contact.ownerUid) : '',\n contact.lifecycleStage\n ? CONTACT_LIFECYCLE_STAGE_LABELS[contact.lifecycleStage]\n : '',\n contact.address?.line1 ?? '',\n contact.address?.line2 ?? '',\n contact.address?.city ?? '',\n contact.address?.state ?? '',\n contact.address?.postalCode ?? '',\n contact.address?.country ?? '',\n (contact.tags ?? []).join('|'),\n Object.keys(contact.sources ?? {}).join('|'),\n contact.interactions?.[0]\n ? new Date(contact.interactions[0].atMs).toISOString()\n : '',\n contact.lastEmailEngagementAtMs\n ? new Date(contact.lastEmailEngagementAtMs).toISOString()\n : '',\n contact.notes ?? '',\n ...customFields.map((field) => customCell(contact.custom?.[field.key])),\n ]\n}\n\n/** The whole file, header first. */\nexport function contactsCsv(\n rows: readonly ContactCsvRow[],\n options: ContactCsvOptions = {},\n): string {\n return csvDocument(\n contactCsvHeader(options.customFields),\n rows.map((contact) => contactCsvCells(contact, options)),\n )\n}\n\n/*==========================================\n * COMPANIES\n *=========================================*/\n\n/** As much of a company row as the file reads. */\nexport type CompanyCsvRow = Partial<\n Pick<\n CrmCompany,\n | 'name'\n | 'domain'\n | 'website'\n | 'phone'\n | 'industry'\n | 'ownerUid'\n | 'tags'\n | 'notes'\n | 'contactsCount'\n >\n> & { address?: AglynPostalAddress | null }\n\nexport interface CompanyCsvOptions {\n /** The owner's address for a stored uid; absent, the uid is written. */\n ownerEmail?: (uid: string) => string\n}\n\n/** The columns, in order, headed as the import reads them. */\nexport const COMPANY_CSV_COLUMNS = [\n 'Company',\n 'Domain',\n 'Website',\n 'Phone',\n 'Industry',\n 'Owner',\n 'Address line 1',\n 'Address line 2',\n 'City',\n 'State',\n 'Postal code',\n 'Country',\n 'Tags',\n 'Notes',\n 'Contacts',\n] as const\n\n/** One company's cells, in the header's order. */\nexport function companyCsvCells(\n company: CompanyCsvRow,\n options: CompanyCsvOptions = {},\n): unknown[] {\n const { ownerEmail } = options\n return [\n company.name ?? '',\n company.domain ?? '',\n company.website ?? '',\n company.phone ?? '',\n company.industry ?? '',\n company.ownerUid ? (ownerEmail?.(company.ownerUid) ?? company.ownerUid) : '',\n company.address?.line1 ?? '',\n company.address?.line2 ?? '',\n company.address?.city ?? '',\n company.address?.state ?? '',\n company.address?.postalCode ?? '',\n company.address?.country ?? '',\n (company.tags ?? []).join('|'),\n company.notes ?? '',\n Number(company.contactsCount ?? 0),\n ]\n}\n\n/** The whole file, header first. */\nexport function companiesCsv(\n rows: readonly CompanyCsvRow[],\n options: CompanyCsvOptions = {},\n): string {\n return csvDocument(\n COMPANY_CSV_COLUMNS,\n rows.map((company) => companyCsvCells(company, options)),\n )\n}\n\n/*==========================================\n * DEALS\n *=========================================*/\n\n/** The currency a deal with no code of its own is read in. */\nexport const CSV_DEFAULT_DEAL_CURRENCY = 'usd'\n\n/** How a deal's `status` reads in a file. */\nexport const CSV_DEAL_STATUS_LABELS: Record<string, string> = {\n open: 'Open',\n won: 'Won',\n lost: 'Lost',\n}\n\n/** As much of a deal row as the file reads. */\nexport interface DealCsvRow {\n title?: string\n pipelineId?: string\n stageId?: string\n status?: string\n amountCents?: number\n currency?: string\n ownerUid?: string\n expectedCloseAtMs?: number | null\n closedAtMs?: number | null\n contactName?: string\n companyName?: string\n lostReason?: string\n notes?: string\n}\n\nexport interface DealCsvOptions {\n /** The pipeline's name for a stored id; absent, the id is written. */\n pipelineName?: (pipelineId: string) => string | undefined\n /** The stage's name within its pipeline; absent, the stage id is written. */\n stageName?: (pipelineId: string, stageId: string) => string | undefined\n /** The owner's address for a stored uid; absent, the uid is written. */\n ownerEmail?: (uid: string) => string\n}\n\nexport const DEAL_CSV_COLUMNS = [\n 'Title',\n 'Pipeline',\n 'Stage',\n 'Amount',\n 'Currency',\n 'Owner',\n 'Expected close',\n 'Status',\n 'Contact',\n 'Company',\n 'Closed',\n 'Lost reason',\n 'Notes',\n] as const\n\n/** One deal's cells, in the header's order. */\nexport function dealCsvCells(\n deal: DealCsvRow,\n options: DealCsvOptions = {},\n): unknown[] {\n const { pipelineName, stageName, ownerEmail } = options\n const pipelineId = deal.pipelineId ?? ''\n const stageId = deal.stageId ?? ''\n return [\n deal.title ?? '',\n pipelineName?.(pipelineId) ?? pipelineId,\n stageName?.(pipelineId, stageId) ?? stageId,\n csvAmount(deal.amountCents),\n typeof deal.amountCents === 'number'\n ? String(deal.currency || CSV_DEFAULT_DEAL_CURRENCY).toUpperCase()\n : '',\n deal.ownerUid ? (ownerEmail?.(deal.ownerUid) ?? deal.ownerUid) : '',\n // A close DATE, in the reader's own zone — stored at local noon, so\n // the calendar day is what comes back out.\n csvLocalDate(deal.expectedCloseAtMs),\n deal.status ? (CSV_DEAL_STATUS_LABELS[deal.status] ?? deal.status) : '',\n deal.contactName ?? '',\n deal.companyName ?? '',\n csvInstant(deal.closedAtMs),\n deal.lostReason ?? '',\n deal.notes ?? '',\n ]\n}\n\n/** The whole file, header first. */\nexport function dealsCsv(\n rows: readonly DealCsvRow[],\n options: DealCsvOptions = {},\n): string {\n return csvDocument(\n DEAL_CSV_COLUMNS,\n rows.map((deal) => dealCsvCells(deal, options)),\n )\n}\n\n/*==========================================\n * TASKS\n *=========================================*/\n\n/** As much of a task row as the file reads. */\nexport type TaskCsvRow = Partial<\n Pick<\n CrmTask,\n | 'title'\n | 'kind'\n | 'priority'\n | 'status'\n | 'dueAtMs'\n | 'completedAtMs'\n | 'assigneeUid'\n | 'contactId'\n | 'companyId'\n | 'dealId'\n | 'notes'\n >\n>\n\nexport interface TaskCsvOptions {\n /** The assignee's address for a stored uid; absent, the uid is written. */\n assigneeEmail?: (uid: string) => string\n /** What a linked record is called; absent, the id is written. */\n recordName?: (kind: 'contact' | 'company' | 'deal', id: string) => string | undefined\n}\n\nexport const TASK_CSV_COLUMNS = [\n 'Title',\n 'Kind',\n 'Priority',\n 'Status',\n 'Due',\n 'Assignee',\n 'Contact',\n 'Company',\n 'Deal',\n 'Completed',\n 'Notes',\n] as const\n\nconst TASK_PRIORITY_LABELS: Record<string, string> = {\n low: 'Low',\n normal: 'Normal',\n high: 'High',\n}\n\nconst TASK_STATUS_LABELS: Record<string, string> = {\n open: 'Open',\n done: 'Done',\n}\n\n/** One task's cells, in the header's order. */\nexport function taskCsvCells(\n task: TaskCsvRow,\n options: TaskCsvOptions = {},\n): unknown[] {\n const { assigneeEmail, recordName } = options\n const link = (kind: 'contact' | 'company' | 'deal', id: string | undefined) =>\n named(id, (value) => recordName?.(kind, value))\n return [\n task.title ?? '',\n task.kind ? (CRM_TASK_KIND_LABELS[task.kind] ?? task.kind) : '',\n task.priority ? (TASK_PRIORITY_LABELS[task.priority] ?? task.priority) : '',\n task.status ? (TASK_STATUS_LABELS[task.status] ?? task.status) : '',\n csvInstant(task.dueAtMs),\n task.assigneeUid ? (assigneeEmail?.(task.assigneeUid) ?? task.assigneeUid) : '',\n link('contact', task.contactId),\n link('company', task.companyId),\n link('deal', task.dealId),\n csvInstant(task.completedAtMs),\n task.notes ?? '',\n ]\n}\n\n/** The whole file, header first. */\nexport function tasksCsv(\n rows: readonly TaskCsvRow[],\n options: TaskCsvOptions = {},\n): string {\n return csvDocument(\n TASK_CSV_COLUMNS,\n rows.map((task) => taskCsvCells(task, options)),\n )\n}\n\n/*==========================================\n * LEADS\n *=========================================*/\n\n/** How one capture surface reads in a file. */\nexport function csvLeadSourceLabel(source: string): string {\n if (source === 'signup') return 'Sign-up'\n if (source === 'booking') return 'Booking'\n if (source === 'import') return CONTACT_SOURCE_LABELS.import\n if (source === 'form') return CONTACT_SOURCE_LABELS.form\n if (source.startsWith('form:')) return `Form ${source.slice('form:'.length)}`\n return source\n}\n\n/** Every surface that produced a capture — the array, or the older single field. */\nexport function csvLeadSources(lead: Record<string, unknown>): string[] {\n const sources = lead['sources']\n if (Array.isArray(sources) && sources.length) {\n return sources.map((source) => String(source))\n }\n return typeof lead['source'] === 'string' && lead['source'] ? [lead['source']] : []\n}\n\n/** As much of a lead row as the file reads. */\nexport type LeadCsvRow = Record<string, unknown> &\n Pick<\n CrmLeadFields,\n 'status' | 'ownerUid' | 'notes' | 'unqualifiedReason' | 'convertedAtMs'\n > & {\n /** The site the lead lives under — what the `Site` column names. */\n hostId?: string\n }\n\nexport interface LeadCsvOptions {\n /** The owner's address for a stored uid; absent, the uid is written. */\n ownerEmail?: (uid: string) => string\n /**\n * The site's name for a row's `hostId`. Given, the file carries a `Site`\n * column — the organization-level file; absent, it does not.\n */\n siteName?: (hostId: string) => string | undefined\n}\n\n/** The columns every leads file carries, in the list's order. */\nexport const LEAD_CSV_COLUMNS = [\n 'Email',\n 'Name',\n 'Status',\n 'Owner',\n 'Sources',\n 'First seen',\n 'Last seen',\n 'Captures',\n 'Unqualified reason',\n 'Converted',\n 'Notes',\n] as const\n\n/** The header row: the standard columns, with `Site` after `Owner` at the org level. */\nexport function leadCsvHeader(options: LeadCsvOptions = {}): string[] {\n const columns: string[] = [...LEAD_CSV_COLUMNS]\n if (options.siteName) columns.splice(columns.indexOf('Owner') + 1, 0, 'Site')\n return columns\n}\n\n/** One lead's cells, in the header's order. */\nexport function leadCsvCells(\n lead: LeadCsvRow,\n options: LeadCsvOptions = {},\n): unknown[] {\n const { ownerEmail, siteName } = options\n const hostId = String(lead.hostId ?? '')\n const captures = Number(lead['submissionCount'] ?? 0)\n return [\n String(lead['email'] ?? ''),\n String(lead['name'] ?? ''),\n CRM_LEAD_STATUS_LABELS[crmLeadStatus(lead)],\n lead.ownerUid ? (ownerEmail?.(lead.ownerUid) ?? lead.ownerUid) : '',\n ...(siteName ? [siteName(hostId) ?? hostId] : []),\n csvLeadSources(lead).map(csvLeadSourceLabel).join('|'),\n csvStoredInstant(lead['firstSeenAtMs'] ?? lead['createdAt']),\n csvStoredInstant(lead['lastSeenAtMs'] ?? lead['createdAt']),\n Number.isFinite(captures) && captures > 0 ? String(captures) : '',\n lead.unqualifiedReason ?? '',\n csvInstant(lead.convertedAtMs),\n lead.notes ?? '',\n ]\n}\n\n/** The whole file, header first. */\nexport function leadsCsv(\n rows: readonly LeadCsvRow[],\n options: LeadCsvOptions = {},\n): string {\n return csvDocument(\n leadCsvHeader(options),\n rows.map((lead) => leadCsvCells(lead, options)),\n )\n}\n\n/*==========================================\n * WHAT THE WHOLE-COLLECTION EXPORT WRITES\n *=========================================*/\n\n/** The five tables a whole-collection export can be asked for. */\nexport const CRM_EXPORT_RESOURCES = [\n 'contacts',\n 'companies',\n 'deals',\n 'tasks',\n 'leads',\n] as const\n\nexport type CrmExportResource = (typeof CRM_EXPORT_RESOURCES)[number]\n\nexport function isCrmExportResource(value: unknown): value is CrmExportResource {\n return (\n typeof value === 'string' &&\n (CRM_EXPORT_RESOURCES as readonly string[]).includes(value)\n )\n}\n\n/** Every resolver any of the five writers takes, in one bag. */\nexport type CrmExportOptions = ContactCsvOptions &\n DealCsvOptions &\n TaskCsvOptions &\n LeadCsvOptions & { assigneeEmail?: (uid: string) => string }\n\n/** The header row one resource's file carries. */\nexport function crmExportHeader(\n resource: CrmExportResource,\n options: CrmExportOptions = {},\n): string[] {\n switch (resource) {\n case 'contacts':\n return contactCsvHeader(options.customFields)\n case 'companies':\n return [...COMPANY_CSV_COLUMNS]\n case 'deals':\n return [...DEAL_CSV_COLUMNS]\n case 'tasks':\n return [...TASK_CSV_COLUMNS]\n default:\n return leadCsvHeader(options)\n }\n}\n\n/**\n * One stored document's cells for one resource's file.\n *\n * The bridge the server route stands on: it holds a raw document rather\n * than the projected row a list built, and this is the one place that\n * turns the first into the second — so the streamed file and the file the\n * Export button writes are the same columns filled the same way.\n */\nexport function crmExportCells(\n resource: CrmExportResource,\n document: Record<string, unknown>,\n options: CrmExportOptions = {},\n): unknown[] {\n switch (resource) {\n case 'contacts':\n return contactCsvCells(document as ContactCsvRow, options)\n case 'companies':\n return companyCsvCells(document as CompanyCsvRow, options)\n case 'deals':\n return dealCsvCells(document as DealCsvRow, options)\n case 'tasks':\n return taskCsvCells(document as TaskCsvRow, options)\n default:\n return leadCsvCells(document as LeadCsvRow, options)\n }\n}\n\n/** What the contacts file needs to know about the holder it is written for. */\nexport interface CrmExportContactHolder {\n /** The consent group whose facet the file reads — a facet is per holder. */\n groupId: string\n /** The sites in that group, which bound the timeline the file reads. */\n hostIds: readonly string[]\n}\n\n/**\n * A stored contact document as the contacts file reads it.\n *\n * The projection the Contacts list makes before it writes its own file,\n * spelled here so the server can make the same one: a contact document\n * holds one facet per HOLDER, and every field the file writes but the\n * address itself — the phone, the company, the tags, the notes, the\n * lifecycle stage, the custom values — lives in the viewing holder's facet.\n * Reading them off the top of the document is how one business's file ends\n * up carrying another's notes.\n */\nexport function contactCsvRowFromDoc(\n document: Record<string, unknown>,\n holder: CrmExportContactHolder,\n): ContactCsvRow {\n const facet = readContactFacet(document, holder.groupId)\n return {\n email: typeof document['email'] === 'string' ? document['email'] : '',\n name: contactDisplayName(document, holder.groupId),\n phone: facet.phone ?? '',\n jobTitle: facet.jobTitle ?? '',\n companyName: facet.companyName ?? '',\n ownerUid: facet.ownerUid ?? '',\n lifecycleStage: isContactLifecycleStage(facet.lifecycleStage)\n ? facet.lifecycleStage\n : '',\n address: facet.address ?? null,\n tags: facet.tags ?? [],\n sources: facet.sources,\n interactions: interactionsForGroup(facet.interactions, holder.hostIds),\n ...(typeof facet.lastEmailEngagementAtMs === 'number' &&\n Number.isFinite(facet.lastEmailEngagementAtMs) &&\n facet.lastEmailEngagementAtMs > 0\n ? { lastEmailEngagementAtMs: facet.lastEmailEngagementAtMs }\n : {}),\n notes: facet.notes ?? '',\n custom: facet.custom ?? {},\n }\n}\n"],"names":["CONTACT_SOURCE_LABELS","contactDisplayName","interactionsForGroup","readContactFacet","CONTACT_LIFECYCLE_STAGE_LABELS","CRM_LEAD_STATUS_LABELS","CRM_TASK_KIND_LABELS","crmLeadStatus","isContactLifecycleStage","csvDocument","csvAmount","cents","Number","isFinite","toFixed","csvInstant","ms","Date","toISOString","csvLocalDate","offset","getTimezoneOffset","slice","csvStoredInstant","value","asDate","toDate","named","id","resolve","CONTACT_CSV_COLUMNS","contactCsvHeader","customFields","map","field","label","customCell","undefined","String","contactCsvCells","contact","options","ownerEmail","email","name","phone","jobTitle","companyName","ownerUid","lifecycleStage","address","line1","line2","city","state","postalCode","country","tags","join","Object","keys","sources","interactions","atMs","lastEmailEngagementAtMs","notes","custom","key","contactsCsv","rows","COMPANY_CSV_COLUMNS","companyCsvCells","company","domain","website","industry","contactsCount","companiesCsv","CSV_DEFAULT_DEAL_CURRENCY","CSV_DEAL_STATUS_LABELS","open","won","lost","DEAL_CSV_COLUMNS","dealCsvCells","deal","pipelineName","stageName","pipelineId","stageId","title","amountCents","currency","toUpperCase","expectedCloseAtMs","status","contactName","closedAtMs","lostReason","dealsCsv","TASK_CSV_COLUMNS","TASK_PRIORITY_LABELS","low","normal","high","TASK_STATUS_LABELS","done","taskCsvCells","task","assigneeEmail","recordName","link","kind","priority","dueAtMs","assigneeUid","contactId","companyId","dealId","completedAtMs","tasksCsv","csvLeadSourceLabel","source","import","form","startsWith","length","csvLeadSources","lead","Array","isArray","LEAD_CSV_COLUMNS","leadCsvHeader","columns","siteName","splice","indexOf","leadCsvCells","hostId","captures","unqualifiedReason","convertedAtMs","leadsCsv","CRM_EXPORT_RESOURCES","isCrmExportResource","includes","crmExportHeader","resource","crmExportCells","document","contactCsvRowFromDoc","holder","facet","groupId","hostIds"],"mappings":"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"}