@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,494 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Aglyn LLC
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */ import { compileLinearTest, explainLinearTest } from "@aglyn/shared-util-tools/linear-regex";
19
+ import isEmpty from "lodash-es/isEmpty.js";
20
+ import { reusablePropTakesSeveral, reusablePropValueClass } from "../foundation/definitions/property-kinds.js";
21
+ import { COMPONENT_PROP_TOKEN_PREFIX } from "./reusable-component-keys.js";
22
+ /**
23
+ * What a component or layout property is worth on one page (AGL-1247,
24
+ * AGL-2893): the page's own value where it set one, the declaration's default
25
+ * where it did not, and nothing at all where the property's condition does
26
+ * not hold.
27
+ *
28
+ * One module decides this for every surface that renders a property — the
29
+ * component graft, detach, the component and layout editors' canvases, and a
30
+ * layout composed around a screen — so no two of them can disagree about
31
+ * which value wins.
32
+ */ /**
33
+ * Spellings of "no" a visibility directive accepts, beyond a real `false`.
34
+ *
35
+ * `'false'` and `'0'` are in here because the substitution these run
36
+ * against is textual: every token substitutes as text, so a `boolean` prop set
37
+ * to `false` in the Attributes panel arrives as the STRING `'false'` — which
38
+ * plain JS truthiness would read as "yes, hide".
39
+ */ const FALSY_DIRECTIVE_VALUES = new Set([
40
+ '',
41
+ 'false',
42
+ '0',
43
+ 'off',
44
+ 'no'
45
+ ]);
46
+ /**
47
+ * Whether a value says yes, no, or nothing at all.
48
+ *
49
+ * The spellings a visibility directive accepts, because the value travels the
50
+ * same textual path to get here: `false`, `'false'`, `'0'`, `'off'`, `'no'` and
51
+ * `''` all read as no. `undefined` means there is nothing to read — the value
52
+ * is absent, or is still an unsubstituted token.
53
+ *
54
+ * The unresolved-token case is deliberately "no opinion": a definition binding
55
+ * a prop nobody declared leaves `{{prop.ghost}}` in place verbatim (only
56
+ * declared names are substituted), and the literal string is neither obviously
57
+ * true nor obviously false. Treating it as either would let one typo blank a
58
+ * section of a live page.
59
+ */ export function readYesNoValue(value) {
60
+ if (value == null) return undefined;
61
+ if (typeof value === 'boolean') return value;
62
+ if (typeof value === 'number') return value !== 0;
63
+ if (typeof value !== 'string') return Boolean(value);
64
+ const trimmed = value.trim();
65
+ if (trimmed.includes('{{')) return undefined;
66
+ return !FALSY_DIRECTIVE_VALUES.has(trimmed.toLowerCase());
67
+ }
68
+ /**
69
+ * The icon an instance picked for an `icon` prop, or `undefined` when it
70
+ * picked none.
71
+ *
72
+ * Stored as a whole {@link ReusableComponentIcon} so the path travels with the
73
+ * id. A bare id — written by anything other than the Attributes panel — still
74
+ * counts as a pick; it simply arrives with no path to draw on a published
75
+ * page.
76
+ */ export function readInstanceIconValue(value) {
77
+ if (typeof value === 'string') {
78
+ return value.trim() ? {
79
+ iconId: value.trim()
80
+ } : undefined;
81
+ }
82
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
83
+ return undefined;
84
+ }
85
+ const { iconId, iconPath } = value;
86
+ if (typeof iconId !== 'string' || !iconId) return undefined;
87
+ return typeof iconPath === 'string' && iconPath ? {
88
+ iconId,
89
+ iconPath
90
+ } : {
91
+ iconId
92
+ };
93
+ }
94
+ /**
95
+ * What a stored value counts as for its property, or `undefined` where it set
96
+ * nothing.
97
+ *
98
+ * `''` is unset, so clearing a field hands the page back to the default. An
99
+ * icon pick is read whole. A list is a value only for a property that takes
100
+ * several, where a single stored answer counts as a list of one; any other
101
+ * object is unset too — the only object a property value is ever written as is
102
+ * an icon or a list, so one anywhere else is a value left behind when the
103
+ * property's type changed, and stringifying it would put `[object Object]` on
104
+ * the page.
105
+ */ export function readReusablePropValue(value, prop) {
106
+ if (value == null || value === '') return undefined;
107
+ const valueClass = reusablePropValueClass(prop);
108
+ if (valueClass === 'icon') return readInstanceIconValue(value);
109
+ if (reusablePropTakesSeveral(prop)) {
110
+ const list = Array.isArray(value) ? value : [
111
+ value
112
+ ];
113
+ const answers = list.filter((entry)=>typeof entry === 'string' || typeof entry === 'number');
114
+ return answers.length ? answers : undefined;
115
+ }
116
+ if (typeof value === 'object') return undefined;
117
+ return value;
118
+ }
119
+ /**
120
+ * What a property is worth where a page set nothing: its declared default,
121
+ * read the way a page's own value is read — an Icon's default as the pick it
122
+ * stands for, id and path together.
123
+ */ export function reusablePropDefaultValue(prop) {
124
+ return prop ? readDefaultValue(prop) : undefined;
125
+ }
126
+ /** A declaration's default, read the way a page's own value is read. */ function readDefaultValue(prop) {
127
+ if (reusablePropValueClass(prop) === 'icon') {
128
+ const iconId = typeof prop.defaultValue === 'string' ? prop.defaultValue : undefined;
129
+ if (!iconId) return undefined;
130
+ return prop.defaultIconPath ? {
131
+ iconId,
132
+ iconPath: prop.defaultIconPath
133
+ } : {
134
+ iconId
135
+ };
136
+ }
137
+ return readReusablePropValue(prop.defaultValue, prop);
138
+ }
139
+ /**
140
+ * The value a property's condition rules compare, given what it is worth: a
141
+ * Yes / no as a real boolean, a number as a number, an icon as its id, and
142
+ * everything else as stored — so a rule written against the value a control
143
+ * shows matches the value the page stored, whatever spelling it was stored in.
144
+ */ export function reusablePropConditionValue(prop, value) {
145
+ switch(reusablePropValueClass(prop)){
146
+ case 'boolean':
147
+ return readYesNoValue(value) === true;
148
+ case 'number':
149
+ {
150
+ if (typeof value === 'number') return value;
151
+ if (typeof value === 'string' && value.trim() !== '') {
152
+ const numeric = Number(value);
153
+ return Number.isFinite(numeric) ? numeric : value;
154
+ }
155
+ return value;
156
+ }
157
+ case 'icon':
158
+ var _readInstanceIconValue;
159
+ return (_readInstanceIconValue = readInstanceIconValue(value)) == null ? void 0 : _readInstanceIconValue.iconId;
160
+ default:
161
+ return value;
162
+ }
163
+ }
164
+ /**
165
+ * data-driven-forms' idea of empty: a number and `true` are never empty, an
166
+ * invalid date is, and everything else is empty the way lodash's `isEmpty`
167
+ * says.
168
+ */ function isEmptyValue(value) {
169
+ if (value instanceof Date) return Number.isNaN(value.getTime());
170
+ return typeof value === 'number' || value === true ? false : isEmpty(value);
171
+ }
172
+ /**
173
+ * The longest pattern a property condition may carry (AGL-2893) — the bound a
174
+ * marketplace declaration has always been held to.
175
+ */ export const REUSABLE_PROP_PATTERN_MAX_LENGTH = 500;
176
+ /**
177
+ * The longest value a condition's pattern is matched against (AGL-2893). The
178
+ * match is linear in the value, and this keeps the most a page can be made to
179
+ * spend on one rule to a few milliseconds; a longer value holds no pattern
180
+ * rule, the way a pattern that cannot be matched holds none.
181
+ */ export const REUSABLE_PROP_PATTERN_INPUT_MAX_LENGTH = 2000;
182
+ /**
183
+ * Why a condition's pattern cannot be matched on a page, or `undefined` when
184
+ * it can (AGL-2893).
185
+ *
186
+ * A condition is written by whoever declared the property — a marketplace
187
+ * publisher, a template, a document written without the Properties dialog —
188
+ * and matched on every page that places the component and in the console of
189
+ * everyone editing one. So a pattern is matched by a linear-time engine
190
+ * (`compileLinearTest`), never by `RegExp`: a backtracking matcher takes
191
+ * seconds on `^(a+)+$` against a 28-character value, and the time doubles
192
+ * with each character. No check of a pattern's shape can make `RegExp` safe —
193
+ * `^a*a*a*a*a*a*a*a*$` nests no quantifier and takes a minute on 61
194
+ * characters — so the engine is the bound, not a heuristic.
195
+ *
196
+ * What it names: a pattern that is not text or is longer than
197
+ * {@link REUSABLE_PROP_PATTERN_MAX_LENGTH}; flags `RegExp` would refuse or the
198
+ * engine does not implement (`u`, `v`); syntax outside the engine's subset
199
+ * (lookaround, backreferences, named groups); and anything
200
+ * `RegExp` itself refuses. One answer for the Properties dialog, every
201
+ * server-side write of a declaration, and the evaluator below.
202
+ */ export function reusablePropPatternProblem(pattern, flags) {
203
+ if (typeof pattern !== 'string') return 'a pattern is text';
204
+ if (flags !== undefined && typeof flags !== 'string') {
205
+ return 'its flags are not text';
206
+ }
207
+ if (pattern.length > REUSABLE_PROP_PATTERN_MAX_LENGTH) {
208
+ return `it is longer than ${REUSABLE_PROP_PATTERN_MAX_LENGTH} characters`;
209
+ }
210
+ const flagText = typeof flags === 'string' ? flags : '';
211
+ const reason = explainLinearTest(pattern, flagText);
212
+ if (reason) return reason;
213
+ try {
214
+ // Only ever constructed, never run: `RegExp` is the authority on what is
215
+ // a regular expression, and the engine on what it can match safely.
216
+ new RegExp(pattern, flagText);
217
+ } catch (unused) {
218
+ return 'it is not a regular expression';
219
+ }
220
+ return undefined;
221
+ }
222
+ /** Compiled patterns by flags and source; `null` for one that cannot be. */ const compiledPatterns = new Map();
223
+ /** Enough for every pattern a site's components declare, and then some. */ const COMPILED_PATTERNS_MAX = 256;
224
+ function compiledPattern(pattern, flags) {
225
+ if (typeof pattern !== 'string') return null;
226
+ if (flags !== undefined && typeof flags !== 'string') return null;
227
+ // A flags string never holds `/`, so no two pairs share a key.
228
+ const key = `${flags != null ? flags : ''}/${pattern}`;
229
+ const cached = compiledPatterns.get(key);
230
+ if (cached !== undefined) return cached;
231
+ const compiled = reusablePropPatternProblem(pattern, flags) === undefined ? compileLinearTest(pattern, flags != null ? flags : '') : null;
232
+ if (compiledPatterns.size >= COMPILED_PATTERNS_MAX) compiledPatterns.clear();
233
+ compiledPatterns.set(key, compiled);
234
+ return compiled;
235
+ }
236
+ /**
237
+ * Whether a value matches a condition's pattern — what
238
+ * `new RegExp(pattern, flags).test(value)` answers — or `undefined` when the
239
+ * pattern cannot be matched safely (see {@link reusablePropPatternProblem}) or
240
+ * the value is longer than {@link REUSABLE_PROP_PATTERN_INPUT_MAX_LENGTH}.
241
+ * Never throws.
242
+ */ export function matchReusablePropPattern(pattern, flags, value) {
243
+ const compiled = compiledPattern(pattern, flags);
244
+ if (!compiled) return undefined;
245
+ let text;
246
+ try {
247
+ // `test` reads its argument as text, and so must this.
248
+ text = String(value);
249
+ } catch (unused) {
250
+ return undefined;
251
+ }
252
+ if (text.length > REUSABLE_PROP_PATTERN_INPUT_MAX_LENGTH) return undefined;
253
+ return compiled.test(text);
254
+ }
255
+ /**
256
+ * One rule against the value it names, with data-driven-forms' own precedence
257
+ * — the same order `parseCondition` applies, which a spec runs both against so
258
+ * the Attributes panel and a published page can never disagree.
259
+ *
260
+ * A pattern rule whose pattern cannot be matched safely, or whose value is too
261
+ * long to match, holds nothing — whichever way it reads the pattern — so the
262
+ * property renders as one whose condition is unmet (AGL-2893). A throw here
263
+ * used to reach the tenant loader's catch and turn every page placing the
264
+ * component into a 404.
265
+ */ export function evaluateReusablePropRule(rule, value) {
266
+ if (rule.isNotEmpty) return !isEmptyValue(value);
267
+ if (rule.isEmpty) return isEmptyValue(value);
268
+ if (rule.pattern) {
269
+ const matched = matchReusablePropPattern(rule.pattern, rule.flags, value);
270
+ if (matched === undefined) return false;
271
+ return rule.notMatch ? !matched : matched;
272
+ }
273
+ const compare = value;
274
+ if (Object.prototype.hasOwnProperty.call(rule, 'greaterThan')) {
275
+ return compare > rule.greaterThan;
276
+ }
277
+ if (Object.prototype.hasOwnProperty.call(rule, 'greaterThanOrEqualTo')) {
278
+ return compare >= rule.greaterThanOrEqualTo;
279
+ }
280
+ if (Object.prototype.hasOwnProperty.call(rule, 'lessThan')) {
281
+ return compare < rule.lessThan;
282
+ }
283
+ if (Object.prototype.hasOwnProperty.call(rule, 'lessThanOrEqualTo')) {
284
+ return compare <= rule.lessThanOrEqualTo;
285
+ }
286
+ const matched = Array.isArray(rule.is) ? rule.is.includes(value) : value === rule.is;
287
+ return rule.notMatch ? !matched : matched;
288
+ }
289
+ /**
290
+ * Whether a condition holds against the values its rules name.
291
+ *
292
+ * A list must all hold, `and` must all hold, `or` needs one, `not` negates —
293
+ * data-driven-forms' `parseCondition`, minus what a stored document cannot
294
+ * carry. A shape it does not recognize holds nothing, which is also what
295
+ * `parseCondition` answers for a rule with no `when`.
296
+ */ export function evaluateReusablePropCondition(condition, values) {
297
+ if (condition == null) return true;
298
+ if (Array.isArray(condition)) {
299
+ return condition.every((entry)=>evaluateReusablePropCondition(entry, values));
300
+ }
301
+ if (typeof condition !== 'object') return false;
302
+ if ('and' in condition) {
303
+ const and = condition.and;
304
+ return (Array.isArray(and) ? and : [
305
+ and
306
+ ]).every((entry)=>evaluateReusablePropCondition(entry, values));
307
+ }
308
+ if ('or' in condition) {
309
+ const or = condition.or;
310
+ return (Array.isArray(or) ? or : [
311
+ or
312
+ ]).some((entry)=>evaluateReusablePropCondition(entry, values));
313
+ }
314
+ if ('not' in condition) {
315
+ return !evaluateReusablePropCondition(condition.not, values);
316
+ }
317
+ const rule = condition;
318
+ if (typeof rule.when !== 'string' || !rule.when) return false;
319
+ return evaluateReusablePropRule(rule, values[rule.when]);
320
+ }
321
+ /**
322
+ * A condition with every rule whose pattern cannot be matched removed
323
+ * (AGL-2893), or `undefined` when nothing is left of it. Handed back as it was
324
+ * when nothing needed removing.
325
+ *
326
+ * A rule that names a pattern is read for that pattern; the rest of it means
327
+ * nothing without one, so the whole rule goes, the way a rule that names no
328
+ * property does. A list or `and` keeps the rules left and goes when none are;
329
+ * an `or` likewise; a `not` goes with its rule. Removing a rule can loosen an
330
+ * `and` or tighten an `or`, and either is a condition a page can evaluate,
331
+ * where the rule removed was one no page could.
332
+ */ function withoutUnmatchablePatterns(condition) {
333
+ if (condition == null || typeof condition !== 'object') {
334
+ return condition;
335
+ }
336
+ const cleanList = (list)=>{
337
+ const kept = list.map((entry)=>withoutUnmatchablePatterns(entry)).filter((entry)=>entry !== undefined);
338
+ const unchanged = kept.length === list.length && kept.every((entry, at)=>entry === list[at]);
339
+ return {
340
+ kept: kept,
341
+ unchanged
342
+ };
343
+ };
344
+ if (Array.isArray(condition)) {
345
+ const { kept, unchanged } = cleanList(condition);
346
+ if (unchanged) return condition;
347
+ return kept.length ? kept : undefined;
348
+ }
349
+ const value = condition;
350
+ for (const key of [
351
+ 'and',
352
+ 'or'
353
+ ]){
354
+ if (!(key in value)) continue;
355
+ const inner = value[key];
356
+ const { kept, unchanged } = cleanList(Array.isArray(inner) ? inner : [
357
+ inner
358
+ ]);
359
+ if (unchanged) return condition;
360
+ return kept.length ? _extends({}, value, {
361
+ [key]: kept
362
+ }) : undefined;
363
+ }
364
+ if ('not' in value) {
365
+ const inner = withoutUnmatchablePatterns(value['not']);
366
+ if (inner === value['not']) return condition;
367
+ return inner === undefined ? undefined : _extends({}, value, {
368
+ not: inner
369
+ });
370
+ }
371
+ // Read as the evaluator reads it: an empty pattern names none.
372
+ if (value['pattern'] && reusablePropPatternProblem(value['pattern'], value['flags'])) {
373
+ return undefined;
374
+ }
375
+ return condition;
376
+ }
377
+ /**
378
+ * Declared properties as a server-side write stores them: each condition
379
+ * without the rules whose pattern cannot be matched, and a property whose
380
+ * condition is left with nothing stored with none (AGL-2893). Anything that is
381
+ * not a list of declarations comes back as it was, as does a list with nothing
382
+ * to remove.
383
+ *
384
+ * The page never needs this — a rule it cannot match holds nothing there — but
385
+ * a stored declaration is read by the Properties dialog, copied by templates
386
+ * and published to the marketplace, and a pattern that can never be matched
387
+ * should stop there rather than travel.
388
+ */ export function withMatchableConditions(props) {
389
+ if (!Array.isArray(props)) return props;
390
+ let changed = false;
391
+ const next = props.map((prop)=>{
392
+ if (!prop || typeof prop !== 'object' || !('condition' in prop)) return prop;
393
+ const { condition } = prop, rest = _object_without_properties_loose(prop, [
394
+ "condition"
395
+ ]);
396
+ const kept = withoutUnmatchablePatterns(condition);
397
+ if (kept === condition) return prop;
398
+ changed = true;
399
+ return kept === undefined ? rest : _extends({}, rest, {
400
+ condition: kept
401
+ });
402
+ });
403
+ return changed ? next : props;
404
+ }
405
+ /** Text a value substitutes as wherever its token sits inside other text. */ function substitutedText(value) {
406
+ if (value == null) return '';
407
+ if (Array.isArray(value)) return value.join(', ');
408
+ if (typeof value === 'object') {
409
+ var _ref;
410
+ var _readInstanceIconValue;
411
+ return (_ref = (_readInstanceIconValue = readInstanceIconValue(value)) == null ? void 0 : _readInstanceIconValue.iconId) != null ? _ref : '';
412
+ }
413
+ return String(value);
414
+ }
415
+ /**
416
+ * What each declared property is worth on one page.
417
+ *
418
+ * `values` is the page's own map — an instance's `propValues`, or a screen's
419
+ * values for its layout — and a property it leaves unset takes its default.
420
+ * A property whose condition does not hold renders as one with no value and no
421
+ * default. Conditions compare what each property is worth before any condition
422
+ * applies, which is what the Attributes panel compares too, so a field and the
423
+ * page it sets agree.
424
+ *
425
+ * `defaultsOnly` is the editor's view of its own definition: a property with no
426
+ * default keeps its token, so a slot nothing fills stays visible.
427
+ */ export function resolveReusablePropValues(declared, values, options) {
428
+ const resolved = {
429
+ tokens: {},
430
+ values: {},
431
+ iconPaths: {},
432
+ off: new Set()
433
+ };
434
+ const props = (declared != null ? declared : []).filter((prop)=>Boolean(prop == null ? void 0 : prop.name));
435
+ if (!props.length) return resolved;
436
+ const worth = new Map();
437
+ const compared = {};
438
+ for (const prop of props){
439
+ const own = (options == null ? void 0 : options.defaultsOnly) ? undefined : readReusablePropValue(values == null ? void 0 : values[prop.name], prop);
440
+ const value = own === undefined ? readDefaultValue(prop) : own;
441
+ worth.set(prop.name, value);
442
+ compared[prop.name] = reusablePropConditionValue(prop, value);
443
+ }
444
+ for (const prop of props){
445
+ if (!evaluateReusablePropCondition(prop.condition, compared)) {
446
+ resolved.off.add(prop.name);
447
+ if (!(options == null ? void 0 : options.defaultsOnly)) {
448
+ resolved.tokens[`${COMPONENT_PROP_TOKEN_PREFIX}${prop.name}`] = '';
449
+ }
450
+ continue;
451
+ }
452
+ const value = worth.get(prop.name);
453
+ if ((options == null ? void 0 : options.defaultsOnly) && value === undefined) continue;
454
+ resolved.tokens[`${COMPONENT_PROP_TOKEN_PREFIX}${prop.name}`] = substitutedText(value);
455
+ if (value !== undefined) resolved.values[prop.name] = value;
456
+ const iconPath = reusablePropValueClass(prop) === 'icon' ? value == null ? void 0 : value.iconPath : undefined;
457
+ if (iconPath) resolved.iconPaths[prop.name] = iconPath;
458
+ }
459
+ return resolved;
460
+ }
461
+ /**
462
+ * Token map of a definition's OWN defaults, with no instance in the picture.
463
+ *
464
+ * What the component editor draws with (AGL-2870). A page substitutes an unset
465
+ * prop as `''`, which is right there — an unset prop renders nothing — and
466
+ * wrong here, where a prop with no default has nothing to preview and should
467
+ * keep showing its raw token so the author can see at a glance which slots are
468
+ * still unfilled.
469
+ *
470
+ * `false` and `0` are real defaults and survive; only `null`, `undefined` and
471
+ * `''` are treated as "no default set".
472
+ */ export function buildComponentDefaultTokens(declared) {
473
+ return resolveReusablePropValues(declared, undefined, {
474
+ defaultsOnly: true
475
+ }).tokens;
476
+ }
477
+ /**
478
+ * The icon paths a definition's OWN defaults draw with — what the component
479
+ * editor shows beside {@link buildComponentDefaultTokens}.
480
+ */ export function buildComponentDefaultIconPaths(declared) {
481
+ return resolveReusablePropValues(declared, undefined, {
482
+ defaultsOnly: true
483
+ }).iconPaths;
484
+ }
485
+ /**
486
+ * The values a definition's OWN defaults hand their bound fields — what the
487
+ * component editor draws with beside {@link buildComponentDefaultTokens}.
488
+ */ export function buildComponentDefaultValues(declared) {
489
+ return resolveReusablePropValues(declared, undefined, {
490
+ defaultsOnly: true
491
+ }).values;
492
+ }
493
+
494
+ //# sourceMappingURL=reusable-prop-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/reusable-prop-values.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n compileLinearTest,\n explainLinearTest,\n type LinearTest,\n} from '@aglyn/shared-util-tools/linear-regex'\nimport isEmpty from 'lodash-es/isEmpty.js'\nimport type {\n ReusableComponentIcon,\n ReusableComponentProp,\n ReusableComponentPropCondition,\n ReusableComponentPropRule,\n} from '../foundation/definitions/platform.types'\nimport {\n reusablePropTakesSeveral,\n reusablePropValueClass,\n} from '../foundation/definitions/property-kinds'\nimport { COMPONENT_PROP_TOKEN_PREFIX } from './reusable-component-keys'\n\n/**\n * What a component or layout property is worth on one page (AGL-1247,\n * AGL-2893): the page's own value where it set one, the declaration's default\n * where it did not, and nothing at all where the property's condition does\n * not hold.\n *\n * One module decides this for every surface that renders a property — the\n * component graft, detach, the component and layout editors' canvases, and a\n * layout composed around a screen — so no two of them can disagree about\n * which value wins.\n */\n\n/**\n * Spellings of \"no\" a visibility directive accepts, beyond a real `false`.\n *\n * `'false'` and `'0'` are in here because the substitution these run\n * against is textual: every token substitutes as text, so a `boolean` prop set\n * to `false` in the Attributes panel arrives as the STRING `'false'` — which\n * plain JS truthiness would read as \"yes, hide\".\n */\nconst FALSY_DIRECTIVE_VALUES = new Set(['', 'false', '0', 'off', 'no'])\n\n/**\n * Whether a value says yes, no, or nothing at all.\n *\n * The spellings a visibility directive accepts, because the value travels the\n * same textual path to get here: `false`, `'false'`, `'0'`, `'off'`, `'no'` and\n * `''` all read as no. `undefined` means there is nothing to read — the value\n * is absent, or is still an unsubstituted token.\n *\n * The unresolved-token case is deliberately \"no opinion\": a definition binding\n * a prop nobody declared leaves `{{prop.ghost}}` in place verbatim (only\n * declared names are substituted), and the literal string is neither obviously\n * true nor obviously false. Treating it as either would let one typo blank a\n * section of a live page.\n */\nexport function readYesNoValue(value: unknown): boolean | undefined {\n if (value == null) return undefined\n if (typeof value === 'boolean') return value\n if (typeof value === 'number') return value !== 0\n if (typeof value !== 'string') return Boolean(value)\n const trimmed = value.trim()\n if (trimmed.includes('{{')) return undefined\n return !FALSY_DIRECTIVE_VALUES.has(trimmed.toLowerCase())\n}\n\n/**\n * The icon an instance picked for an `icon` prop, or `undefined` when it\n * picked none.\n *\n * Stored as a whole {@link ReusableComponentIcon} so the path travels with the\n * id. A bare id — written by anything other than the Attributes panel — still\n * counts as a pick; it simply arrives with no path to draw on a published\n * page.\n */\nexport function readInstanceIconValue(\n value: unknown,\n): ReusableComponentIcon | undefined {\n if (typeof value === 'string') {\n return value.trim() ? { iconId: value.trim() } : undefined\n }\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return undefined\n }\n const { iconId, iconPath } = value as ReusableComponentIcon\n if (typeof iconId !== 'string' || !iconId) return undefined\n return typeof iconPath === 'string' && iconPath\n ? { iconId, iconPath }\n : { iconId }\n}\n\ntype DeclaredProp = Pick<\n ReusableComponentProp,\n 'name' | 'type' | 'options' | 'settings' | 'defaultValue' | 'defaultIconPath' | 'condition'\n>\n\n/**\n * What a stored value counts as for its property, or `undefined` where it set\n * nothing.\n *\n * `''` is unset, so clearing a field hands the page back to the default. An\n * icon pick is read whole. A list is a value only for a property that takes\n * several, where a single stored answer counts as a list of one; any other\n * object is unset too — the only object a property value is ever written as is\n * an icon or a list, so one anywhere else is a value left behind when the\n * property's type changed, and stringifying it would put `[object Object]` on\n * the page.\n */\nexport function readReusablePropValue(\n value: unknown,\n prop: Pick<ReusableComponentProp, 'type' | 'options' | 'settings'> | null | undefined,\n): unknown {\n if (value == null || value === '') return undefined\n const valueClass = reusablePropValueClass(prop)\n if (valueClass === 'icon') return readInstanceIconValue(value)\n if (reusablePropTakesSeveral(prop)) {\n const list = Array.isArray(value) ? value : [value]\n const answers = list.filter(\n (entry) => typeof entry === 'string' || typeof entry === 'number',\n )\n return answers.length ? answers : undefined\n }\n if (typeof value === 'object') return undefined\n return value\n}\n\n/**\n * What a property is worth where a page set nothing: its declared default,\n * read the way a page's own value is read — an Icon's default as the pick it\n * stands for, id and path together.\n */\nexport function reusablePropDefaultValue(\n prop: DeclaredProp | null | undefined,\n): unknown {\n return prop ? readDefaultValue(prop) : undefined\n}\n\n/** A declaration's default, read the way a page's own value is read. */\nfunction readDefaultValue(prop: DeclaredProp): unknown {\n if (reusablePropValueClass(prop) === 'icon') {\n const iconId =\n typeof prop.defaultValue === 'string' ? prop.defaultValue : undefined\n if (!iconId) return undefined\n return prop.defaultIconPath\n ? { iconId, iconPath: prop.defaultIconPath }\n : { iconId }\n }\n return readReusablePropValue(prop.defaultValue, prop)\n}\n\n/**\n * The value a property's condition rules compare, given what it is worth: a\n * Yes / no as a real boolean, a number as a number, an icon as its id, and\n * everything else as stored — so a rule written against the value a control\n * shows matches the value the page stored, whatever spelling it was stored in.\n */\nexport function reusablePropConditionValue(\n prop: Pick<ReusableComponentProp, 'type' | 'options' | 'settings'> | null | undefined,\n value: unknown,\n): unknown {\n switch (reusablePropValueClass(prop)) {\n case 'boolean':\n return readYesNoValue(value) === true\n case 'number': {\n if (typeof value === 'number') return value\n if (typeof value === 'string' && value.trim() !== '') {\n const numeric = Number(value)\n return Number.isFinite(numeric) ? numeric : value\n }\n return value\n }\n case 'icon':\n return readInstanceIconValue(value)?.iconId\n default:\n return value\n }\n}\n\n/**\n * data-driven-forms' idea of empty: a number and `true` are never empty, an\n * invalid date is, and everything else is empty the way lodash's `isEmpty`\n * says.\n */\nfunction isEmptyValue(value: unknown): boolean {\n if (value instanceof Date) return Number.isNaN(value.getTime())\n return typeof value === 'number' || value === true ? false : isEmpty(value)\n}\n\n/**\n * The longest pattern a property condition may carry (AGL-2893) — the bound a\n * marketplace declaration has always been held to.\n */\nexport const REUSABLE_PROP_PATTERN_MAX_LENGTH = 500\n\n/**\n * The longest value a condition's pattern is matched against (AGL-2893). The\n * match is linear in the value, and this keeps the most a page can be made to\n * spend on one rule to a few milliseconds; a longer value holds no pattern\n * rule, the way a pattern that cannot be matched holds none.\n */\nexport const REUSABLE_PROP_PATTERN_INPUT_MAX_LENGTH = 2000\n\n/**\n * Why a condition's pattern cannot be matched on a page, or `undefined` when\n * it can (AGL-2893).\n *\n * A condition is written by whoever declared the property — a marketplace\n * publisher, a template, a document written without the Properties dialog —\n * and matched on every page that places the component and in the console of\n * everyone editing one. So a pattern is matched by a linear-time engine\n * (`compileLinearTest`), never by `RegExp`: a backtracking matcher takes\n * seconds on `^(a+)+$` against a 28-character value, and the time doubles\n * with each character. No check of a pattern's shape can make `RegExp` safe —\n * `^a*a*a*a*a*a*a*a*$` nests no quantifier and takes a minute on 61\n * characters — so the engine is the bound, not a heuristic.\n *\n * What it names: a pattern that is not text or is longer than\n * {@link REUSABLE_PROP_PATTERN_MAX_LENGTH}; flags `RegExp` would refuse or the\n * engine does not implement (`u`, `v`); syntax outside the engine's subset\n * (lookaround, backreferences, named groups); and anything\n * `RegExp` itself refuses. One answer for the Properties dialog, every\n * server-side write of a declaration, and the evaluator below.\n */\nexport function reusablePropPatternProblem(\n pattern: unknown,\n flags?: unknown,\n): string | undefined {\n if (typeof pattern !== 'string') return 'a pattern is text'\n if (flags !== undefined && typeof flags !== 'string') {\n return 'its flags are not text'\n }\n if (pattern.length > REUSABLE_PROP_PATTERN_MAX_LENGTH) {\n return `it is longer than ${REUSABLE_PROP_PATTERN_MAX_LENGTH} characters`\n }\n const flagText = typeof flags === 'string' ? flags : ''\n const reason = explainLinearTest(pattern, flagText)\n if (reason) return reason\n try {\n // Only ever constructed, never run: `RegExp` is the authority on what is\n // a regular expression, and the engine on what it can match safely.\n new RegExp(pattern, flagText)\n } catch {\n return 'it is not a regular expression'\n }\n return undefined\n}\n\n/** Compiled patterns by flags and source; `null` for one that cannot be. */\nconst compiledPatterns = new Map<string, LinearTest | null>()\n\n/** Enough for every pattern a site's components declare, and then some. */\nconst COMPILED_PATTERNS_MAX = 256\n\nfunction compiledPattern(pattern: unknown, flags: unknown): LinearTest | null {\n if (typeof pattern !== 'string') return null\n if (flags !== undefined && typeof flags !== 'string') return null\n // A flags string never holds `/`, so no two pairs share a key.\n const key = `${flags ?? ''}/${pattern}`\n const cached = compiledPatterns.get(key)\n if (cached !== undefined) return cached\n const compiled =\n reusablePropPatternProblem(pattern, flags) === undefined\n ? compileLinearTest(pattern, (flags as string | undefined) ?? '')\n : null\n if (compiledPatterns.size >= COMPILED_PATTERNS_MAX) compiledPatterns.clear()\n compiledPatterns.set(key, compiled)\n return compiled\n}\n\n/**\n * Whether a value matches a condition's pattern — what\n * `new RegExp(pattern, flags).test(value)` answers — or `undefined` when the\n * pattern cannot be matched safely (see {@link reusablePropPatternProblem}) or\n * the value is longer than {@link REUSABLE_PROP_PATTERN_INPUT_MAX_LENGTH}.\n * Never throws.\n */\nexport function matchReusablePropPattern(\n pattern: unknown,\n flags: unknown,\n value: unknown,\n): boolean | undefined {\n const compiled = compiledPattern(pattern, flags)\n if (!compiled) return undefined\n let text: string\n try {\n // `test` reads its argument as text, and so must this.\n text = String(value)\n } catch {\n return undefined\n }\n if (text.length > REUSABLE_PROP_PATTERN_INPUT_MAX_LENGTH) return undefined\n return compiled.test(text)\n}\n\n/**\n * One rule against the value it names, with data-driven-forms' own precedence\n * — the same order `parseCondition` applies, which a spec runs both against so\n * the Attributes panel and a published page can never disagree.\n *\n * A pattern rule whose pattern cannot be matched safely, or whose value is too\n * long to match, holds nothing — whichever way it reads the pattern — so the\n * property renders as one whose condition is unmet (AGL-2893). A throw here\n * used to reach the tenant loader's catch and turn every page placing the\n * component into a 404.\n */\nexport function evaluateReusablePropRule(\n rule: Omit<ReusableComponentPropRule, 'when'>,\n value: unknown,\n): boolean {\n if (rule.isNotEmpty) return !isEmptyValue(value)\n if (rule.isEmpty) return isEmptyValue(value)\n if (rule.pattern) {\n const matched = matchReusablePropPattern(rule.pattern, rule.flags, value)\n if (matched === undefined) return false\n return rule.notMatch ? !matched : matched\n }\n const compare = value as number\n if (Object.prototype.hasOwnProperty.call(rule, 'greaterThan')) {\n return compare > (rule.greaterThan as number)\n }\n if (Object.prototype.hasOwnProperty.call(rule, 'greaterThanOrEqualTo')) {\n return compare >= (rule.greaterThanOrEqualTo as number)\n }\n if (Object.prototype.hasOwnProperty.call(rule, 'lessThan')) {\n return compare < (rule.lessThan as number)\n }\n if (Object.prototype.hasOwnProperty.call(rule, 'lessThanOrEqualTo')) {\n return compare <= (rule.lessThanOrEqualTo as number)\n }\n const matched = Array.isArray(rule.is)\n ? (rule.is as unknown[]).includes(value)\n : value === rule.is\n return rule.notMatch ? !matched : matched\n}\n\n/**\n * Whether a condition holds against the values its rules name.\n *\n * A list must all hold, `and` must all hold, `or` needs one, `not` negates —\n * data-driven-forms' `parseCondition`, minus what a stored document cannot\n * carry. A shape it does not recognize holds nothing, which is also what\n * `parseCondition` answers for a rule with no `when`.\n */\nexport function evaluateReusablePropCondition(\n condition: ReusableComponentPropCondition | ReusableComponentPropCondition[] | null | undefined,\n values: Readonly<Record<string, unknown>>,\n): boolean {\n if (condition == null) return true\n if (Array.isArray(condition)) {\n return condition.every((entry) => evaluateReusablePropCondition(entry, values))\n }\n if (typeof condition !== 'object') return false\n if ('and' in condition) {\n const and = (condition as { and: unknown }).and\n return (Array.isArray(and) ? and : [and]).every((entry) =>\n evaluateReusablePropCondition(entry as ReusableComponentPropCondition, values),\n )\n }\n if ('or' in condition) {\n const or = (condition as { or: unknown }).or\n return (Array.isArray(or) ? or : [or]).some((entry) =>\n evaluateReusablePropCondition(entry as ReusableComponentPropCondition, values),\n )\n }\n if ('not' in condition) {\n return !evaluateReusablePropCondition(\n (condition as { not: ReusableComponentPropCondition }).not,\n values,\n )\n }\n const rule = condition as ReusableComponentPropRule\n if (typeof rule.when !== 'string' || !rule.when) return false\n return evaluateReusablePropRule(rule, values[rule.when])\n}\n\ntype StoredCondition =\n | ReusableComponentPropCondition\n | ReusableComponentPropCondition[]\n\n/**\n * A condition with every rule whose pattern cannot be matched removed\n * (AGL-2893), or `undefined` when nothing is left of it. Handed back as it was\n * when nothing needed removing.\n *\n * A rule that names a pattern is read for that pattern; the rest of it means\n * nothing without one, so the whole rule goes, the way a rule that names no\n * property does. A list or `and` keeps the rules left and goes when none are;\n * an `or` likewise; a `not` goes with its rule. Removing a rule can loosen an\n * `and` or tighten an `or`, and either is a condition a page can evaluate,\n * where the rule removed was one no page could.\n */\nfunction withoutUnmatchablePatterns(\n condition: unknown,\n): StoredCondition | undefined {\n if (condition == null || typeof condition !== 'object') {\n return condition as StoredCondition | undefined\n }\n const cleanList = (list: unknown[]) => {\n const kept = list\n .map((entry) => withoutUnmatchablePatterns(entry))\n .filter((entry) => entry !== undefined)\n const unchanged =\n kept.length === list.length && kept.every((entry, at) => entry === list[at])\n return { kept: kept as ReusableComponentPropCondition[], unchanged }\n }\n if (Array.isArray(condition)) {\n const { kept, unchanged } = cleanList(condition)\n if (unchanged) return condition as ReusableComponentPropCondition[]\n return kept.length ? kept : undefined\n }\n const value = condition as Record<string, unknown>\n for (const key of ['and', 'or'] as const) {\n if (!(key in value)) continue\n const inner = value[key]\n const { kept, unchanged } = cleanList(Array.isArray(inner) ? inner : [inner])\n if (unchanged) return condition as ReusableComponentPropCondition\n return kept.length\n ? ({ ...value, [key]: kept } as ReusableComponentPropCondition)\n : undefined\n }\n if ('not' in value) {\n const inner = withoutUnmatchablePatterns(value['not'])\n if (inner === value['not']) return condition as ReusableComponentPropCondition\n return inner === undefined\n ? undefined\n : ({ ...value, not: inner } as ReusableComponentPropCondition)\n }\n // Read as the evaluator reads it: an empty pattern names none.\n if (value['pattern'] && reusablePropPatternProblem(value['pattern'], value['flags'])) {\n return undefined\n }\n return condition as ReusableComponentPropCondition\n}\n\n/**\n * Declared properties as a server-side write stores them: each condition\n * without the rules whose pattern cannot be matched, and a property whose\n * condition is left with nothing stored with none (AGL-2893). Anything that is\n * not a list of declarations comes back as it was, as does a list with nothing\n * to remove.\n *\n * The page never needs this — a rule it cannot match holds nothing there — but\n * a stored declaration is read by the Properties dialog, copied by templates\n * and published to the marketplace, and a pattern that can never be matched\n * should stop there rather than travel.\n */\nexport function withMatchableConditions<T>(props: T): T {\n if (!Array.isArray(props)) return props\n let changed = false\n const next = props.map((prop) => {\n if (!prop || typeof prop !== 'object' || !('condition' in prop)) return prop\n const { condition, ...rest } = prop as { condition?: unknown }\n const kept = withoutUnmatchablePatterns(condition)\n if (kept === condition) return prop\n changed = true\n return kept === undefined ? rest : { ...rest, condition: kept }\n })\n return (changed ? next : props) as T\n}\n\n/** Text a value substitutes as wherever its token sits inside other text. */\nfunction substitutedText(value: unknown): string {\n if (value == null) return ''\n if (Array.isArray(value)) return value.join(', ')\n if (typeof value === 'object') {\n return readInstanceIconValue(value)?.iconId ?? ''\n }\n return String(value)\n}\n\n/** Every property's value for one page, in the three forms the graft reads. */\nexport interface ResolvedReusablePropValues {\n /** `prop.<name>` → the text each `{{prop.<name>}}` substitutes as. */\n tokens: Record<string, string>\n /**\n * Name → what a field bound to exactly that token receives, before its kind\n * finishes it; absent where the property has nothing to give.\n */\n values: Record<string, unknown>\n /** Name → the SVG path an Icon property's pick or default draws with. */\n iconPaths: Record<string, string>\n /** The names whose condition does not hold on this page. */\n off: Set<string>\n}\n\n/**\n * What each declared property is worth on one page.\n *\n * `values` is the page's own map — an instance's `propValues`, or a screen's\n * values for its layout — and a property it leaves unset takes its default.\n * A property whose condition does not hold renders as one with no value and no\n * default. Conditions compare what each property is worth before any condition\n * applies, which is what the Attributes panel compares too, so a field and the\n * page it sets agree.\n *\n * `defaultsOnly` is the editor's view of its own definition: a property with no\n * default keeps its token, so a slot nothing fills stays visible.\n */\nexport function resolveReusablePropValues(\n declared: readonly DeclaredProp[] | null | undefined,\n values?: Readonly<Record<string, unknown>> | null,\n options?: { defaultsOnly?: boolean },\n): ResolvedReusablePropValues {\n const resolved: ResolvedReusablePropValues = {\n tokens: {},\n values: {},\n iconPaths: {},\n off: new Set(),\n }\n const props = (declared ?? []).filter(\n (prop): prop is DeclaredProp => Boolean(prop?.name),\n )\n if (!props.length) return resolved\n const worth = new Map<string, unknown>()\n const compared: Record<string, unknown> = {}\n for (const prop of props) {\n const own = options?.defaultsOnly\n ? undefined\n : readReusablePropValue(values?.[prop.name], prop)\n const value = own === undefined ? readDefaultValue(prop) : own\n worth.set(prop.name, value)\n compared[prop.name] = reusablePropConditionValue(prop, value)\n }\n for (const prop of props) {\n if (!evaluateReusablePropCondition(prop.condition, compared)) {\n resolved.off.add(prop.name)\n if (!options?.defaultsOnly) {\n resolved.tokens[`${COMPONENT_PROP_TOKEN_PREFIX}${prop.name}`] = ''\n }\n continue\n }\n const value = worth.get(prop.name)\n if (options?.defaultsOnly && value === undefined) continue\n resolved.tokens[`${COMPONENT_PROP_TOKEN_PREFIX}${prop.name}`] =\n substitutedText(value)\n if (value !== undefined) resolved.values[prop.name] = value\n const iconPath =\n reusablePropValueClass(prop) === 'icon'\n ? (value as ReusableComponentIcon | undefined)?.iconPath\n : undefined\n if (iconPath) resolved.iconPaths[prop.name] = iconPath\n }\n return resolved\n}\n\n/**\n * Token map of a definition's OWN defaults, with no instance in the picture.\n *\n * What the component editor draws with (AGL-2870). A page substitutes an unset\n * prop as `''`, which is right there — an unset prop renders nothing — and\n * wrong here, where a prop with no default has nothing to preview and should\n * keep showing its raw token so the author can see at a glance which slots are\n * still unfilled.\n *\n * `false` and `0` are real defaults and survive; only `null`, `undefined` and\n * `''` are treated as \"no default set\".\n */\nexport function buildComponentDefaultTokens(\n declared: readonly DeclaredProp[] | null | undefined,\n): Record<string, string> {\n return resolveReusablePropValues(declared, undefined, { defaultsOnly: true })\n .tokens\n}\n\n/**\n * The icon paths a definition's OWN defaults draw with — what the component\n * editor shows beside {@link buildComponentDefaultTokens}.\n */\nexport function buildComponentDefaultIconPaths(\n declared: readonly DeclaredProp[] | null | undefined,\n): Record<string, string> {\n return resolveReusablePropValues(declared, undefined, { defaultsOnly: true })\n .iconPaths\n}\n\n/**\n * The values a definition's OWN defaults hand their bound fields — what the\n * component editor draws with beside {@link buildComponentDefaultTokens}.\n */\nexport function buildComponentDefaultValues(\n declared: readonly DeclaredProp[] | null | undefined,\n): Record<string, unknown> {\n return resolveReusablePropValues(declared, undefined, { defaultsOnly: true })\n .values\n}\n"],"names":["compileLinearTest","explainLinearTest","isEmpty","reusablePropTakesSeveral","reusablePropValueClass","COMPONENT_PROP_TOKEN_PREFIX","FALSY_DIRECTIVE_VALUES","Set","readYesNoValue","value","undefined","Boolean","trimmed","trim","includes","has","toLowerCase","readInstanceIconValue","iconId","Array","isArray","iconPath","readReusablePropValue","prop","valueClass","list","answers","filter","entry","length","reusablePropDefaultValue","readDefaultValue","defaultValue","defaultIconPath","reusablePropConditionValue","numeric","Number","isFinite","isEmptyValue","Date","isNaN","getTime","REUSABLE_PROP_PATTERN_MAX_LENGTH","REUSABLE_PROP_PATTERN_INPUT_MAX_LENGTH","reusablePropPatternProblem","pattern","flags","flagText","reason","RegExp","compiledPatterns","Map","COMPILED_PATTERNS_MAX","compiledPattern","key","cached","get","compiled","size","clear","set","matchReusablePropPattern","text","String","test","evaluateReusablePropRule","rule","isNotEmpty","matched","notMatch","compare","Object","prototype","hasOwnProperty","call","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","is","evaluateReusablePropCondition","condition","values","every","and","or","some","not","when","withoutUnmatchablePatterns","cleanList","kept","map","unchanged","at","inner","withMatchableConditions","props","changed","next","rest","substitutedText","join","resolveReusablePropValues","declared","options","resolved","tokens","iconPaths","off","name","worth","compared","own","defaultsOnly","add","buildComponentDefaultTokens","buildComponentDefaultIconPaths","buildComponentDefaultValues"],"mappings":"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"}
@@ -0,0 +1,29 @@
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
+ * Serialize a value for embedding inside an inline
19
+ * `<script type="application/ld+json">` via `dangerouslySetInnerHTML`
20
+ * (AGL-496). `JSON.stringify` does NOT escape `<`, `>` or `&`, so a
21
+ * user-authored string containing `</script>` closes the element and any
22
+ * following markup executes — a stored-XSS breakout on tenant sites whose
23
+ * JSON-LD is built from editor-authored titles/descriptions.
24
+ *
25
+ * Escape those characters (plus the JS line separators U+2028/U+2029) to
26
+ * their `\uXXXX` forms — still valid JSON, no longer able to break out of
27
+ * the element.
28
+ */
29
+ export declare function safeJsonLd(value: unknown): string;
@@ -0,0 +1,37 @@
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
+ */ // U+2028/U+2029 are valid inside JSON strings but terminate an inline
17
+ // <script>; matched via fromCharCode so no irregular-whitespace lands in
18
+ // source.
19
+ const LINE_SEP = new RegExp(String.fromCharCode(0x2028), 'g');
20
+ const PARA_SEP = new RegExp(String.fromCharCode(0x2029), 'g');
21
+ /**
22
+ * Serialize a value for embedding inside an inline
23
+ * `<script type="application/ld+json">` via `dangerouslySetInnerHTML`
24
+ * (AGL-496). `JSON.stringify` does NOT escape `<`, `>` or `&`, so a
25
+ * user-authored string containing `</script>` closes the element and any
26
+ * following markup executes — a stored-XSS breakout on tenant sites whose
27
+ * JSON-LD is built from editor-authored titles/descriptions.
28
+ *
29
+ * Escape those characters (plus the JS line separators U+2028/U+2029) to
30
+ * their `\uXXXX` forms — still valid JSON, no longer able to break out of
31
+ * the element.
32
+ */ export function safeJsonLd(value) {
33
+ var _JSON_stringify;
34
+ return ((_JSON_stringify = JSON.stringify(value)) != null ? _JSON_stringify : 'null').replace(/</g, '\\u003c').replace(/>/g, '\\u003e').replace(/&/g, '\\u0026').replace(LINE_SEP, '\\u2028').replace(PARA_SEP, '\\u2029');
35
+ }
36
+
37
+ //# sourceMappingURL=safe-json-ld.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/safe-json-ld.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// U+2028/U+2029 are valid inside JSON strings but terminate an inline\n// <script>; matched via fromCharCode so no irregular-whitespace lands in\n// source.\nconst LINE_SEP = new RegExp(String.fromCharCode(0x2028), 'g')\nconst PARA_SEP = new RegExp(String.fromCharCode(0x2029), 'g')\n\n/**\n * Serialize a value for embedding inside an inline\n * `<script type=\"application/ld+json\">` via `dangerouslySetInnerHTML`\n * (AGL-496). `JSON.stringify` does NOT escape `<`, `>` or `&`, so a\n * user-authored string containing `</script>` closes the element and any\n * following markup executes — a stored-XSS breakout on tenant sites whose\n * JSON-LD is built from editor-authored titles/descriptions.\n *\n * Escape those characters (plus the JS line separators U+2028/U+2029) to\n * their `\\uXXXX` forms — still valid JSON, no longer able to break out of\n * the element.\n */\nexport function safeJsonLd(value: unknown): string {\n return (JSON.stringify(value) ?? 'null')\n .replace(/</g, '\\\\u003c')\n .replace(/>/g, '\\\\u003e')\n .replace(/&/g, '\\\\u0026')\n .replace(LINE_SEP, '\\\\u2028')\n .replace(PARA_SEP, '\\\\u2029')\n}\n"],"names":["LINE_SEP","RegExp","String","fromCharCode","PARA_SEP","safeJsonLd","value","JSON","stringify","replace"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,sEAAsE;AACtE,yEAAyE;AACzE,UAAU;AACV,MAAMA,WAAW,IAAIC,OAAOC,OAAOC,YAAY,CAAC,SAAS;AACzD,MAAMC,WAAW,IAAIH,OAAOC,OAAOC,YAAY,CAAC,SAAS;AAEzD;;;;;;;;;;;CAWC,GACD,OAAO,SAASE,WAAWC,KAAc;QAC/BC;IAAR,OAAO,EAACA,kBAAAA,KAAKC,SAAS,CAACF,kBAAfC,kBAAyB,QAC9BE,OAAO,CAAC,MAAM,WACdA,OAAO,CAAC,MAAM,WACdA,OAAO,CAAC,MAAM,WACdA,OAAO,CAACT,UAAU,WAClBS,OAAO,CAACL,UAAU;AACvB"}