@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,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { type AssistDocsSection } from './docs-index.generated';
|
|
18
|
+
/** Lowercase word tokens, stop words removed, length >= 2. */
|
|
19
|
+
export declare function tokenize(text: string): string[];
|
|
20
|
+
export interface ScoredSection {
|
|
21
|
+
section: AssistDocsSection;
|
|
22
|
+
score: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Top-`limit` docs sections for a user question. Returns an empty array when
|
|
26
|
+
* nothing scores above zero — the caller then answers without docs grounding
|
|
27
|
+
* rather than citing an irrelevant page.
|
|
28
|
+
*/
|
|
29
|
+
export declare function retrieveDocsSections(question: string, limit?: number, sections?: readonly AssistDocsSection[]): ScoredSection[];
|
|
30
|
+
export declare function docsDocumentFrequency(): {
|
|
31
|
+
frequency: ReadonlyMap<string, number>;
|
|
32
|
+
sections: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Public docs-site origin for deep links the assistant hands the user.
|
|
36
|
+
*
|
|
37
|
+
* Configurable (AGL-2016): a self-hoster who publishes the `apps/docs` site on
|
|
38
|
+
* their own domain otherwise had every Assist citation deep-link into
|
|
39
|
+
* `docs.aglyn.com` — our documentation, describing our deployment's flags and
|
|
40
|
+
* plans, cited as if it were theirs.
|
|
41
|
+
*
|
|
42
|
+
* Unlike the operator CONTACT values this keeps our value as the default, and
|
|
43
|
+
* the difference is deliberate: an unset citation origin degrades to a page
|
|
44
|
+
* that genuinely exists and is genuinely about this software, so it is wrong
|
|
45
|
+
* in the way a stale bookmark is wrong. An unset contact address would
|
|
46
|
+
* misroute a legal notice, which is why that one refuses to guess.
|
|
47
|
+
*
|
|
48
|
+
* ⚠️ RE-EXPORTED FROM `DOCS_BASE_URL` RATHER THAN READ AGAIN HERE (AGL-2014).
|
|
49
|
+
* This module had its own `process.env.NEXT_PUBLIC_DOCS_ORIGIN || 'https://
|
|
50
|
+
* docs.aglyn.com'`, which accepted ONLY the canonical name — while
|
|
51
|
+
* `constants/docs-links.ts` also honours the older `NEXT_PUBLIC_AGLYN_DOCS_URL`.
|
|
52
|
+
* So AGL-2186's own defect survived, inverted, in the one file it did not
|
|
53
|
+
* touch: a deployment configured under the older name retargeted every console
|
|
54
|
+
* and besigner help link and left every ASSIST CITATION pointing at
|
|
55
|
+
* `docs.aglyn.com` — our documentation, cited inside their product as theirs.
|
|
56
|
+
* That is the same "one value, two env names" split AGL-733 is the record of.
|
|
57
|
+
* One reader means an operator's docs site cannot be honoured on some surfaces
|
|
58
|
+
* and ignored on others.
|
|
59
|
+
*/
|
|
60
|
+
export declare const DOCS_SITE_ORIGIN: string;
|
|
61
|
+
/**
|
|
62
|
+
* The grounding block injected into the system prompt: the retrieved
|
|
63
|
+
* sections, each with its citable URL, wrapped so the model can quote and
|
|
64
|
+
* link them. Kept AFTER the stable system prefix so prompt caching of the
|
|
65
|
+
* static prefix survives per-question variation.
|
|
66
|
+
*/
|
|
67
|
+
export declare function docsGroundingBlock(scored: readonly ScoredSection[]): string;
|
|
@@ -0,0 +1,188 @@
|
|
|
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
|
+
*/ import { ASSIST_DOCS_INDEX } from "./docs-index.generated.js";
|
|
17
|
+
import { DOCS_BASE_URL } from "./docs-help.js";
|
|
18
|
+
/**
|
|
19
|
+
* Lexical docs retrieval for Aglyn Assist (AGL-1860, phase 1) — deliberately
|
|
20
|
+
* no vector store: a BM25-flavoured term-frequency score over the generated
|
|
21
|
+
* docs section index, with title/heading term boosts. Good enough to ground
|
|
22
|
+
* "how do I…" answers in the right docs section and cheap enough to run on
|
|
23
|
+
* every message inside the API route.
|
|
24
|
+
*/ /** Words too common in this corpus to carry signal. */ const STOP_WORDS = new Set([
|
|
25
|
+
'a',
|
|
26
|
+
'an',
|
|
27
|
+
'and',
|
|
28
|
+
'are',
|
|
29
|
+
'as',
|
|
30
|
+
'at',
|
|
31
|
+
'be',
|
|
32
|
+
'by',
|
|
33
|
+
'can',
|
|
34
|
+
'do',
|
|
35
|
+
'does',
|
|
36
|
+
'for',
|
|
37
|
+
'from',
|
|
38
|
+
'how',
|
|
39
|
+
'i',
|
|
40
|
+
'in',
|
|
41
|
+
'is',
|
|
42
|
+
'it',
|
|
43
|
+
'my',
|
|
44
|
+
'of',
|
|
45
|
+
'on',
|
|
46
|
+
'or',
|
|
47
|
+
'that',
|
|
48
|
+
'the',
|
|
49
|
+
'this',
|
|
50
|
+
'to',
|
|
51
|
+
'what',
|
|
52
|
+
'when',
|
|
53
|
+
'where',
|
|
54
|
+
'which',
|
|
55
|
+
'why',
|
|
56
|
+
'with',
|
|
57
|
+
'you',
|
|
58
|
+
'your'
|
|
59
|
+
]);
|
|
60
|
+
/** Lowercase word tokens, stop words removed, length >= 2. */ export function tokenize(text) {
|
|
61
|
+
var _text_toLowerCase_match;
|
|
62
|
+
return ((_text_toLowerCase_match = text.toLowerCase().match(RegExp("[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376-\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E-\\u066F\\u0671-\\u06D3\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4-\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088F\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC-\\u09DD\\u09DF-\\u09E1\\u09F0-\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0-\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F-\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5C-\\u0C5D\\u0C60-\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDC-\\u0CDE\\u0CE0-\\u0CE1\\u0CF1-\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E81-\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065-\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE-\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C8A\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5-\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183-\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3006\\u3031-\\u3035\\u303B-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7DC\\uA7F1-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD-\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}-\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{10300}-\\u{1031F}\\u{1032D}-\\u{10340}\\u{10342}-\\u{10349}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{103A0}-\\u{103C3}\\u{103C8}-\\u{103CF}\\u{10400}-\\u{1049D}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{10570}-\\u{1057A}\\u{1057C}-\\u{1058A}\\u{1058C}-\\u{10592}\\u{10594}-\\u{10595}\\u{10597}-\\u{105A1}\\u{105A3}-\\u{105B1}\\u{105B3}-\\u{105B9}\\u{105BB}-\\u{105BC}\\u{105C0}-\\u{105F3}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{10780}-\\u{10785}\\u{10787}-\\u{107B0}\\u{107B2}-\\u{107BA}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}-\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10860}-\\u{10876}\\u{10880}-\\u{1089E}\\u{108E0}-\\u{108F2}\\u{108F4}-\\u{108F5}\\u{10900}-\\u{10915}\\u{10920}-\\u{10939}\\u{10940}-\\u{10959}\\u{10980}-\\u{109B7}\\u{109BE}-\\u{109BF}\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A35}\\u{10A60}-\\u{10A7C}\\u{10A80}-\\u{10A9C}\\u{10AC0}-\\u{10AC7}\\u{10AC9}-\\u{10AE4}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B60}-\\u{10B72}\\u{10B80}-\\u{10B91}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10D00}-\\u{10D23}\\u{10D4A}-\\u{10D65}\\u{10D6F}-\\u{10D85}\\u{10E80}-\\u{10EA9}\\u{10EB0}-\\u{10EB1}\\u{10EC2}-\\u{10EC7}\\u{10F00}-\\u{10F1C}\\u{10F27}\\u{10F30}-\\u{10F45}\\u{10F70}-\\u{10F81}\\u{10FB0}-\\u{10FC4}\\u{10FE0}-\\u{10FF6}\\u{11003}-\\u{11037}\\u{11071}-\\u{11072}\\u{11075}\\u{11083}-\\u{110AF}\\u{110D0}-\\u{110E8}\\u{11103}-\\u{11126}\\u{11144}\\u{11147}\\u{11150}-\\u{11172}\\u{11176}\\u{11183}-\\u{111B2}\\u{111C1}-\\u{111C4}\\u{111DA}\\u{111DC}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122B}\\u{1123F}-\\u{11240}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A8}\\u{112B0}-\\u{112DE}\\u{11305}-\\u{1130C}\\u{1130F}-\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}-\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}\\u{11350}\\u{1135D}-\\u{11361}\\u{11380}-\\u{11389}\\u{1138B}\\u{1138E}\\u{11390}-\\u{113B5}\\u{113B7}\\u{113D1}\\u{113D3}\\u{11400}-\\u{11434}\\u{11447}-\\u{1144A}\\u{1145F}-\\u{11461}\\u{11480}-\\u{114AF}\\u{114C4}-\\u{114C5}\\u{114C7}\\u{11580}-\\u{115AE}\\u{115D8}-\\u{115DB}\\u{11600}-\\u{1162F}\\u{11644}\\u{11680}-\\u{116AA}\\u{116B8}\\u{11700}-\\u{1171A}\\u{11740}-\\u{11746}\\u{11800}-\\u{1182B}\\u{118A0}-\\u{118DF}\\u{118FF}-\\u{11906}\\u{11909}\\u{1190C}-\\u{11913}\\u{11915}-\\u{11916}\\u{11918}-\\u{1192F}\\u{1193F}\\u{11941}\\u{119A0}-\\u{119A7}\\u{119AA}-\\u{119D0}\\u{119E1}\\u{119E3}\\u{11A00}\\u{11A0B}-\\u{11A32}\\u{11A3A}\\u{11A50}\\u{11A5C}-\\u{11A89}\\u{11A9D}\\u{11AB0}-\\u{11AF8}\\u{11BC0}-\\u{11BE0}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2E}\\u{11C40}\\u{11C72}-\\u{11C8F}\\u{11D00}-\\u{11D06}\\u{11D08}-\\u{11D09}\\u{11D0B}-\\u{11D30}\\u{11D46}\\u{11D60}-\\u{11D65}\\u{11D67}-\\u{11D68}\\u{11D6A}-\\u{11D89}\\u{11D98}\\u{11DB0}-\\u{11DDB}\\u{11EE0}-\\u{11EF2}\\u{11F02}\\u{11F04}-\\u{11F10}\\u{11F12}-\\u{11F33}\\u{11FB0}\\u{12000}-\\u{12399}\\u{12480}-\\u{12543}\\u{12F90}-\\u{12FF0}\\u{13000}-\\u{1342F}\\u{13441}-\\u{13446}\\u{13460}-\\u{143FA}\\u{14400}-\\u{14646}\\u{16100}-\\u{1611D}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A70}-\\u{16ABE}\\u{16AD0}-\\u{16AED}\\u{16B00}-\\u{16B2F}\\u{16B40}-\\u{16B43}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16D40}-\\u{16D6C}\\u{16E40}-\\u{16E7F}\\u{16EA0}-\\u{16EB8}\\u{16EBB}-\\u{16ED3}\\u{16F00}-\\u{16F4A}\\u{16F50}\\u{16F93}-\\u{16F9F}\\u{16FE0}-\\u{16FE1}\\u{16FE3}\\u{16FF2}-\\u{16FF3}\\u{17000}-\\u{18CD5}\\u{18CFF}-\\u{18D1E}\\u{18D80}-\\u{18DF2}\\u{1AFF0}-\\u{1AFF3}\\u{1AFF5}-\\u{1AFFB}\\u{1AFFD}-\\u{1AFFE}\\u{1B000}-\\u{1B122}\\u{1B132}\\u{1B150}-\\u{1B152}\\u{1B155}\\u{1B164}-\\u{1B167}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}-\\u{1D49F}\\u{1D4A2}\\u{1D4A5}-\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6C0}\\u{1D6C2}-\\u{1D6DA}\\u{1D6DC}-\\u{1D6FA}\\u{1D6FC}-\\u{1D714}\\u{1D716}-\\u{1D734}\\u{1D736}-\\u{1D74E}\\u{1D750}-\\u{1D76E}\\u{1D770}-\\u{1D788}\\u{1D78A}-\\u{1D7A8}\\u{1D7AA}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1DF00}-\\u{1DF1E}\\u{1DF25}-\\u{1DF2A}\\u{1E030}-\\u{1E06D}\\u{1E100}-\\u{1E12C}\\u{1E137}-\\u{1E13D}\\u{1E14E}\\u{1E290}-\\u{1E2AD}\\u{1E2C0}-\\u{1E2EB}\\u{1E4D0}-\\u{1E4EB}\\u{1E5D0}-\\u{1E5ED}\\u{1E5F0}\\u{1E6C0}-\\u{1E6DE}\\u{1E6E0}-\\u{1E6E2}\\u{1E6E4}-\\u{1E6E5}\\u{1E6E7}-\\u{1E6ED}\\u{1E6F0}-\\u{1E6F4}\\u{1E6FE}-\\u{1E6FF}\\u{1E7E0}-\\u{1E7E6}\\u{1E7E8}-\\u{1E7EB}\\u{1E7ED}-\\u{1E7EE}\\u{1E7F0}-\\u{1E7FE}\\u{1E800}-\\u{1E8C4}\\u{1E900}-\\u{1E943}\\u{1E94B}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}-\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}-\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}-\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{20000}-\\u{2A6DF}\\u{2A700}-\\u{2B81D}\\u{2B820}-\\u{2CEAD}\\u{2CEB0}-\\u{2EBE0}\\u{2EBF0}-\\u{2EE5D}\\u{2F800}-\\u{2FA1D}\\u{30000}-\\u{3134A}\\u{31350}-\\u{33479}\\u0030-\\u0039\\u00B2-\\u00B3\\u00B9\\u00BC-\\u00BE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D58-\\u0D5E\\u0D66-\\u0D78\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\\u{10107}-\\u{10133}\\u{10140}-\\u{10178}\\u{1018A}-\\u{1018B}\\u{102E1}-\\u{102FB}\\u{10320}-\\u{10323}\\u{10341}\\u{1034A}\\u{103D1}-\\u{103D5}\\u{104A0}-\\u{104A9}\\u{10858}-\\u{1085F}\\u{10879}-\\u{1087F}\\u{108A7}-\\u{108AF}\\u{108FB}-\\u{108FF}\\u{10916}-\\u{1091B}\\u{109BC}-\\u{109BD}\\u{109C0}-\\u{109CF}\\u{109D2}-\\u{109FF}\\u{10A40}-\\u{10A48}\\u{10A7D}-\\u{10A7E}\\u{10A9D}-\\u{10A9F}\\u{10AEB}-\\u{10AEF}\\u{10B58}-\\u{10B5F}\\u{10B78}-\\u{10B7F}\\u{10BA9}-\\u{10BAF}\\u{10CFA}-\\u{10CFF}\\u{10D30}-\\u{10D39}\\u{10D40}-\\u{10D49}\\u{10E60}-\\u{10E7E}\\u{10F1D}-\\u{10F26}\\u{10F51}-\\u{10F54}\\u{10FC5}-\\u{10FCB}\\u{11052}-\\u{1106F}\\u{110F0}-\\u{110F9}\\u{11136}-\\u{1113F}\\u{111D0}-\\u{111D9}\\u{111E1}-\\u{111F4}\\u{112F0}-\\u{112F9}\\u{11450}-\\u{11459}\\u{114D0}-\\u{114D9}\\u{11650}-\\u{11659}\\u{116C0}-\\u{116C9}\\u{116D0}-\\u{116E3}\\u{11730}-\\u{1173B}\\u{118E0}-\\u{118F2}\\u{11950}-\\u{11959}\\u{11BF0}-\\u{11BF9}\\u{11C50}-\\u{11C6C}\\u{11D50}-\\u{11D59}\\u{11DA0}-\\u{11DA9}\\u{11DE0}-\\u{11DE9}\\u{11F50}-\\u{11F59}\\u{11FC0}-\\u{11FD4}\\u{12400}-\\u{1246E}\\u{16130}-\\u{16139}\\u{16A60}-\\u{16A69}\\u{16AC0}-\\u{16AC9}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16D70}-\\u{16D79}\\u{16E80}-\\u{16E96}\\u{16FF4}-\\u{16FF6}\\u{1CCF0}-\\u{1CCF9}\\u{1D2C0}-\\u{1D2D3}\\u{1D2E0}-\\u{1D2F3}\\u{1D360}-\\u{1D378}\\u{1D7CE}-\\u{1D7FF}\\u{1E140}-\\u{1E149}\\u{1E2F0}-\\u{1E2F9}\\u{1E4F0}-\\u{1E4F9}\\u{1E5F1}-\\u{1E5FA}\\u{1E8C7}-\\u{1E8CF}\\u{1E950}-\\u{1E959}\\u{1EC71}-\\u{1ECAB}\\u{1ECAD}-\\u{1ECAF}\\u{1ECB1}-\\u{1ECB4}\\u{1ED01}-\\u{1ED2D}\\u{1ED2F}-\\u{1ED3D}\\u{1F100}-\\u{1F10C}\\u{1FBF0}-\\u{1FBF9}]{2,}", "gu"))) != null ? _text_toLowerCase_match : []).filter((token)=>!STOP_WORDS.has(token));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Score one section against query tokens. Term frequency saturates quickly
|
|
66
|
+
* (BM25-ish k=1.2) so one section mentioning "domain" ten times does not
|
|
67
|
+
* drown a section about the actual task; title and heading hits carry
|
|
68
|
+
* dedicated boosts because those are the docs' own statement of topic.
|
|
69
|
+
*/ function scoreSection(section, queryTokens, bodyTokenCounts, titleTokens, headingTokens) {
|
|
70
|
+
let score = 0;
|
|
71
|
+
for (const token of queryTokens){
|
|
72
|
+
var _bodyTokenCounts_get;
|
|
73
|
+
const tf = (_bodyTokenCounts_get = bodyTokenCounts.get(token)) != null ? _bodyTokenCounts_get : 0;
|
|
74
|
+
if (tf > 0) score += tf * 2.2 / (tf + 1.2);
|
|
75
|
+
if (titleTokens.has(token)) score += 2.5;
|
|
76
|
+
if (headingTokens.has(token)) score += 2;
|
|
77
|
+
}
|
|
78
|
+
return score;
|
|
79
|
+
}
|
|
80
|
+
/** Tokenized once per process — module scope, ~650 sections. */ let indexed = null;
|
|
81
|
+
function buildIndex(sections) {
|
|
82
|
+
return sections.map((section)=>{
|
|
83
|
+
const bodyTokenCounts = new Map();
|
|
84
|
+
for (const token of tokenize(section.text)){
|
|
85
|
+
var _bodyTokenCounts_get;
|
|
86
|
+
bodyTokenCounts.set(token, ((_bodyTokenCounts_get = bodyTokenCounts.get(token)) != null ? _bodyTokenCounts_get : 0) + 1);
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
section,
|
|
90
|
+
bodyTokenCounts,
|
|
91
|
+
titleTokens: new Set(tokenize(section.title)),
|
|
92
|
+
headingTokens: new Set(tokenize(section.heading))
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Top-`limit` docs sections for a user question. Returns an empty array when
|
|
98
|
+
* nothing scores above zero — the caller then answers without docs grounding
|
|
99
|
+
* rather than citing an irrelevant page.
|
|
100
|
+
*/ export function retrieveDocsSections(question, limit = 6, sections = ASSIST_DOCS_INDEX) {
|
|
101
|
+
const queryTokens = [
|
|
102
|
+
...new Set(tokenize(question))
|
|
103
|
+
];
|
|
104
|
+
if (!queryTokens.length) return [];
|
|
105
|
+
const index = sections === ASSIST_DOCS_INDEX ? indexed != null ? indexed : indexed = buildIndex(sections) : buildIndex(sections);
|
|
106
|
+
return index.map((entry)=>({
|
|
107
|
+
section: entry.section,
|
|
108
|
+
score: scoreSection(entry.section, queryTokens, entry.bodyTokenCounts, entry.titleTokens, entry.headingTokens)
|
|
109
|
+
})).filter((scored)=>scored.score > 0).sort((a, b)=>b.score - a.score).slice(0, limit);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* How many indexed sections each token appears in — the raw material for an
|
|
113
|
+
* IDF weight (AGL-2486).
|
|
114
|
+
*
|
|
115
|
+
* Lives here rather than in the deflection module because the tokenized index
|
|
116
|
+
* is already built here and rebuilding it there would tokenize ~500KB of docs
|
|
117
|
+
* a second time, per process, to reach the same numbers. Memoised alongside
|
|
118
|
+
* `indexed` and derived from it, so the two can never disagree about what a
|
|
119
|
+
* token is.
|
|
120
|
+
*
|
|
121
|
+
* Counts SECTIONS, not pages: a term confined to one page but repeated in
|
|
122
|
+
* every section of it is still a specific term, and page-level counting would
|
|
123
|
+
* flatten exactly the distinction the weight exists to make.
|
|
124
|
+
*/ let documentFrequency = null;
|
|
125
|
+
export function docsDocumentFrequency() {
|
|
126
|
+
if (!documentFrequency) {
|
|
127
|
+
const index = indexed != null ? indexed : indexed = buildIndex(ASSIST_DOCS_INDEX);
|
|
128
|
+
const frequency = new Map();
|
|
129
|
+
for (const entry of index){
|
|
130
|
+
const seen = new Set([
|
|
131
|
+
...entry.bodyTokenCounts.keys(),
|
|
132
|
+
...entry.titleTokens,
|
|
133
|
+
...entry.headingTokens
|
|
134
|
+
]);
|
|
135
|
+
for (const token of seen){
|
|
136
|
+
var _frequency_get;
|
|
137
|
+
frequency.set(token, ((_frequency_get = frequency.get(token)) != null ? _frequency_get : 0) + 1);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
documentFrequency = frequency;
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
frequency: documentFrequency,
|
|
144
|
+
sections: ASSIST_DOCS_INDEX.length
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Public docs-site origin for deep links the assistant hands the user.
|
|
149
|
+
*
|
|
150
|
+
* Configurable (AGL-2016): a self-hoster who publishes the `apps/docs` site on
|
|
151
|
+
* their own domain otherwise had every Assist citation deep-link into
|
|
152
|
+
* `docs.aglyn.com` — our documentation, describing our deployment's flags and
|
|
153
|
+
* plans, cited as if it were theirs.
|
|
154
|
+
*
|
|
155
|
+
* Unlike the operator CONTACT values this keeps our value as the default, and
|
|
156
|
+
* the difference is deliberate: an unset citation origin degrades to a page
|
|
157
|
+
* that genuinely exists and is genuinely about this software, so it is wrong
|
|
158
|
+
* in the way a stale bookmark is wrong. An unset contact address would
|
|
159
|
+
* misroute a legal notice, which is why that one refuses to guess.
|
|
160
|
+
*
|
|
161
|
+
* ⚠️ RE-EXPORTED FROM `DOCS_BASE_URL` RATHER THAN READ AGAIN HERE (AGL-2014).
|
|
162
|
+
* This module had its own `process.env.NEXT_PUBLIC_DOCS_ORIGIN || 'https://
|
|
163
|
+
* docs.aglyn.com'`, which accepted ONLY the canonical name — while
|
|
164
|
+
* `constants/docs-links.ts` also honours the older `NEXT_PUBLIC_AGLYN_DOCS_URL`.
|
|
165
|
+
* So AGL-2186's own defect survived, inverted, in the one file it did not
|
|
166
|
+
* touch: a deployment configured under the older name retargeted every console
|
|
167
|
+
* and besigner help link and left every ASSIST CITATION pointing at
|
|
168
|
+
* `docs.aglyn.com` — our documentation, cited inside their product as theirs.
|
|
169
|
+
* That is the same "one value, two env names" split AGL-733 is the record of.
|
|
170
|
+
* One reader means an operator's docs site cannot be honoured on some surfaces
|
|
171
|
+
* and ignored on others.
|
|
172
|
+
*/ export const DOCS_SITE_ORIGIN = DOCS_BASE_URL;
|
|
173
|
+
/**
|
|
174
|
+
* The grounding block injected into the system prompt: the retrieved
|
|
175
|
+
* sections, each with its citable URL, wrapped so the model can quote and
|
|
176
|
+
* link them. Kept AFTER the stable system prefix so prompt caching of the
|
|
177
|
+
* static prefix survives per-question variation.
|
|
178
|
+
*/ export function docsGroundingBlock(scored) {
|
|
179
|
+
if (!scored.length) return '';
|
|
180
|
+
const parts = scored.map(({ section })=>{
|
|
181
|
+
const url = `${DOCS_SITE_ORIGIN}${section.path}${section.anchor}`;
|
|
182
|
+
const heading = section.heading ? `${section.title} — ${section.heading}` : section.title;
|
|
183
|
+
return `<doc url="${url}" title="${heading}">\n${section.text}\n</doc>`;
|
|
184
|
+
});
|
|
185
|
+
return `\n\nRelevant documentation sections (cite these URLs when they answer the question):\n${parts.join('\n')}`;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
//# sourceMappingURL=docs-retrieval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/docs-retrieval.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ASSIST_DOCS_INDEX,\n type AssistDocsSection,\n} from './docs-index.generated'\nimport { DOCS_BASE_URL } from './docs-help'\n\n/**\n * Lexical docs retrieval for Aglyn Assist (AGL-1860, phase 1) — deliberately\n * no vector store: a BM25-flavoured term-frequency score over the generated\n * docs section index, with title/heading term boosts. Good enough to ground\n * \"how do I…\" answers in the right docs section and cheap enough to run on\n * every message inside the API route.\n */\n\n/** Words too common in this corpus to carry signal. */\nconst STOP_WORDS = new Set([\n 'a', 'an', 'and', 'are', 'as', 'at', 'be', 'by', 'can', 'do', 'does',\n 'for', 'from', 'how', 'i', 'in', 'is', 'it', 'my', 'of', 'on', 'or',\n 'that', 'the', 'this', 'to', 'what', 'when', 'where', 'which', 'why',\n 'with', 'you', 'your',\n])\n\n/** Lowercase word tokens, stop words removed, length >= 2. */\nexport function tokenize(text: string): string[] {\n return (text.toLowerCase().match(/[\\p{L}\\p{N}]{2,}/gu) ?? []).filter(\n (token) => !STOP_WORDS.has(token),\n )\n}\n\nexport interface ScoredSection {\n section: AssistDocsSection\n score: number\n}\n\n/**\n * Score one section against query tokens. Term frequency saturates quickly\n * (BM25-ish k=1.2) so one section mentioning \"domain\" ten times does not\n * drown a section about the actual task; title and heading hits carry\n * dedicated boosts because those are the docs' own statement of topic.\n */\nfunction scoreSection(\n section: AssistDocsSection,\n queryTokens: readonly string[],\n bodyTokenCounts: Map<string, number>,\n titleTokens: Set<string>,\n headingTokens: Set<string>,\n): number {\n let score = 0\n for (const token of queryTokens) {\n const tf = bodyTokenCounts.get(token) ?? 0\n if (tf > 0) score += (tf * 2.2) / (tf + 1.2)\n if (titleTokens.has(token)) score += 2.5\n if (headingTokens.has(token)) score += 2\n }\n return score\n}\n\ninterface IndexedSection {\n section: AssistDocsSection\n bodyTokenCounts: Map<string, number>\n titleTokens: Set<string>\n headingTokens: Set<string>\n}\n\n/** Tokenized once per process — module scope, ~650 sections. */\nlet indexed: IndexedSection[] | null = null\n\nfunction buildIndex(sections: readonly AssistDocsSection[]): IndexedSection[] {\n return sections.map((section) => {\n const bodyTokenCounts = new Map<string, number>()\n for (const token of tokenize(section.text)) {\n bodyTokenCounts.set(token, (bodyTokenCounts.get(token) ?? 0) + 1)\n }\n return {\n section,\n bodyTokenCounts,\n titleTokens: new Set(tokenize(section.title)),\n headingTokens: new Set(tokenize(section.heading)),\n }\n })\n}\n\n/**\n * Top-`limit` docs sections for a user question. Returns an empty array when\n * nothing scores above zero — the caller then answers without docs grounding\n * rather than citing an irrelevant page.\n */\nexport function retrieveDocsSections(\n question: string,\n limit = 6,\n sections: readonly AssistDocsSection[] = ASSIST_DOCS_INDEX,\n): ScoredSection[] {\n const queryTokens = [...new Set(tokenize(question))]\n if (!queryTokens.length) return []\n const index =\n sections === ASSIST_DOCS_INDEX\n ? (indexed ??= buildIndex(sections))\n : buildIndex(sections)\n return index\n .map((entry) => ({\n section: entry.section,\n score: scoreSection(\n entry.section,\n queryTokens,\n entry.bodyTokenCounts,\n entry.titleTokens,\n entry.headingTokens,\n ),\n }))\n .filter((scored) => scored.score > 0)\n .sort((a, b) => b.score - a.score)\n .slice(0, limit)\n}\n\n/**\n * How many indexed sections each token appears in — the raw material for an\n * IDF weight (AGL-2486).\n *\n * Lives here rather than in the deflection module because the tokenized index\n * is already built here and rebuilding it there would tokenize ~500KB of docs\n * a second time, per process, to reach the same numbers. Memoised alongside\n * `indexed` and derived from it, so the two can never disagree about what a\n * token is.\n *\n * Counts SECTIONS, not pages: a term confined to one page but repeated in\n * every section of it is still a specific term, and page-level counting would\n * flatten exactly the distinction the weight exists to make.\n */\nlet documentFrequency: Map<string, number> | null = null\n\nexport function docsDocumentFrequency(): {\n frequency: ReadonlyMap<string, number>\n sections: number\n} {\n if (!documentFrequency) {\n const index = (indexed ??= buildIndex(ASSIST_DOCS_INDEX))\n const frequency = new Map<string, number>()\n for (const entry of index) {\n const seen = new Set<string>([\n ...entry.bodyTokenCounts.keys(),\n ...entry.titleTokens,\n ...entry.headingTokens,\n ])\n for (const token of seen) {\n frequency.set(token, (frequency.get(token) ?? 0) + 1)\n }\n }\n documentFrequency = frequency\n }\n return { frequency: documentFrequency, sections: ASSIST_DOCS_INDEX.length }\n}\n\n/**\n * Public docs-site origin for deep links the assistant hands the user.\n *\n * Configurable (AGL-2016): a self-hoster who publishes the `apps/docs` site on\n * their own domain otherwise had every Assist citation deep-link into\n * `docs.aglyn.com` — our documentation, describing our deployment's flags and\n * plans, cited as if it were theirs.\n *\n * Unlike the operator CONTACT values this keeps our value as the default, and\n * the difference is deliberate: an unset citation origin degrades to a page\n * that genuinely exists and is genuinely about this software, so it is wrong\n * in the way a stale bookmark is wrong. An unset contact address would\n * misroute a legal notice, which is why that one refuses to guess.\n *\n * ⚠️ RE-EXPORTED FROM `DOCS_BASE_URL` RATHER THAN READ AGAIN HERE (AGL-2014).\n * This module had its own `process.env.NEXT_PUBLIC_DOCS_ORIGIN || 'https://\n * docs.aglyn.com'`, which accepted ONLY the canonical name — while\n * `constants/docs-links.ts` also honours the older `NEXT_PUBLIC_AGLYN_DOCS_URL`.\n * So AGL-2186's own defect survived, inverted, in the one file it did not\n * touch: a deployment configured under the older name retargeted every console\n * and besigner help link and left every ASSIST CITATION pointing at\n * `docs.aglyn.com` — our documentation, cited inside their product as theirs.\n * That is the same \"one value, two env names\" split AGL-733 is the record of.\n * One reader means an operator's docs site cannot be honoured on some surfaces\n * and ignored on others.\n */\nexport const DOCS_SITE_ORIGIN = DOCS_BASE_URL\n\n/**\n * The grounding block injected into the system prompt: the retrieved\n * sections, each with its citable URL, wrapped so the model can quote and\n * link them. Kept AFTER the stable system prefix so prompt caching of the\n * static prefix survives per-question variation.\n */\nexport function docsGroundingBlock(scored: readonly ScoredSection[]): string {\n if (!scored.length) return ''\n const parts = scored.map(({ section }) => {\n const url = `${DOCS_SITE_ORIGIN}${section.path}${section.anchor}`\n const heading = section.heading\n ? `${section.title} — ${section.heading}`\n : section.title\n return `<doc url=\"${url}\" title=\"${heading}\">\\n${section.text}\\n</doc>`\n })\n return `\\n\\nRelevant documentation sections (cite these URLs when they answer the question):\\n${parts.join('\\n')}`\n}\n"],"names":["ASSIST_DOCS_INDEX","DOCS_BASE_URL","STOP_WORDS","Set","tokenize","text","toLowerCase","match","filter","token","has","scoreSection","section","queryTokens","bodyTokenCounts","titleTokens","headingTokens","score","tf","get","indexed","buildIndex","sections","map","Map","set","title","heading","retrieveDocsSections","question","limit","length","index","entry","scored","sort","a","b","slice","documentFrequency","docsDocumentFrequency","frequency","seen","keys","DOCS_SITE_ORIGIN","docsGroundingBlock","parts","url","path","anchor","join"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,SACEA,iBAAiB,QAEZ,4BAAwB;AAC/B,SAASC,aAAa,QAAQ,iBAAa;AAE3C;;;;;;CAMC,GAED,qDAAqD,GACrD,MAAMC,aAAa,IAAIC,IAAI;IACzB;IAAK;IAAM;IAAO;IAAO;IAAM;IAAM;IAAM;IAAM;IAAO;IAAM;IAC9D;IAAO;IAAQ;IAAO;IAAK;IAAM;IAAM;IAAM;IAAM;IAAM;IAAM;IAC/D;IAAQ;IAAO;IAAQ;IAAM;IAAQ;IAAQ;IAAS;IAAS;IAC/D;IAAQ;IAAO;CAChB;AAED,4DAA4D,GAC5D,OAAO,SAASC,SAASC,IAAY;QAC3BA;IAAR,OAAO,EAACA,0BAAAA,KAAKC,WAAW,GAAGC,KAAK,CAAC,4naAAzBF,0BAAkD,EAAE,EAAEG,MAAM,CAClE,CAACC,QAAU,CAACP,WAAWQ,GAAG,CAACD;AAE/B;AAOA;;;;;CAKC,GACD,SAASE,aACPC,OAA0B,EAC1BC,WAA8B,EAC9BC,eAAoC,EACpCC,WAAwB,EACxBC,aAA0B;IAE1B,IAAIC,QAAQ;IACZ,KAAK,MAAMR,SAASI,YAAa;YACpBC;QAAX,MAAMI,MAAKJ,uBAAAA,gBAAgBK,GAAG,CAACV,kBAApBK,uBAA8B;QACzC,IAAII,KAAK,GAAGD,SAAS,AAACC,KAAK,MAAQA,CAAAA,KAAK,GAAE;QAC1C,IAAIH,YAAYL,GAAG,CAACD,QAAQQ,SAAS;QACrC,IAAID,cAAcN,GAAG,CAACD,QAAQQ,SAAS;IACzC;IACA,OAAOA;AACT;AASA,8DAA8D,GAC9D,IAAIG,UAAmC;AAEvC,SAASC,WAAWC,QAAsC;IACxD,OAAOA,SAASC,GAAG,CAAC,CAACX;QACnB,MAAME,kBAAkB,IAAIU;QAC5B,KAAK,MAAMf,SAASL,SAASQ,QAAQP,IAAI,EAAG;gBACdS;YAA5BA,gBAAgBW,GAAG,CAAChB,OAAO,EAACK,uBAAAA,gBAAgBK,GAAG,CAACV,kBAApBK,uBAA8B,KAAK;QACjE;QACA,OAAO;YACLF;YACAE;YACAC,aAAa,IAAIZ,IAAIC,SAASQ,QAAQc,KAAK;YAC3CV,eAAe,IAAIb,IAAIC,SAASQ,QAAQe,OAAO;QACjD;IACF;AACF;AAEA;;;;CAIC,GACD,OAAO,SAASC,qBACdC,QAAgB,EAChBC,QAAQ,CAAC,EACTR,WAAyCtB,iBAAiB;IAE1D,MAAMa,cAAc;WAAI,IAAIV,IAAIC,SAASyB;KAAW;IACpD,IAAI,CAAChB,YAAYkB,MAAM,EAAE,OAAO,EAAE;IAClC,MAAMC,QACJV,aAAatB,oBACRoB,kBAAAA,UAAAA,UAAYC,WAAWC,YACxBD,WAAWC;IACjB,OAAOU,MACJT,GAAG,CAAC,CAACU,QAAW,CAAA;YACfrB,SAASqB,MAAMrB,OAAO;YACtBK,OAAON,aACLsB,MAAMrB,OAAO,EACbC,aACAoB,MAAMnB,eAAe,EACrBmB,MAAMlB,WAAW,EACjBkB,MAAMjB,aAAa;QAEvB,CAAA,GACCR,MAAM,CAAC,CAAC0B,SAAWA,OAAOjB,KAAK,GAAG,GAClCkB,IAAI,CAAC,CAACC,GAAGC,IAAMA,EAAEpB,KAAK,GAAGmB,EAAEnB,KAAK,EAChCqB,KAAK,CAAC,GAAGR;AACd;AAEA;;;;;;;;;;;;;CAaC,GACD,IAAIS,oBAAgD;AAEpD,OAAO,SAASC;IAId,IAAI,CAACD,mBAAmB;QACtB,MAAMP,QAASZ,kBAAAA,UAAAA,UAAYC,WAAWrB;QACtC,MAAMyC,YAAY,IAAIjB;QACtB,KAAK,MAAMS,SAASD,MAAO;YACzB,MAAMU,OAAO,IAAIvC,IAAY;mBACxB8B,MAAMnB,eAAe,CAAC6B,IAAI;mBAC1BV,MAAMlB,WAAW;mBACjBkB,MAAMjB,aAAa;aACvB;YACD,KAAK,MAAMP,SAASiC,KAAM;oBACFD;gBAAtBA,UAAUhB,GAAG,CAAChB,OAAO,EAACgC,iBAAAA,UAAUtB,GAAG,CAACV,kBAAdgC,iBAAwB,KAAK;YACrD;QACF;QACAF,oBAAoBE;IACtB;IACA,OAAO;QAAEA,WAAWF;QAAmBjB,UAAUtB,kBAAkB+B,MAAM;IAAC;AAC5E;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;CAyBC,GACD,OAAO,MAAMa,mBAAmB3C,cAAa;AAE7C;;;;;CAKC,GACD,OAAO,SAAS4C,mBAAmBX,MAAgC;IACjE,IAAI,CAACA,OAAOH,MAAM,EAAE,OAAO;IAC3B,MAAMe,QAAQZ,OAAOX,GAAG,CAAC,CAAC,EAAEX,OAAO,EAAE;QACnC,MAAMmC,MAAM,GAAGH,mBAAmBhC,QAAQoC,IAAI,GAAGpC,QAAQqC,MAAM,EAAE;QACjE,MAAMtB,UAAUf,QAAQe,OAAO,GAC3B,GAAGf,QAAQc,KAAK,CAAC,GAAG,EAAEd,QAAQe,OAAO,EAAE,GACvCf,QAAQc,KAAK;QACjB,OAAO,CAAC,UAAU,EAAEqB,IAAI,SAAS,EAAEpB,QAAQ,IAAI,EAAEf,QAAQP,IAAI,CAAC,QAAQ,CAAC;IACzE;IACA,OAAO,CAAC,sFAAsF,EAAEyC,MAAMI,IAAI,CAAC,OAAO;AACpH"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import type { AglynNodeSchema, NodeId } from '../foundation';
|
|
18
|
+
/**
|
|
19
|
+
* WHERE A PUBLISHED PAGE'S `main` LANDMARK GOES (AGL-2486).
|
|
20
|
+
*
|
|
21
|
+
* The tenant root layout used to wrap every document in one `<main>`. That
|
|
22
|
+
* guaranteed the landmark existed, and put the site nav and the site footer
|
|
23
|
+
* INSIDE it — which is the one thing `main` is defined as excluding, and it
|
|
24
|
+
* makes "skip to content" skip to the top of the chrome it was meant to skip.
|
|
25
|
+
* It also made `main` unofferable anywhere else: the Section element picker
|
|
26
|
+
* and the author-HTML allowlist both drop it, because a second `main` is
|
|
27
|
+
* worse than none, and the root layout already owned the first.
|
|
28
|
+
*
|
|
29
|
+
* So the landmark moves to the region it names, and composition decides where
|
|
30
|
+
* that is:
|
|
31
|
+
*
|
|
32
|
+
* 1. An element the AUTHOR chose wins. The Document layer and the Layout Slot
|
|
33
|
+
* both offer an HTML-element picker; if either says `main`, that is the
|
|
34
|
+
* landmark. When both do, the OUTER one keeps it and the inner is demoted
|
|
35
|
+
* to a plain container — the invariant is one per document, and silently
|
|
36
|
+
* shipping two is the failure this whole rule exists to prevent.
|
|
37
|
+
* 2. Otherwise the slot takes it, because a layout's slot is by construction
|
|
38
|
+
* "the page content between the chrome".
|
|
39
|
+
* 3. With no layout there is no slot, so the screen's own root takes it.
|
|
40
|
+
*
|
|
41
|
+
* The screens that do NOT compose author nodes — the root error and
|
|
42
|
+
* not-found boundaries — carry their own; see `StatusScreenPlain` and
|
|
43
|
+
* `SiteStatusScreen`.
|
|
44
|
+
*
|
|
45
|
+
* Inputs are never mutated.
|
|
46
|
+
*/
|
|
47
|
+
export declare const DOCUMENT_LANDMARK_ELEMENT = "main";
|
|
48
|
+
/** Assign the document's single `main` landmark. See the module comment. */
|
|
49
|
+
export declare function stampDocumentLandmark<N extends AglynNodeSchema = AglynNodeSchema>(nodes: Record<NodeId, N>): Record<NodeId, N>;
|
|
50
|
+
export default stampDocumentLandmark;
|
|
@@ -0,0 +1,100 @@
|
|
|
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
|
+
*/ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
17
|
+
import { NODE_ROOT_ID } from "../canvas-manager/canvas-manager.js";
|
|
18
|
+
import { LAYOUT_SLOT_COMPONENT_ID } from "./compose-layout-nodes.js";
|
|
19
|
+
/**
|
|
20
|
+
* WHERE A PUBLISHED PAGE'S `main` LANDMARK GOES (AGL-2486).
|
|
21
|
+
*
|
|
22
|
+
* The tenant root layout used to wrap every document in one `<main>`. That
|
|
23
|
+
* guaranteed the landmark existed, and put the site nav and the site footer
|
|
24
|
+
* INSIDE it — which is the one thing `main` is defined as excluding, and it
|
|
25
|
+
* makes "skip to content" skip to the top of the chrome it was meant to skip.
|
|
26
|
+
* It also made `main` unofferable anywhere else: the Section element picker
|
|
27
|
+
* and the author-HTML allowlist both drop it, because a second `main` is
|
|
28
|
+
* worse than none, and the root layout already owned the first.
|
|
29
|
+
*
|
|
30
|
+
* So the landmark moves to the region it names, and composition decides where
|
|
31
|
+
* that is:
|
|
32
|
+
*
|
|
33
|
+
* 1. An element the AUTHOR chose wins. The Document layer and the Layout Slot
|
|
34
|
+
* both offer an HTML-element picker; if either says `main`, that is the
|
|
35
|
+
* landmark. When both do, the OUTER one keeps it and the inner is demoted
|
|
36
|
+
* to a plain container — the invariant is one per document, and silently
|
|
37
|
+
* shipping two is the failure this whole rule exists to prevent.
|
|
38
|
+
* 2. Otherwise the slot takes it, because a layout's slot is by construction
|
|
39
|
+
* "the page content between the chrome".
|
|
40
|
+
* 3. With no layout there is no slot, so the screen's own root takes it.
|
|
41
|
+
*
|
|
42
|
+
* The screens that do NOT compose author nodes — the root error and
|
|
43
|
+
* not-found boundaries — carry their own; see `StatusScreenPlain` and
|
|
44
|
+
* `SiteStatusScreen`.
|
|
45
|
+
*
|
|
46
|
+
* Inputs are never mutated.
|
|
47
|
+
*/ export const DOCUMENT_LANDMARK_ELEMENT = 'main';
|
|
48
|
+
/** What a node renders as when it is not the landmark. */ const PLAIN_ELEMENT = 'div';
|
|
49
|
+
/**
|
|
50
|
+
* The element a node was told to render as. `component`, the name Box and
|
|
51
|
+
* Typography already use for it — Section's `element` is the outlier, and it
|
|
52
|
+
* cannot mint a `main` anyway.
|
|
53
|
+
*/ const elementOf = (node)=>{
|
|
54
|
+
var _ref;
|
|
55
|
+
var _node_props;
|
|
56
|
+
return String((_ref = node == null ? void 0 : (_node_props = node.props) == null ? void 0 : _node_props.component) != null ? _ref : '');
|
|
57
|
+
};
|
|
58
|
+
/** Assign the document's single `main` landmark. See the module comment. */ export function stampDocumentLandmark(nodes) {
|
|
59
|
+
if (!nodes) return nodes;
|
|
60
|
+
const slotId = Object.keys(nodes).find((id)=>{
|
|
61
|
+
var _nodes_id;
|
|
62
|
+
return ((_nodes_id = nodes[id]) == null ? void 0 : _nodes_id.componentId) === LAYOUT_SLOT_COMPONENT_ID;
|
|
63
|
+
});
|
|
64
|
+
const rootId = nodes[NODE_ROOT_ID] ? NODE_ROOT_ID : undefined;
|
|
65
|
+
// Nothing to hang it on. A tree with neither is not a page — an empty
|
|
66
|
+
// fragment, a preview of one subtree — and inventing a landmark for it
|
|
67
|
+
// would be the duplicate this function exists to prevent.
|
|
68
|
+
if (!slotId && !rootId) return nodes;
|
|
69
|
+
const rootDeclares = rootId ? elementOf(nodes[rootId]) === 'main' : false;
|
|
70
|
+
const slotDeclares = slotId ? elementOf(nodes[slotId]) === 'main' : false;
|
|
71
|
+
// Outermost author choice first, then the first node that has not already
|
|
72
|
+
// been given an element: a slot an author deliberately made a `section`
|
|
73
|
+
// keeps it, and the landmark falls to the root rather than overruling them.
|
|
74
|
+
// When both were chosen away from `main`, the page ships without one — the
|
|
75
|
+
// author said so twice, and quietly reinstating it would make the picker a
|
|
76
|
+
// suggestion rather than a choice.
|
|
77
|
+
const landmarkId = rootDeclares ? rootId : slotDeclares ? slotId : slotId && !elementOf(nodes[slotId]) ? slotId : rootId && !elementOf(nodes[rootId]) ? rootId : undefined;
|
|
78
|
+
// Exactly one: an author who put `main` on both the Document layer and the
|
|
79
|
+
// slot gets the outer one, and the inner renders as a plain container.
|
|
80
|
+
const demoteId = rootDeclares && slotDeclares ? slotId : undefined;
|
|
81
|
+
const next = _extends({}, nodes);
|
|
82
|
+
if (landmarkId && elementOf(next[landmarkId]) !== DOCUMENT_LANDMARK_ELEMENT) {
|
|
83
|
+
next[landmarkId] = _extends({}, next[landmarkId], {
|
|
84
|
+
props: _extends({}, next[landmarkId].props, {
|
|
85
|
+
component: DOCUMENT_LANDMARK_ELEMENT
|
|
86
|
+
})
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (demoteId) {
|
|
90
|
+
next[demoteId] = _extends({}, next[demoteId], {
|
|
91
|
+
props: _extends({}, next[demoteId].props, {
|
|
92
|
+
component: PLAIN_ELEMENT
|
|
93
|
+
})
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return next;
|
|
97
|
+
}
|
|
98
|
+
export default stampDocumentLandmark;
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=document-landmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/document-landmark.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 type { AglynNodeSchema, NodeId } from '../foundation'\nimport { NODE_ROOT_ID } from '../canvas-manager/canvas-manager'\nimport { LAYOUT_SLOT_COMPONENT_ID } from './compose-layout-nodes'\n\n/**\n * WHERE A PUBLISHED PAGE'S `main` LANDMARK GOES (AGL-2486).\n *\n * The tenant root layout used to wrap every document in one `<main>`. That\n * guaranteed the landmark existed, and put the site nav and the site footer\n * INSIDE it — which is the one thing `main` is defined as excluding, and it\n * makes \"skip to content\" skip to the top of the chrome it was meant to skip.\n * It also made `main` unofferable anywhere else: the Section element picker\n * and the author-HTML allowlist both drop it, because a second `main` is\n * worse than none, and the root layout already owned the first.\n *\n * So the landmark moves to the region it names, and composition decides where\n * that is:\n *\n * 1. An element the AUTHOR chose wins. The Document layer and the Layout Slot\n * both offer an HTML-element picker; if either says `main`, that is the\n * landmark. When both do, the OUTER one keeps it and the inner is demoted\n * to a plain container — the invariant is one per document, and silently\n * shipping two is the failure this whole rule exists to prevent.\n * 2. Otherwise the slot takes it, because a layout's slot is by construction\n * \"the page content between the chrome\".\n * 3. With no layout there is no slot, so the screen's own root takes it.\n *\n * The screens that do NOT compose author nodes — the root error and\n * not-found boundaries — carry their own; see `StatusScreenPlain` and\n * `SiteStatusScreen`.\n *\n * Inputs are never mutated.\n */\nexport const DOCUMENT_LANDMARK_ELEMENT = 'main'\n\n/** What a node renders as when it is not the landmark. */\nconst PLAIN_ELEMENT = 'div'\n\n/**\n * The element a node was told to render as. `component`, the name Box and\n * Typography already use for it — Section's `element` is the outlier, and it\n * cannot mint a `main` anyway.\n */\nconst elementOf = (node: AglynNodeSchema | undefined): string =>\n String((node?.props as { component?: unknown } | undefined)?.component ?? '')\n\n/** Assign the document's single `main` landmark. See the module comment. */\nexport function stampDocumentLandmark<\n N extends AglynNodeSchema = AglynNodeSchema,\n>(nodes: Record<NodeId, N>): Record<NodeId, N> {\n if (!nodes) return nodes\n const slotId = Object.keys(nodes).find(\n (id) => nodes[id]?.componentId === LAYOUT_SLOT_COMPONENT_ID,\n )\n const rootId = nodes[NODE_ROOT_ID] ? NODE_ROOT_ID : undefined\n // Nothing to hang it on. A tree with neither is not a page — an empty\n // fragment, a preview of one subtree — and inventing a landmark for it\n // would be the duplicate this function exists to prevent.\n if (!slotId && !rootId) return nodes\n\n const rootDeclares = rootId ? elementOf(nodes[rootId]) === 'main' : false\n const slotDeclares = slotId ? elementOf(nodes[slotId]) === 'main' : false\n\n // Outermost author choice first, then the first node that has not already\n // been given an element: a slot an author deliberately made a `section`\n // keeps it, and the landmark falls to the root rather than overruling them.\n // When both were chosen away from `main`, the page ships without one — the\n // author said so twice, and quietly reinstating it would make the picker a\n // suggestion rather than a choice.\n const landmarkId = rootDeclares\n ? rootId\n : slotDeclares\n ? slotId\n : slotId && !elementOf(nodes[slotId])\n ? slotId\n : rootId && !elementOf(nodes[rootId])\n ? rootId\n : undefined\n // Exactly one: an author who put `main` on both the Document layer and the\n // slot gets the outer one, and the inner renders as a plain container.\n const demoteId =\n rootDeclares && slotDeclares ? slotId : undefined\n\n const next: Record<NodeId, N> = { ...nodes }\n if (landmarkId && elementOf(next[landmarkId]) !== DOCUMENT_LANDMARK_ELEMENT) {\n next[landmarkId] = {\n ...next[landmarkId],\n props: {\n ...(next[landmarkId].props as object),\n component: DOCUMENT_LANDMARK_ELEMENT,\n },\n } as N\n }\n if (demoteId) {\n next[demoteId] = {\n ...next[demoteId],\n props: { ...(next[demoteId].props as object), component: PLAIN_ELEMENT },\n } as N\n }\n return next\n}\n\nexport default stampDocumentLandmark\n"],"names":["NODE_ROOT_ID","LAYOUT_SLOT_COMPONENT_ID","DOCUMENT_LANDMARK_ELEMENT","PLAIN_ELEMENT","elementOf","node","String","props","component","stampDocumentLandmark","nodes","slotId","Object","keys","find","id","componentId","rootId","undefined","rootDeclares","slotDeclares","landmarkId","demoteId","next"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC;AAGD,SAASA,YAAY,QAAQ,sCAAkC;AAC/D,SAASC,wBAAwB,QAAQ,4BAAwB;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BC,GACD,OAAO,MAAMC,4BAA4B,OAAM;AAE/C,wDAAwD,GACxD,MAAMC,gBAAgB;AAEtB;;;;CAIC,GACD,MAAMC,YAAY,CAACC;;QACTA;WAARC,eAAQD,yBAAAA,cAAAA,KAAME,KAAK,qBAAZ,AAACF,YAAqDG,SAAS,mBAAI;;AAE5E,0EAA0E,GAC1E,OAAO,SAASC,sBAEdC,KAAwB;IACxB,IAAI,CAACA,OAAO,OAAOA;IACnB,MAAMC,SAASC,OAAOC,IAAI,CAACH,OAAOI,IAAI,CACpC,CAACC;YAAOL;eAAAA,EAAAA,YAAAA,KAAK,CAACK,GAAG,qBAATL,UAAWM,WAAW,MAAKf;;IAErC,MAAMgB,SAASP,KAAK,CAACV,aAAa,GAAGA,eAAekB;IACpD,sEAAsE;IACtE,uEAAuE;IACvE,0DAA0D;IAC1D,IAAI,CAACP,UAAU,CAACM,QAAQ,OAAOP;IAE/B,MAAMS,eAAeF,SAASb,UAAUM,KAAK,CAACO,OAAO,MAAM,SAAS;IACpE,MAAMG,eAAeT,SAASP,UAAUM,KAAK,CAACC,OAAO,MAAM,SAAS;IAEpE,0EAA0E;IAC1E,wEAAwE;IACxE,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,mCAAmC;IACnC,MAAMU,aAAaF,eACfF,SACAG,eACET,SACAA,UAAU,CAACP,UAAUM,KAAK,CAACC,OAAO,IAChCA,SACAM,UAAU,CAACb,UAAUM,KAAK,CAACO,OAAO,IAChCA,SACAC;IACV,2EAA2E;IAC3E,uEAAuE;IACvE,MAAMI,WACJH,gBAAgBC,eAAeT,SAASO;IAE1C,MAAMK,OAA0B,aAAKb;IACrC,IAAIW,cAAcjB,UAAUmB,IAAI,CAACF,WAAW,MAAMnB,2BAA2B;QAC3EqB,IAAI,CAACF,WAAW,GAAG,aACdE,IAAI,CAACF,WAAW;YACnBd,OAAO,aACDgB,IAAI,CAACF,WAAW,CAACd,KAAK;gBAC1BC,WAAWN;;;IAGjB;IACA,IAAIoB,UAAU;QACZC,IAAI,CAACD,SAAS,GAAG,aACZC,IAAI,CAACD,SAAS;YACjBf,OAAO,aAAMgB,IAAI,CAACD,SAAS,CAACf,KAAK;gBAAaC,WAAWL;;;IAE7D;IACA,OAAOoB;AACT;AAEA,eAAed,sBAAqB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Duplicating a resource whole (AGL-2936): the catalog every surface reads.
|
|
19
|
+
*
|
|
20
|
+
* One list of the kinds that can be copied, what a copy is called, how its
|
|
21
|
+
* name and slug are made unique, and the activity code the copy writes —
|
|
22
|
+
* shared by the row menus and More menus that offer the action, the routes
|
|
23
|
+
* that perform it, the AI tool that exposes it, and the feed that reports
|
|
24
|
+
* it. A kind missing from the catalog cannot be offered anywhere, so the
|
|
25
|
+
* three surfaces cannot disagree about what is duplicable.
|
|
26
|
+
*
|
|
27
|
+
* The activity rows are CODES rather than the prose sentences the rest of
|
|
28
|
+
* the feed stores, for the reason the AI rows are (`ai-activity-actions`):
|
|
29
|
+
* the code names the kind, the feed translates it once, and a reader who
|
|
30
|
+
* filters on "duplicated" sees every kind's copies together.
|
|
31
|
+
*
|
|
32
|
+
* A theme is absent on purpose. A site holds exactly one, as fields on its
|
|
33
|
+
* host document rather than as a row in a collection, so there is no list
|
|
34
|
+
* for a second one to appear in: copying a theme means carrying it to
|
|
35
|
+
* another site or saving it into a template, and both of those doors
|
|
36
|
+
* already exist (marketplace install, Save as template).
|
|
37
|
+
*/
|
|
38
|
+
/** The resource kinds a whole copy can be made of. */
|
|
39
|
+
export declare const DUPLICABLE_RESOURCE_KINDS: readonly ["screen", "component", "layout", "template", "form", "emailDesign", "emailTemplate", "campaign", "workflow"];
|
|
40
|
+
export type DuplicableResourceKind = (typeof DUPLICABLE_RESOURCE_KINDS)[number];
|
|
41
|
+
export declare function isDuplicableResourceKind(value: unknown): value is DuplicableResourceKind;
|
|
42
|
+
/**
|
|
43
|
+
* The kinds that live under a site and are copied by the core server module;
|
|
44
|
+
* the other two belong to the plugins that own their collections.
|
|
45
|
+
*/
|
|
46
|
+
export declare const DUPLICABLE_HOST_RESOURCE_KINDS: readonly ["screen", "component", "layout", "template", "form", "emailDesign", "workflow"];
|
|
47
|
+
export type DuplicableHostResourceKind = (typeof DUPLICABLE_HOST_RESOURCE_KINDS)[number];
|
|
48
|
+
export declare function isDuplicableHostResourceKind(value: unknown): value is DuplicableHostResourceKind;
|
|
49
|
+
/** The one-line refusal a client shows when the copy is already being made. */
|
|
50
|
+
export declare const DUPLICATE_BUSY_MESSAGE = "That copy is still being made";
|
|
51
|
+
/** What a person calls one of each, in the dialog and the feed. */
|
|
52
|
+
export declare const DUPLICABLE_RESOURCE_NOUNS: Record<DuplicableResourceKind, string>;
|
|
53
|
+
/**
|
|
54
|
+
* What the copy carries, per kind — the sentence the dialog shows before the
|
|
55
|
+
* copy is made, so nobody is surprised by what came along and what did not.
|
|
56
|
+
*/
|
|
57
|
+
export declare const DUPLICATE_COPIES: Record<DuplicableResourceKind, readonly string[]>;
|
|
58
|
+
/** The action code each copy writes to the activity logs. */
|
|
59
|
+
export declare const DUPLICATE_ACTIVITY_ACTIONS: Record<DuplicableResourceKind, string>;
|
|
60
|
+
/** What a person reads for each code, in the feed and the actor table. */
|
|
61
|
+
export declare const DUPLICATE_ACTIVITY_ACTION_LABELS: Record<string, string>;
|
|
62
|
+
/** Whether a stored action is one of the duplicate codes. */
|
|
63
|
+
export declare function isDuplicateActivityAction(action: unknown): boolean;
|
|
64
|
+
/** The readable label for a duplicate code; `undefined` for any other action. */
|
|
65
|
+
export declare function duplicateActivityActionLabel(action: unknown): string | undefined;
|
|
66
|
+
/** The name a copy is offered under before anyone edits it. */
|
|
67
|
+
export declare const DUPLICATE_NAME_PREFIX = "Copy of ";
|
|
68
|
+
/** The longest name a copy may carry, matching the create drawers' field. */
|
|
69
|
+
export declare const DUPLICATE_NAME_MAX = 200;
|
|
70
|
+
/**
|
|
71
|
+
* The default name for a copy of `sourceName`, before uniqueness.
|
|
72
|
+
*
|
|
73
|
+
* A copy of a copy does not stack prefixes — `Copy of Copy of Home` tells
|
|
74
|
+
* nobody anything — so a name already carrying the prefix keeps it, and the
|
|
75
|
+
* counter {@link uniqueDuplicateName} appends is what tells the two apart.
|
|
76
|
+
*/
|
|
77
|
+
export declare function duplicateDisplayName(sourceName: string | null | undefined): string;
|
|
78
|
+
/**
|
|
79
|
+
* The first of `requested`, `requested 2`, `requested 3`, … that no sibling
|
|
80
|
+
* already carries, compared case-insensitively so `Home` and `home` are one
|
|
81
|
+
* name. A blank request falls back to the prefix alone, never to an empty
|
|
82
|
+
* name; the counter starts at 2 because the unnumbered name IS the first.
|
|
83
|
+
*/
|
|
84
|
+
export declare function uniqueDuplicateName(requested: string | null | undefined, taken: Iterable<string | null | undefined>): string;
|
|
85
|
+
/** The suffix a copied slug takes so it never claims the original's address. */
|
|
86
|
+
export declare const DUPLICATE_SLUG_SUFFIX = "-copy";
|
|
87
|
+
/**
|
|
88
|
+
* `<slug>-copy`, then `<slug>-copy-2`, `<slug>-copy-3`, … — the first the
|
|
89
|
+
* siblings do not carry. A source with no slug yields no slug: the copy is a
|
|
90
|
+
* draft with no address, and inventing one would be a publish decision made
|
|
91
|
+
* by a copy button.
|
|
92
|
+
*
|
|
93
|
+
* A source that is itself a copy (`about-copy`) does not stack suffixes:
|
|
94
|
+
* its base is recovered and numbered instead, so a copy of a copy is
|
|
95
|
+
* `about-copy-2` rather than `about-copy-copy`.
|
|
96
|
+
*/
|
|
97
|
+
export declare function uniqueDuplicateSlug(sourceSlug: string | null | undefined, taken: Iterable<string | null | undefined>): string | undefined;
|
|
98
|
+
/** The note the copy's first version carries: `Duplicated from Home v3`. */
|
|
99
|
+
export declare function duplicateVersionNote(sourceName: string | null | undefined, sourceVersionNumber: number | null | undefined): string;
|
|
100
|
+
/** The AI runtime tool that opens this door for the planner. */
|
|
101
|
+
export declare const DUPLICATE_RESOURCE_TOOL_NAME = "duplicate_resource";
|