@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.
- package/LICENSE +201 -0
- package/README.md +11 -0
- package/package.json +66 -0
- package/src/index.d.ts +25 -0
- package/src/index.js +26 -0
- package/src/index.js.map +1 -0
- package/src/lib/aglyn.d.ts +31 -0
- package/src/lib/aglyn.js +114 -0
- package/src/lib/aglyn.js.map +1 -0
- package/src/lib/app-utils/abuse-report.d.ts +193 -0
- package/src/lib/app-utils/abuse-report.js +321 -0
- package/src/lib/app-utils/abuse-report.js.map +1 -0
- package/src/lib/app-utils/accept-negotiation.d.ts +129 -0
- package/src/lib/app-utils/accept-negotiation.js +266 -0
- package/src/lib/app-utils/accept-negotiation.js.map +1 -0
- package/src/lib/app-utils/account-emails.d.ts +263 -0
- package/src/lib/app-utils/account-emails.js +264 -0
- package/src/lib/app-utils/account-emails.js.map +1 -0
- package/src/lib/app-utils/actions.d.ts +717 -0
- package/src/lib/app-utils/actions.js +1031 -0
- package/src/lib/app-utils/actions.js.map +1 -0
- package/src/lib/app-utils/activity-presenter.d.ts +152 -0
- package/src/lib/app-utils/activity-presenter.js +326 -0
- package/src/lib/app-utils/activity-presenter.js.map +1 -0
- package/src/lib/app-utils/advertising-tag-mounts.d.ts +133 -0
- package/src/lib/app-utils/advertising-tag-mounts.js +118 -0
- package/src/lib/app-utils/advertising-tag-mounts.js.map +1 -0
- package/src/lib/app-utils/advertising-tags.d.ts +307 -0
- package/src/lib/app-utils/advertising-tags.js +525 -0
- package/src/lib/app-utils/advertising-tags.js.map +1 -0
- package/src/lib/app-utils/agent-api-catalog.d.ts +94 -0
- package/src/lib/app-utils/agent-api-catalog.js +106 -0
- package/src/lib/app-utils/agent-api-catalog.js.map +1 -0
- package/src/lib/app-utils/agent-openapi.d.ts +103 -0
- package/src/lib/app-utils/agent-openapi.js +1128 -0
- package/src/lib/app-utils/agent-openapi.js.map +1 -0
- package/src/lib/app-utils/analytics-beacon.d.ts +154 -0
- package/src/lib/app-utils/analytics-beacon.js +152 -0
- package/src/lib/app-utils/analytics-beacon.js.map +1 -0
- package/src/lib/app-utils/analytics-environment.d.ts +133 -0
- package/src/lib/app-utils/analytics-environment.js +152 -0
- package/src/lib/app-utils/analytics-environment.js.map +1 -0
- package/src/lib/app-utils/analytics-events.d.ts +744 -0
- package/src/lib/app-utils/analytics-events.js +650 -0
- package/src/lib/app-utils/analytics-events.js.map +1 -0
- package/src/lib/app-utils/analytics-link-clicks.d.ts +102 -0
- package/src/lib/app-utils/analytics-link-clicks.js +267 -0
- package/src/lib/app-utils/analytics-link-clicks.js.map +1 -0
- package/src/lib/app-utils/analytics-path-key.d.ts +46 -0
- package/src/lib/app-utils/analytics-path-key.js +46 -0
- package/src/lib/app-utils/analytics-path-key.js.map +1 -0
- package/src/lib/app-utils/api-adapter.d.ts +47 -0
- package/src/lib/app-utils/api-adapter.js +367 -0
- package/src/lib/app-utils/api-adapter.js.map +1 -0
- package/src/lib/app-utils/api-idempotency.d.ts +169 -0
- package/src/lib/app-utils/api-idempotency.js +213 -0
- package/src/lib/app-utils/api-idempotency.js.map +1 -0
- package/src/lib/app-utils/api-plugins.d.ts +210 -0
- package/src/lib/app-utils/api-plugins.js +221 -0
- package/src/lib/app-utils/api-plugins.js.map +1 -0
- package/src/lib/app-utils/assist-credits.d.ts +482 -0
- package/src/lib/app-utils/assist-credits.js +509 -0
- package/src/lib/app-utils/assist-credits.js.map +1 -0
- package/src/lib/app-utils/attribution-attribute.d.ts +34 -0
- package/src/lib/app-utils/attribution-attribute.js +34 -0
- package/src/lib/app-utils/attribution-attribute.js.map +1 -0
- package/src/lib/app-utils/attribution-guard.d.ts +130 -0
- package/src/lib/app-utils/attribution-guard.js +410 -0
- package/src/lib/app-utils/attribution-guard.js.map +1 -0
- package/src/lib/app-utils/author-css.d.ts +123 -0
- package/src/lib/app-utils/author-css.js +275 -0
- package/src/lib/app-utils/author-css.js.map +1 -0
- package/src/lib/app-utils/author-html-markdown.d.ts +31 -0
- package/src/lib/app-utils/author-html-markdown.js +497 -0
- package/src/lib/app-utils/author-html-markdown.js.map +1 -0
- package/src/lib/app-utils/author-html.d.ts +135 -0
- package/src/lib/app-utils/author-html.js +1037 -0
- package/src/lib/app-utils/author-html.js.map +1 -0
- package/src/lib/app-utils/automation-placeholders.d.ts +72 -0
- package/src/lib/app-utils/automation-placeholders.js +207 -0
- package/src/lib/app-utils/automation-placeholders.js.map +1 -0
- package/src/lib/app-utils/bandwidth-cap.d.ts +183 -0
- package/src/lib/app-utils/bandwidth-cap.js +193 -0
- package/src/lib/app-utils/bandwidth-cap.js.map +1 -0
- package/src/lib/app-utils/binding-token-catalog.d.ts +82 -0
- package/src/lib/app-utils/binding-token-catalog.js +293 -0
- package/src/lib/app-utils/binding-token-catalog.js.map +1 -0
- package/src/lib/app-utils/binding-tokens.d.ts +157 -0
- package/src/lib/app-utils/binding-tokens.js +251 -0
- package/src/lib/app-utils/binding-tokens.js.map +1 -0
- package/src/lib/app-utils/breadcrumb-json-ld.d.ts +57 -0
- package/src/lib/app-utils/breadcrumb-json-ld.js +67 -0
- package/src/lib/app-utils/breadcrumb-json-ld.js.map +1 -0
- package/src/lib/app-utils/campaign-attribution.d.ts +117 -0
- package/src/lib/app-utils/campaign-attribution.js +162 -0
- package/src/lib/app-utils/campaign-attribution.js.map +1 -0
- package/src/lib/app-utils/campaign-forwarding.d.ts +220 -0
- package/src/lib/app-utils/campaign-forwarding.js +332 -0
- package/src/lib/app-utils/campaign-forwarding.js.map +1 -0
- package/src/lib/app-utils/campaign-membership.d.ts +109 -0
- package/src/lib/app-utils/campaign-membership.js +176 -0
- package/src/lib/app-utils/campaign-membership.js.map +1 -0
- package/src/lib/app-utils/campaign-touch.d.ts +206 -0
- package/src/lib/app-utils/campaign-touch.js +326 -0
- package/src/lib/app-utils/campaign-touch.js.map +1 -0
- package/src/lib/app-utils/child-contract-compose.d.ts +28 -0
- package/src/lib/app-utils/child-contract-compose.js +140 -0
- package/src/lib/app-utils/child-contract-compose.js.map +1 -0
- package/src/lib/app-utils/child-contract.d.ts +129 -0
- package/src/lib/app-utils/child-contract.js +153 -0
- package/src/lib/app-utils/child-contract.js.map +1 -0
- package/src/lib/app-utils/collection-delete.d.ts +113 -0
- package/src/lib/app-utils/collection-delete.js +120 -0
- package/src/lib/app-utils/collection-delete.js.map +1 -0
- package/src/lib/app-utils/collection-entries.d.ts +833 -0
- package/src/lib/app-utils/collection-entries.js +1285 -0
- package/src/lib/app-utils/collection-entries.js.map +1 -0
- package/src/lib/app-utils/collection-entry-date.d.ts +129 -0
- package/src/lib/app-utils/collection-entry-date.js +183 -0
- package/src/lib/app-utils/collection-entry-date.js.map +1 -0
- package/src/lib/app-utils/collection-kind.d.ts +55 -0
- package/src/lib/app-utils/collection-kind.js +69 -0
- package/src/lib/app-utils/collection-kind.js.map +1 -0
- package/src/lib/app-utils/collection-slug.d.ts +79 -0
- package/src/lib/app-utils/collection-slug.js +70 -0
- package/src/lib/app-utils/collection-slug.js.map +1 -0
- package/src/lib/app-utils/compose-layout-nodes.d.ts +147 -0
- package/src/lib/app-utils/compose-layout-nodes.js +261 -0
- package/src/lib/app-utils/compose-layout-nodes.js.map +1 -0
- package/src/lib/app-utils/compose-layout-props.d.ts +71 -0
- package/src/lib/app-utils/compose-layout-props.js +61 -0
- package/src/lib/app-utils/compose-layout-props.js.map +1 -0
- package/src/lib/app-utils/compose-reusable-components.d.ts +504 -0
- package/src/lib/app-utils/compose-reusable-components.js +1366 -0
- package/src/lib/app-utils/compose-reusable-components.js.map +1 -0
- package/src/lib/app-utils/compress.d.ts +35 -0
- package/src/lib/app-utils/compress.js +38 -0
- package/src/lib/app-utils/compress.js.map +1 -0
- package/src/lib/app-utils/consent-banner-ui.d.ts +226 -0
- package/src/lib/app-utils/consent-banner-ui.js +583 -0
- package/src/lib/app-utils/consent-banner-ui.js.map +1 -0
- package/src/lib/app-utils/consent-groups.d.ts +189 -0
- package/src/lib/app-utils/consent-groups.js +219 -0
- package/src/lib/app-utils/consent-groups.js.map +1 -0
- package/src/lib/app-utils/consent-preferences-dialog.d.ts +58 -0
- package/src/lib/app-utils/consent-preferences-dialog.js +106 -0
- package/src/lib/app-utils/consent-preferences-dialog.js.map +1 -0
- package/src/lib/app-utils/console-record-links.d.ts +163 -0
- package/src/lib/app-utils/console-record-links.js +178 -0
- package/src/lib/app-utils/console-record-links.js.map +1 -0
- package/src/lib/app-utils/console-routes.d.ts +658 -0
- package/src/lib/app-utils/console-routes.js +489 -0
- package/src/lib/app-utils/console-routes.js.map +1 -0
- package/src/lib/app-utils/console-widget-slot-context.d.ts +46 -0
- package/src/lib/app-utils/console-widget-slot-context.js +23 -0
- package/src/lib/app-utils/console-widget-slot-context.js.map +1 -0
- package/src/lib/app-utils/contact-custom-fields.d.ts +191 -0
- package/src/lib/app-utils/contact-custom-fields.js +349 -0
- package/src/lib/app-utils/contact-custom-fields.js.map +1 -0
- package/src/lib/app-utils/contact-holder.d.ts +52 -0
- package/src/lib/app-utils/contact-holder.js +98 -0
- package/src/lib/app-utils/contact-holder.js.map +1 -0
- package/src/lib/app-utils/contact-merge.d.ts +136 -0
- package/src/lib/app-utils/contact-merge.js +379 -0
- package/src/lib/app-utils/contact-merge.js.map +1 -0
- package/src/lib/app-utils/contacts.d.ts +554 -0
- package/src/lib/app-utils/contacts.js +401 -0
- package/src/lib/app-utils/contacts.js.map +1 -0
- package/src/lib/app-utils/content-author-profile.d.ts +68 -0
- package/src/lib/app-utils/content-author-profile.js +118 -0
- package/src/lib/app-utils/content-author-profile.js.map +1 -0
- package/src/lib/app-utils/content-authors.d.ts +662 -0
- package/src/lib/app-utils/content-authors.js +771 -0
- package/src/lib/app-utils/content-authors.js.map +1 -0
- package/src/lib/app-utils/content-schema-type.d.ts +81 -0
- package/src/lib/app-utils/content-schema-type.js +87 -0
- package/src/lib/app-utils/content-schema-type.js.map +1 -0
- package/src/lib/app-utils/contexts.d.ts +35 -0
- package/src/lib/app-utils/contexts.js +35 -0
- package/src/lib/app-utils/contexts.js.map +1 -0
- package/src/lib/app-utils/create-resource-uid.d.ts +18 -0
- package/src/lib/app-utils/create-resource-uid.js +23 -0
- package/src/lib/app-utils/create-resource-uid.js.map +1 -0
- package/src/lib/app-utils/crm-booking.d.ts +75 -0
- package/src/lib/app-utils/crm-booking.js +133 -0
- package/src/lib/app-utils/crm-booking.js.map +1 -0
- package/src/lib/app-utils/crm-csv.d.ts +232 -0
- package/src/lib/app-utils/crm-csv.js +432 -0
- package/src/lib/app-utils/crm-csv.js.map +1 -0
- package/src/lib/app-utils/crm-digest.d.ts +179 -0
- package/src/lib/app-utils/crm-digest.js +271 -0
- package/src/lib/app-utils/crm-digest.js.map +1 -0
- package/src/lib/app-utils/crm-email-templates.d.ts +172 -0
- package/src/lib/app-utils/crm-email-templates.js +382 -0
- package/src/lib/app-utils/crm-email-templates.js.map +1 -0
- package/src/lib/app-utils/crm-inbound.d.ts +245 -0
- package/src/lib/app-utils/crm-inbound.js +407 -0
- package/src/lib/app-utils/crm-inbound.js.map +1 -0
- package/src/lib/app-utils/crm-kinds.d.ts +73 -0
- package/src/lib/app-utils/crm-kinds.js +92 -0
- package/src/lib/app-utils/crm-kinds.js.map +1 -0
- package/src/lib/app-utils/crm-next-activity.d.ts +107 -0
- package/src/lib/app-utils/crm-next-activity.js +140 -0
- package/src/lib/app-utils/crm-next-activity.js.map +1 -0
- package/src/lib/app-utils/crm-reports.d.ts +479 -0
- package/src/lib/app-utils/crm-reports.js +680 -0
- package/src/lib/app-utils/crm-reports.js.map +1 -0
- package/src/lib/app-utils/crm-task-reminders.d.ts +129 -0
- package/src/lib/app-utils/crm-task-reminders.js +139 -0
- package/src/lib/app-utils/crm-task-reminders.js.map +1 -0
- package/src/lib/app-utils/crm.d.ts +1546 -0
- package/src/lib/app-utils/crm.js +1814 -0
- package/src/lib/app-utils/crm.js.map +1 -0
- package/src/lib/app-utils/csp-report.d.ts +84 -0
- package/src/lib/app-utils/csp-report.js +177 -0
- package/src/lib/app-utils/csp-report.js.map +1 -0
- package/src/lib/app-utils/csv-import.d.ts +192 -0
- package/src/lib/app-utils/csv-import.js +279 -0
- package/src/lib/app-utils/csv-import.js.map +1 -0
- package/src/lib/app-utils/dataset-csv.d.ts +109 -0
- package/src/lib/app-utils/dataset-csv.js +235 -0
- package/src/lib/app-utils/dataset-csv.js.map +1 -0
- package/src/lib/app-utils/dataset-models.d.ts +194 -0
- package/src/lib/app-utils/dataset-models.js +409 -0
- package/src/lib/app-utils/dataset-models.js.map +1 -0
- package/src/lib/app-utils/dataset-query.d.ts +57 -0
- package/src/lib/app-utils/dataset-query.js +126 -0
- package/src/lib/app-utils/dataset-query.js.map +1 -0
- package/src/lib/app-utils/datasets.d.ts +136 -0
- package/src/lib/app-utils/datasets.js +177 -0
- package/src/lib/app-utils/datasets.js.map +1 -0
- package/src/lib/app-utils/decompress.d.ts +36 -0
- package/src/lib/app-utils/decompress.js +32 -0
- package/src/lib/app-utils/decompress.js.map +1 -0
- package/src/lib/app-utils/dedicated-sending-domain.d.ts +47 -0
- package/src/lib/app-utils/dedicated-sending-domain.js +114 -0
- package/src/lib/app-utils/dedicated-sending-domain.js.map +1 -0
- package/src/lib/app-utils/deferred-image.d.ts +86 -0
- package/src/lib/app-utils/deferred-image.js +83 -0
- package/src/lib/app-utils/deferred-image.js.map +1 -0
- package/src/lib/app-utils/definition-canvas-tree.d.ts +61 -0
- package/src/lib/app-utils/definition-canvas-tree.js +126 -0
- package/src/lib/app-utils/definition-canvas-tree.js.map +1 -0
- package/src/lib/app-utils/deployment-shape.d.ts +167 -0
- package/src/lib/app-utils/deployment-shape.js +238 -0
- package/src/lib/app-utils/deployment-shape.js.map +1 -0
- package/src/lib/app-utils/detect-template-placeholders.d.ts +30 -0
- package/src/lib/app-utils/detect-template-placeholders.js +53 -0
- package/src/lib/app-utils/detect-template-placeholders.js.map +1 -0
- package/src/lib/app-utils/dmca-counter-notice.d.ts +185 -0
- package/src/lib/app-utils/dmca-counter-notice.js +277 -0
- package/src/lib/app-utils/dmca-counter-notice.js.map +1 -0
- package/src/lib/app-utils/docs-deflection.d.ts +156 -0
- package/src/lib/app-utils/docs-deflection.js +547 -0
- package/src/lib/app-utils/docs-deflection.js.map +1 -0
- package/src/lib/app-utils/docs-help.d.ts +57 -0
- package/src/lib/app-utils/docs-help.generated.d.ts +303 -0
- package/src/lib/app-utils/docs-help.generated.js +867 -0
- package/src/lib/app-utils/docs-help.generated.js.map +1 -0
- package/src/lib/app-utils/docs-help.js +46 -0
- package/src/lib/app-utils/docs-help.js.map +1 -0
- package/src/lib/app-utils/docs-index.generated.d.ts +29 -0
- package/src/lib/app-utils/docs-index.generated.js +8388 -0
- package/src/lib/app-utils/docs-index.generated.js.map +1 -0
- package/src/lib/app-utils/docs-retrieval.d.ts +67 -0
- package/src/lib/app-utils/docs-retrieval.js +188 -0
- package/src/lib/app-utils/docs-retrieval.js.map +1 -0
- package/src/lib/app-utils/document-landmark.d.ts +50 -0
- package/src/lib/app-utils/document-landmark.js +100 -0
- package/src/lib/app-utils/document-landmark.js.map +1 -0
- package/src/lib/app-utils/duplicate-resource.d.ts +101 -0
- package/src/lib/app-utils/duplicate-resource.js +206 -0
- package/src/lib/app-utils/duplicate-resource.js.map +1 -0
- package/src/lib/app-utils/dynamic-list-rule.d.ts +471 -0
- package/src/lib/app-utils/dynamic-list-rule.js +914 -0
- package/src/lib/app-utils/dynamic-list-rule.js.map +1 -0
- package/src/lib/app-utils/element-animation.d.ts +200 -0
- package/src/lib/app-utils/element-animation.js +233 -0
- package/src/lib/app-utils/element-animation.js.map +1 -0
- package/src/lib/app-utils/element-hidden-style.d.ts +46 -0
- package/src/lib/app-utils/element-hidden-style.js +48 -0
- package/src/lib/app-utils/element-hidden-style.js.map +1 -0
- package/src/lib/app-utils/element-ui.d.ts +243 -0
- package/src/lib/app-utils/element-ui.js +459 -0
- package/src/lib/app-utils/element-ui.js.map +1 -0
- package/src/lib/app-utils/email-starter-policy.d.ts +160 -0
- package/src/lib/app-utils/email-starter-policy.js +327 -0
- package/src/lib/app-utils/email-starter-policy.js.map +1 -0
- package/src/lib/app-utils/email-topics.d.ts +310 -0
- package/src/lib/app-utils/email-topics.js +336 -0
- package/src/lib/app-utils/email-topics.js.map +1 -0
- package/src/lib/app-utils/enabled-plugins-context.d.ts +100 -0
- package/src/lib/app-utils/enabled-plugins-context.js +113 -0
- package/src/lib/app-utils/enabled-plugins-context.js.map +1 -0
- package/src/lib/app-utils/ensure-canvas-root.d.ts +38 -0
- package/src/lib/app-utils/ensure-canvas-root.js +61 -0
- package/src/lib/app-utils/ensure-canvas-root.js.map +1 -0
- package/src/lib/app-utils/entity-picker-context.d.ts +199 -0
- package/src/lib/app-utils/entity-picker-context.js +93 -0
- package/src/lib/app-utils/entity-picker-context.js.map +1 -0
- package/src/lib/app-utils/error-beacon.d.ts +107 -0
- package/src/lib/app-utils/error-beacon.js +296 -0
- package/src/lib/app-utils/error-beacon.js.map +1 -0
- package/src/lib/app-utils/expand-repeatables.d.ts +172 -0
- package/src/lib/app-utils/expand-repeatables.js +299 -0
- package/src/lib/app-utils/expand-repeatables.js.map +1 -0
- package/src/lib/app-utils/foreign-script.d.ts +82 -0
- package/src/lib/app-utils/foreign-script.js +102 -0
- package/src/lib/app-utils/foreign-script.js.map +1 -0
- package/src/lib/app-utils/form-abuse-ceiling.d.ts +146 -0
- package/src/lib/app-utils/form-abuse-ceiling.js +158 -0
- package/src/lib/app-utils/form-abuse-ceiling.js.map +1 -0
- package/src/lib/app-utils/form-contract.d.ts +198 -0
- package/src/lib/app-utils/form-contract.js +282 -0
- package/src/lib/app-utils/form-contract.js.map +1 -0
- package/src/lib/app-utils/form-dataset-binding.d.ts +50 -0
- package/src/lib/app-utils/form-dataset-binding.js +74 -0
- package/src/lib/app-utils/form-dataset-binding.js.map +1 -0
- package/src/lib/app-utils/forms.d.ts +727 -0
- package/src/lib/app-utils/forms.js +777 -0
- package/src/lib/app-utils/forms.js.map +1 -0
- package/src/lib/app-utils/functions.d.ts +188 -0
- package/src/lib/app-utils/functions.js +529 -0
- package/src/lib/app-utils/functions.js.map +1 -0
- package/src/lib/app-utils/guarded-version-save.d.ts +91 -0
- package/src/lib/app-utils/guarded-version-save.js +131 -0
- package/src/lib/app-utils/guarded-version-save.js.map +1 -0
- package/src/lib/app-utils/health-report.d.ts +1766 -0
- package/src/lib/app-utils/health-report.js +2072 -0
- package/src/lib/app-utils/health-report.js.map +1 -0
- package/src/lib/app-utils/host-naming.d.ts +135 -0
- package/src/lib/app-utils/host-naming.js +188 -0
- package/src/lib/app-utils/host-naming.js.map +1 -0
- package/src/lib/app-utils/host-permissions.d.ts +76 -0
- package/src/lib/app-utils/host-permissions.js +119 -0
- package/src/lib/app-utils/host-permissions.js.map +1 -0
- package/src/lib/app-utils/host-tokens.d.ts +228 -0
- package/src/lib/app-utils/host-tokens.js +304 -0
- package/src/lib/app-utils/host-tokens.js.map +1 -0
- package/src/lib/app-utils/idp-profile.d.ts +83 -0
- package/src/lib/app-utils/idp-profile.js +268 -0
- package/src/lib/app-utils/idp-profile.js.map +1 -0
- package/src/lib/app-utils/image-upload-types.d.ts +49 -0
- package/src/lib/app-utils/image-upload-types.js +86 -0
- package/src/lib/app-utils/image-upload-types.js.map +1 -0
- package/src/lib/app-utils/index.d.ts +18 -0
- package/src/lib/app-utils/index.js +23 -0
- package/src/lib/app-utils/index.js.map +1 -0
- package/src/lib/app-utils/internal-traffic.d.ts +197 -0
- package/src/lib/app-utils/internal-traffic.js +288 -0
- package/src/lib/app-utils/internal-traffic.js.map +1 -0
- package/src/lib/app-utils/lineal-order.d.ts +62 -0
- package/src/lib/app-utils/lineal-order.js +65 -0
- package/src/lib/app-utils/lineal-order.js.map +1 -0
- package/src/lib/app-utils/link-references.d.ts +36 -0
- package/src/lib/app-utils/link-references.js +89 -0
- package/src/lib/app-utils/link-references.js.map +1 -0
- package/src/lib/app-utils/link-target-search-context.d.ts +123 -0
- package/src/lib/app-utils/link-target-search-context.js +221 -0
- package/src/lib/app-utils/link-target-search-context.js.map +1 -0
- package/src/lib/app-utils/list-assignment-policy.d.ts +169 -0
- package/src/lib/app-utils/list-assignment-policy.js +170 -0
- package/src/lib/app-utils/list-assignment-policy.js.map +1 -0
- package/src/lib/app-utils/list-import.d.ts +158 -0
- package/src/lib/app-utils/list-import.js +332 -0
- package/src/lib/app-utils/list-import.js.map +1 -0
- package/src/lib/app-utils/llms-txt.d.ts +104 -0
- package/src/lib/app-utils/llms-txt.js +144 -0
- package/src/lib/app-utils/llms-txt.js.map +1 -0
- package/src/lib/app-utils/local-storage-budget.d.ts +75 -0
- package/src/lib/app-utils/local-storage-budget.js +153 -0
- package/src/lib/app-utils/local-storage-budget.js.map +1 -0
- package/src/lib/app-utils/lockdown.d.ts +698 -0
- package/src/lib/app-utils/lockdown.js +929 -0
- package/src/lib/app-utils/lockdown.js.map +1 -0
- package/src/lib/app-utils/margin-utilization.d.ts +267 -0
- package/src/lib/app-utils/margin-utilization.js +351 -0
- package/src/lib/app-utils/margin-utilization.js.map +1 -0
- package/src/lib/app-utils/markdown-lite.d.ts +297 -0
- package/src/lib/app-utils/markdown-lite.js +705 -0
- package/src/lib/app-utils/markdown-lite.js.map +1 -0
- package/src/lib/app-utils/marketing-consent.d.ts +704 -0
- package/src/lib/app-utils/marketing-consent.js +783 -0
- package/src/lib/app-utils/marketing-consent.js.map +1 -0
- package/src/lib/app-utils/marketplace-listing-visibility.d.ts +120 -0
- package/src/lib/app-utils/marketplace-listing-visibility.js +139 -0
- package/src/lib/app-utils/marketplace-listing-visibility.js.map +1 -0
- package/src/lib/app-utils/marketplace-overrides.d.ts +271 -0
- package/src/lib/app-utils/marketplace-overrides.js +462 -0
- package/src/lib/app-utils/marketplace-overrides.js.map +1 -0
- package/src/lib/app-utils/marketplace-provenance.d.ts +150 -0
- package/src/lib/app-utils/marketplace-provenance.js +136 -0
- package/src/lib/app-utils/marketplace-provenance.js.map +1 -0
- package/src/lib/app-utils/marketplace-theme.d.ts +237 -0
- package/src/lib/app-utils/marketplace-theme.js +525 -0
- package/src/lib/app-utils/marketplace-theme.js.map +1 -0
- package/src/lib/app-utils/marketplace-update-state.d.ts +119 -0
- package/src/lib/app-utils/marketplace-update-state.js +132 -0
- package/src/lib/app-utils/marketplace-update-state.js.map +1 -0
- package/src/lib/app-utils/marketplace-verification.d.ts +95 -0
- package/src/lib/app-utils/marketplace-verification.js +81 -0
- package/src/lib/app-utils/marketplace-verification.js.map +1 -0
- package/src/lib/app-utils/measure-node-map.d.ts +76 -0
- package/src/lib/app-utils/measure-node-map.js +111 -0
- package/src/lib/app-utils/measure-node-map.js.map +1 -0
- package/src/lib/app-utils/media-alt.d.ts +55 -0
- package/src/lib/app-utils/media-alt.js +58 -0
- package/src/lib/app-utils/media-alt.js.map +1 -0
- package/src/lib/app-utils/media-asset-facts.d.ts +125 -0
- package/src/lib/app-utils/media-asset-facts.js +467 -0
- package/src/lib/app-utils/media-asset-facts.js.map +1 -0
- package/src/lib/app-utils/media-cdn-scope.d.ts +65 -0
- package/src/lib/app-utils/media-cdn-scope.js +75 -0
- package/src/lib/app-utils/media-cdn-scope.js.map +1 -0
- package/src/lib/app-utils/media-folders.d.ts +161 -0
- package/src/lib/app-utils/media-folders.js +230 -0
- package/src/lib/app-utils/media-folders.js.map +1 -0
- package/src/lib/app-utils/media-metadata.d.ts +277 -0
- package/src/lib/app-utils/media-metadata.js +388 -0
- package/src/lib/app-utils/media-metadata.js.map +1 -0
- package/src/lib/app-utils/media-picker-context.d.ts +93 -0
- package/src/lib/app-utils/media-picker-context.js +26 -0
- package/src/lib/app-utils/media-picker-context.js.map +1 -0
- package/src/lib/app-utils/media-quarantine.d.ts +247 -0
- package/src/lib/app-utils/media-quarantine.js +323 -0
- package/src/lib/app-utils/media-quarantine.js.map +1 -0
- package/src/lib/app-utils/media-ref.d.ts +661 -0
- package/src/lib/app-utils/media-ref.js +1055 -0
- package/src/lib/app-utils/media-ref.js.map +1 -0
- package/src/lib/app-utils/media-takedown-reach.d.ts +126 -0
- package/src/lib/app-utils/media-takedown-reach.js +143 -0
- package/src/lib/app-utils/media-takedown-reach.js.map +1 -0
- package/src/lib/app-utils/member-email-aliases.d.ts +180 -0
- package/src/lib/app-utils/member-email-aliases.js +217 -0
- package/src/lib/app-utils/member-email-aliases.js.map +1 -0
- package/src/lib/app-utils/merge-node-sx.d.ts +47 -0
- package/src/lib/app-utils/merge-node-sx.js +123 -0
- package/src/lib/app-utils/merge-node-sx.js.map +1 -0
- package/src/lib/app-utils/name-match.d.ts +155 -0
- package/src/lib/app-utils/name-match.js +175 -0
- package/src/lib/app-utils/name-match.js.map +1 -0
- package/src/lib/app-utils/name-search.d.ts +117 -0
- package/src/lib/app-utils/name-search.js +145 -0
- package/src/lib/app-utils/name-search.js.map +1 -0
- package/src/lib/app-utils/node-capabilities.d.ts +85 -0
- package/src/lib/app-utils/node-capabilities.js +88 -0
- package/src/lib/app-utils/node-capabilities.js.map +1 -0
- package/src/lib/app-utils/node-definition-sanitizer.d.ts +164 -0
- package/src/lib/app-utils/node-definition-sanitizer.js +402 -0
- package/src/lib/app-utils/node-definition-sanitizer.js.map +1 -0
- package/src/lib/app-utils/node-identity.d.ts +47 -0
- package/src/lib/app-utils/node-identity.js +50 -0
- package/src/lib/app-utils/node-identity.js.map +1 -0
- package/src/lib/app-utils/node-interactions.d.ts +102 -0
- package/src/lib/app-utils/node-interactions.js +192 -0
- package/src/lib/app-utils/node-interactions.js.map +1 -0
- package/src/lib/app-utils/node-url-policy.d.ts +54 -0
- package/src/lib/app-utils/node-url-policy.js +72 -0
- package/src/lib/app-utils/node-url-policy.js.map +1 -0
- package/src/lib/app-utils/notifications.d.ts +71 -0
- package/src/lib/app-utils/notifications.js +101 -0
- package/src/lib/app-utils/notifications.js.map +1 -0
- package/src/lib/app-utils/onboarding-deep-link.d.ts +120 -0
- package/src/lib/app-utils/onboarding-deep-link.js +142 -0
- package/src/lib/app-utils/onboarding-deep-link.js.map +1 -0
- package/src/lib/app-utils/operator-identity.d.ts +207 -0
- package/src/lib/app-utils/operator-identity.js +186 -0
- package/src/lib/app-utils/operator-identity.js.map +1 -0
- package/src/lib/app-utils/org-billing-doc.d.ts +231 -0
- package/src/lib/app-utils/org-billing-doc.js +238 -0
- package/src/lib/app-utils/org-billing-doc.js.map +1 -0
- package/src/lib/app-utils/org-override-reason.d.ts +100 -0
- package/src/lib/app-utils/org-override-reason.js +116 -0
- package/src/lib/app-utils/org-override-reason.js.map +1 -0
- package/src/lib/app-utils/org-permissions.d.ts +194 -0
- package/src/lib/app-utils/org-permissions.js +357 -0
- package/src/lib/app-utils/org-permissions.js.map +1 -0
- package/src/lib/app-utils/org-roles.d.ts +72 -0
- package/src/lib/app-utils/org-roles.js +131 -0
- package/src/lib/app-utils/org-roles.js.map +1 -0
- package/src/lib/app-utils/organizations.d.ts +407 -0
- package/src/lib/app-utils/organizations.js +511 -0
- package/src/lib/app-utils/organizations.js.map +1 -0
- package/src/lib/app-utils/page-header-actions-context.d.ts +83 -0
- package/src/lib/app-utils/page-header-actions-context.js +58 -0
- package/src/lib/app-utils/page-header-actions-context.js.map +1 -0
- package/src/lib/app-utils/page-header-record-context.d.ts +80 -0
- package/src/lib/app-utils/page-header-record-context.js +64 -0
- package/src/lib/app-utils/page-header-record-context.js.map +1 -0
- package/src/lib/app-utils/page-markdown.d.ts +103 -0
- package/src/lib/app-utils/page-markdown.js +385 -0
- package/src/lib/app-utils/page-markdown.js.map +1 -0
- package/src/lib/app-utils/paid-media-source.d.ts +90 -0
- package/src/lib/app-utils/paid-media-source.js +184 -0
- package/src/lib/app-utils/paid-media-source.js.map +1 -0
- package/src/lib/app-utils/palette-sx.d.ts +34 -0
- package/src/lib/app-utils/palette-sx.js +150 -0
- package/src/lib/app-utils/palette-sx.js.map +1 -0
- package/src/lib/app-utils/password-policy.d.ts +47 -0
- package/src/lib/app-utils/password-policy.js +46 -0
- package/src/lib/app-utils/password-policy.js.map +1 -0
- package/src/lib/app-utils/payments-configured.d.ts +84 -0
- package/src/lib/app-utils/payments-configured.js +88 -0
- package/src/lib/app-utils/payments-configured.js.map +1 -0
- package/src/lib/app-utils/person-erasure.d.ts +126 -0
- package/src/lib/app-utils/person-erasure.js +121 -0
- package/src/lib/app-utils/person-erasure.js.map +1 -0
- package/src/lib/app-utils/person-key.d.ts +32 -0
- package/src/lib/app-utils/person-key.js +62 -0
- package/src/lib/app-utils/person-key.js.map +1 -0
- package/src/lib/app-utils/plan-entitlements.d.ts +2756 -0
- package/src/lib/app-utils/plan-entitlements.js +4085 -0
- package/src/lib/app-utils/plan-entitlements.js.map +1 -0
- package/src/lib/app-utils/platform-ad-conversions.d.ts +122 -0
- package/src/lib/app-utils/platform-ad-conversions.js +174 -0
- package/src/lib/app-utils/platform-ad-conversions.js.map +1 -0
- package/src/lib/app-utils/platform-advertising-tags.d.ts +139 -0
- package/src/lib/app-utils/platform-advertising-tags.js +203 -0
- package/src/lib/app-utils/platform-advertising-tags.js.map +1 -0
- package/src/lib/app-utils/platform-brand.d.ts +151 -0
- package/src/lib/app-utils/platform-brand.js +175 -0
- package/src/lib/app-utils/platform-brand.js.map +1 -0
- package/src/lib/app-utils/platform-consent-default.d.ts +142 -0
- package/src/lib/app-utils/platform-consent-default.js +295 -0
- package/src/lib/app-utils/platform-consent-default.js.map +1 -0
- package/src/lib/app-utils/platform-marketing-consent.d.ts +151 -0
- package/src/lib/app-utils/platform-marketing-consent.js +182 -0
- package/src/lib/app-utils/platform-marketing-consent.js.map +1 -0
- package/src/lib/app-utils/platform-marketing-host.d.ts +33 -0
- package/src/lib/app-utils/platform-marketing-host.js +97 -0
- package/src/lib/app-utils/platform-marketing-host.js.map +1 -0
- package/src/lib/app-utils/platform-visitor-consent.d.ts +252 -0
- package/src/lib/app-utils/platform-visitor-consent.js +533 -0
- package/src/lib/app-utils/platform-visitor-consent.js.map +1 -0
- package/src/lib/app-utils/plugin-api-cross-origin.d.ts +61 -0
- package/src/lib/app-utils/plugin-api-cross-origin.js +202 -0
- package/src/lib/app-utils/plugin-api-cross-origin.js.map +1 -0
- package/src/lib/app-utils/plugin-api-rate-limit.d.ts +192 -0
- package/src/lib/app-utils/plugin-api-rate-limit.js +270 -0
- package/src/lib/app-utils/plugin-api-rate-limit.js.map +1 -0
- package/src/lib/app-utils/plugin-artifact-path.d.ts +32 -0
- package/src/lib/app-utils/plugin-artifact-path.js +33 -0
- package/src/lib/app-utils/plugin-artifact-path.js.map +1 -0
- package/src/lib/app-utils/plugin-bundle-checks.d.ts +148 -0
- package/src/lib/app-utils/plugin-bundle-checks.js +989 -0
- package/src/lib/app-utils/plugin-bundle-checks.js.map +1 -0
- package/src/lib/app-utils/plugin-manifest.d.ts +516 -0
- package/src/lib/app-utils/plugin-manifest.js +687 -0
- package/src/lib/app-utils/plugin-manifest.js.map +1 -0
- package/src/lib/app-utils/published-legal-pages.d.ts +71 -0
- package/src/lib/app-utils/published-legal-pages.js +90 -0
- package/src/lib/app-utils/published-legal-pages.js.map +1 -0
- package/src/lib/app-utils/publisher-agreement.d.ts +254 -0
- package/src/lib/app-utils/publisher-agreement.js +274 -0
- package/src/lib/app-utils/publisher-agreement.js.map +1 -0
- package/src/lib/app-utils/publisher-attestation.d.ts +99 -0
- package/src/lib/app-utils/publisher-attestation.js +158 -0
- package/src/lib/app-utils/publisher-attestation.js.map +1 -0
- package/src/lib/app-utils/recipient-email-render.d.ts +216 -0
- package/src/lib/app-utils/recipient-email-render.js +221 -0
- package/src/lib/app-utils/recipient-email-render.js.map +1 -0
- package/src/lib/app-utils/redispatch-caught-error.d.ts +38 -0
- package/src/lib/app-utils/redispatch-caught-error.js +46 -0
- package/src/lib/app-utils/redispatch-caught-error.js.map +1 -0
- package/src/lib/app-utils/registering-plugin.d.ts +19 -0
- package/src/lib/app-utils/registering-plugin.js +38 -0
- package/src/lib/app-utils/registering-plugin.js.map +1 -0
- package/src/lib/app-utils/release-flags.d.ts +283 -0
- package/src/lib/app-utils/release-flags.js +518 -0
- package/src/lib/app-utils/release-flags.js.map +1 -0
- package/src/lib/app-utils/repair-canvas-nodes.d.ts +130 -0
- package/src/lib/app-utils/repair-canvas-nodes.js +298 -0
- package/src/lib/app-utils/repair-canvas-nodes.js.map +1 -0
- package/src/lib/app-utils/repeat-infringer.d.ts +166 -0
- package/src/lib/app-utils/repeat-infringer.js +188 -0
- package/src/lib/app-utils/repeat-infringer.js.map +1 -0
- package/src/lib/app-utils/repeat-sources.d.ts +115 -0
- package/src/lib/app-utils/repeat-sources.js +86 -0
- package/src/lib/app-utils/repeat-sources.js.map +1 -0
- package/src/lib/app-utils/request-geo.d.ts +114 -0
- package/src/lib/app-utils/request-geo.js +247 -0
- package/src/lib/app-utils/request-geo.js.map +1 -0
- package/src/lib/app-utils/request-ip.d.ts +213 -0
- package/src/lib/app-utils/request-ip.js +344 -0
- package/src/lib/app-utils/request-ip.js.map +1 -0
- package/src/lib/app-utils/resolve-named-tokens.d.ts +26 -0
- package/src/lib/app-utils/resolve-named-tokens.js +59 -0
- package/src/lib/app-utils/resolve-named-tokens.js.map +1 -0
- package/src/lib/app-utils/responsive-typography-sx.d.ts +77 -0
- package/src/lib/app-utils/responsive-typography-sx.js +122 -0
- package/src/lib/app-utils/responsive-typography-sx.js.map +1 -0
- package/src/lib/app-utils/reusable-component-keys.d.ts +135 -0
- package/src/lib/app-utils/reusable-component-keys.js +140 -0
- package/src/lib/app-utils/reusable-component-keys.js.map +1 -0
- package/src/lib/app-utils/reusable-prop-values.d.ts +199 -0
- package/src/lib/app-utils/reusable-prop-values.js +494 -0
- package/src/lib/app-utils/reusable-prop-values.js.map +1 -0
- package/src/lib/app-utils/safe-json-ld.d.ts +29 -0
- package/src/lib/app-utils/safe-json-ld.js +37 -0
- package/src/lib/app-utils/safe-json-ld.js.map +1 -0
- package/src/lib/app-utils/sanitize-svg.d.ts +55 -0
- package/src/lib/app-utils/sanitize-svg.js +460 -0
- package/src/lib/app-utils/sanitize-svg.js.map +1 -0
- package/src/lib/app-utils/scheme-sx.d.ts +84 -0
- package/src/lib/app-utils/scheme-sx.js +148 -0
- package/src/lib/app-utils/scheme-sx.js.map +1 -0
- package/src/lib/app-utils/scope-tokens.d.ts +249 -0
- package/src/lib/app-utils/scope-tokens.js +331 -0
- package/src/lib/app-utils/scope-tokens.js.map +1 -0
- package/src/lib/app-utils/screen-link-context-value.d.ts +57 -0
- package/src/lib/app-utils/screen-link-context-value.js +43 -0
- package/src/lib/app-utils/screen-link-context-value.js.map +1 -0
- package/src/lib/app-utils/screen-link-context.d.ts +185 -0
- package/src/lib/app-utils/screen-link-context.js +304 -0
- package/src/lib/app-utils/screen-link-context.js.map +1 -0
- package/src/lib/app-utils/screen-link-value.d.ts +269 -0
- package/src/lib/app-utils/screen-link-value.js +384 -0
- package/src/lib/app-utils/screen-link-value.js.map +1 -0
- package/src/lib/app-utils/screen-route.d.ts +669 -0
- package/src/lib/app-utils/screen-route.js +751 -0
- package/src/lib/app-utils/screen-route.js.map +1 -0
- package/src/lib/app-utils/screen-seo-fields.d.ts +37 -0
- package/src/lib/app-utils/screen-seo-fields.js +42 -0
- package/src/lib/app-utils/screen-seo-fields.js.map +1 -0
- package/src/lib/app-utils/search-indexing.d.ts +162 -0
- package/src/lib/app-utils/search-indexing.js +207 -0
- package/src/lib/app-utils/search-indexing.js.map +1 -0
- package/src/lib/app-utils/seo-listing-fields.d.ts +70 -0
- package/src/lib/app-utils/seo-listing-fields.js +75 -0
- package/src/lib/app-utils/seo-listing-fields.js.map +1 -0
- package/src/lib/app-utils/seo-locale.d.ts +119 -0
- package/src/lib/app-utils/seo-locale.js +133 -0
- package/src/lib/app-utils/seo-locale.js.map +1 -0
- package/src/lib/app-utils/seo-title-variables.d.ts +149 -0
- package/src/lib/app-utils/seo-title-variables.js +190 -0
- package/src/lib/app-utils/seo-title-variables.js.map +1 -0
- package/src/lib/app-utils/seo-title.d.ts +70 -0
- package/src/lib/app-utils/seo-title.js +117 -0
- package/src/lib/app-utils/seo-title.js.map +1 -0
- package/src/lib/app-utils/server.d.ts +174 -0
- package/src/lib/app-utils/server.js +314 -0
- package/src/lib/app-utils/server.js.map +1 -0
- package/src/lib/app-utils/site-context.d.ts +106 -0
- package/src/lib/app-utils/site-context.js +100 -0
- package/src/lib/app-utils/site-context.js.map +1 -0
- package/src/lib/app-utils/sitemap.d.ts +117 -0
- package/src/lib/app-utils/sitemap.js +183 -0
- package/src/lib/app-utils/sitemap.js.map +1 -0
- package/src/lib/app-utils/social-image.d.ts +112 -0
- package/src/lib/app-utils/social-image.js +191 -0
- package/src/lib/app-utils/social-image.js.map +1 -0
- package/src/lib/app-utils/starter-templates.d.ts +99 -0
- package/src/lib/app-utils/starter-templates.js +579 -0
- package/src/lib/app-utils/starter-templates.js.map +1 -0
- package/src/lib/app-utils/stored-nodes.d.ts +120 -0
- package/src/lib/app-utils/stored-nodes.js +174 -0
- package/src/lib/app-utils/stored-nodes.js.map +1 -0
- package/src/lib/app-utils/strip-undefined.d.ts +59 -0
- package/src/lib/app-utils/strip-undefined.js +95 -0
- package/src/lib/app-utils/strip-undefined.js.map +1 -0
- package/src/lib/app-utils/stripe-deployment-mode.d.ts +47 -0
- package/src/lib/app-utils/stripe-deployment-mode.js +70 -0
- package/src/lib/app-utils/stripe-deployment-mode.js.map +1 -0
- package/src/lib/app-utils/support-tiers.d.ts +108 -0
- package/src/lib/app-utils/support-tiers.js +201 -0
- package/src/lib/app-utils/support-tiers.js.map +1 -0
- package/src/lib/app-utils/timezone-geo-hint.d.ts +36 -0
- package/src/lib/app-utils/timezone-geo-hint.js +180 -0
- package/src/lib/app-utils/timezone-geo-hint.js.map +1 -0
- package/src/lib/app-utils/upload-cors.d.ts +155 -0
- package/src/lib/app-utils/upload-cors.js +254 -0
- package/src/lib/app-utils/upload-cors.js.map +1 -0
- package/src/lib/app-utils/upload-inspection.d.ts +159 -0
- package/src/lib/app-utils/upload-inspection.js +539 -0
- package/src/lib/app-utils/upload-inspection.js.map +1 -0
- package/src/lib/app-utils/url-slug.d.ts +40 -0
- package/src/lib/app-utils/url-slug.js +42 -0
- package/src/lib/app-utils/url-slug.js.map +1 -0
- package/src/lib/app-utils/usage-budget.d.ts +429 -0
- package/src/lib/app-utils/usage-budget.js +421 -0
- package/src/lib/app-utils/usage-budget.js.map +1 -0
- package/src/lib/app-utils/variables.d.ts +96 -0
- package/src/lib/app-utils/variables.js +233 -0
- package/src/lib/app-utils/variables.js.map +1 -0
- package/src/lib/app-utils/video-asset-facts.d.ts +61 -0
- package/src/lib/app-utils/video-asset-facts.js +70 -0
- package/src/lib/app-utils/video-asset-facts.js.map +1 -0
- package/src/lib/app-utils/video-object.d.ts +89 -0
- package/src/lib/app-utils/video-object.js +245 -0
- package/src/lib/app-utils/video-object.js.map +1 -0
- package/src/lib/app-utils/visitor-consent.d.ts +757 -0
- package/src/lib/app-utils/visitor-consent.js +981 -0
- package/src/lib/app-utils/visitor-consent.js.map +1 -0
- package/src/lib/app-utils/visitor-record-ceiling.d.ts +223 -0
- package/src/lib/app-utils/visitor-record-ceiling.js +215 -0
- package/src/lib/app-utils/visitor-record-ceiling.js.map +1 -0
- package/src/lib/app-utils/web-vitals-rum.d.ts +53 -0
- package/src/lib/app-utils/web-vitals-rum.js +278 -0
- package/src/lib/app-utils/web-vitals-rum.js.map +1 -0
- package/src/lib/app-utils/webhook-delivery.d.ts +324 -0
- package/src/lib/app-utils/webhook-delivery.js +413 -0
- package/src/lib/app-utils/webhook-delivery.js.map +1 -0
- package/src/lib/app-utils/where-used.d.ts +57 -0
- package/src/lib/app-utils/where-used.js +59 -0
- package/src/lib/app-utils/where-used.js.map +1 -0
- package/src/lib/app-utils/wistia-embed.d.ts +86 -0
- package/src/lib/app-utils/wistia-embed.js +119 -0
- package/src/lib/app-utils/wistia-embed.js.map +1 -0
- package/src/lib/app-utils/workflows.d.ts +136 -0
- package/src/lib/app-utils/workflows.js +346 -0
- package/src/lib/app-utils/workflows.js.map +1 -0
- package/src/lib/canvas-manager/canvas-manager-tree.d.ts +109 -0
- package/src/lib/canvas-manager/canvas-manager-tree.js +139 -0
- package/src/lib/canvas-manager/canvas-manager-tree.js.map +1 -0
- package/src/lib/canvas-manager/canvas-manager.d.ts +549 -0
- package/src/lib/canvas-manager/canvas-manager.js +1311 -0
- package/src/lib/canvas-manager/canvas-manager.js.map +1 -0
- package/src/lib/canvas-manager/index.d.ts +20 -0
- package/src/lib/canvas-manager/index.js +21 -0
- package/src/lib/canvas-manager/index.js.map +1 -0
- package/src/lib/canvas-manager/stores/index.d.ts +17 -0
- package/src/lib/canvas-manager/stores/index.js +18 -0
- package/src/lib/canvas-manager/stores/index.js.map +1 -0
- package/src/lib/canvas-manager/stores/node.store.d.ts +30 -0
- package/src/lib/canvas-manager/stores/node.store.js +45 -0
- package/src/lib/canvas-manager/stores/node.store.js.map +1 -0
- package/src/lib/components-manager/components-manager.d.ts +56 -0
- package/src/lib/components-manager/components-manager.js +191 -0
- package/src/lib/components-manager/components-manager.js.map +1 -0
- package/src/lib/components-manager/index.d.ts +18 -0
- package/src/lib/components-manager/index.js +19 -0
- package/src/lib/components-manager/index.js.map +1 -0
- package/src/lib/emit-manager/emit-manager.d.ts +56 -0
- package/src/lib/emit-manager/emit-manager.js +60 -0
- package/src/lib/emit-manager/emit-manager.js.map +1 -0
- package/src/lib/emit-manager/index.d.ts +18 -0
- package/src/lib/emit-manager/index.js +19 -0
- package/src/lib/emit-manager/index.js.map +1 -0
- package/src/lib/foundation/constants/_internal.d.ts +18 -0
- package/src/lib/foundation/constants/_internal.js +62 -0
- package/src/lib/foundation/constants/_internal.js.map +1 -0
- package/src/lib/foundation/constants/app.d.ts +23 -0
- package/src/lib/foundation/constants/app.js +25 -0
- package/src/lib/foundation/constants/app.js.map +1 -0
- package/src/lib/foundation/constants/canvas.d.ts +18 -0
- package/src/lib/foundation/constants/canvas.js +18 -0
- package/src/lib/foundation/constants/canvas.js.map +1 -0
- package/src/lib/foundation/constants/components.d.ts +54 -0
- package/src/lib/foundation/constants/components.js +61 -0
- package/src/lib/foundation/constants/components.js.map +1 -0
- package/src/lib/foundation/constants/shared.d.ts +50 -0
- package/src/lib/foundation/constants/shared.js +49 -0
- package/src/lib/foundation/constants/shared.js.map +1 -0
- package/src/lib/foundation/constants/symbol.d.ts +63 -0
- package/src/lib/foundation/constants/symbol.js +75 -0
- package/src/lib/foundation/constants/symbol.js.map +1 -0
- package/src/lib/foundation/definitions/components.types.d.ts +372 -0
- package/src/lib/foundation/definitions/components.types.js +180 -0
- package/src/lib/foundation/definitions/components.types.js.map +1 -0
- package/src/lib/foundation/definitions/contact.types.d.ts +73 -0
- package/src/lib/foundation/definitions/contact.types.js +107 -0
- package/src/lib/foundation/definitions/contact.types.js.map +1 -0
- package/src/lib/foundation/definitions/host-content-collections.d.ts +137 -0
- package/src/lib/foundation/definitions/host-content-collections.js +219 -0
- package/src/lib/foundation/definitions/host-content-collections.js.map +1 -0
- package/src/lib/foundation/definitions/org-billing.types.d.ts +1361 -0
- package/src/lib/foundation/definitions/org-billing.types.js +77 -0
- package/src/lib/foundation/definitions/org-billing.types.js.map +1 -0
- package/src/lib/foundation/definitions/organization.types.d.ts +307 -0
- package/src/lib/foundation/definitions/organization.types.js +42 -0
- package/src/lib/foundation/definitions/organization.types.js.map +1 -0
- package/src/lib/foundation/definitions/platform.types.d.ts +1326 -0
- package/src/lib/foundation/definitions/platform.types.js +124 -0
- package/src/lib/foundation/definitions/platform.types.js.map +1 -0
- package/src/lib/foundation/definitions/property-kinds.d.ts +189 -0
- package/src/lib/foundation/definitions/property-kinds.js +565 -0
- package/src/lib/foundation/definitions/property-kinds.js.map +1 -0
- package/src/lib/foundation/definitions/shared.d.ts +23 -0
- package/src/lib/foundation/definitions/shared.js +18 -0
- package/src/lib/foundation/definitions/shared.js.map +1 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +249 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js +499 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -0
- package/src/lib/foundation/index.d.ts +32 -0
- package/src/lib/foundation/index.js +67 -0
- package/src/lib/foundation/index.js.map +1 -0
- package/src/lib/lifecycle.d.ts +24 -0
- package/src/lib/lifecycle.js +39 -0
- package/src/lib/lifecycle.js.map +1 -0
- package/src/lib/mst/common.d.ts +17 -0
- package/src/lib/mst/common.js +23 -0
- package/src/lib/mst/common.js.map +1 -0
- package/src/lib/mst/index.d.ts +19 -0
- package/src/lib/mst/index.js +20 -0
- package/src/lib/mst/index.js.map +1 -0
- package/src/lib/mst/json.d.ts +22 -0
- package/src/lib/mst/json.js +23 -0
- package/src/lib/mst/json.js.map +1 -0
- package/src/lib/mst/types.d.ts +20 -0
- package/src/lib/mst/types.js +18 -0
- package/src/lib/mst/types.js.map +1 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.d.ts +77 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.js +55 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.js.map +1 -0
- package/src/lib/plugin-manager/commerce-zone-props.d.ts +172 -0
- package/src/lib/plugin-manager/commerce-zone-props.js +31 -0
- package/src/lib/plugin-manager/commerce-zone-props.js.map +1 -0
- package/src/lib/plugin-manager/custom-fields.d.ts +60 -0
- package/src/lib/plugin-manager/custom-fields.js +39 -0
- package/src/lib/plugin-manager/custom-fields.js.map +1 -0
- package/src/lib/plugin-manager/editor-sessions.d.ts +109 -0
- package/src/lib/plugin-manager/editor-sessions.js +137 -0
- package/src/lib/plugin-manager/editor-sessions.js.map +1 -0
- package/src/lib/plugin-manager/enabled-plugins.d.ts +438 -0
- package/src/lib/plugin-manager/enabled-plugins.js +403 -0
- package/src/lib/plugin-manager/enabled-plugins.js.map +1 -0
- package/src/lib/plugin-manager/feature-plugins.d.ts +1314 -0
- package/src/lib/plugin-manager/feature-plugins.js +609 -0
- package/src/lib/plugin-manager/feature-plugins.js.map +1 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +11 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js +149 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -0
- package/src/lib/plugin-manager/index.d.ts +42 -0
- package/src/lib/plugin-manager/index.js +46 -0
- package/src/lib/plugin-manager/index.js.map +1 -0
- package/src/lib/plugin-manager/install-presets.d.ts +93 -0
- package/src/lib/plugin-manager/install-presets.js +86 -0
- package/src/lib/plugin-manager/install-presets.js.map +1 -0
- package/src/lib/plugin-manager/media-delivery-provider.d.ts +124 -0
- package/src/lib/plugin-manager/media-delivery-provider.js +53 -0
- package/src/lib/plugin-manager/media-delivery-provider.js.map +1 -0
- package/src/lib/plugin-manager/order-fulfilment.d.ts +142 -0
- package/src/lib/plugin-manager/order-fulfilment.js +104 -0
- package/src/lib/plugin-manager/order-fulfilment.js.map +1 -0
- package/src/lib/plugin-manager/plugin-activity-actions.d.ts +122 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js +140 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-bridge.d.ts +98 -0
- package/src/lib/plugin-manager/plugin-bridge.js +154 -0
- package/src/lib/plugin-manager/plugin-bridge.js.map +1 -0
- package/src/lib/plugin-manager/plugin-config.d.ts +148 -0
- package/src/lib/plugin-manager/plugin-config.js +228 -0
- package/src/lib/plugin-manager/plugin-config.js.map +1 -0
- package/src/lib/plugin-manager/plugin-console-crons.d.ts +139 -0
- package/src/lib/plugin-manager/plugin-console-crons.js +177 -0
- package/src/lib/plugin-manager/plugin-console-crons.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contact-capture.d.ts +220 -0
- package/src/lib/plugin-manager/plugin-contact-capture.js +89 -0
- package/src/lib/plugin-manager/plugin-contact-capture.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contributions.d.ts +244 -0
- package/src/lib/plugin-manager/plugin-contributions.js +283 -0
- package/src/lib/plugin-manager/plugin-contributions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.d.ts +169 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.js +84 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.js.map +1 -0
- package/src/lib/plugin-manager/plugin-entitlements.d.ts +181 -0
- package/src/lib/plugin-manager/plugin-entitlements.js +188 -0
- package/src/lib/plugin-manager/plugin-entitlements.js.map +1 -0
- package/src/lib/plugin-manager/plugin-events.d.ts +145 -0
- package/src/lib/plugin-manager/plugin-events.js +79 -0
- package/src/lib/plugin-manager/plugin-events.js.map +1 -0
- package/src/lib/plugin-manager/plugin-figures.d.ts +251 -0
- package/src/lib/plugin-manager/plugin-figures.js +252 -0
- package/src/lib/plugin-manager/plugin-figures.js.map +1 -0
- package/src/lib/plugin-manager/plugin-host-collections.d.ts +146 -0
- package/src/lib/plugin-manager/plugin-host-collections.js +116 -0
- package/src/lib/plugin-manager/plugin-host-collections.js.map +1 -0
- package/src/lib/plugin-manager/plugin-jobs.d.ts +130 -0
- package/src/lib/plugin-manager/plugin-jobs.js +182 -0
- package/src/lib/plugin-manager/plugin-jobs.js.map +1 -0
- package/src/lib/plugin-manager/plugin-loader.d.ts +86 -0
- package/src/lib/plugin-manager/plugin-loader.js +223 -0
- package/src/lib/plugin-manager/plugin-loader.js.map +1 -0
- package/src/lib/plugin-manager/plugin-manager.d.ts +95 -0
- package/src/lib/plugin-manager/plugin-manager.js +343 -0
- package/src/lib/plugin-manager/plugin-manager.js.map +1 -0
- package/src/lib/plugin-manager/plugin-metered-lines.d.ts +97 -0
- package/src/lib/plugin-manager/plugin-metered-lines.js +123 -0
- package/src/lib/plugin-manager/plugin-metered-lines.js.map +1 -0
- package/src/lib/plugin-manager/plugin-org-erasure.d.ts +52 -0
- package/src/lib/plugin-manager/plugin-org-erasure.js +100 -0
- package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-permissions.d.ts +69 -0
- package/src/lib/plugin-manager/plugin-permissions.js +77 -0
- package/src/lib/plugin-manager/plugin-permissions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-person-erasure.d.ts +58 -0
- package/src/lib/plugin-manager/plugin-person-erasure.js +109 -0
- package/src/lib/plugin-manager/plugin-person-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-cards.d.ts +99 -0
- package/src/lib/plugin-manager/plugin-record-cards.js +59 -0
- package/src/lib/plugin-manager/plugin-record-cards.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-facts.d.ts +111 -0
- package/src/lib/plugin-manager/plugin-record-facts.js +51 -0
- package/src/lib/plugin-manager/plugin-record-facts.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-routes.d.ts +129 -0
- package/src/lib/plugin-manager/plugin-record-routes.js +93 -0
- package/src/lib/plugin-manager/plugin-record-routes.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-timeline.d.ts +147 -0
- package/src/lib/plugin-manager/plugin-record-timeline.js +39 -0
- package/src/lib/plugin-manager/plugin-record-timeline.js.map +1 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.d.ts +137 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.js +51 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.js.map +1 -0
- package/src/lib/plugin-manager/plugin-services.d.ts +94 -0
- package/src/lib/plugin-manager/plugin-services.js +153 -0
- package/src/lib/plugin-manager/plugin-services.js.map +1 -0
- package/src/lib/plugin-manager/plugin-styles-ui.d.ts +71 -0
- package/src/lib/plugin-manager/plugin-styles-ui.js +80 -0
- package/src/lib/plugin-manager/plugin-styles-ui.js.map +1 -0
- package/src/lib/plugin-manager/plugin-styles.d.ts +176 -0
- package/src/lib/plugin-manager/plugin-styles.js +186 -0
- package/src/lib/plugin-manager/plugin-styles.js.map +1 -0
- package/src/lib/plugin-manager/plugin-subprocessors.d.ts +135 -0
- package/src/lib/plugin-manager/plugin-subprocessors.js +129 -0
- package/src/lib/plugin-manager/plugin-subprocessors.js.map +1 -0
- package/src/lib/plugin-manager/plugin-tax-profile.d.ts +84 -0
- package/src/lib/plugin-manager/plugin-tax-profile.js +39 -0
- package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -0
- package/src/lib/plugin-manager/plugin-user-erasure.d.ts +53 -0
- package/src/lib/plugin-manager/plugin-user-erasure.js +84 -0
- package/src/lib/plugin-manager/plugin-user-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-zones.d.ts +121 -0
- package/src/lib/plugin-manager/plugin-zones.js +74 -0
- package/src/lib/plugin-manager/plugin-zones.js.map +1 -0
- package/src/lib/plugin-manager/realm-plugins.d.ts +112 -0
- package/src/lib/plugin-manager/realm-plugins.js +196 -0
- package/src/lib/plugin-manager/realm-plugins.js.map +1 -0
- package/src/lib/plugin-manager/realm-server.d.ts +54 -0
- package/src/lib/plugin-manager/realm-server.js +88 -0
- package/src/lib/plugin-manager/realm-server.js.map +1 -0
- package/src/lib/plugin-manager/record-zone-props.d.ts +126 -0
- package/src/lib/plugin-manager/record-zone-props.js +31 -0
- package/src/lib/plugin-manager/record-zone-props.js.map +1 -0
- package/src/lib/plugin-manager/site-page-hooks.d.ts +102 -0
- package/src/lib/plugin-manager/site-page-hooks.js +114 -0
- package/src/lib/plugin-manager/site-page-hooks.js.map +1 -0
- package/src/lib/plugin-manager/site-runtime.d.ts +57 -0
- package/src/lib/plugin-manager/site-runtime.js +25 -0
- package/src/lib/plugin-manager/site-runtime.js.map +1 -0
- package/src/lib/plugin-manager/usage-alert-contributors.d.ts +115 -0
- package/src/lib/plugin-manager/usage-alert-contributors.js +106 -0
- package/src/lib/plugin-manager/usage-alert-contributors.js.map +1 -0
- package/src/lib/types/ast.d.ts +199 -0
- package/src/lib/types/ast.js +20 -0
- package/src/lib/types/ast.js.map +1 -0
- package/src/lib/types/index.d.ts +20 -0
- package/src/lib/types/index.js +21 -0
- package/src/lib/types/index.js.map +1 -0
- package/src/lib/types/nodes.d.ts +608 -0
- package/src/lib/types/nodes.js +28 -0
- package/src/lib/types/nodes.js.map +1 -0
- package/src/lib/types/routing.d.ts +17 -0
- package/src/lib/types/routing.js +18 -0
- package/src/lib/types/routing.js.map +1 -0
- package/src/lib/types/screen.d.ts +23 -0
- package/src/lib/types/screen.js +18 -0
- package/src/lib/types/screen.js.map +1 -0
- package/src/lib/utils.d.ts +25 -0
- package/src/lib/utils.js +42 -0
- package/src/lib/utils.js.map +1 -0
- package/src/server.d.ts +37 -0
- package/src/server.js +55 -0
- package/src/server.js.map +1 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* The shape this needs, rather than the class it usually gets (AGL-1151).
|
|
19
|
+
*
|
|
20
|
+
* A structural type keeps `firebase/firestore` out of this module entirely.
|
|
21
|
+
* The import here was type-only and therefore erased — it cost nothing — but
|
|
22
|
+
* naming the shape says what is actually required and stops the next person
|
|
23
|
+
* reaching for the class again.
|
|
24
|
+
*/
|
|
25
|
+
export interface ByteSource {
|
|
26
|
+
toUint8Array(): Uint8Array;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Either form the bytes arrive in: a Firestore `Bytes` (client SDK) or a bare
|
|
30
|
+
* view (AGL-1223). The Admin SDK materialises a bytes field as a Node
|
|
31
|
+
* `Buffer`, which has no `toUint8Array`, so server readers had to hand-roll an
|
|
32
|
+
* adapter — and the obvious adapter is wrong (see below).
|
|
33
|
+
*/
|
|
34
|
+
export type CompressedValue = ByteSource | ArrayBufferView;
|
|
35
|
+
export declare function decompress<T>(value: CompressedValue): T;
|
|
36
|
+
export default decompress;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ import { decode } from "@msgpack/msgpack";
|
|
17
|
+
function toBytes(value) {
|
|
18
|
+
if (ArrayBuffer.isView(value)) {
|
|
19
|
+
// Offset and length, ALWAYS. firebase-admin hands back POOLED Buffers —
|
|
20
|
+
// a 156-byte field is typically a view at some offset into a shared 8 KB
|
|
21
|
+
// ArrayBuffer — so `new Uint8Array(value.buffer)` decodes the whole pool
|
|
22
|
+
// and throws on the trailing garbage instead of returning the document.
|
|
23
|
+
return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
|
|
24
|
+
}
|
|
25
|
+
return value.toUint8Array();
|
|
26
|
+
}
|
|
27
|
+
export function decompress(value) {
|
|
28
|
+
return decode(toBytes(value));
|
|
29
|
+
}
|
|
30
|
+
export default decompress;
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=decompress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/decompress.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2022 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { decode } from '@msgpack/msgpack'\n\n/**\n * The shape this needs, rather than the class it usually gets (AGL-1151).\n *\n * A structural type keeps `firebase/firestore` out of this module entirely.\n * The import here was type-only and therefore erased — it cost nothing — but\n * naming the shape says what is actually required and stops the next person\n * reaching for the class again.\n */\nexport interface ByteSource {\n toUint8Array(): Uint8Array\n}\n\n/**\n * Either form the bytes arrive in: a Firestore `Bytes` (client SDK) or a bare\n * view (AGL-1223). The Admin SDK materialises a bytes field as a Node\n * `Buffer`, which has no `toUint8Array`, so server readers had to hand-roll an\n * adapter — and the obvious adapter is wrong (see below).\n */\nexport type CompressedValue = ByteSource | ArrayBufferView\n\nfunction toBytes(value: CompressedValue): Uint8Array {\n if (ArrayBuffer.isView(value)) {\n // Offset and length, ALWAYS. firebase-admin hands back POOLED Buffers —\n // a 156-byte field is typically a view at some offset into a shared 8 KB\n // ArrayBuffer — so `new Uint8Array(value.buffer)` decodes the whole pool\n // and throws on the trailing garbage instead of returning the document.\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n }\n return value.toUint8Array()\n}\n\nexport function decompress<T>(value: CompressedValue): T {\n return decode(toBytes(value)) as T\n}\nexport default decompress\n"],"names":["decode","toBytes","value","ArrayBuffer","isView","Uint8Array","buffer","byteOffset","byteLength","toUint8Array","decompress"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAASA,MAAM,QAAQ,mBAAkB;AAsBzC,SAASC,QAAQC,KAAsB;IACrC,IAAIC,YAAYC,MAAM,CAACF,QAAQ;QAC7B,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,OAAO,IAAIG,WAAWH,MAAMI,MAAM,EAAEJ,MAAMK,UAAU,EAAEL,MAAMM,UAAU;IACxE;IACA,OAAON,MAAMO,YAAY;AAC3B;AAEA,OAAO,SAASC,WAAcR,KAAsB;IAClD,OAAOF,OAAOC,QAAQC;AACxB;AACA,eAAeQ,WAAU"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import type { AglynOrgBilling, OrgPlan } from '../foundation/definitions/org-billing.types';
|
|
18
|
+
/**
|
|
19
|
+
* The lowest plan whose sites get a domain of their own, for the surfaces that
|
|
20
|
+
* have to NAME a tier — an upsell card, a refusal that says what to buy.
|
|
21
|
+
*
|
|
22
|
+
* Derived from `PLAN_ENTITLEMENTS` rather than declared, because a tier name
|
|
23
|
+
* written down beside a gate is pricing copy that keeps rendering after the
|
|
24
|
+
* gate moves. There is one decision here — the flag's column in the plan
|
|
25
|
+
* table — and this is a view of it, so the two cannot disagree.
|
|
26
|
+
*
|
|
27
|
+
* `planGrantingFeature` walks the self-serve ladder and then `enterprise`,
|
|
28
|
+
* which is priced by contract and is not a rung of `SELF_SERVE_PLANS`. It
|
|
29
|
+
* answers `undefined` when no plan carries the flag on its base tier; a caller
|
|
30
|
+
* naming a tier must handle that rather than substituting one.
|
|
31
|
+
*/
|
|
32
|
+
export declare const DEDICATED_SENDING_DOMAIN_MIN_PLAN: OrgPlan;
|
|
33
|
+
/**
|
|
34
|
+
* Whether an org's sites may hold a dedicated platform sending domain.
|
|
35
|
+
*
|
|
36
|
+
* Takes the ORG rather than its plan name, and that is the whole point: the
|
|
37
|
+
* answer is the plan's default with the org's own overrides applied, so a
|
|
38
|
+
* grant on one account is honored here without moving the account's tier.
|
|
39
|
+
*
|
|
40
|
+
* An absent org answers `false`. `resolveOrgEntitlements(null)` resolves to
|
|
41
|
+
* the free plan, which carries no dedicated domain, so a site whose org cannot
|
|
42
|
+
* be read still sends — on the pool, like every other site. The cost of
|
|
43
|
+
* failing closed is that a domain is not provisioned until the org resolves,
|
|
44
|
+
* which the sweep then corrects. Failing open would spend a zone record and a
|
|
45
|
+
* provider slot on an org nobody could name.
|
|
46
|
+
*/
|
|
47
|
+
export declare function holdsDedicatedSendingDomain(org: Partial<AglynOrgBilling> | null | undefined): boolean;
|
|
@@ -0,0 +1,114 @@
|
|
|
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
|
+
* WHO GETS A SENDING DOMAIN OF THEIR OWN.
|
|
18
|
+
*
|
|
19
|
+
* A site's mail leaves on one of three kinds of identity, and this module
|
|
20
|
+
* decides which of them an org may reach:
|
|
21
|
+
*
|
|
22
|
+
* shared pool `notifications@shared{n}.mail.aglyn.app`. Every site,
|
|
23
|
+
* every tier, no provisioning, no DNS. Transactional only.
|
|
24
|
+
* dedicated `hello@{label}.mail.aglyn.app`. One provider domain object
|
|
25
|
+
* and three records in OUR zone, per site. **This module.**
|
|
26
|
+
* customer-owned `hello@acme.com`. One provider domain object and records
|
|
27
|
+
* the customer publishes in THEIR zone. Gated separately, on
|
|
28
|
+
* the `customSendingDomain` feature flag, and available from
|
|
29
|
+
* the same tier as this one — it is the option that costs
|
|
30
|
+
* the platform no zone records at all, so it is the one that
|
|
31
|
+
* scales.
|
|
32
|
+
*
|
|
33
|
+
* ## Why the dedicated tier is a gate at all
|
|
34
|
+
*
|
|
35
|
+
* Not because a domain object has a price — it does not; the provider meters
|
|
36
|
+
* emails and contacts and bundles domains as a quota. Because it is `O(hosts)`
|
|
37
|
+
* in resources that do not stretch:
|
|
38
|
+
*
|
|
39
|
+
* - **Records in our own zone.** Three per site, forever. Nothing about a
|
|
40
|
+
* customer-owned domain costs us this, which is why the two are separate
|
|
41
|
+
* decisions rather than one "custom domain" feature.
|
|
42
|
+
* - **The provider's account-wide domain allowance**, which is a bundled
|
|
43
|
+
* quota with a real ceiling and no self-serve way past a certain size.
|
|
44
|
+
* - **A place in the re-verification sweep, permanently.** Every dedicated
|
|
45
|
+
* domain has to be re-checked on a schedule, against DNS and against the
|
|
46
|
+
* provider, at an account-wide rate limit the SENDS share. That cost
|
|
47
|
+
* recurs; the provisioning cost is paid once.
|
|
48
|
+
*
|
|
49
|
+
* Provisioning by SIGNUP spends all three on sites that may never send a
|
|
50
|
+
* message. Provisioning by PLAN spends them on sites whose revenue covers
|
|
51
|
+
* them — better, and still the wrong curve, because revenue is the number the
|
|
52
|
+
* platform is trying to grow while the provider's allowance grows only by
|
|
53
|
+
* purchase.
|
|
54
|
+
*
|
|
55
|
+
* So this gate is one of three conditions and not the only one. A domain is
|
|
56
|
+
* claimed when a merchant ASKS for one, from the sending-identity route; this
|
|
57
|
+
* decides whether their org carries what they asked for; and the provider
|
|
58
|
+
* ceiling in `provision-sending-domain.ts` decides whether the claim can
|
|
59
|
+
* actually be filled. Demand is therefore proportional to the merchants who
|
|
60
|
+
* want an Aglyn-branded sending name rather than to everyone who pays, and a
|
|
61
|
+
* site refused at any of the three keeps sending on the shared pool.
|
|
62
|
+
*
|
|
63
|
+
* ## An entitlement, so one org can be granted one
|
|
64
|
+
*
|
|
65
|
+
* `dedicatedSendingDomain` is read through `checkEntitlement` like every other
|
|
66
|
+
* capability on the platform, which buys two things a plan comparison cannot.
|
|
67
|
+
*
|
|
68
|
+
* A per-org override GRANTS it: staff can put a single lower-tier org on a
|
|
69
|
+
* dedicated domain — the support case this gate meets most often — without
|
|
70
|
+
* repricing the account, and the grant is a field on the org document with an
|
|
71
|
+
* audit row rather than a plan change that also moves eight quotas. The
|
|
72
|
+
* override is a draw on the provider's allowance like any other claim, so it
|
|
73
|
+
* is bounded by the same ceiling; what it is not bounded by is the tier.
|
|
74
|
+
*
|
|
75
|
+
* A dead subscription REVOKES it. `resolveEffectivePlan` reads a canceled or
|
|
76
|
+
* unpaid subscription down to `free`, so an org that stops paying stops being
|
|
77
|
+
* able to claim NEW domains here — while the sites it already holds keep
|
|
78
|
+
* theirs, because the claim path's pinned-label early return sits above this
|
|
79
|
+
* gate and a downgrade never repossesses a name that has earned reputation.
|
|
80
|
+
*
|
|
81
|
+
* Nothing outside this file decides who may hold a dedicated domain.
|
|
82
|
+
*/ import { checkEntitlement, planGrantingFeature } from "./plan-entitlements.js";
|
|
83
|
+
/**
|
|
84
|
+
* The lowest plan whose sites get a domain of their own, for the surfaces that
|
|
85
|
+
* have to NAME a tier — an upsell card, a refusal that says what to buy.
|
|
86
|
+
*
|
|
87
|
+
* Derived from `PLAN_ENTITLEMENTS` rather than declared, because a tier name
|
|
88
|
+
* written down beside a gate is pricing copy that keeps rendering after the
|
|
89
|
+
* gate moves. There is one decision here — the flag's column in the plan
|
|
90
|
+
* table — and this is a view of it, so the two cannot disagree.
|
|
91
|
+
*
|
|
92
|
+
* `planGrantingFeature` walks the self-serve ladder and then `enterprise`,
|
|
93
|
+
* which is priced by contract and is not a rung of `SELF_SERVE_PLANS`. It
|
|
94
|
+
* answers `undefined` when no plan carries the flag on its base tier; a caller
|
|
95
|
+
* naming a tier must handle that rather than substituting one.
|
|
96
|
+
*/ export const DEDICATED_SENDING_DOMAIN_MIN_PLAN = planGrantingFeature('dedicatedSendingDomain');
|
|
97
|
+
/**
|
|
98
|
+
* Whether an org's sites may hold a dedicated platform sending domain.
|
|
99
|
+
*
|
|
100
|
+
* Takes the ORG rather than its plan name, and that is the whole point: the
|
|
101
|
+
* answer is the plan's default with the org's own overrides applied, so a
|
|
102
|
+
* grant on one account is honored here without moving the account's tier.
|
|
103
|
+
*
|
|
104
|
+
* An absent org answers `false`. `resolveOrgEntitlements(null)` resolves to
|
|
105
|
+
* the free plan, which carries no dedicated domain, so a site whose org cannot
|
|
106
|
+
* be read still sends — on the pool, like every other site. The cost of
|
|
107
|
+
* failing closed is that a domain is not provisioned until the org resolves,
|
|
108
|
+
* which the sweep then corrects. Failing open would spend a zone record and a
|
|
109
|
+
* provider slot on an org nobody could name.
|
|
110
|
+
*/ export function holdsDedicatedSendingDomain(org) {
|
|
111
|
+
return checkEntitlement(org, 'dedicatedSendingDomain');
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=dedicated-sending-domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/dedicated-sending-domain.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * WHO GETS A SENDING DOMAIN OF THEIR OWN.\n *\n * A site's mail leaves on one of three kinds of identity, and this module\n * decides which of them an org may reach:\n *\n * shared pool `notifications@shared{n}.mail.aglyn.app`. Every site,\n * every tier, no provisioning, no DNS. Transactional only.\n * dedicated `hello@{label}.mail.aglyn.app`. One provider domain object\n * and three records in OUR zone, per site. **This module.**\n * customer-owned `hello@acme.com`. One provider domain object and records\n * the customer publishes in THEIR zone. Gated separately, on\n * the `customSendingDomain` feature flag, and available from\n * the same tier as this one — it is the option that costs\n * the platform no zone records at all, so it is the one that\n * scales.\n *\n * ## Why the dedicated tier is a gate at all\n *\n * Not because a domain object has a price — it does not; the provider meters\n * emails and contacts and bundles domains as a quota. Because it is `O(hosts)`\n * in resources that do not stretch:\n *\n * - **Records in our own zone.** Three per site, forever. Nothing about a\n * customer-owned domain costs us this, which is why the two are separate\n * decisions rather than one \"custom domain\" feature.\n * - **The provider's account-wide domain allowance**, which is a bundled\n * quota with a real ceiling and no self-serve way past a certain size.\n * - **A place in the re-verification sweep, permanently.** Every dedicated\n * domain has to be re-checked on a schedule, against DNS and against the\n * provider, at an account-wide rate limit the SENDS share. That cost\n * recurs; the provisioning cost is paid once.\n *\n * Provisioning by SIGNUP spends all three on sites that may never send a\n * message. Provisioning by PLAN spends them on sites whose revenue covers\n * them — better, and still the wrong curve, because revenue is the number the\n * platform is trying to grow while the provider's allowance grows only by\n * purchase.\n *\n * So this gate is one of three conditions and not the only one. A domain is\n * claimed when a merchant ASKS for one, from the sending-identity route; this\n * decides whether their org carries what they asked for; and the provider\n * ceiling in `provision-sending-domain.ts` decides whether the claim can\n * actually be filled. Demand is therefore proportional to the merchants who\n * want an Aglyn-branded sending name rather than to everyone who pays, and a\n * site refused at any of the three keeps sending on the shared pool.\n *\n * ## An entitlement, so one org can be granted one\n *\n * `dedicatedSendingDomain` is read through `checkEntitlement` like every other\n * capability on the platform, which buys two things a plan comparison cannot.\n *\n * A per-org override GRANTS it: staff can put a single lower-tier org on a\n * dedicated domain — the support case this gate meets most often — without\n * repricing the account, and the grant is a field on the org document with an\n * audit row rather than a plan change that also moves eight quotas. The\n * override is a draw on the provider's allowance like any other claim, so it\n * is bounded by the same ceiling; what it is not bounded by is the tier.\n *\n * A dead subscription REVOKES it. `resolveEffectivePlan` reads a canceled or\n * unpaid subscription down to `free`, so an org that stops paying stops being\n * able to claim NEW domains here — while the sites it already holds keep\n * theirs, because the claim path's pinned-label early return sits above this\n * gate and a downgrade never repossesses a name that has earned reputation.\n *\n * Nothing outside this file decides who may hold a dedicated domain.\n */\n\nimport { checkEntitlement, planGrantingFeature } from './plan-entitlements'\nimport type {\n AglynOrgBilling,\n OrgPlan,\n} from '../foundation/definitions/org-billing.types'\n\n/**\n * The lowest plan whose sites get a domain of their own, for the surfaces that\n * have to NAME a tier — an upsell card, a refusal that says what to buy.\n *\n * Derived from `PLAN_ENTITLEMENTS` rather than declared, because a tier name\n * written down beside a gate is pricing copy that keeps rendering after the\n * gate moves. There is one decision here — the flag's column in the plan\n * table — and this is a view of it, so the two cannot disagree.\n *\n * `planGrantingFeature` walks the self-serve ladder and then `enterprise`,\n * which is priced by contract and is not a rung of `SELF_SERVE_PLANS`. It\n * answers `undefined` when no plan carries the flag on its base tier; a caller\n * naming a tier must handle that rather than substituting one.\n */\nexport const DEDICATED_SENDING_DOMAIN_MIN_PLAN: OrgPlan = planGrantingFeature(\n 'dedicatedSendingDomain',\n)\n\n/**\n * Whether an org's sites may hold a dedicated platform sending domain.\n *\n * Takes the ORG rather than its plan name, and that is the whole point: the\n * answer is the plan's default with the org's own overrides applied, so a\n * grant on one account is honored here without moving the account's tier.\n *\n * An absent org answers `false`. `resolveOrgEntitlements(null)` resolves to\n * the free plan, which carries no dedicated domain, so a site whose org cannot\n * be read still sends — on the pool, like every other site. The cost of\n * failing closed is that a domain is not provisioned until the org resolves,\n * which the sweep then corrects. Failing open would spend a zone record and a\n * provider slot on an org nobody could name.\n */\nexport function holdsDedicatedSendingDomain(\n org: Partial<AglynOrgBilling> | null | undefined,\n): boolean {\n return checkEntitlement(org, 'dedicatedSendingDomain')\n}\n"],"names":["checkEntitlement","planGrantingFeature","DEDICATED_SENDING_DOMAIN_MIN_PLAN","holdsDedicatedSendingDomain","org"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEC,GAED,SAASA,gBAAgB,EAAEC,mBAAmB,QAAQ,yBAAqB;AAM3E;;;;;;;;;;;;;CAaC,GACD,OAAO,MAAMC,oCAA6CD,oBACxD,0BACD;AAED;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASE,4BACdC,GAAgD;IAEhD,OAAOJ,iBAAiBI,KAAK;AAC/B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* The three attributes that defer an image to its own turn (AGL-2486).
|
|
19
|
+
*
|
|
20
|
+
* ## What this is for
|
|
21
|
+
*
|
|
22
|
+
* The Image element already ranks itself: the lead image is `eager` and every
|
|
23
|
+
* later one is `lazy` + `low` + `async`. That reasoning is written out at the
|
|
24
|
+
* `fetchPriority` prop in `libs/plugins/mui/src/lib/components/image.tsx` and
|
|
25
|
+
* is not repeated here.
|
|
26
|
+
*
|
|
27
|
+
* What that fix could not reach is every OTHER `<img>` a published page
|
|
28
|
+
* renders: a product grid, a related-products rail, a wishlist, a cart line,
|
|
29
|
+
* an event thumbnail, a Product card. Those carried **no loading hint at
|
|
30
|
+
* all** — which is `eager` at the browser's default priority. So a product
|
|
31
|
+
* grid four sections down was fetched EAGERLY, at a HIGHER priority than the
|
|
32
|
+
* `lazy` + `low` Image element in the section the reader was actually looking
|
|
33
|
+
* at. That is the reported symptom — "images several sections below the fold
|
|
34
|
+
* load before the current section" — and it survived the Image-element fix
|
|
35
|
+
* precisely because ranking the Image elements against each other says
|
|
36
|
+
* nothing about the images that opted out of the ranking entirely.
|
|
37
|
+
*
|
|
38
|
+
* Uniformly `lazy` is also what produces the second half of what the item
|
|
39
|
+
* asks for. There is no "next section" hint to give a browser: Chrome fetches
|
|
40
|
+
* a `lazy` image once it comes within its viewport-distance threshold, so
|
|
41
|
+
* ordering among deferred images falls out of distance from the viewport on
|
|
42
|
+
* its own — but ONLY once every image is in that scheme. One unhinted image
|
|
43
|
+
* does not merely rank badly, it leaves the scheme.
|
|
44
|
+
*
|
|
45
|
+
* ## Deliberately NOT applied to
|
|
46
|
+
*
|
|
47
|
+
* The image at the top of a page, which is the LCP candidate: the Image
|
|
48
|
+
* element's lead image, and the product-detail gallery hero. Making those
|
|
49
|
+
* `lazy` would re-introduce the ORIGINAL bug this issue opened with — an LCP
|
|
50
|
+
* image not discovered until after layout. Those sites carry a comment
|
|
51
|
+
* saying so, because "finish the job" is the obvious next edit and it is
|
|
52
|
+
* wrong.
|
|
53
|
+
*
|
|
54
|
+
* ## Why a shared constant rather than three literals
|
|
55
|
+
*
|
|
56
|
+
* The set only works if it is the same set everywhere: an image with `lazy`
|
|
57
|
+
* but no `fetchpriority` outranks an image with both, so a partially-applied
|
|
58
|
+
* hint re-creates a smaller version of the same inversion. Two of the three
|
|
59
|
+
* sites in `collection.tsx` were exactly that — `loading="lazy"` and nothing
|
|
60
|
+
* else — which is why this is a named thing to spread rather than a habit to
|
|
61
|
+
* remember.
|
|
62
|
+
*
|
|
63
|
+
* Spread it, never mutate it:
|
|
64
|
+
*
|
|
65
|
+
* ```tsx
|
|
66
|
+
* <Box component="img" src={url} alt="" {...DEFERRED_IMAGE_ATTRIBUTES} />
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare const DEFERRED_IMAGE_ATTRIBUTES: Readonly<{
|
|
70
|
+
/** Not fetched until the browser decides it is near the viewport. */
|
|
71
|
+
readonly loading: "lazy";
|
|
72
|
+
/**
|
|
73
|
+
* And when it is fetched, it does not compete with the section on screen.
|
|
74
|
+
* One-directional on purpose: deprioritising an image provably not being
|
|
75
|
+
* looked at cannot starve whatever the LCP turns out to be, whereas
|
|
76
|
+
* PROMOTING one is a claim about every other request in flight that no
|
|
77
|
+
* render-time function is in a position to make.
|
|
78
|
+
*/
|
|
79
|
+
readonly fetchPriority: "low";
|
|
80
|
+
/**
|
|
81
|
+
* Decoded off the main thread. A deferred image has no paint deadline, so
|
|
82
|
+
* decoding it synchronously is main-thread time spent on pixels nobody is
|
|
83
|
+
* looking at yet — which is the same budget item 22 is about.
|
|
84
|
+
*/
|
|
85
|
+
readonly decoding: "async";
|
|
86
|
+
}>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ /**
|
|
17
|
+
* The three attributes that defer an image to its own turn (AGL-2486).
|
|
18
|
+
*
|
|
19
|
+
* ## What this is for
|
|
20
|
+
*
|
|
21
|
+
* The Image element already ranks itself: the lead image is `eager` and every
|
|
22
|
+
* later one is `lazy` + `low` + `async`. That reasoning is written out at the
|
|
23
|
+
* `fetchPriority` prop in `libs/plugins/mui/src/lib/components/image.tsx` and
|
|
24
|
+
* is not repeated here.
|
|
25
|
+
*
|
|
26
|
+
* What that fix could not reach is every OTHER `<img>` a published page
|
|
27
|
+
* renders: a product grid, a related-products rail, a wishlist, a cart line,
|
|
28
|
+
* an event thumbnail, a Product card. Those carried **no loading hint at
|
|
29
|
+
* all** — which is `eager` at the browser's default priority. So a product
|
|
30
|
+
* grid four sections down was fetched EAGERLY, at a HIGHER priority than the
|
|
31
|
+
* `lazy` + `low` Image element in the section the reader was actually looking
|
|
32
|
+
* at. That is the reported symptom — "images several sections below the fold
|
|
33
|
+
* load before the current section" — and it survived the Image-element fix
|
|
34
|
+
* precisely because ranking the Image elements against each other says
|
|
35
|
+
* nothing about the images that opted out of the ranking entirely.
|
|
36
|
+
*
|
|
37
|
+
* Uniformly `lazy` is also what produces the second half of what the item
|
|
38
|
+
* asks for. There is no "next section" hint to give a browser: Chrome fetches
|
|
39
|
+
* a `lazy` image once it comes within its viewport-distance threshold, so
|
|
40
|
+
* ordering among deferred images falls out of distance from the viewport on
|
|
41
|
+
* its own — but ONLY once every image is in that scheme. One unhinted image
|
|
42
|
+
* does not merely rank badly, it leaves the scheme.
|
|
43
|
+
*
|
|
44
|
+
* ## Deliberately NOT applied to
|
|
45
|
+
*
|
|
46
|
+
* The image at the top of a page, which is the LCP candidate: the Image
|
|
47
|
+
* element's lead image, and the product-detail gallery hero. Making those
|
|
48
|
+
* `lazy` would re-introduce the ORIGINAL bug this issue opened with — an LCP
|
|
49
|
+
* image not discovered until after layout. Those sites carry a comment
|
|
50
|
+
* saying so, because "finish the job" is the obvious next edit and it is
|
|
51
|
+
* wrong.
|
|
52
|
+
*
|
|
53
|
+
* ## Why a shared constant rather than three literals
|
|
54
|
+
*
|
|
55
|
+
* The set only works if it is the same set everywhere: an image with `lazy`
|
|
56
|
+
* but no `fetchpriority` outranks an image with both, so a partially-applied
|
|
57
|
+
* hint re-creates a smaller version of the same inversion. Two of the three
|
|
58
|
+
* sites in `collection.tsx` were exactly that — `loading="lazy"` and nothing
|
|
59
|
+
* else — which is why this is a named thing to spread rather than a habit to
|
|
60
|
+
* remember.
|
|
61
|
+
*
|
|
62
|
+
* Spread it, never mutate it:
|
|
63
|
+
*
|
|
64
|
+
* ```tsx
|
|
65
|
+
* <Box component="img" src={url} alt="" {...DEFERRED_IMAGE_ATTRIBUTES} />
|
|
66
|
+
* ```
|
|
67
|
+
*/ export const DEFERRED_IMAGE_ATTRIBUTES = Object.freeze({
|
|
68
|
+
/** Not fetched until the browser decides it is near the viewport. */ loading: 'lazy',
|
|
69
|
+
/**
|
|
70
|
+
* And when it is fetched, it does not compete with the section on screen.
|
|
71
|
+
* One-directional on purpose: deprioritising an image provably not being
|
|
72
|
+
* looked at cannot starve whatever the LCP turns out to be, whereas
|
|
73
|
+
* PROMOTING one is a claim about every other request in flight that no
|
|
74
|
+
* render-time function is in a position to make.
|
|
75
|
+
*/ fetchPriority: 'low',
|
|
76
|
+
/**
|
|
77
|
+
* Decoded off the main thread. A deferred image has no paint deadline, so
|
|
78
|
+
* decoding it synchronously is main-thread time spent on pixels nobody is
|
|
79
|
+
* looking at yet — which is the same budget item 22 is about.
|
|
80
|
+
*/ decoding: 'async'
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=deferred-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/deferred-image.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * The three attributes that defer an image to its own turn (AGL-2486).\n *\n * ## What this is for\n *\n * The Image element already ranks itself: the lead image is `eager` and every\n * later one is `lazy` + `low` + `async`. That reasoning is written out at the\n * `fetchPriority` prop in `libs/plugins/mui/src/lib/components/image.tsx` and\n * is not repeated here.\n *\n * What that fix could not reach is every OTHER `<img>` a published page\n * renders: a product grid, a related-products rail, a wishlist, a cart line,\n * an event thumbnail, a Product card. Those carried **no loading hint at\n * all** — which is `eager` at the browser's default priority. So a product\n * grid four sections down was fetched EAGERLY, at a HIGHER priority than the\n * `lazy` + `low` Image element in the section the reader was actually looking\n * at. That is the reported symptom — \"images several sections below the fold\n * load before the current section\" — and it survived the Image-element fix\n * precisely because ranking the Image elements against each other says\n * nothing about the images that opted out of the ranking entirely.\n *\n * Uniformly `lazy` is also what produces the second half of what the item\n * asks for. There is no \"next section\" hint to give a browser: Chrome fetches\n * a `lazy` image once it comes within its viewport-distance threshold, so\n * ordering among deferred images falls out of distance from the viewport on\n * its own — but ONLY once every image is in that scheme. One unhinted image\n * does not merely rank badly, it leaves the scheme.\n *\n * ## Deliberately NOT applied to\n *\n * The image at the top of a page, which is the LCP candidate: the Image\n * element's lead image, and the product-detail gallery hero. Making those\n * `lazy` would re-introduce the ORIGINAL bug this issue opened with — an LCP\n * image not discovered until after layout. Those sites carry a comment\n * saying so, because \"finish the job\" is the obvious next edit and it is\n * wrong.\n *\n * ## Why a shared constant rather than three literals\n *\n * The set only works if it is the same set everywhere: an image with `lazy`\n * but no `fetchpriority` outranks an image with both, so a partially-applied\n * hint re-creates a smaller version of the same inversion. Two of the three\n * sites in `collection.tsx` were exactly that — `loading=\"lazy\"` and nothing\n * else — which is why this is a named thing to spread rather than a habit to\n * remember.\n *\n * Spread it, never mutate it:\n *\n * ```tsx\n * <Box component=\"img\" src={url} alt=\"\" {...DEFERRED_IMAGE_ATTRIBUTES} />\n * ```\n */\nexport const DEFERRED_IMAGE_ATTRIBUTES = Object.freeze({\n /** Not fetched until the browser decides it is near the viewport. */\n loading: 'lazy',\n /**\n * And when it is fetched, it does not compete with the section on screen.\n * One-directional on purpose: deprioritising an image provably not being\n * looked at cannot starve whatever the LCP turns out to be, whereas\n * PROMOTING one is a claim about every other request in flight that no\n * render-time function is in a position to make.\n */\n fetchPriority: 'low',\n /**\n * Decoded off the main thread. A deferred image has no paint deadline, so\n * decoding it synchronously is main-thread time spent on pixels nobody is\n * looking at yet — which is the same budget item 22 is about.\n */\n decoding: 'async',\n} as const)\n"],"names":["DEFERRED_IMAGE_ATTRIBUTES","Object","freeze","loading","fetchPriority","decoding"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDC,GACD,OAAO,MAAMA,4BAA4BC,OAAOC,MAAM,CAAC;IACrD,mEAAmE,GACnEC,SAAS;IACT;;;;;;GAMC,GACDC,eAAe;IACf;;;;GAIC,GACDC,UAAU;AACZ,GAAW"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
type Nodes = Record<string, any>;
|
|
18
|
+
/**
|
|
19
|
+
* Adapt a reusable-component definition for the canvas, and back (AGL-680).
|
|
20
|
+
*
|
|
21
|
+
* The canvas requires its root to be the canonical `_@_` node — `setNodes`
|
|
22
|
+
* stores whatever it is handed and `rootNode` looks up that exact id, so a
|
|
23
|
+
* tree without it has no root and renders nothing.
|
|
24
|
+
*
|
|
25
|
+
* A definition's root is NOT `_@_`: `promoteToComponent` walks a selected
|
|
26
|
+
* subtree, so the root is whichever node was selected. Loading one straight
|
|
27
|
+
* into the canvas therefore produced an empty editor with "Error rendering
|
|
28
|
+
* undefined" in the console — found by the editor smoke test, not by
|
|
29
|
+
* typechecking, because both shapes are `Record<string, node>`.
|
|
30
|
+
*
|
|
31
|
+
* So the definition is wrapped under a synthetic canvas root on the way in
|
|
32
|
+
* and unwrapped on the way out. The wrapper is never published: the tenant
|
|
33
|
+
* runtime grafts from `rootId`, and an extra always-empty container in
|
|
34
|
+
* every instance would be both wrong and wasteful.
|
|
35
|
+
*
|
|
36
|
+
* A map with no findable root always yields the empty canvas root rather
|
|
37
|
+
* than being passed through (AGL-753). Passing it through renders `'Invalid
|
|
38
|
+
* node'` with Add Element disabled — an editor with no way out, so the
|
|
39
|
+
* document can never be repaired from the UI. Components created before
|
|
40
|
+
* AGL-693 are stored as exactly that (`nodes: {}`), which is why this is a
|
|
41
|
+
* load-time repair and not a migration.
|
|
42
|
+
*/
|
|
43
|
+
export declare function definitionToCanvasTree(definition: {
|
|
44
|
+
rootId?: string;
|
|
45
|
+
nodes?: Nodes;
|
|
46
|
+
}): Nodes;
|
|
47
|
+
/**
|
|
48
|
+
* Recover the definition shape from a canvas tree.
|
|
49
|
+
*
|
|
50
|
+
* Returns the single child of the synthetic root as `rootId` and drops the
|
|
51
|
+
* wrapper. A canvas root with several children means the author added
|
|
52
|
+
* siblings at the top level — there is no single definition root to name,
|
|
53
|
+
* so the wrapper is kept and reported, letting the caller refuse rather
|
|
54
|
+
* than silently publishing only the first child.
|
|
55
|
+
*/
|
|
56
|
+
export declare function canvasTreeToDefinition(nodes: Nodes | undefined): {
|
|
57
|
+
rootId?: string;
|
|
58
|
+
nodes: Nodes;
|
|
59
|
+
ambiguousRoot: boolean;
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2026 Aglyn LLC
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/ import { CANVAS_ROOT_ELEMENT_ID } from "../foundation/constants/canvas.js";
|
|
18
|
+
/**
|
|
19
|
+
* Adapt a reusable-component definition for the canvas, and back (AGL-680).
|
|
20
|
+
*
|
|
21
|
+
* The canvas requires its root to be the canonical `_@_` node — `setNodes`
|
|
22
|
+
* stores whatever it is handed and `rootNode` looks up that exact id, so a
|
|
23
|
+
* tree without it has no root and renders nothing.
|
|
24
|
+
*
|
|
25
|
+
* A definition's root is NOT `_@_`: `promoteToComponent` walks a selected
|
|
26
|
+
* subtree, so the root is whichever node was selected. Loading one straight
|
|
27
|
+
* into the canvas therefore produced an empty editor with "Error rendering
|
|
28
|
+
* undefined" in the console — found by the editor smoke test, not by
|
|
29
|
+
* typechecking, because both shapes are `Record<string, node>`.
|
|
30
|
+
*
|
|
31
|
+
* So the definition is wrapped under a synthetic canvas root on the way in
|
|
32
|
+
* and unwrapped on the way out. The wrapper is never published: the tenant
|
|
33
|
+
* runtime grafts from `rootId`, and an extra always-empty container in
|
|
34
|
+
* every instance would be both wrong and wasteful.
|
|
35
|
+
*
|
|
36
|
+
* A map with no findable root always yields the empty canvas root rather
|
|
37
|
+
* than being passed through (AGL-753). Passing it through renders `'Invalid
|
|
38
|
+
* node'` with Add Element disabled — an editor with no way out, so the
|
|
39
|
+
* document can never be repaired from the UI. Components created before
|
|
40
|
+
* AGL-693 are stored as exactly that (`nodes: {}`), which is why this is a
|
|
41
|
+
* load-time repair and not a migration.
|
|
42
|
+
*/ export function definitionToCanvasTree(definition) {
|
|
43
|
+
var _ref, _Object_keys_find;
|
|
44
|
+
const nodes = (_ref = definition == null ? void 0 : definition.nodes) != null ? _ref : {};
|
|
45
|
+
// Already canvas-shaped (a tree saved by this editor) — leave it alone.
|
|
46
|
+
if (nodes[CANVAS_ROOT_ELEMENT_ID]) return nodes;
|
|
47
|
+
const rootId = (definition == null ? void 0 : definition.rootId) && nodes[definition.rootId] ? definition.rootId : (_Object_keys_find = Object.keys(nodes).find((id)=>{
|
|
48
|
+
var _nodes_id;
|
|
49
|
+
return !((_nodes_id = nodes[id]) == null ? void 0 : _nodes_id.parentId);
|
|
50
|
+
})) != null ? _Object_keys_find : // A definition promoted out of a screen can keep the `parentId` it
|
|
51
|
+
// had there, so "no parent" is not always "no parentId" — a parent
|
|
52
|
+
// that is not itself in the map is just as much a root.
|
|
53
|
+
Object.keys(nodes).find((id)=>{
|
|
54
|
+
var _nodes_id;
|
|
55
|
+
return !nodes[(_nodes_id = nodes[id]) == null ? void 0 : _nodes_id.parentId];
|
|
56
|
+
});
|
|
57
|
+
if (!rootId) {
|
|
58
|
+
return {
|
|
59
|
+
[CANVAS_ROOT_ELEMENT_ID]: {
|
|
60
|
+
$id: CANVAS_ROOT_ELEMENT_ID,
|
|
61
|
+
componentId: 'div',
|
|
62
|
+
parentId: null,
|
|
63
|
+
nodes: []
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return _extends({}, nodes, {
|
|
68
|
+
[rootId]: _extends({}, nodes[rootId], {
|
|
69
|
+
parentId: CANVAS_ROOT_ELEMENT_ID
|
|
70
|
+
}),
|
|
71
|
+
[CANVAS_ROOT_ELEMENT_ID]: {
|
|
72
|
+
$id: CANVAS_ROOT_ELEMENT_ID,
|
|
73
|
+
componentId: 'box',
|
|
74
|
+
parentId: null,
|
|
75
|
+
nodes: [
|
|
76
|
+
rootId
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Recover the definition shape from a canvas tree.
|
|
83
|
+
*
|
|
84
|
+
* Returns the single child of the synthetic root as `rootId` and drops the
|
|
85
|
+
* wrapper. A canvas root with several children means the author added
|
|
86
|
+
* siblings at the top level — there is no single definition root to name,
|
|
87
|
+
* so the wrapper is kept and reported, letting the caller refuse rather
|
|
88
|
+
* than silently publishing only the first child.
|
|
89
|
+
*/ export function canvasTreeToDefinition(nodes) {
|
|
90
|
+
const map = nodes != null ? nodes : {};
|
|
91
|
+
const canvasRoot = map[CANVAS_ROOT_ELEMENT_ID];
|
|
92
|
+
if (!canvasRoot) {
|
|
93
|
+
const rootId = Object.keys(map).find((id)=>{
|
|
94
|
+
var _map_id;
|
|
95
|
+
return !((_map_id = map[id]) == null ? void 0 : _map_id.parentId);
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
rootId,
|
|
99
|
+
nodes: map,
|
|
100
|
+
ambiguousRoot: false
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const children = Array.isArray(canvasRoot.nodes) ? canvasRoot.nodes.filter((id)=>map[id]) : [];
|
|
104
|
+
if (children.length !== 1) {
|
|
105
|
+
return {
|
|
106
|
+
rootId: CANVAS_ROOT_ELEMENT_ID,
|
|
107
|
+
nodes: map,
|
|
108
|
+
ambiguousRoot: true
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const rootId = children[0];
|
|
112
|
+
const stripped = {};
|
|
113
|
+
for (const [id, node] of Object.entries(map)){
|
|
114
|
+
if (id === CANVAS_ROOT_ELEMENT_ID) continue;
|
|
115
|
+
stripped[id] = id === rootId ? _extends({}, node, {
|
|
116
|
+
parentId: null
|
|
117
|
+
}) : node;
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
rootId,
|
|
121
|
+
nodes: stripped,
|
|
122
|
+
ambiguousRoot: false
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=definition-canvas-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/definition-canvas-tree.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 { CANVAS_ROOT_ELEMENT_ID } from '../foundation/constants/canvas'\n\ntype Nodes = Record<string, any>\n\n/**\n * Adapt a reusable-component definition for the canvas, and back (AGL-680).\n *\n * The canvas requires its root to be the canonical `_@_` node — `setNodes`\n * stores whatever it is handed and `rootNode` looks up that exact id, so a\n * tree without it has no root and renders nothing.\n *\n * A definition's root is NOT `_@_`: `promoteToComponent` walks a selected\n * subtree, so the root is whichever node was selected. Loading one straight\n * into the canvas therefore produced an empty editor with \"Error rendering\n * undefined\" in the console — found by the editor smoke test, not by\n * typechecking, because both shapes are `Record<string, node>`.\n *\n * So the definition is wrapped under a synthetic canvas root on the way in\n * and unwrapped on the way out. The wrapper is never published: the tenant\n * runtime grafts from `rootId`, and an extra always-empty container in\n * every instance would be both wrong and wasteful.\n *\n * A map with no findable root always yields the empty canvas root rather\n * than being passed through (AGL-753). Passing it through renders `'Invalid\n * node'` with Add Element disabled — an editor with no way out, so the\n * document can never be repaired from the UI. Components created before\n * AGL-693 are stored as exactly that (`nodes: {}`), which is why this is a\n * load-time repair and not a migration.\n */\nexport function definitionToCanvasTree(definition: {\n rootId?: string\n nodes?: Nodes\n}): Nodes {\n const nodes = definition?.nodes ?? {}\n // Already canvas-shaped (a tree saved by this editor) — leave it alone.\n if (nodes[CANVAS_ROOT_ELEMENT_ID]) return nodes\n\n const rootId =\n definition?.rootId && nodes[definition.rootId]\n ? definition.rootId\n : (Object.keys(nodes).find((id) => !nodes[id]?.parentId) ??\n // A definition promoted out of a screen can keep the `parentId` it\n // had there, so \"no parent\" is not always \"no parentId\" — a parent\n // that is not itself in the map is just as much a root.\n Object.keys(nodes).find((id) => !nodes[nodes[id]?.parentId]))\n if (!rootId) {\n return {\n [CANVAS_ROOT_ELEMENT_ID]: {\n $id: CANVAS_ROOT_ELEMENT_ID,\n componentId: 'div',\n parentId: null,\n nodes: [],\n },\n }\n }\n\n return {\n ...nodes,\n [rootId]: { ...nodes[rootId], parentId: CANVAS_ROOT_ELEMENT_ID },\n [CANVAS_ROOT_ELEMENT_ID]: {\n $id: CANVAS_ROOT_ELEMENT_ID,\n componentId: 'box',\n parentId: null,\n nodes: [rootId],\n },\n }\n}\n\n/**\n * Recover the definition shape from a canvas tree.\n *\n * Returns the single child of the synthetic root as `rootId` and drops the\n * wrapper. A canvas root with several children means the author added\n * siblings at the top level — there is no single definition root to name,\n * so the wrapper is kept and reported, letting the caller refuse rather\n * than silently publishing only the first child.\n */\nexport function canvasTreeToDefinition(nodes: Nodes | undefined): {\n rootId?: string\n nodes: Nodes\n ambiguousRoot: boolean\n} {\n const map = nodes ?? {}\n const canvasRoot = map[CANVAS_ROOT_ELEMENT_ID]\n if (!canvasRoot) {\n const rootId = Object.keys(map).find((id) => !map[id]?.parentId)\n return { rootId, nodes: map, ambiguousRoot: false }\n }\n\n const children: string[] = Array.isArray(canvasRoot.nodes)\n ? canvasRoot.nodes.filter((id: string) => map[id])\n : []\n if (children.length !== 1) {\n return {\n rootId: CANVAS_ROOT_ELEMENT_ID,\n nodes: map,\n ambiguousRoot: true,\n }\n }\n\n const rootId = children[0]\n const stripped: Nodes = {}\n for (const [id, node] of Object.entries(map)) {\n if (id === CANVAS_ROOT_ELEMENT_ID) continue\n stripped[id] = id === rootId ? { ...node, parentId: null } : node\n }\n return { rootId, nodes: stripped, ambiguousRoot: false }\n}\n"],"names":["CANVAS_ROOT_ELEMENT_ID","definitionToCanvasTree","definition","Object","nodes","rootId","keys","find","id","parentId","$id","componentId","canvasTreeToDefinition","map","canvasRoot","ambiguousRoot","children","Array","isArray","filter","length","stripped","node","entries"],"mappings":";AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAASA,sBAAsB,QAAQ,oCAAgC;AAIvE;;;;;;;;;;;;;;;;;;;;;;;;CAwBC,GACD,OAAO,SAASC,uBAAuBC,UAGtC;cAQQC;IAPP,MAAMC,gBAAQF,8BAAAA,WAAYE,KAAK,mBAAI,CAAC;IACpC,wEAAwE;IACxE,IAAIA,KAAK,CAACJ,uBAAuB,EAAE,OAAOI;IAE1C,MAAMC,SACJH,CAAAA,8BAAAA,WAAYG,MAAM,KAAID,KAAK,CAACF,WAAWG,MAAM,CAAC,GAC1CH,WAAWG,MAAM,IAChBF,oBAAAA,OAAOG,IAAI,CAACF,OAAOG,IAAI,CAAC,CAACC;YAAQJ;eAAD,GAACA,YAAAA,KAAK,CAACI,GAAG,qBAATJ,UAAWK,QAAQ;kBAApDN,oBACD,mEAAmE;IACnE,mEAAmE;IACnE,wDAAwD;IACxDA,OAAOG,IAAI,CAACF,OAAOG,IAAI,CAAC,CAACC;YAAcJ;eAAP,CAACA,KAAK,EAACA,YAAAA,KAAK,CAACI,GAAG,qBAATJ,UAAWK,QAAQ,CAAC;;IACjE,IAAI,CAACJ,QAAQ;QACX,OAAO;YACL,CAACL,uBAAuB,EAAE;gBACxBU,KAAKV;gBACLW,aAAa;gBACbF,UAAU;gBACVL,OAAO,EAAE;YACX;QACF;IACF;IAEA,OAAO,aACFA;QACH,CAACC,OAAO,EAAE,aAAKD,KAAK,CAACC,OAAO;YAAEI,UAAUT;;QACxC,CAACA,uBAAuB,EAAE;YACxBU,KAAKV;YACLW,aAAa;YACbF,UAAU;YACVL,OAAO;gBAACC;aAAO;QACjB;;AAEJ;AAEA;;;;;;;;CAQC,GACD,OAAO,SAASO,uBAAuBR,KAAwB;IAK7D,MAAMS,MAAMT,gBAAAA,QAAS,CAAC;IACtB,MAAMU,aAAaD,GAAG,CAACb,uBAAuB;IAC9C,IAAI,CAACc,YAAY;QACf,MAAMT,SAASF,OAAOG,IAAI,CAACO,KAAKN,IAAI,CAAC,CAACC;gBAAQK;mBAAD,GAACA,UAAAA,GAAG,CAACL,GAAG,qBAAPK,QAASJ,QAAQ;;QAC/D,OAAO;YAAEJ;YAAQD,OAAOS;YAAKE,eAAe;QAAM;IACpD;IAEA,MAAMC,WAAqBC,MAAMC,OAAO,CAACJ,WAAWV,KAAK,IACrDU,WAAWV,KAAK,CAACe,MAAM,CAAC,CAACX,KAAeK,GAAG,CAACL,GAAG,IAC/C,EAAE;IACN,IAAIQ,SAASI,MAAM,KAAK,GAAG;QACzB,OAAO;YACLf,QAAQL;YACRI,OAAOS;YACPE,eAAe;QACjB;IACF;IAEA,MAAMV,SAASW,QAAQ,CAAC,EAAE;IAC1B,MAAMK,WAAkB,CAAC;IACzB,KAAK,MAAM,CAACb,IAAIc,KAAK,IAAInB,OAAOoB,OAAO,CAACV,KAAM;QAC5C,IAAIL,OAAOR,wBAAwB;QACnCqB,QAAQ,CAACb,GAAG,GAAGA,OAAOH,SAAS,aAAKiB;YAAMb,UAAU;aAASa;IAC/D;IACA,OAAO;QAAEjB;QAAQD,OAAOiB;QAAUN,eAAe;IAAM;AACzD"}
|