@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,727 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * The form entity: what a form IS, separately from the shape an author drew.
19
+ *
20
+ * `docs/specs/reusable-forms.md` §2. Before this module a form's whole
21
+ * identity was `formName` — the free-text caption an author typed into an
22
+ * inspector field, copied onto each submission at write time and reconciled
23
+ * with nothing. Renaming a form split its history; two pages sharing a label
24
+ * were one list. A document at `hosts/{hostId}/forms/{formId}` is the identity
25
+ * those surfaces were reading a caption in place of.
26
+ *
27
+ * Pure and dependency-free on purpose. This barrel reaches client bundles
28
+ * through `app-utils/index`, so nothing here may import a Node builtin — the
29
+ * constraint that holds `personKey` in its own module one directory over.
30
+ * Everything that needs Firestore or `node:crypto` lives at the call sites.
31
+ */
32
+ import type { AglynNodeSchema, NodeId } from '../foundation/definitions/components.types';
33
+ import type { PlacementKind } from './compose-reusable-components';
34
+ /**
35
+ * The `componentId` of the node that RENDERS a form, and of the node that
36
+ * renders one of its fields.
37
+ *
38
+ * Persisted in screen, layout, component and form documents — never rename.
39
+ * Restated as constants because the walkers below, the promotion route and the
40
+ * graft all have to name the same two ids, and a copy that drifted would read
41
+ * as "this page has no form" rather than as an error.
42
+ */
43
+ export declare const FORM_COMPONENT_ID = "form";
44
+ export declare const FORM_FIELD_COMPONENT_ID = "formField";
45
+ /**
46
+ * The prop on a `form` node naming the entity it is a placement OF.
47
+ *
48
+ * Persisted in screen documents — never rename.
49
+ */
50
+ export declare const FORM_ID_PROP = "formId";
51
+ /**
52
+ * What `/api/forms/submit` answers a submission to a site that switched Forms
53
+ * off (AGL-3029). A visitor reads it, so it names no plugin and no setting.
54
+ */
55
+ export declare const FORMS_OFF_FOR_SITE_REFUSAL = "This site is not accepting form submissions";
56
+ /**
57
+ * The plugin whose door a submission to `/api/forms/submit` came through
58
+ * (AGL-3029) — the plugin that must run on the site for it to be accepted.
59
+ *
60
+ * The endpoint is shared. A form element posts to it, and so does a Marketing
61
+ * popup's email capture, which is a Marketing element rather than a form: a
62
+ * site that switched Forms off and still shows its popup must not silently
63
+ * lose every address the popup collects. The popup names its door in the
64
+ * body; everything else is a form's.
65
+ *
66
+ * A body that names a form ENTITY or a dataset binding is a form's, whatever
67
+ * door it claims. Those are what a form element sends and a popup never does,
68
+ * so the popup door cannot be used to file rows under a form, or into a
69
+ * dataset, on a site that switched Forms off.
70
+ */
71
+ export declare function formSubmissionDoorPlugin(body: Record<string, unknown> | null | undefined): string;
72
+ /**
73
+ * How many forms one query for a site's catalog reads.
74
+ *
75
+ * ⛔ **NOT the allowance.** How many forms a site may hold is
76
+ * `PLAN_ENTITLEMENTS[plan].formsPerHost`, enforced at creation through
77
+ * `checkQuota` in `/api/hosts/resources`. A surface that shows a customer
78
+ * their ceiling MUST read that entitlement — this number is larger, so
79
+ * reading it instead overstates the cap on every plan.
80
+ *
81
+ * What this bounds is a READ. `hosts/{hostId}/forms` is small enough to list
82
+ * in one page, and the listing surfaces (the submissions filter, the entity
83
+ * picker) say so — but a bound below the allowance would make them silently
84
+ * drop forms the customer made and can see elsewhere, which is the invisible
85
+ * half of a wrong limit and the expensive one to discover.
86
+ *
87
+ * So it sits at or above every per-plan allowance, with headroom for the
88
+ * catalogs that legitimately exceed one: a per-org contract override, and any
89
+ * site that built past a ceiling before it was lowered. `forms.spec.ts` pins
90
+ * that relationship rather than trusting the two numbers to be moved
91
+ * together. A catalog past even this needs real pagination, not a larger
92
+ * constant.
93
+ */
94
+ export declare const FORMS_MAX_PER_HOST = 1000;
95
+ /** Field types a `FormField` node offers; the form declares the same set. */
96
+ export type FormFieldType = 'text' | 'email' | 'textarea' | 'select' | 'radio' | 'checkbox' | 'rating';
97
+ /**
98
+ * What a declared field MEANS, where the meaning is one the platform reads.
99
+ *
100
+ * The Inbox guesses today: `submission-presenter.ts` matches reduced field
101
+ * keys against a convention list, which is why a survey whose fields are
102
+ * `q1`…`q9` renders "Someone" on every row. A declared role is the author
103
+ * saying which field is the address instead of the platform inferring it from
104
+ * a name that was never a contract.
105
+ */
106
+ export type FormFieldRole = 'name' | 'email' | 'phone' | 'consent';
107
+ /** One field of a form, as the form declares it. */
108
+ export interface FormFieldDecl {
109
+ /** THE submission key — matches the node's `fieldName` prop, not `label`. */
110
+ fieldName: string;
111
+ label?: string;
112
+ fieldType: FormFieldType;
113
+ required?: boolean;
114
+ options?: string[];
115
+ /** Stable dataset model fieldId this value is stored under (AGL-556). */
116
+ datasetFieldId?: string;
117
+ role?: FormFieldRole;
118
+ /**
119
+ * The custom contact field this value is saved under (AGL-2601) — a
120
+ * `ContactFieldDefinition.key` in the org that owns the site.
121
+ *
122
+ * Edited on the form's own page rather than drawn on the canvas, so it is
123
+ * NOT read off the nodes: `carryContactFieldMappings` carries it across a
124
+ * publish by `fieldName`, or a design change would silently unmap every
125
+ * field. The built-in properties — name, email, phone — are what `role`
126
+ * names; this is only ever a field the merchant defined.
127
+ */
128
+ contactFieldKey?: string;
129
+ }
130
+ /** Where a submission goes beyond the Inbox. */
131
+ export interface FormRouting {
132
+ datasetId?: string;
133
+ /** Whether a submission carrying an address also becomes a lead. */
134
+ lead?: boolean;
135
+ }
136
+ /**
137
+ * What an adopted form claims of the history that predates it.
138
+ *
139
+ * Recorded at adoption from what was ACTUALLY written on the submissions —
140
+ * the caption and the page path — because those two fields are the whole of
141
+ * what a pre-entity submission carries. Read only by the backfill, and never
142
+ * by a live query: the live filter is an equality on `formId`.
143
+ */
144
+ export interface FormLegacyMatch {
145
+ formName: string;
146
+ paths: string[];
147
+ }
148
+ /** The stored form document, minus the timestamps Firestore stamps. */
149
+ export interface FormDocument<N = AglynNodeSchema> {
150
+ displayName: string;
151
+ slug: string;
152
+ fields: FormFieldDecl[];
153
+ /** Names the entry in `fields` that IS the marketing opt-in. */
154
+ consentFieldName?: string;
155
+ routing?: FormRouting;
156
+ legacyMatch?: FormLegacyMatch;
157
+ stats?: FormStats;
158
+ /**
159
+ * When this form was RETIRED, or absent while it is in use (AGL-2671).
160
+ *
161
+ * A retired form is kept, never deleted: its submissions, its leads and the
162
+ * contact timeline they built are the reason it still exists, and a form is
163
+ * the key those rows are filed under. What retirement changes is that it
164
+ * stops being a live lead surface — it leaves the forms list, it stops
165
+ * being graded by `/api/health/funnel`, and `/api/forms/submit` refuses it.
166
+ *
167
+ * `unknown` because the stored value is not one shape: the console writes a
168
+ * number, and a marker already in production is a Firestore `Timestamp`.
169
+ * {@link isFormArchived} is the only thing that should read it, and it asks
170
+ * about presence rather than about what kind of clock wrote it.
171
+ */
172
+ archivedAt?: unknown;
173
+ rootId?: NodeId;
174
+ nodes?: Record<NodeId, N>;
175
+ /**
176
+ * Which version is published.
177
+ *
178
+ * The same pointer `AglynHostComponent.versionId` is, including the rule
179
+ * that only a publisher may move it — the rules block denies an author the
180
+ * `versionId` key for components and this document is governed the same way.
181
+ */
182
+ versionId?: string;
183
+ }
184
+ /**
185
+ * Whether a form has been retired — see {@link FormDocument.archivedAt}.
186
+ *
187
+ * PRESENCE, not a number. Absent, `null` and `0` are "in use"; any other
188
+ * value is a retirement marker.
189
+ *
190
+ * ⛔ Deliberately NOT shaped like `isPipelineArchived`, which asks for a
191
+ * positive number. A pipeline stores its own numeric stamp; a form's is
192
+ * written by whatever retired it, and the marker already in production on at
193
+ * least one form is a Firestore `Timestamp` rather than a number. The two
194
+ * readers that predate this function — the list filter and
195
+ * `/api/health/funnel`'s probe — both test truthiness, so a stricter rule
196
+ * here does not tighten anything: it just disagrees with them, and the
197
+ * disagreement surfaces as a retired form reappearing in the catalog while
198
+ * the funnel goes on ignoring it.
199
+ *
200
+ * Measured, not assumed: with the numeric rule this function un-hid a form
201
+ * the probe was still skipping, and the two counts were 5 against 4.
202
+ *
203
+ * ⚠️ Asked of the STORED document. A caller that has already filtered a list
204
+ * must not re-derive this from a display flag; the field is the fact.
205
+ */
206
+ export declare function isFormArchived(form: Pick<FormDocument, 'archivedAt'> | null | undefined): boolean;
207
+ /**
208
+ * One entry in a form's `versions` subcollection.
209
+ *
210
+ * The draft the besigner writes on every save. `nodes` arrives compressed
211
+ * through the client converter, exactly as a component version's does, so
212
+ * this declares the decompressed shape the hook hands back.
213
+ */
214
+ export interface FormVersion<N = AglynNodeSchema> {
215
+ formId: string;
216
+ hostId?: string;
217
+ displayName?: string;
218
+ rootId?: NodeId;
219
+ nodes?: Record<NodeId, N>;
220
+ }
221
+ /**
222
+ * Counters carried ON the form document, incremented on writes that were
223
+ * happening anyway.
224
+ *
225
+ * Never derived by counting `formSubmissions`. That collection grows without
226
+ * bound and is the one the customer is billed on; a console surface that
227
+ * counted it on render would be the expensive-read shape this product has
228
+ * created repeatedly. `hosts/{hostId}/overlays/{overlayId}.stats` is the same
229
+ * pattern with the same reasoning.
230
+ */
231
+ export interface FormStats {
232
+ submissions?: number;
233
+ leads?: number;
234
+ lastSubmissionAtMs?: number;
235
+ /**
236
+ * Form views, counted by the beacon at `/api/analytics/collect` — one per
237
+ * rendered form on a live page, the same shape and the same cost as an
238
+ * overlay impression.
239
+ *
240
+ * ⚠️ A CLIENT-SIDE COUNT, and every rate over it inherits that. A blocked
241
+ * beacon, a browser that never runs the script and a crawler that renders
242
+ * nothing are all views this does not hold, while `submissions` is counted
243
+ * on the server and holds every one. So a completion rate over this can
244
+ * legitimately exceed 100%, and it is reported rather than clamped: a
245
+ * number capped at a round 100% looks like a measurement of a full house.
246
+ */
247
+ views?: number;
248
+ /** Forms a visitor typed into: one per form instance, on the first edit. */
249
+ starts?: number;
250
+ /**
251
+ * The same four counters, per calendar month.
252
+ *
253
+ * The series the detail surface draws, and — more importantly — what makes
254
+ * a rate over `views` honest. The lifetime totals cannot be divided into
255
+ * each other: `submissions` has counted since the form entity existed and
256
+ * `views` only since the beacon shipped, so a lifetime completion rate
257
+ * would divide a long history by a short one. {@link formStatsWindow} takes
258
+ * every rate over the months that carry BOTH counters.
259
+ *
260
+ * Bounded by the calendar: twelve keys a year on a document with a megabyte
261
+ * to spend. Keys are `submissionMonthKey()` — the SAME function the
262
+ * site-wide counter and the abuse ceiling are keyed by, imported rather
263
+ * than restated, because a differently-derived month key reads zero on
264
+ * exactly the months it disagrees about.
265
+ */
266
+ periods?: Record<string, FormPeriodStats>;
267
+ }
268
+ /** One month of {@link FormStats}. Every field absent until first written. */
269
+ export interface FormPeriodStats {
270
+ submissions?: number;
271
+ leads?: number;
272
+ views?: number;
273
+ starts?: number;
274
+ }
275
+ /** The counters {@link FormPeriodStats} carries, in reading order. */
276
+ export type FormStatKind = 'views' | 'starts' | 'submissions' | 'leads';
277
+ export declare const FORM_STAT_KINDS: readonly FormStatKind[];
278
+ /** One month of a form's history, with every counter resolved to a number. */
279
+ export interface FormPeriodPoint extends Record<FormStatKind, number> {
280
+ /** `YYYY-MM`. */
281
+ period: string;
282
+ }
283
+ /**
284
+ * A form's history as a dense month series, from the first month anything was
285
+ * recorded to the last.
286
+ *
287
+ * ⛔ THE SERIES NEVER STARTS BEFORE THE COUNTER DID. A month with no key is
288
+ * two different facts — "nothing happened" and "nothing was counted yet" —
289
+ * and they are told apart by WHERE the month falls: inside the recorded range
290
+ * an absent key is a true zero, because the counter was live and wrote
291
+ * nothing; before it, there is no measurement to draw and the series simply
292
+ * does not extend there. Padding to a fixed twelve months would render the
293
+ * form's pre-counter history as a row of confident zeros.
294
+ *
295
+ * Interior gaps ARE filled, at zero, so a quiet month reads as a quiet month
296
+ * rather than closing up and making two distant months look adjacent.
297
+ *
298
+ * @param stats - the stored counters, or nothing.
299
+ * @param maxPeriods - how many of the most recent months to return.
300
+ * @returns oldest first, so a chart reads left to right. Empty when nothing
301
+ * has ever been recorded.
302
+ */
303
+ export declare function formPeriodSeries(stats: FormStats | undefined | null, maxPeriods?: number): FormPeriodPoint[];
304
+ /** Two counters summed over the months where the FIRST of them was recorded. */
305
+ export interface FormStatsWindow {
306
+ /** Months the window covers. Zero means no rate can be taken. */
307
+ periods: number;
308
+ /** The counter the window is defined by, summed over those months. */
309
+ over: number;
310
+ /** The other counter, summed over the SAME months. */
311
+ of: number;
312
+ }
313
+ /**
314
+ * Sum `of` and `over` across exactly the months in which `over` was recorded.
315
+ *
316
+ * This is what stops a rate being a lie of arithmetic. `views` began being
317
+ * counted the day the beacon shipped and `submissions` has counted since the
318
+ * form entity existed, so dividing the lifetime totals answers "submissions
319
+ * ever, over views since Tuesday" — a number that is not wrong by a little.
320
+ *
321
+ * A month is IN the window when it carries a non-zero `over`, not merely a
322
+ * key: a month the beacon never reported is not a month with no views, it is
323
+ * a month with no measurement, and including it would deflate every rate
324
+ * taken over the window by however long the counter was dark.
325
+ *
326
+ * @returns `periods: 0` when nothing qualifies, which every caller must
327
+ * render as a dash rather than as a zero rate.
328
+ */
329
+ export declare function formStatsWindow(stats: FormStats | undefined | null, over: FormStatKind, of: FormStatKind): FormStatsWindow;
330
+ /**
331
+ * A span of calendar months, both ends inclusive, keyed as `YYYY-MM`.
332
+ *
333
+ * An absent end is OPEN rather than zero: a span that starts in March and
334
+ * never closes covers every month from March onward. A span with neither end
335
+ * is not a span, and {@link formStatsTotals} answers it with lifetime totals.
336
+ */
337
+ export interface FormPeriodRange {
338
+ from?: string | null;
339
+ to?: string | null;
340
+ }
341
+ /**
342
+ * The month key a moment falls in, or `null` for a moment that is not one.
343
+ *
344
+ * UTC, through {@link submissionMonthKey}, because that is the function every
345
+ * writer of `stats.periods` keys by. A month derived any other way reads zero
346
+ * on exactly the months the two definitions disagree about — which is the
347
+ * boundary month, the one a reader is most likely to be asking about.
348
+ */
349
+ export declare function formPeriodKey(atMs: number | null | undefined): string | null;
350
+ /**
351
+ * A form's four counters, summed, with what the sum covers.
352
+ *
353
+ * Every counter is `number | null` and the distinction is load-bearing. A
354
+ * counter is `null` when nothing was recorded for it at all: `leads` is
355
+ * incremented only by a form whose `routing.lead` is set, so a form that does
356
+ * not route leads has no leads measurement rather than a measured zero, and a
357
+ * `0` in that slot states a result nobody took.
358
+ */
359
+ export interface FormStatsTotals {
360
+ views: number | null;
361
+ starts: number | null;
362
+ submissions: number | null;
363
+ leads: number | null;
364
+ /**
365
+ * Month keys that contributed. `null` when the totals are lifetime, which
366
+ * is what tells a caller whether the figures are confined to a span.
367
+ */
368
+ periods: number | null;
369
+ }
370
+ /**
371
+ * Sum a form's counters — over its whole history, or over a span of months.
372
+ *
373
+ * ## Lifetime and windowed are different questions, and the caller picks
374
+ *
375
+ * The flat counters on {@link FormStats} have counted since the form entity
376
+ * existed. Passing no range returns those, and `periods: null` says so, so a
377
+ * surface can label the figure lifetime instead of implying it belongs to
378
+ * whatever the surface is about.
379
+ *
380
+ * Passing a range sums `stats.periods` instead, over exactly the month keys
381
+ * inside it. The two can differ by a lot in both directions: the month series
382
+ * began later than the flat counters, so a windowed total over a form's whole
383
+ * history can still be smaller than its lifetime total.
384
+ *
385
+ * ## What `null` means here, and why an in-range zero is not it
386
+ *
387
+ * A counter stays `null` unless some in-range month actually carries it. This
388
+ * is the same rule {@link formStatsWindow} applies to a rate's denominator,
389
+ * and it exists for the same reason: a month that carries `submissions` and
390
+ * no `leads` key is not a month with zero leads, it is a month in which
391
+ * nothing counted leads.
392
+ *
393
+ * ## Whole months, and a range boundary that lands inside one
394
+ *
395
+ * `stats.periods` is keyed by calendar month, so the finest a windowed total
396
+ * can be is a month. A range that starts on the 20th takes that whole month,
397
+ * including the days before it. A caller reporting a windowed figure has to
398
+ * say the window is measured in whole months; nothing here can narrow it.
399
+ *
400
+ * @param stats - the stored counters, or nothing.
401
+ * @param range - the months to confine the sum to. Omitted, or with neither
402
+ * end, gives lifetime totals.
403
+ */
404
+ export declare function formStatsTotals(stats: FormStats | undefined | null, range?: FormPeriodRange | null): FormStatsTotals;
405
+ export declare const FORM_SLUG_MAX_LENGTH = 64;
406
+ export declare const FORM_DISPLAY_NAME_MAX_LENGTH = 100;
407
+ /**
408
+ * A stable, url-safe handle for a form, derived from its display name.
409
+ *
410
+ * The slug is NOT the identity — `formId` is, and the slug is free to be
411
+ * regenerated. It exists so a console URL and an export filename can name a
412
+ * form in something a human recognizes without either becoming a second
413
+ * identity the way `formName` did.
414
+ *
415
+ * @returns the slug, or `''` when the input reduces to nothing — a caller
416
+ * must fall back to the document id rather than store an empty slug.
417
+ */
418
+ export declare function normalizeFormSlug(input: unknown): string;
419
+ /**
420
+ * Every `formField` descendant of `formNodeId`, in the order the author
421
+ * placed them.
422
+ *
423
+ * Depth-first pre-order, because that IS the reading order of the rendered
424
+ * form and the order a per-form submission list wants its columns in. A
425
+ * breadth-first walk would interleave the fields of two adjacent groups.
426
+ *
427
+ * Nesting between the form and its fields is arbitrary — the `Form` runtime
428
+ * makes a point of riding the DOM precisely so it needs no React context — so
429
+ * the walk cannot assume fields are direct children.
430
+ *
431
+ * Repeated and unknown ids are skipped, which bounds a cyclic document.
432
+ */
433
+ export declare function collectFormFieldNodeIds(nodes: Record<NodeId, AglynNodeSchema | undefined> | undefined | null, formNodeId: NodeId, formFieldComponentId?: string): NodeId[];
434
+ /**
435
+ * Reads a form's declared field list off the nodes an author already drew.
436
+ *
437
+ * This is the whole of what adoption has to invent, and it invents nothing:
438
+ * `fieldName`, `fieldType`, `label`, `required`, `options` and
439
+ * `datasetFieldId` are all already props on the `formField` nodes. A form
440
+ * adopted from a page therefore declares exactly the form that page was
441
+ * already submitting.
442
+ *
443
+ * A field with no `fieldName` is DROPPED rather than defaulted. The runtime
444
+ * falls back to `name = fieldName || 'field'`, so several unnamed fields
445
+ * collapse onto one submission key — declaring them would put a key in the
446
+ * schema that does not identify a value.
447
+ *
448
+ * A duplicate `fieldName` keeps its FIRST occurrence, matching the submission
449
+ * the runtime produces: `FormData` entries under one key are joined into that
450
+ * one key, so the second node contributes no separate value.
451
+ */
452
+ export declare function formFieldDeclsFromNodes(nodes: Record<NodeId, AglynNodeSchema | undefined> | undefined | null, formNodeId: NodeId, formFieldComponentId?: string): FormFieldDecl[];
453
+ /** One `form` node found by the discovery scan, with where it was found. */
454
+ export interface DiscoveredFormNode {
455
+ /** `screen` / `layout` / `component` — what kind of document holds it. */
456
+ sourceKind: 'screen' | 'layout' | 'component';
457
+ sourceId: string;
458
+ sourceName?: string;
459
+ nodeId: NodeId;
460
+ /** The caption the node carries today, normalized the way the route is. */
461
+ formName: string;
462
+ /** Already bound, when the node carries a `formId`. */
463
+ formId?: string;
464
+ fields: FormFieldDecl[];
465
+ }
466
+ /**
467
+ * Finds every `form` node in one document's node map.
468
+ *
469
+ * The corpus and the shape are the *Used by* scan's: a flat
470
+ * `Record<NodeId, AglynNodeSchema>` per screen, layout and component
471
+ * definition. That scan is idle until asked, for the reason its card states
472
+ * in full — reading every screen and every layout on mount is the
473
+ * expensive-read shape this codebase has a standing rule against — and this
474
+ * one inherits that posture rather than re-arguing it.
475
+ */
476
+ export declare function discoverFormNodes(nodes: Record<NodeId, AglynNodeSchema | undefined> | undefined | null, source: {
477
+ kind: DiscoveredFormNode['sourceKind'];
478
+ id: string;
479
+ name?: string;
480
+ }, ids?: {
481
+ form?: string;
482
+ formField?: string;
483
+ }): DiscoveredFormNode[];
484
+ /**
485
+ * A form entity's published design, in the shape the graft consumes: the
486
+ * `rootId`/`nodes` snapshot that lives on `hosts/{hostId}/forms/{formId}`.
487
+ *
488
+ * Structurally a component definition minus the parts a form does not have —
489
+ * no declared props, no icon — which is why the graft can take both. It is
490
+ * `Pick`ed off {@link FormDocument} rather than restated so the storage
491
+ * contract stays the single description of what is written there.
492
+ */
493
+ export type PlacedFormDesign<N = AglynNodeSchema> = Required<Pick<FormDocument<N>, 'rootId' | 'nodes'>>;
494
+ /**
495
+ * Whether any node in this map PLACES a form entity (as opposed to merely
496
+ * drawing an unbound form inline).
497
+ *
498
+ * The cost gate in front of the forms read, and cheap on purpose: one scan of
499
+ * a map the caller already holds, against a read that is a whole collection
500
+ * query. Most pages carry no form at all, and a page whose form nodes are all
501
+ * unbound has nothing an entity could contribute — either way there is nothing
502
+ * for the graft to resolve, so the query buys nothing.
503
+ *
504
+ * Says nothing about whether the named form EXISTS or is published; that is
505
+ * settled by the graft, against documents this cannot see.
506
+ */
507
+ export declare function placesFormEntity(nodes: Record<NodeId, AglynNodeSchema | undefined> | undefined | null): boolean;
508
+ /**
509
+ * Whether any node in this map places THIS form.
510
+ *
511
+ * The per-id half of {@link placesFormEntity}, and the predicate a usage scan
512
+ * asks of a screen, a layout or a component definition. Deliberately the same
513
+ * reader the graft resolves against: a scan that disagreed about what counts
514
+ * as a placement would drop the caches of the wrong pages, and the pages it
515
+ * missed would serve the old form for the whole revalidate window with nothing
516
+ * recording that they were skipped.
517
+ */
518
+ export declare function nodesPlaceForm(nodes: Record<NodeId, AglynNodeSchema | undefined> | undefined | null, formId: string): boolean;
519
+ /**
520
+ * The `form` node inside a form's OWN design.
521
+ *
522
+ * A form document's tree holds exactly one, because the document IS that
523
+ * form — but the tree is a flat map under a synthetic canvas root, so the
524
+ * node has to be found rather than assumed to be the root itself.
525
+ *
526
+ * Here rather than at each surface because every reader of a form's design
527
+ * needs it before it can ask anything else: the form's page to run
528
+ * `checkFormContract`, the promotion route to publish, the preview to draw,
529
+ * {@link formDesignReboundTo} to rewrite the binding. A caller that found
530
+ * the node its own way and one that found it this way must agree, or a
531
+ * design reads as "no form here" on one surface and as bound on the next.
532
+ */
533
+ export declare function formNodeIdIn(nodes: Record<NodeId, AglynNodeSchema | undefined> | undefined | null): NodeId | undefined;
534
+ /**
535
+ * The same design, naming `identity` instead of whichever form it named
536
+ * before — or `null` when it already did.
537
+ *
538
+ * ## Why a copied design must be rewritten rather than carried
539
+ *
540
+ * A form's design names its own form in a prop (AGL-3024). That binding is
541
+ * what `/api/forms/submit` stamps a submission with and what the form's own
542
+ * submission list is an equality on, so a design that travels to a SECOND
543
+ * form — duplicated, imported, installed from a starter — arrives naming the
544
+ * first one, and every submission the second form collects is filed under the
545
+ * first. Nothing about that is visible: the copy renders, the visitor
546
+ * submits, the row lands, and the copy's own list simply never grows.
547
+ * `checkFormContract` calls it `form-id-unbound`, and it is the one violation
548
+ * a copy CAUSES rather than inherits.
549
+ *
550
+ * So every path that gives a stored design to a different form rebinds it
551
+ * here, with the same two props the Forms page's Create stamps on a new one:
552
+ * the id the submissions are keyed on, and the caption they are labelled
553
+ * with in the Inbox. Leaving the caption behind is the quieter half of the
554
+ * same bug — the copy's submissions arrive titled with the source's name.
555
+ *
556
+ * `null` for "nothing to write", so a caller holding a compressed tree can
557
+ * skip the decode-rewrite-encode round trip entirely in the common case.
558
+ * A design with no form node in it returns `null` too: there is no binding
559
+ * to move, and inventing one is not this function's decision.
560
+ *
561
+ * Pure — the input map and its nodes are not changed.
562
+ */
563
+ export declare function formDesignReboundTo<N extends AglynNodeSchema = AglynNodeSchema>(nodes: Record<NodeId, N> | undefined | null, identity: {
564
+ formId: string;
565
+ formName?: string | null;
566
+ }): Record<NodeId, N> | null;
567
+ /**
568
+ * The placement kind that makes a placed form render its ENTITY'S design.
569
+ *
570
+ * Until this existed the entity's tree was written on every publish and read
571
+ * by nothing: a form's fields had to be redrawn on each page that placed it,
572
+ * and editing the form propagated nowhere. The two documents disagreed the
573
+ * moment either changed, and the page always won.
574
+ *
575
+ * `replacesAuthoredChildren` is what makes that propagation real, and it is
576
+ * the reason the resolution rule is strict. The rule, stated once:
577
+ *
578
+ * - Entity has a published design → the entity's fields ARE the form. Whatever
579
+ * the page drew inside the form node is discarded, exactly as a reusable
580
+ * instance's child list is replaced by its definition's. This is what "edit
581
+ * the form once" means; a merge would render a page's stale copy of a field
582
+ * beside the entity's current one.
583
+ * - Entity has no published design, is archived away, or the `formId` names
584
+ * nothing → the form node is left completely alone, inline fields included.
585
+ * Every form built before the entity existed is in this state, so this is
586
+ * the branch that keeps the live site rendering exactly what it renders
587
+ * today.
588
+ *
589
+ * A deleted or unpublished entity therefore degrades to the page's own copy
590
+ * rather than to an empty form — the same fail-open posture the component
591
+ * graft takes for an unresolvable `refId`, and for the same reason: a
592
+ * document going missing must not take a published page's content with it.
593
+ *
594
+ * The discard is a COMPOSE-time one, so it takes nothing away permanently:
595
+ * the page's fields stay in its document, and clearing the binding brings
596
+ * them straight back. That is what makes binding an existing hand-built form
597
+ * to an entity a reversible act rather than a destructive one.
598
+ */
599
+ export declare function placedFormPlacement<N extends AglynNodeSchema = AglynNodeSchema>(formsById: Record<string, PlacedFormDesign<N> | undefined> | undefined): PlacementKind<N>;
600
+ /**
601
+ * The caption as the submit route stores it.
602
+ *
603
+ * Restated here so discovery and the backfill compare the same string the
604
+ * route wrote: `String(formName ?? 'Form').slice(0, 100)`. A differently
605
+ * derived caption on either side would make every legacy match miss, silently
606
+ * and in the safe direction — which is the failure that looks like success.
607
+ */
608
+ export declare function normalizeSubmissionFormName(value: unknown): string;
609
+ /** The page path as the submit route stores it. */
610
+ export declare function normalizeSubmissionPath(value: unknown): string;
611
+ /** A form as the backfill sees it: an id and what it claims of the past. */
612
+ export interface LegacyMatchCandidate {
613
+ formId: string;
614
+ legacyMatch?: FormLegacyMatch | null;
615
+ }
616
+ /**
617
+ * Which adopted form, if any, a pre-entity submission belongs to.
618
+ *
619
+ * ⛔ **An ambiguous submission is left UNSTAMPED, always.** The two failure
620
+ * modes are not symmetric and the asymmetry is the whole rule:
621
+ *
622
+ * - An unmatched row is still in the Inbox, still readable, still exportable
623
+ * over `/v1`. It is missing from ONE form's list, the Forms page says how
624
+ * many rows are in that state, and a later adoption can still claim it.
625
+ * - A wrongly stamped row is filed under a form it was never sent to. It
626
+ * leaves the Inbox's *Unassigned* view, joins a stranger's submission list,
627
+ * and nothing on any screen says it moved. It is invisible, and invisible
628
+ * is not recoverable.
629
+ *
630
+ * So the match is on the PAIR. `formName` alone is a caption two pages may
631
+ * legitimately share — that shared caption is the defect the form entity
632
+ * exists to fix, and using it as the migration key would carry the defect into
633
+ * the migration. `path` is what tells two same-named forms apart, and it only
634
+ * does so when it was distinct, so both must agree and exactly one form may
635
+ * claim the pair.
636
+ *
637
+ * @returns the form id to stamp, or `null` to leave the row alone. Never a
638
+ * best guess.
639
+ */
640
+ export declare function matchSubmissionToForm(submission: {
641
+ formName?: unknown;
642
+ path?: unknown;
643
+ }, candidates: readonly LegacyMatchCandidate[]): string | null;
644
+ /**
645
+ * The value of the declared consent field, as a marketing opt-in.
646
+ *
647
+ * ⛔ THE FACT OF SUBMISSION IS NOT AN OPT-IN, and a form that declares no
648
+ * consent field produces no consent record — on any plan, at any time. This
649
+ * reads ONE field, named by the form's own `consentFieldName`, and asks
650
+ * whether the visitor ticked it.
651
+ *
652
+ * That is not in tension with the standing rule that consent is never
653
+ * inferred: a checkbox the visitor ticked IS an explicit checkbox. What the
654
+ * entity adds is a declared place to look, in place of the closed name list
655
+ * the route has to fall back on when no form is bound.
656
+ *
657
+ * What counts as the tick is {@link isConsentCheckboxTicked}'s, asked with
658
+ * the consent field's own declaration from `form.fields`.
659
+ *
660
+ * Returns `false`, never `undefined`: every writer downstream stores consent
661
+ * absent-or-true and must never write `false` over an opt-in captured
662
+ * elsewhere.
663
+ */
664
+ export declare function readFormDeclaredConsent(form: {
665
+ consentFieldName?: string;
666
+ /** The STORED declaration, for the consent field's type and options. */
667
+ fields?: ReadonlyArray<Pick<FormFieldDecl, 'fieldName' | 'fieldType' | 'options'>> | null;
668
+ } | null | undefined, fields: Record<string, unknown> | null | undefined): boolean;
669
+ /**
670
+ * Whether a posted value ticks a consent checkbox.
671
+ *
672
+ * A tick arrives in one of two shapes. A box with no text of its own posts
673
+ * one of {@link AFFIRMATIVE_CHECKBOX_VALUES}. A Checkboxes field posts the
674
+ * TEXT of the option that was ticked — which is what lets its option say what
675
+ * the person agrees to — so when the field's declaration is a checkbox with
676
+ * exactly one option, that option's text, alone, is a tick too: compared as
677
+ * the renderer draws it, trimmed, or as a list holding only it. A field with
678
+ * several options is a question with several answers, and none of them is
679
+ * the opt-in by its text.
680
+ *
681
+ * ⛔ The declaration must come from the STORED form document, never from the
682
+ * request: a declaration a caller could send would let any submission name
683
+ * its own words as the opt-in.
684
+ */
685
+ export declare function isConsentCheckboxTicked(value: unknown, declaration?: Pick<FormFieldDecl, 'fieldType' | 'options'> | null): boolean;
686
+ /** Checkbox values a browser form actually posts for a ticked box. */
687
+ export declare const AFFIRMATIVE_CHECKBOX_VALUES: Set<string>;
688
+ /**
689
+ * The field names the submit route reads an opt-in from when the form
690
+ * declares no consent field.
691
+ *
692
+ * A CLOSED list rather than a substring match on "consent": a merchant's
693
+ * field called `consentToTreatment` on a clinic intake form is a different
694
+ * instrument entirely, and matching it would manufacture a marketing basis
695
+ * out of a medical one. Compared after {@link isMarketingConsentFieldName}'s
696
+ * normalization, so `Subscribe to newsletter` and `subscribeToNewsletter`
697
+ * are one name.
698
+ */
699
+ export declare const MARKETING_CONSENT_FIELD_NAMES: ReadonlySet<string>;
700
+ /**
701
+ * Whether a field, by its name alone, is one the submit route reads an
702
+ * opt-in out of when no consent field is declared.
703
+ *
704
+ * Asked of a DESIGN by the publish check and of a PAYLOAD by the route, so
705
+ * the two cannot disagree about which undeclared field counts as consent.
706
+ */
707
+ export declare function isMarketingConsentFieldName(name: unknown): boolean;
708
+ /**
709
+ * The marketing consent field: the props the Forms editor's **Marketing
710
+ * consent** preset places on a Form Field, and the ones a form generated from
711
+ * a brief carries.
712
+ *
713
+ * A Checkboxes field with ONE option, unticked and not required. The option
714
+ * says what the person agrees to, because a Checkboxes field posts the text
715
+ * of the option that was ticked and {@link isConsentCheckboxTicked} reads that
716
+ * text as the tick. So the option holds no comma and no line break: the
717
+ * Options setting starts a new box at each, and a second box is an answer
718
+ * that is not the opt-in. A site owner may reword the label and the option;
719
+ * the form names the field as its `consentFieldName` for a tick to count.
720
+ */
721
+ export declare const MARKETING_CONSENT_FORM_FIELD: Readonly<{
722
+ fieldName: string;
723
+ label: string;
724
+ fieldType: FormFieldType;
725
+ options: string;
726
+ required: boolean;
727
+ }>;