@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/lineal-order.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 { LinealDirectiveFlag } from '../foundation/definitions/components.types'\nimport type {\n ComponentId,\n ComponentsLinealOrder,\n PluginId,\n} from '../foundation/definitions/components.types'\n\n/** A directive as a schema declares it, or as the generated palette carries it. */\n/**\n * A lineal order as a JSON emitter writes it (AGL-2905): the directive as\n * the enum's string value rather than the enum, so a generated catalog can\n * carry it and a validator can read it back without the enum in scope.\n */\nexport type JsonLinealOrder = [\n directiveType: `${LinealDirectiveFlag}`,\n directiveDefinition: string[] | { plugins?: string[]; components?: string[] },\n]\n\nexport type LinealOrderLike = ComponentsLinealOrder | JsonLinealOrder\n\n/**\n * Which half of a lineal directive a candidate fails, or `null` when the\n * directive admits it.\n *\n * `restrictChildren` and `restrictParent` are one grammar — a `limitedTo` or\n * `forbid` flag over a component list, a plugin list, or both — read from two\n * sides: the besigner's drop check asks it about a dragged element, and the\n * AI node-tree validator asks it about a node a model emitted. The answer has\n * to be the same answer, so the rule lives here with no editor attached and\n * both callers read it (AGL-2905).\n *\n * A `limitedTo` list that is present but empty admits nothing — that is how a\n * component declares it takes no children at all (`layoutSlot`), and the\n * child-contract audit reads the same shape the same way.\n */\nexport function checkLinealOrder(\n componentId: ComponentId | undefined,\n pluginId: PluginId | undefined,\n order: LinealOrderLike,\n): 'component' | 'plugin' | null {\n const [directiveType, directiveDefinition] = order\n const flag: string = directiveType\n const components = Array.isArray(directiveDefinition)\n ? directiveDefinition\n : directiveDefinition?.components\n const plugins = Array.isArray(directiveDefinition)\n ? undefined\n : directiveDefinition?.plugins\n\n if (flag === LinealDirectiveFlag.DISALLOW) {\n if (components?.some((id) => id === componentId)) return 'component'\n if (plugins?.some((id) => id === pluginId)) return 'plugin'\n return null\n }\n\n if (flag === LinealDirectiveFlag.LIMIT_TO) {\n if (\n Array.isArray(components) &&\n (components.length === 0 || !components.some((id) => id === componentId))\n ) {\n return 'component'\n }\n if (\n Array.isArray(plugins) &&\n (plugins.length === 0 || !plugins.some((id) => id === pluginId))\n ) {\n return 'plugin'\n }\n }\n\n return null\n}\n\n/**\n * Whether `child` may sit directly under `parent`, reading the child's\n * `restrictParent` and the parent's `restrictChildren` — the two directives\n * the besigner's drop check consults, in that order.\n */\nexport function linealRelationshipPermits(\n child: {\n componentId?: ComponentId\n pluginId?: PluginId\n restrictParent?: LinealOrderLike\n },\n parent: {\n componentId?: ComponentId\n pluginId?: PluginId\n restrictChildren?: LinealOrderLike\n },\n): boolean {\n if (\n child.restrictParent &&\n checkLinealOrder(parent.componentId, parent.pluginId, child.restrictParent)\n ) {\n return false\n }\n if (\n parent.restrictChildren &&\n checkLinealOrder(child.componentId, child.pluginId, parent.restrictChildren)\n ) {\n return false\n }\n return true\n}\n"],"names":["LinealDirectiveFlag","checkLinealOrder","componentId","pluginId","order","directiveType","directiveDefinition","flag","components","Array","isArray","plugins","undefined","DISALLOW","some","id","LIMIT_TO","length","linealRelationshipPermits","child","parent","restrictParent","restrictChildren"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAASA,mBAAmB,QAAQ,gDAA4C;AAoBhF;;;;;;;;;;;;;;CAcC,GACD,OAAO,SAASC,iBACdC,WAAoC,EACpCC,QAA8B,EAC9BC,KAAsB;IAEtB,MAAM,CAACC,eAAeC,oBAAoB,GAAGF;IAC7C,MAAMG,OAAeF;IACrB,MAAMG,aAAaC,MAAMC,OAAO,CAACJ,uBAC7BA,sBACAA,uCAAAA,oBAAqBE,UAAU;IACnC,MAAMG,UAAUF,MAAMC,OAAO,CAACJ,uBAC1BM,YACAN,uCAAAA,oBAAqBK,OAAO;IAEhC,IAAIJ,SAASP,oBAAoBa,QAAQ,EAAE;QACzC,IAAIL,8BAAAA,WAAYM,IAAI,CAAC,CAACC,KAAOA,OAAOb,cAAc,OAAO;QACzD,IAAIS,2BAAAA,QAASG,IAAI,CAAC,CAACC,KAAOA,OAAOZ,WAAW,OAAO;QACnD,OAAO;IACT;IAEA,IAAII,SAASP,oBAAoBgB,QAAQ,EAAE;QACzC,IACEP,MAAMC,OAAO,CAACF,eACbA,CAAAA,WAAWS,MAAM,KAAK,KAAK,CAACT,WAAWM,IAAI,CAAC,CAACC,KAAOA,OAAOb,YAAW,GACvE;YACA,OAAO;QACT;QACA,IACEO,MAAMC,OAAO,CAACC,YACbA,CAAAA,QAAQM,MAAM,KAAK,KAAK,CAACN,QAAQG,IAAI,CAAC,CAACC,KAAOA,OAAOZ,SAAQ,GAC9D;YACA,OAAO;QACT;IACF;IAEA,OAAO;AACT;AAEA;;;;CAIC,GACD,OAAO,SAASe,0BACdC,KAIC,EACDC,MAIC;IAED,IACED,MAAME,cAAc,IACpBpB,iBAAiBmB,OAAOlB,WAAW,EAAEkB,OAAOjB,QAAQ,EAAEgB,MAAME,cAAc,GAC1E;QACA,OAAO;IACT;IACA,IACED,OAAOE,gBAAgB,IACvBrB,iBAAiBkB,MAAMjB,WAAW,EAAEiB,MAAMhB,QAAQ,EAAEiB,OAAOE,gBAAgB,GAC3E;QACA,OAAO;IACT;IACA,OAAO;AACT"}
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
/** What a page composes, as {@link collectEntryLinkRefs} reads it. */
|
|
18
|
+
export interface EntryLinkRefSources {
|
|
19
|
+
/**
|
|
20
|
+
* Flat node maps — the composed page (screen, layout chain, grafted
|
|
21
|
+
* components, a collection template) and any tree composed beside it.
|
|
22
|
+
* Each node's `props` bag is walked.
|
|
23
|
+
*/
|
|
24
|
+
nodes?: ReadonlyArray<Record<string, unknown> | null | undefined>;
|
|
25
|
+
/**
|
|
26
|
+
* Markdown-lite rendered with no node to carry it: the entry body of the
|
|
27
|
+
* legacy article surface, and of the Markdown twin of an entry.
|
|
28
|
+
*/
|
|
29
|
+
markdown?: ReadonlyArray<string | null | undefined>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Every entry a page's links name, as canonical `entry:<collectionId>/<entryId>`
|
|
33
|
+
* keys — deduplicated and sorted, so the same page always asks the same
|
|
34
|
+
* question and a cache keyed by the answer is hit.
|
|
35
|
+
*/
|
|
36
|
+
export declare function collectEntryLinkRefs(sources: EntryLinkRefSources): string[];
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ /**
|
|
17
|
+
* Which content collection ENTRIES a page's links name (AGL-3118).
|
|
18
|
+
*
|
|
19
|
+
* An entry link is stored as `entry:<collectionId>/<entryId>` — ids, so a
|
|
20
|
+
* renamed post or a renamed collection cannot break it — and resolving one
|
|
21
|
+
* needs the entry's current slug, which lives on the entry's own document.
|
|
22
|
+
* The routing map carries every screen and listing of a site, but a site's
|
|
23
|
+
* entries can number in the thousands, so a page carries only the entries it
|
|
24
|
+
* names: this walk finds them, and the tenant reads exactly those documents.
|
|
25
|
+
*
|
|
26
|
+
* A reference can sit in two kinds of place:
|
|
27
|
+
*
|
|
28
|
+
* - a node's PROPS, anywhere in the bag: the `screenId`/`href` pair of a
|
|
29
|
+
* linking element, a `Link`-typed component prop in either slot, and the
|
|
30
|
+
* item arrays a nav strip, a tab set or a menu keeps its targets in — deep
|
|
31
|
+
* for the reason `nodesReferenceScreen` is deep;
|
|
32
|
+
* - MARKDOWN — a Markdown element's content, an entry body — where a link
|
|
33
|
+
* names its target as `[text](entry:…)`.
|
|
34
|
+
*
|
|
35
|
+
* Collecting one too many costs one more document in a bounded read, and a
|
|
36
|
+
* string that is not a rendered link is never made into one, so a string is
|
|
37
|
+
* scanned for markdown links wherever it sits, code sample or not. Missing
|
|
38
|
+
* one is the failure that matters: a live link rendered as plain text.
|
|
39
|
+
*/ import { ENTRY_LINK_VALUE_PREFIX, formatEntryLinkValue, parseEntryLinkValue } from "./screen-link-value.js";
|
|
40
|
+
/**
|
|
41
|
+
* A markdown-lite link whose target is an entry reference. The target half
|
|
42
|
+
* is the parser's own (`[^)\s]+`), so this finds what the parser keeps.
|
|
43
|
+
*/ const MARKDOWN_ENTRY_LINK = /\]\((entry:[^)\s]+)\)/g;
|
|
44
|
+
/**
|
|
45
|
+
* How deep a prop bag is followed. Stored props are JSON and cannot cycle,
|
|
46
|
+
* but a composed tree is data from any writer, and a stack overflow inside a
|
|
47
|
+
* render is a 500 on a page that would otherwise serve.
|
|
48
|
+
*/ const MAX_PROP_DEPTH = 64;
|
|
49
|
+
/**
|
|
50
|
+
* Every entry a page's links name, as canonical `entry:<collectionId>/<entryId>`
|
|
51
|
+
* keys — deduplicated and sorted, so the same page always asks the same
|
|
52
|
+
* question and a cache keyed by the answer is hit.
|
|
53
|
+
*/ export function collectEntryLinkRefs(sources) {
|
|
54
|
+
var _sources_nodes, _sources_markdown;
|
|
55
|
+
const refs = new Set();
|
|
56
|
+
const add = (value)=>{
|
|
57
|
+
const entry = parseEntryLinkValue(value);
|
|
58
|
+
if (entry) refs.add(formatEntryLinkValue(entry.collectionId, entry.entryId));
|
|
59
|
+
};
|
|
60
|
+
const scan = (value)=>{
|
|
61
|
+
var _match_;
|
|
62
|
+
// Nearly every string on a page names no entry; one substring test
|
|
63
|
+
// keeps the walk from trimming and splitting all of them.
|
|
64
|
+
if (!value.includes(ENTRY_LINK_VALUE_PREFIX)) return;
|
|
65
|
+
add(value);
|
|
66
|
+
if (!value.includes(`](${ENTRY_LINK_VALUE_PREFIX}`)) return;
|
|
67
|
+
for (const match of value.matchAll(MARKDOWN_ENTRY_LINK))add((_match_ = match[1]) != null ? _match_ : '');
|
|
68
|
+
};
|
|
69
|
+
const walk = (value, depth)=>{
|
|
70
|
+
if (typeof value === 'string') return scan(value);
|
|
71
|
+
if (!value || typeof value !== 'object' || depth >= MAX_PROP_DEPTH) return;
|
|
72
|
+
const children = Array.isArray(value) ? value : Object.values(value);
|
|
73
|
+
for (const child of children)walk(child, depth + 1);
|
|
74
|
+
};
|
|
75
|
+
for (const nodes of (_sources_nodes = sources.nodes) != null ? _sources_nodes : []){
|
|
76
|
+
if (!nodes || typeof nodes !== 'object') continue;
|
|
77
|
+
for (const node of Object.values(nodes)){
|
|
78
|
+
walk(node == null ? void 0 : node.props, 0);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
for (const markdown of (_sources_markdown = sources.markdown) != null ? _sources_markdown : []){
|
|
82
|
+
if (typeof markdown === 'string') scan(markdown);
|
|
83
|
+
}
|
|
84
|
+
return [
|
|
85
|
+
...refs
|
|
86
|
+
].sort();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=link-references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/link-references.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Which content collection ENTRIES a page's links name (AGL-3118).\n *\n * An entry link is stored as `entry:<collectionId>/<entryId>` — ids, so a\n * renamed post or a renamed collection cannot break it — and resolving one\n * needs the entry's current slug, which lives on the entry's own document.\n * The routing map carries every screen and listing of a site, but a site's\n * entries can number in the thousands, so a page carries only the entries it\n * names: this walk finds them, and the tenant reads exactly those documents.\n *\n * A reference can sit in two kinds of place:\n *\n * - a node's PROPS, anywhere in the bag: the `screenId`/`href` pair of a\n * linking element, a `Link`-typed component prop in either slot, and the\n * item arrays a nav strip, a tab set or a menu keeps its targets in — deep\n * for the reason `nodesReferenceScreen` is deep;\n * - MARKDOWN — a Markdown element's content, an entry body — where a link\n * names its target as `[text](entry:…)`.\n *\n * Collecting one too many costs one more document in a bounded read, and a\n * string that is not a rendered link is never made into one, so a string is\n * scanned for markdown links wherever it sits, code sample or not. Missing\n * one is the failure that matters: a live link rendered as plain text.\n */\n\nimport {\n ENTRY_LINK_VALUE_PREFIX,\n formatEntryLinkValue,\n parseEntryLinkValue,\n} from './screen-link-value'\n\n/** What a page composes, as {@link collectEntryLinkRefs} reads it. */\nexport interface EntryLinkRefSources {\n /**\n * Flat node maps — the composed page (screen, layout chain, grafted\n * components, a collection template) and any tree composed beside it.\n * Each node's `props` bag is walked.\n */\n nodes?: ReadonlyArray<Record<string, unknown> | null | undefined>\n /**\n * Markdown-lite rendered with no node to carry it: the entry body of the\n * legacy article surface, and of the Markdown twin of an entry.\n */\n markdown?: ReadonlyArray<string | null | undefined>\n}\n\n/**\n * A markdown-lite link whose target is an entry reference. The target half\n * is the parser's own (`[^)\\s]+`), so this finds what the parser keeps.\n */\nconst MARKDOWN_ENTRY_LINK = /\\]\\((entry:[^)\\s]+)\\)/g\n\n/**\n * How deep a prop bag is followed. Stored props are JSON and cannot cycle,\n * but a composed tree is data from any writer, and a stack overflow inside a\n * render is a 500 on a page that would otherwise serve.\n */\nconst MAX_PROP_DEPTH = 64\n\n/**\n * Every entry a page's links name, as canonical `entry:<collectionId>/<entryId>`\n * keys — deduplicated and sorted, so the same page always asks the same\n * question and a cache keyed by the answer is hit.\n */\nexport function collectEntryLinkRefs(sources: EntryLinkRefSources): string[] {\n const refs = new Set<string>()\n const add = (value: string): void => {\n const entry = parseEntryLinkValue(value)\n if (entry) refs.add(formatEntryLinkValue(entry.collectionId, entry.entryId))\n }\n const scan = (value: string): void => {\n // Nearly every string on a page names no entry; one substring test\n // keeps the walk from trimming and splitting all of them.\n if (!value.includes(ENTRY_LINK_VALUE_PREFIX)) return\n add(value)\n if (!value.includes(`](${ENTRY_LINK_VALUE_PREFIX}`)) return\n for (const match of value.matchAll(MARKDOWN_ENTRY_LINK)) add(match[1] ?? '')\n }\n const walk = (value: unknown, depth: number): void => {\n if (typeof value === 'string') return scan(value)\n if (!value || typeof value !== 'object' || depth >= MAX_PROP_DEPTH) return\n const children = Array.isArray(value)\n ? value\n : Object.values(value as Record<string, unknown>)\n for (const child of children) walk(child, depth + 1)\n }\n for (const nodes of sources.nodes ?? []) {\n if (!nodes || typeof nodes !== 'object') continue\n for (const node of Object.values(nodes)) {\n walk((node as { props?: unknown } | null | undefined)?.props, 0)\n }\n }\n for (const markdown of sources.markdown ?? []) {\n if (typeof markdown === 'string') scan(markdown)\n }\n return [...refs].sort()\n}\n"],"names":["ENTRY_LINK_VALUE_PREFIX","formatEntryLinkValue","parseEntryLinkValue","MARKDOWN_ENTRY_LINK","MAX_PROP_DEPTH","collectEntryLinkRefs","sources","refs","Set","add","value","entry","collectionId","entryId","scan","match","includes","matchAll","walk","depth","children","Array","isArray","Object","values","child","nodes","node","props","markdown","sort"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GAED,SACEA,uBAAuB,EACvBC,oBAAoB,EACpBC,mBAAmB,QACd,yBAAqB;AAiB5B;;;CAGC,GACD,MAAMC,sBAAsB;AAE5B;;;;CAIC,GACD,MAAMC,iBAAiB;AAEvB;;;;CAIC,GACD,OAAO,SAASC,qBAAqBC,OAA4B;QAsB3CA,gBAMGA;IA3BvB,MAAMC,OAAO,IAAIC;IACjB,MAAMC,MAAM,CAACC;QACX,MAAMC,QAAQT,oBAAoBQ;QAClC,IAAIC,OAAOJ,KAAKE,GAAG,CAACR,qBAAqBU,MAAMC,YAAY,EAAED,MAAME,OAAO;IAC5E;IACA,MAAMC,OAAO,CAACJ;YAMiDK;QAL7D,mEAAmE;QACnE,0DAA0D;QAC1D,IAAI,CAACL,MAAMM,QAAQ,CAAChB,0BAA0B;QAC9CS,IAAIC;QACJ,IAAI,CAACA,MAAMM,QAAQ,CAAC,CAAC,EAAE,EAAEhB,yBAAyB,GAAG;QACrD,KAAK,MAAMe,SAASL,MAAMO,QAAQ,CAACd,qBAAsBM,KAAIM,UAAAA,KAAK,CAAC,EAAE,YAARA,UAAY;IAC3E;IACA,MAAMG,OAAO,CAACR,OAAgBS;QAC5B,IAAI,OAAOT,UAAU,UAAU,OAAOI,KAAKJ;QAC3C,IAAI,CAACA,SAAS,OAAOA,UAAU,YAAYS,SAASf,gBAAgB;QACpE,MAAMgB,WAAWC,MAAMC,OAAO,CAACZ,SAC3BA,QACAa,OAAOC,MAAM,CAACd;QAClB,KAAK,MAAMe,SAASL,SAAUF,KAAKO,OAAON,QAAQ;IACpD;IACA,KAAK,MAAMO,UAASpB,iBAAAA,QAAQoB,KAAK,YAAbpB,iBAAiB,EAAE,CAAE;QACvC,IAAI,CAACoB,SAAS,OAAOA,UAAU,UAAU;QACzC,KAAK,MAAMC,QAAQJ,OAAOC,MAAM,CAACE,OAAQ;YACvCR,KAAMS,wBAAD,AAACA,KAAiDC,KAAK,EAAE;QAChE;IACF;IACA,KAAK,MAAMC,aAAYvB,oBAAAA,QAAQuB,QAAQ,YAAhBvB,oBAAoB,EAAE,CAAE;QAC7C,IAAI,OAAOuB,aAAa,UAAUf,KAAKe;IACzC;IACA,OAAO;WAAItB;KAAK,CAACuB,IAAI;AACvB"}
|
|
@@ -0,0 +1,123 @@
|
|
|
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
|
+
/** An entry's publication state, as its document stores it. */
|
|
18
|
+
export type LinkTargetEntryStatus = 'draft' | 'published' | 'scheduled';
|
|
19
|
+
/** One entry a search found — see {@link LinkTargetSearchContextValue}. */
|
|
20
|
+
export interface LinkTargetOption {
|
|
21
|
+
/** The stored reference, `entry:<collectionId>/<entryId>`. */
|
|
22
|
+
value: string;
|
|
23
|
+
/** One line naming it — see {@link entryLinkTargetLabel}. */
|
|
24
|
+
label: string;
|
|
25
|
+
/** The entry's own title: what a link to it says when nothing else does. */
|
|
26
|
+
title: string;
|
|
27
|
+
/** The name of the collection it belongs to. */
|
|
28
|
+
collectionName?: string;
|
|
29
|
+
status: LinkTargetEntryStatus;
|
|
30
|
+
}
|
|
31
|
+
export interface LinkTargetSearchOptions {
|
|
32
|
+
/** Aborted when the author has typed on: the answer is no longer wanted. */
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
}
|
|
35
|
+
export interface LinkTargetSearchContextValue {
|
|
36
|
+
/**
|
|
37
|
+
* Whether anything here can search. False only on the default, where the
|
|
38
|
+
* pickers offer no Entries group at all rather than an empty one.
|
|
39
|
+
*/
|
|
40
|
+
available: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The entries matching what the author typed, a few per collection. An
|
|
43
|
+
* empty query asks for the most recently edited ones instead, so a picker
|
|
44
|
+
* opened before anything is typed still offers something.
|
|
45
|
+
*
|
|
46
|
+
* Rejects with an `AbortError` once `signal` aborts.
|
|
47
|
+
*/
|
|
48
|
+
searchEntries: (query: string, options?: LinkTargetSearchOptions) => Promise<LinkTargetOption[]>;
|
|
49
|
+
/**
|
|
50
|
+
* The label for one stored entry reference — the {@link LinkTargetOption}
|
|
51
|
+
* label a search would give it — or `undefined` when no such entry exists.
|
|
52
|
+
* A failed read rejects, because a network error is not evidence that an
|
|
53
|
+
* entry is gone.
|
|
54
|
+
*/
|
|
55
|
+
describeTarget: (value: string) => Promise<string | undefined>;
|
|
56
|
+
}
|
|
57
|
+
/** The default: no provider mounted, so no entry can be searched or named. */
|
|
58
|
+
export declare const NO_LINK_TARGET_SEARCH: LinkTargetSearchContextValue;
|
|
59
|
+
/**
|
|
60
|
+
* Provided by the console around every surface that edits links — each
|
|
61
|
+
* besigner and the content entry editor — and absent everywhere else.
|
|
62
|
+
*/
|
|
63
|
+
export declare const LinkTargetSearchContext: import("react").Context<LinkTargetSearchContextValue>;
|
|
64
|
+
/**
|
|
65
|
+
* How long a picker waits after the last keystroke before it searches: long
|
|
66
|
+
* enough that typing a word is one search, short enough to feel live.
|
|
67
|
+
*/
|
|
68
|
+
export declare const LINK_TARGET_SEARCH_DEBOUNCE_MS = 250;
|
|
69
|
+
/** A stored status as one of the three the entries table offers. */
|
|
70
|
+
export declare function normalizeLinkTargetEntryStatus(value: unknown): LinkTargetEntryStatus;
|
|
71
|
+
/**
|
|
72
|
+
* The one line a picker shows for an entry: its title and address, the
|
|
73
|
+
* collection it belongs to, and whether it is live — `Hello (/blog/hello) —
|
|
74
|
+
* Blog entry · draft`. The same shape as a listing's label, so a closed picker
|
|
75
|
+
* says what KIND of target it holds, and the status is there because a link
|
|
76
|
+
* to a draft goes nowhere until the draft is published.
|
|
77
|
+
*/
|
|
78
|
+
export declare function entryLinkTargetLabel(entry: {
|
|
79
|
+
title?: string | null;
|
|
80
|
+
path?: string | null;
|
|
81
|
+
collectionName?: string | null;
|
|
82
|
+
status: LinkTargetEntryStatus;
|
|
83
|
+
}): string;
|
|
84
|
+
/** What {@link useLinkTargetEntrySearch} holds for a picker to draw. */
|
|
85
|
+
export interface LinkTargetEntrySearch {
|
|
86
|
+
/** A provider is mounted, so the picker has an Entries group at all. */
|
|
87
|
+
available: boolean;
|
|
88
|
+
/** The entries matching the current query, once its search settles. */
|
|
89
|
+
entries: LinkTargetOption[];
|
|
90
|
+
/** The current query's search is waiting out its debounce or in flight. */
|
|
91
|
+
searching: boolean;
|
|
92
|
+
/** The current query's search failed, so `entries` being empty says nothing. */
|
|
93
|
+
failed: boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Searches entries for what the author typed, while `active` — a picker
|
|
97
|
+
* passes whether its list is open, so a closed picker reads nothing.
|
|
98
|
+
*
|
|
99
|
+
* Debounced by {@link LINK_TARGET_SEARCH_DEBOUNCE_MS}, and each new query
|
|
100
|
+
* aborts the search before it: typing `hello` is one search, not five, and an
|
|
101
|
+
* answer for `hel` that lands after the one for `hello` is dropped rather than
|
|
102
|
+
* shown.
|
|
103
|
+
*/
|
|
104
|
+
export declare function useLinkTargetEntrySearch(query: string, active: boolean): LinkTargetEntrySearch;
|
|
105
|
+
/** What {@link useLinkTargetLabel} calls a stored target. */
|
|
106
|
+
export interface LinkTargetLabel {
|
|
107
|
+
label: string;
|
|
108
|
+
/** Known to be gone: whatever holds the target has been asked and said so. */
|
|
109
|
+
missing: boolean;
|
|
110
|
+
/** Still being looked up, so `label` is a stand-in. */
|
|
111
|
+
pending: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* A readable name for a stored link target: a routing-map key (a bare screen
|
|
115
|
+
* id, `collection:`, `feed:`, `entry:`) or a `screen:` value. `undefined` for
|
|
116
|
+
* nothing stored.
|
|
117
|
+
*
|
|
118
|
+
* Screens, listings and feeds are named from `ScreenLinkContext` exactly as
|
|
119
|
+
* the pickers label them. An entry is named through the search seam, with a
|
|
120
|
+
* stand-in naming its collection while that read is out — never its raw ids,
|
|
121
|
+
* which say nothing to an author.
|
|
122
|
+
*/
|
|
123
|
+
export declare function useLinkTargetLabel(key: string | null | undefined): LinkTargetLabel | undefined;
|
|
@@ -0,0 +1,221 @@
|
|
|
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 link-target search seam (AGL-3119): how a link picker finds ENTRIES.
|
|
18
|
+
*
|
|
19
|
+
* Screens, collection listings and feeds are a handful of targets the
|
|
20
|
+
* console already holds in `ScreenLinkContext`, so a picker filters them in
|
|
21
|
+
* memory. Entries are different in kind: a blog can hold thousands, and
|
|
22
|
+
* reading them all into a dropdown is exactly the read bill a lookup exists
|
|
23
|
+
* to avoid. So a picker asks for the few entries that match what the author
|
|
24
|
+
* typed, when they type it, and names a stored entry reference with one
|
|
25
|
+
* keyed read.
|
|
26
|
+
*
|
|
27
|
+
* The picker lives in libraries that cannot know how the data is read — the
|
|
28
|
+
* designer and the markdown editor — and the console is what can. This
|
|
29
|
+
* context is the contract between them. Its default offers nothing, so every
|
|
30
|
+
* surface without a provider (the tenant, a marketplace README, an isolated
|
|
31
|
+
* spec) keeps working with the targets it has.
|
|
32
|
+
*
|
|
33
|
+
* Same placement rationale as `screen-link-context.ts`: in @aglyn/aglyn
|
|
34
|
+
* without a `'use client'` banner, so the designer, the markdown editor and
|
|
35
|
+
* the console share one context instance; `createContext` at module scope
|
|
36
|
+
* keeps it out of the `@aglyn/aglyn/server` barrel.
|
|
37
|
+
*/ import { createContext, useContext, useEffect, useState } from "react";
|
|
38
|
+
import { screenLinkTargetLabel, unavailableScreenLabel } from "./screen-link-context.js";
|
|
39
|
+
import { ScreenLinkContext } from "./screen-link-context-value.js";
|
|
40
|
+
import { formatCollectionLinkValue, formatEntryLinkValue, parseEntryLinkValue, parseScreenLinkValue, screenRoutesAnswerFor } from "./screen-link-value.js";
|
|
41
|
+
/** The default: no provider mounted, so no entry can be searched or named. */ export const NO_LINK_TARGET_SEARCH = Object.freeze({
|
|
42
|
+
available: false,
|
|
43
|
+
searchEntries: ()=>Promise.resolve([]),
|
|
44
|
+
describeTarget: ()=>Promise.resolve(undefined)
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* Provided by the console around every surface that edits links — each
|
|
48
|
+
* besigner and the content entry editor — and absent everywhere else.
|
|
49
|
+
*/ export const LinkTargetSearchContext = createContext(NO_LINK_TARGET_SEARCH);
|
|
50
|
+
LinkTargetSearchContext.displayName = 'LinkTargetSearchContext';
|
|
51
|
+
/**
|
|
52
|
+
* How long a picker waits after the last keystroke before it searches: long
|
|
53
|
+
* enough that typing a word is one search, short enough to feel live.
|
|
54
|
+
*/ export const LINK_TARGET_SEARCH_DEBOUNCE_MS = 250;
|
|
55
|
+
/** A stored status as one of the three the entries table offers. */ export function normalizeLinkTargetEntryStatus(value) {
|
|
56
|
+
return value === 'published' || value === 'scheduled' ? value : 'draft';
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The one line a picker shows for an entry: its title and address, the
|
|
60
|
+
* collection it belongs to, and whether it is live — `Hello (/blog/hello) —
|
|
61
|
+
* Blog entry · draft`. The same shape as a listing's label, so a closed picker
|
|
62
|
+
* says what KIND of target it holds, and the status is there because a link
|
|
63
|
+
* to a draft goes nowhere until the draft is published.
|
|
64
|
+
*/ export function entryLinkTargetLabel(entry) {
|
|
65
|
+
var _entry_title, _entry_collectionName;
|
|
66
|
+
const name = ((_entry_title = entry.title) == null ? void 0 : _entry_title.trim()) || 'Untitled entry';
|
|
67
|
+
const address = entry.path ? ` (${entry.path})` : '';
|
|
68
|
+
const owner = ((_entry_collectionName = entry.collectionName) == null ? void 0 : _entry_collectionName.trim()) ? `${entry.collectionName.trim()} entry` : 'entry';
|
|
69
|
+
return `${name}${address} — ${owner} · ${entry.status}`;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Searches entries for what the author typed, while `active` — a picker
|
|
73
|
+
* passes whether its list is open, so a closed picker reads nothing.
|
|
74
|
+
*
|
|
75
|
+
* Debounced by {@link LINK_TARGET_SEARCH_DEBOUNCE_MS}, and each new query
|
|
76
|
+
* aborts the search before it: typing `hello` is one search, not five, and an
|
|
77
|
+
* answer for `hel` that lands after the one for `hello` is dropped rather than
|
|
78
|
+
* shown.
|
|
79
|
+
*/ export function useLinkTargetEntrySearch(query, active) {
|
|
80
|
+
var _ref;
|
|
81
|
+
const search = useContext(LinkTargetSearchContext);
|
|
82
|
+
const enabled = active && search.available;
|
|
83
|
+
const [settled, setSettled] = useState(null);
|
|
84
|
+
useEffect(()=>{
|
|
85
|
+
if (!enabled) return undefined;
|
|
86
|
+
const controller = new AbortController();
|
|
87
|
+
const timer = setTimeout(()=>{
|
|
88
|
+
search.searchEntries(query, {
|
|
89
|
+
signal: controller.signal
|
|
90
|
+
}).then((entries)=>{
|
|
91
|
+
if (controller.signal.aborted) return;
|
|
92
|
+
setSettled({
|
|
93
|
+
query,
|
|
94
|
+
search,
|
|
95
|
+
entries,
|
|
96
|
+
failed: false
|
|
97
|
+
});
|
|
98
|
+
}, ()=>{
|
|
99
|
+
if (controller.signal.aborted) return;
|
|
100
|
+
setSettled({
|
|
101
|
+
query,
|
|
102
|
+
search,
|
|
103
|
+
entries: [],
|
|
104
|
+
failed: true
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}, LINK_TARGET_SEARCH_DEBOUNCE_MS);
|
|
108
|
+
return ()=>{
|
|
109
|
+
clearTimeout(timer);
|
|
110
|
+
controller.abort();
|
|
111
|
+
};
|
|
112
|
+
}, [
|
|
113
|
+
enabled,
|
|
114
|
+
query,
|
|
115
|
+
search
|
|
116
|
+
]);
|
|
117
|
+
// Only an answer to THIS query from THIS provider counts: the previous
|
|
118
|
+
// query's entries would be a wrong answer shown as a right one.
|
|
119
|
+
const current = enabled && (settled == null ? void 0 : settled.query) === query && settled.search === search ? settled : null;
|
|
120
|
+
return {
|
|
121
|
+
available: search.available,
|
|
122
|
+
entries: (_ref = current == null ? void 0 : current.entries) != null ? _ref : [],
|
|
123
|
+
searching: enabled && !current,
|
|
124
|
+
failed: Boolean(current == null ? void 0 : current.failed)
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* A readable name for a stored link target: a routing-map key (a bare screen
|
|
129
|
+
* id, `collection:`, `feed:`, `entry:`) or a `screen:` value. `undefined` for
|
|
130
|
+
* nothing stored.
|
|
131
|
+
*
|
|
132
|
+
* Screens, listings and feeds are named from `ScreenLinkContext` exactly as
|
|
133
|
+
* the pickers label them. An entry is named through the search seam, with a
|
|
134
|
+
* stand-in naming its collection while that read is out — never its raw ids,
|
|
135
|
+
* which say nothing to an author.
|
|
136
|
+
*/ export function useLinkTargetLabel(key) {
|
|
137
|
+
var _parseScreenLinkValue;
|
|
138
|
+
const { screens, labels } = useContext(ScreenLinkContext);
|
|
139
|
+
const search = useContext(LinkTargetSearchContext);
|
|
140
|
+
const raw = typeof key === 'string' ? key.trim() : '';
|
|
141
|
+
const target = raw ? (_parseScreenLinkValue = parseScreenLinkValue(raw)) != null ? _parseScreenLinkValue : raw : '';
|
|
142
|
+
const entry = target ? parseEntryLinkValue(target) : undefined;
|
|
143
|
+
const entryKey = entry ? formatEntryLinkValue(entry.collectionId, entry.entryId) : undefined;
|
|
144
|
+
const [described, setDescribed] = useState(null);
|
|
145
|
+
useEffect(()=>{
|
|
146
|
+
if (!entryKey || !search.available) return undefined;
|
|
147
|
+
let live = true;
|
|
148
|
+
search.describeTarget(entryKey).then((label)=>{
|
|
149
|
+
if (live) setDescribed({
|
|
150
|
+
key: entryKey,
|
|
151
|
+
search,
|
|
152
|
+
label,
|
|
153
|
+
failed: false
|
|
154
|
+
});
|
|
155
|
+
}, ()=>{
|
|
156
|
+
if (live) {
|
|
157
|
+
setDescribed({
|
|
158
|
+
key: entryKey,
|
|
159
|
+
search,
|
|
160
|
+
label: undefined,
|
|
161
|
+
failed: true
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
return ()=>{
|
|
166
|
+
live = false;
|
|
167
|
+
};
|
|
168
|
+
}, [
|
|
169
|
+
entryKey,
|
|
170
|
+
search
|
|
171
|
+
]);
|
|
172
|
+
if (!target) return undefined;
|
|
173
|
+
if (entry && entryKey) {
|
|
174
|
+
const collectionName = labels == null ? void 0 : labels[formatCollectionLinkValue(entry.collectionId)];
|
|
175
|
+
const standIn = collectionName ? `Entry in ${collectionName}` : 'Linked entry';
|
|
176
|
+
if (!search.available) {
|
|
177
|
+
return {
|
|
178
|
+
label: standIn,
|
|
179
|
+
missing: false,
|
|
180
|
+
pending: false
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
const answer = (described == null ? void 0 : described.key) === entryKey && described.search === search ? described : null;
|
|
184
|
+
if (!answer) return {
|
|
185
|
+
label: standIn,
|
|
186
|
+
missing: false,
|
|
187
|
+
pending: true
|
|
188
|
+
};
|
|
189
|
+
if (answer.label) return {
|
|
190
|
+
label: answer.label,
|
|
191
|
+
missing: false,
|
|
192
|
+
pending: false
|
|
193
|
+
};
|
|
194
|
+
// A read that failed proves nothing about the entry, so it is named as
|
|
195
|
+
// if the seam were absent rather than condemned.
|
|
196
|
+
if (answer.failed) return {
|
|
197
|
+
label: standIn,
|
|
198
|
+
missing: false,
|
|
199
|
+
pending: false
|
|
200
|
+
};
|
|
201
|
+
return {
|
|
202
|
+
label: collectionName ? `⚠ Unavailable entry in ${collectionName} — deleted` : '⚠ Unavailable entry — deleted',
|
|
203
|
+
missing: true,
|
|
204
|
+
pending: false
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
const named = screenLinkTargetLabel(target, screens, labels);
|
|
208
|
+
if (named) return {
|
|
209
|
+
label: named,
|
|
210
|
+
missing: false,
|
|
211
|
+
pending: false
|
|
212
|
+
};
|
|
213
|
+
const known = screenRoutesAnswerFor(screens, target);
|
|
214
|
+
return {
|
|
215
|
+
label: unavailableScreenLabel(target, known),
|
|
216
|
+
missing: known,
|
|
217
|
+
pending: false
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
//# sourceMappingURL=link-target-search-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/link-target-search-context.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 link-target search seam (AGL-3119): how a link picker finds ENTRIES.\n *\n * Screens, collection listings and feeds are a handful of targets the\n * console already holds in `ScreenLinkContext`, so a picker filters them in\n * memory. Entries are different in kind: a blog can hold thousands, and\n * reading them all into a dropdown is exactly the read bill a lookup exists\n * to avoid. So a picker asks for the few entries that match what the author\n * typed, when they type it, and names a stored entry reference with one\n * keyed read.\n *\n * The picker lives in libraries that cannot know how the data is read — the\n * designer and the markdown editor — and the console is what can. This\n * context is the contract between them. Its default offers nothing, so every\n * surface without a provider (the tenant, a marketplace README, an isolated\n * spec) keeps working with the targets it has.\n *\n * Same placement rationale as `screen-link-context.ts`: in @aglyn/aglyn\n * without a `'use client'` banner, so the designer, the markdown editor and\n * the console share one context instance; `createContext` at module scope\n * keeps it out of the `@aglyn/aglyn/server` barrel.\n */\n\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport {\n screenLinkTargetLabel,\n unavailableScreenLabel,\n} from './screen-link-context'\nimport { ScreenLinkContext } from './screen-link-context-value'\nimport {\n formatCollectionLinkValue,\n formatEntryLinkValue,\n parseEntryLinkValue,\n parseScreenLinkValue,\n screenRoutesAnswerFor,\n} from './screen-link-value'\n\n/** An entry's publication state, as its document stores it. */\nexport type LinkTargetEntryStatus = 'draft' | 'published' | 'scheduled'\n\n/** One entry a search found — see {@link LinkTargetSearchContextValue}. */\nexport interface LinkTargetOption {\n /** The stored reference, `entry:<collectionId>/<entryId>`. */\n value: string\n /** One line naming it — see {@link entryLinkTargetLabel}. */\n label: string\n /** The entry's own title: what a link to it says when nothing else does. */\n title: string\n /** The name of the collection it belongs to. */\n collectionName?: string\n status: LinkTargetEntryStatus\n}\n\nexport interface LinkTargetSearchOptions {\n /** Aborted when the author has typed on: the answer is no longer wanted. */\n signal?: AbortSignal\n}\n\nexport interface LinkTargetSearchContextValue {\n /**\n * Whether anything here can search. False only on the default, where the\n * pickers offer no Entries group at all rather than an empty one.\n */\n available: boolean\n /**\n * The entries matching what the author typed, a few per collection. An\n * empty query asks for the most recently edited ones instead, so a picker\n * opened before anything is typed still offers something.\n *\n * Rejects with an `AbortError` once `signal` aborts.\n */\n searchEntries: (\n query: string,\n options?: LinkTargetSearchOptions,\n ) => Promise<LinkTargetOption[]>\n /**\n * The label for one stored entry reference — the {@link LinkTargetOption}\n * label a search would give it — or `undefined` when no such entry exists.\n * A failed read rejects, because a network error is not evidence that an\n * entry is gone.\n */\n describeTarget: (value: string) => Promise<string | undefined>\n}\n\n/** The default: no provider mounted, so no entry can be searched or named. */\nexport const NO_LINK_TARGET_SEARCH: LinkTargetSearchContextValue =\n Object.freeze({\n available: false,\n searchEntries: () => Promise.resolve([]),\n describeTarget: () => Promise.resolve(undefined),\n })\n\n/**\n * Provided by the console around every surface that edits links — each\n * besigner and the content entry editor — and absent everywhere else.\n */\nexport const LinkTargetSearchContext =\n createContext<LinkTargetSearchContextValue>(NO_LINK_TARGET_SEARCH)\nLinkTargetSearchContext.displayName = 'LinkTargetSearchContext'\n\n/**\n * How long a picker waits after the last keystroke before it searches: long\n * enough that typing a word is one search, short enough to feel live.\n */\nexport const LINK_TARGET_SEARCH_DEBOUNCE_MS = 250\n\n/** A stored status as one of the three the entries table offers. */\nexport function normalizeLinkTargetEntryStatus(\n value: unknown,\n): LinkTargetEntryStatus {\n return value === 'published' || value === 'scheduled' ? value : 'draft'\n}\n\n/**\n * The one line a picker shows for an entry: its title and address, the\n * collection it belongs to, and whether it is live — `Hello (/blog/hello) —\n * Blog entry · draft`. The same shape as a listing's label, so a closed picker\n * says what KIND of target it holds, and the status is there because a link\n * to a draft goes nowhere until the draft is published.\n */\nexport function entryLinkTargetLabel(entry: {\n title?: string | null\n path?: string | null\n collectionName?: string | null\n status: LinkTargetEntryStatus\n}): string {\n const name = entry.title?.trim() || 'Untitled entry'\n const address = entry.path ? ` (${entry.path})` : ''\n const owner = entry.collectionName?.trim()\n ? `${entry.collectionName.trim()} entry`\n : 'entry'\n return `${name}${address} — ${owner} · ${entry.status}`\n}\n\n/** What {@link useLinkTargetEntrySearch} holds for a picker to draw. */\nexport interface LinkTargetEntrySearch {\n /** A provider is mounted, so the picker has an Entries group at all. */\n available: boolean\n /** The entries matching the current query, once its search settles. */\n entries: LinkTargetOption[]\n /** The current query's search is waiting out its debounce or in flight. */\n searching: boolean\n /** The current query's search failed, so `entries` being empty says nothing. */\n failed: boolean\n}\n\ninterface SettledSearch {\n query: string\n search: LinkTargetSearchContextValue\n entries: LinkTargetOption[]\n failed: boolean\n}\n\n/**\n * Searches entries for what the author typed, while `active` — a picker\n * passes whether its list is open, so a closed picker reads nothing.\n *\n * Debounced by {@link LINK_TARGET_SEARCH_DEBOUNCE_MS}, and each new query\n * aborts the search before it: typing `hello` is one search, not five, and an\n * answer for `hel` that lands after the one for `hello` is dropped rather than\n * shown.\n */\nexport function useLinkTargetEntrySearch(\n query: string,\n active: boolean,\n): LinkTargetEntrySearch {\n const search = useContext(LinkTargetSearchContext)\n const enabled = active && search.available\n const [settled, setSettled] = useState<SettledSearch | null>(null)\n\n useEffect(() => {\n if (!enabled) return undefined\n const controller = new AbortController()\n const timer = setTimeout(() => {\n search.searchEntries(query, { signal: controller.signal }).then(\n (entries) => {\n if (controller.signal.aborted) return\n setSettled({ query, search, entries, failed: false })\n },\n () => {\n if (controller.signal.aborted) return\n setSettled({ query, search, entries: [], failed: true })\n },\n )\n }, LINK_TARGET_SEARCH_DEBOUNCE_MS)\n return () => {\n clearTimeout(timer)\n controller.abort()\n }\n }, [enabled, query, search])\n\n // Only an answer to THIS query from THIS provider counts: the previous\n // query's entries would be a wrong answer shown as a right one.\n const current =\n enabled && settled?.query === query && settled.search === search\n ? settled\n : null\n return {\n available: search.available,\n entries: current?.entries ?? [],\n searching: enabled && !current,\n failed: Boolean(current?.failed),\n }\n}\n\n/** What {@link useLinkTargetLabel} calls a stored target. */\nexport interface LinkTargetLabel {\n label: string\n /** Known to be gone: whatever holds the target has been asked and said so. */\n missing: boolean\n /** Still being looked up, so `label` is a stand-in. */\n pending: boolean\n}\n\ninterface DescribedEntry {\n key: string\n search: LinkTargetSearchContextValue\n label: string | undefined\n failed: boolean\n}\n\n/**\n * A readable name for a stored link target: a routing-map key (a bare screen\n * id, `collection:`, `feed:`, `entry:`) or a `screen:` value. `undefined` for\n * nothing stored.\n *\n * Screens, listings and feeds are named from `ScreenLinkContext` exactly as\n * the pickers label them. An entry is named through the search seam, with a\n * stand-in naming its collection while that read is out — never its raw ids,\n * which say nothing to an author.\n */\nexport function useLinkTargetLabel(\n key: string | null | undefined,\n): LinkTargetLabel | undefined {\n const { screens, labels } = useContext(ScreenLinkContext)\n const search = useContext(LinkTargetSearchContext)\n const raw = typeof key === 'string' ? key.trim() : ''\n const target = raw ? (parseScreenLinkValue(raw) ?? raw) : ''\n const entry = target ? parseEntryLinkValue(target) : undefined\n const entryKey = entry\n ? formatEntryLinkValue(entry.collectionId, entry.entryId)\n : undefined\n const [described, setDescribed] = useState<DescribedEntry | null>(null)\n\n useEffect(() => {\n if (!entryKey || !search.available) return undefined\n let live = true\n search.describeTarget(entryKey).then(\n (label) => {\n if (live) setDescribed({ key: entryKey, search, label, failed: false })\n },\n () => {\n if (live) {\n setDescribed({ key: entryKey, search, label: undefined, failed: true })\n }\n },\n )\n return () => {\n live = false\n }\n }, [entryKey, search])\n\n if (!target) return undefined\n if (entry && entryKey) {\n const collectionName =\n labels?.[formatCollectionLinkValue(entry.collectionId)]\n const standIn = collectionName ? `Entry in ${collectionName}` : 'Linked entry'\n if (!search.available) {\n return { label: standIn, missing: false, pending: false }\n }\n const answer =\n described?.key === entryKey && described.search === search\n ? described\n : null\n if (!answer) return { label: standIn, missing: false, pending: true }\n if (answer.label) return { label: answer.label, missing: false, pending: false }\n // A read that failed proves nothing about the entry, so it is named as\n // if the seam were absent rather than condemned.\n if (answer.failed) return { label: standIn, missing: false, pending: false }\n return {\n label: collectionName\n ? `⚠ Unavailable entry in ${collectionName} — deleted`\n : '⚠ Unavailable entry — deleted',\n missing: true,\n pending: false,\n }\n }\n const named = screenLinkTargetLabel(target, screens, labels)\n if (named) return { label: named, missing: false, pending: false }\n const known = screenRoutesAnswerFor(screens, target)\n return {\n label: unavailableScreenLabel(target, known),\n missing: known,\n pending: false,\n }\n}\n"],"names":["createContext","useContext","useEffect","useState","screenLinkTargetLabel","unavailableScreenLabel","ScreenLinkContext","formatCollectionLinkValue","formatEntryLinkValue","parseEntryLinkValue","parseScreenLinkValue","screenRoutesAnswerFor","NO_LINK_TARGET_SEARCH","Object","freeze","available","searchEntries","Promise","resolve","describeTarget","undefined","LinkTargetSearchContext","displayName","LINK_TARGET_SEARCH_DEBOUNCE_MS","normalizeLinkTargetEntryStatus","value","entryLinkTargetLabel","entry","name","title","trim","address","path","owner","collectionName","status","useLinkTargetEntrySearch","query","active","search","enabled","settled","setSettled","controller","AbortController","timer","setTimeout","signal","then","entries","aborted","failed","clearTimeout","abort","current","searching","Boolean","useLinkTargetLabel","key","screens","labels","raw","target","entryKey","collectionId","entryId","described","setDescribed","live","label","standIn","missing","pending","answer","named","known"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;CAqBC,GAED,SAASA,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AACtE,SACEC,qBAAqB,EACrBC,sBAAsB,QACjB,2BAAuB;AAC9B,SAASC,iBAAiB,QAAQ,iCAA6B;AAC/D,SACEC,yBAAyB,EACzBC,oBAAoB,EACpBC,mBAAmB,EACnBC,oBAAoB,EACpBC,qBAAqB,QAChB,yBAAqB;AAiD5B,4EAA4E,GAC5E,OAAO,MAAMC,wBACXC,OAAOC,MAAM,CAAC;IACZC,WAAW;IACXC,eAAe,IAAMC,QAAQC,OAAO,CAAC,EAAE;IACvCC,gBAAgB,IAAMF,QAAQC,OAAO,CAACE;AACxC,GAAE;AAEJ;;;CAGC,GACD,OAAO,MAAMC,0BACXrB,cAA4CY,uBAAsB;AACpES,wBAAwBC,WAAW,GAAG;AAEtC;;;CAGC,GACD,OAAO,MAAMC,iCAAiC,IAAG;AAEjD,kEAAkE,GAClE,OAAO,SAASC,+BACdC,KAAc;IAEd,OAAOA,UAAU,eAAeA,UAAU,cAAcA,QAAQ;AAClE;AAEA;;;;;;CAMC,GACD,OAAO,SAASC,qBAAqBC,KAKpC;QACcA,cAECA;IAFd,MAAMC,OAAOD,EAAAA,eAAAA,MAAME,KAAK,qBAAXF,aAAaG,IAAI,OAAM;IACpC,MAAMC,UAAUJ,MAAMK,IAAI,GAAG,CAAC,EAAE,EAAEL,MAAMK,IAAI,CAAC,CAAC,CAAC,GAAG;IAClD,MAAMC,QAAQN,EAAAA,wBAAAA,MAAMO,cAAc,qBAApBP,sBAAsBG,IAAI,MACpC,GAAGH,MAAMO,cAAc,CAACJ,IAAI,GAAG,MAAM,CAAC,GACtC;IACJ,OAAO,GAAGF,OAAOG,QAAQ,GAAG,EAAEE,MAAM,GAAG,EAAEN,MAAMQ,MAAM,EAAE;AACzD;AAqBA;;;;;;;;CAQC,GACD,OAAO,SAASC,yBACdC,KAAa,EACbC,MAAe;;IAEf,MAAMC,SAAStC,WAAWoB;IAC1B,MAAMmB,UAAUF,UAAUC,OAAOxB,SAAS;IAC1C,MAAM,CAAC0B,SAASC,WAAW,GAAGvC,SAA+B;IAE7DD,UAAU;QACR,IAAI,CAACsC,SAAS,OAAOpB;QACrB,MAAMuB,aAAa,IAAIC;QACvB,MAAMC,QAAQC,WAAW;YACvBP,OAAOvB,aAAa,CAACqB,OAAO;gBAAEU,QAAQJ,WAAWI,MAAM;YAAC,GAAGC,IAAI,CAC7D,CAACC;gBACC,IAAIN,WAAWI,MAAM,CAACG,OAAO,EAAE;gBAC/BR,WAAW;oBAAEL;oBAAOE;oBAAQU;oBAASE,QAAQ;gBAAM;YACrD,GACA;gBACE,IAAIR,WAAWI,MAAM,CAACG,OAAO,EAAE;gBAC/BR,WAAW;oBAAEL;oBAAOE;oBAAQU,SAAS,EAAE;oBAAEE,QAAQ;gBAAK;YACxD;QAEJ,GAAG5B;QACH,OAAO;YACL6B,aAAaP;YACbF,WAAWU,KAAK;QAClB;IACF,GAAG;QAACb;QAASH;QAAOE;KAAO;IAE3B,uEAAuE;IACvE,gEAAgE;IAChE,MAAMe,UACJd,WAAWC,CAAAA,2BAAAA,QAASJ,KAAK,MAAKA,SAASI,QAAQF,MAAM,KAAKA,SACtDE,UACA;IACN,OAAO;QACL1B,WAAWwB,OAAOxB,SAAS;QAC3BkC,OAAO,UAAEK,2BAAAA,QAASL,OAAO,mBAAI,EAAE;QAC/BM,WAAWf,WAAW,CAACc;QACvBH,QAAQK,QAAQF,2BAAAA,QAASH,MAAM;IACjC;AACF;AAkBA;;;;;;;;;CASC,GACD,OAAO,SAASM,mBACdC,GAA8B;QAKRhD;IAHtB,MAAM,EAAEiD,OAAO,EAAEC,MAAM,EAAE,GAAG3D,WAAWK;IACvC,MAAMiC,SAAStC,WAAWoB;IAC1B,MAAMwC,MAAM,OAAOH,QAAQ,WAAWA,IAAI5B,IAAI,KAAK;IACnD,MAAMgC,SAASD,OAAOnD,wBAAAA,qBAAqBmD,gBAArBnD,wBAA6BmD,MAAO;IAC1D,MAAMlC,QAAQmC,SAASrD,oBAAoBqD,UAAU1C;IACrD,MAAM2C,WAAWpC,QACbnB,qBAAqBmB,MAAMqC,YAAY,EAAErC,MAAMsC,OAAO,IACtD7C;IACJ,MAAM,CAAC8C,WAAWC,aAAa,GAAGhE,SAAgC;IAElED,UAAU;QACR,IAAI,CAAC6D,YAAY,CAACxB,OAAOxB,SAAS,EAAE,OAAOK;QAC3C,IAAIgD,OAAO;QACX7B,OAAOpB,cAAc,CAAC4C,UAAUf,IAAI,CAClC,CAACqB;YACC,IAAID,MAAMD,aAAa;gBAAET,KAAKK;gBAAUxB;gBAAQ8B;gBAAOlB,QAAQ;YAAM;QACvE,GACA;YACE,IAAIiB,MAAM;gBACRD,aAAa;oBAAET,KAAKK;oBAAUxB;oBAAQ8B,OAAOjD;oBAAW+B,QAAQ;gBAAK;YACvE;QACF;QAEF,OAAO;YACLiB,OAAO;QACT;IACF,GAAG;QAACL;QAAUxB;KAAO;IAErB,IAAI,CAACuB,QAAQ,OAAO1C;IACpB,IAAIO,SAASoC,UAAU;QACrB,MAAM7B,iBACJ0B,0BAAAA,MAAQ,CAACrD,0BAA0BoB,MAAMqC,YAAY,EAAE;QACzD,MAAMM,UAAUpC,iBAAiB,CAAC,SAAS,EAAEA,gBAAgB,GAAG;QAChE,IAAI,CAACK,OAAOxB,SAAS,EAAE;YACrB,OAAO;gBAAEsD,OAAOC;gBAASC,SAAS;gBAAOC,SAAS;YAAM;QAC1D;QACA,MAAMC,SACJP,CAAAA,6BAAAA,UAAWR,GAAG,MAAKK,YAAYG,UAAU3B,MAAM,KAAKA,SAChD2B,YACA;QACN,IAAI,CAACO,QAAQ,OAAO;YAAEJ,OAAOC;YAASC,SAAS;YAAOC,SAAS;QAAK;QACpE,IAAIC,OAAOJ,KAAK,EAAE,OAAO;YAAEA,OAAOI,OAAOJ,KAAK;YAAEE,SAAS;YAAOC,SAAS;QAAM;QAC/E,uEAAuE;QACvE,iDAAiD;QACjD,IAAIC,OAAOtB,MAAM,EAAE,OAAO;YAAEkB,OAAOC;YAASC,SAAS;YAAOC,SAAS;QAAM;QAC3E,OAAO;YACLH,OAAOnC,iBACH,CAAC,uBAAuB,EAAEA,eAAe,UAAU,CAAC,GACpD;YACJqC,SAAS;YACTC,SAAS;QACX;IACF;IACA,MAAME,QAAQtE,sBAAsB0D,QAAQH,SAASC;IACrD,IAAIc,OAAO,OAAO;QAAEL,OAAOK;QAAOH,SAAS;QAAOC,SAAS;IAAM;IACjE,MAAMG,QAAQhE,sBAAsBgD,SAASG;IAC7C,OAAO;QACLO,OAAOhE,uBAAuByD,QAAQa;QACtCJ,SAASI;QACTH,SAAS;IACX;AACF"}
|