@aglyn/aglyn 1.0.0-beta.218 → 1.0.0-beta.220
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/package.json +12 -12
- package/src/lib/app-utils/actions.d.ts +26 -433
- package/src/lib/app-utils/actions.js +108 -633
- package/src/lib/app-utils/actions.js.map +1 -1
- package/src/lib/app-utils/activity-presenter.d.ts +3 -3
- package/src/lib/app-utils/activity-presenter.js +36 -52
- package/src/lib/app-utils/activity-presenter.js.map +1 -1
- package/src/lib/app-utils/analytics-events.d.ts +1 -1
- package/src/lib/app-utils/analytics-events.js.map +1 -1
- package/src/lib/app-utils/analytics-provider.d.ts +182 -0
- package/src/lib/app-utils/analytics-provider.js +133 -0
- package/src/lib/app-utils/analytics-provider.js.map +1 -0
- package/src/lib/app-utils/api-plugins.d.ts +46 -0
- package/src/lib/app-utils/api-plugins.js +19 -0
- package/src/lib/app-utils/api-plugins.js.map +1 -1
- package/src/lib/app-utils/{marketplace-overrides.d.ts → artifact-overrides.d.ts} +9 -6
- package/src/lib/app-utils/{marketplace-overrides.js → artifact-overrides.js} +10 -7
- package/src/lib/app-utils/artifact-overrides.js.map +1 -0
- package/src/lib/app-utils/{marketplace-provenance.d.ts → artifact-provenance.d.ts} +12 -10
- package/src/lib/app-utils/{marketplace-provenance.js → artifact-provenance.js} +9 -7
- package/src/lib/app-utils/artifact-provenance.js.map +1 -0
- package/src/lib/app-utils/binding-token-catalog.d.ts +5 -13
- package/src/lib/app-utils/binding-token-catalog.js +17 -41
- package/src/lib/app-utils/binding-token-catalog.js.map +1 -1
- package/src/lib/app-utils/brand-support-line.d.ts +36 -0
- package/src/lib/app-utils/brand-support-line.js +38 -0
- package/src/lib/app-utils/brand-support-line.js.map +1 -0
- package/src/lib/app-utils/collection-entries.d.ts +2 -2
- package/src/lib/app-utils/collection-entries.js.map +1 -1
- package/src/lib/app-utils/consent-group-change.d.ts +4 -0
- package/src/lib/app-utils/consent-group-change.js.map +1 -1
- package/src/lib/app-utils/consent-groups.d.ts +1 -1
- package/src/lib/app-utils/consent-groups.js.map +1 -1
- package/src/lib/app-utils/console-routes.d.ts +15 -42
- package/src/lib/app-utils/console-routes.js +10 -39
- package/src/lib/app-utils/console-routes.js.map +1 -1
- package/src/lib/app-utils/contacts.d.ts +24 -2
- package/src/lib/app-utils/contacts.js +21 -5
- package/src/lib/app-utils/contacts.js.map +1 -1
- package/src/lib/app-utils/container-membership.d.ts +93 -0
- package/src/lib/app-utils/container-membership.js +165 -0
- package/src/lib/app-utils/container-membership.js.map +1 -0
- package/src/lib/app-utils/crm-task-reminders.d.ts +23 -6
- package/src/lib/app-utils/crm-task-reminders.js +32 -11
- package/src/lib/app-utils/crm-task-reminders.js.map +1 -1
- package/src/lib/app-utils/crm.d.ts +24 -4
- package/src/lib/app-utils/crm.js +23 -0
- package/src/lib/app-utils/crm.js.map +1 -1
- package/src/lib/app-utils/cross-pool-desync.d.ts +39 -0
- package/src/lib/app-utils/cross-pool-desync.js +47 -0
- package/src/lib/app-utils/cross-pool-desync.js.map +1 -0
- package/src/lib/app-utils/csv-upload.d.ts +29 -0
- package/src/lib/app-utils/csv-upload.js +29 -0
- package/src/lib/app-utils/csv-upload.js.map +1 -0
- package/src/lib/app-utils/{dataset-csv.d.ts → csv.d.ts} +10 -43
- package/src/lib/app-utils/{dataset-csv.js → csv.js} +10 -81
- package/src/lib/app-utils/csv.js.map +1 -0
- package/src/lib/app-utils/dataset-models.d.ts +5 -5
- package/src/lib/app-utils/dataset-models.js +19 -2
- package/src/lib/app-utils/dataset-models.js.map +1 -1
- package/src/lib/app-utils/datasets.d.ts +65 -30
- package/src/lib/app-utils/datasets.js +74 -24
- package/src/lib/app-utils/datasets.js.map +1 -1
- package/src/lib/app-utils/docs-deflection.d.ts +6 -6
- package/src/lib/app-utils/docs-deflection.js.map +1 -1
- package/src/lib/app-utils/docs-help.generated.d.ts +14 -8
- package/src/lib/app-utils/docs-help.generated.js +23 -6
- package/src/lib/app-utils/docs-help.generated.js.map +1 -1
- package/src/lib/app-utils/docs-index.generated.d.ts +2 -2
- package/src/lib/app-utils/docs-index.generated.js +570 -346
- package/src/lib/app-utils/docs-index.generated.js.map +1 -1
- package/src/lib/app-utils/docs-retrieval.d.ts +3 -3
- package/src/lib/app-utils/docs-retrieval.js +14 -10
- package/src/lib/app-utils/docs-retrieval.js.map +1 -1
- package/src/lib/app-utils/duplicate-resource.d.ts +4 -1
- package/src/lib/app-utils/duplicate-resource.js +7 -4
- package/src/lib/app-utils/duplicate-resource.js.map +1 -1
- package/src/lib/app-utils/dynamic-list-rule.d.ts +1 -1
- package/src/lib/app-utils/dynamic-list-rule.js +3 -3
- package/src/lib/app-utils/dynamic-list-rule.js.map +1 -1
- package/src/lib/app-utils/element-ui.d.ts +1 -1
- package/src/lib/app-utils/element-ui.js +1 -1
- package/src/lib/app-utils/element-ui.js.map +1 -1
- package/src/lib/app-utils/email-starter-policy.js +3 -3
- package/src/lib/app-utils/email-starter-policy.js.map +1 -1
- package/src/lib/app-utils/email-text.d.ts +80 -0
- package/src/lib/app-utils/email-text.js +189 -0
- package/src/lib/app-utils/email-text.js.map +1 -0
- package/src/lib/app-utils/{list-assignment-policy.d.ts → enrollment-basis.d.ts} +4 -0
- package/src/lib/app-utils/{list-assignment-policy.js → enrollment-basis.js} +5 -1
- package/src/lib/app-utils/enrollment-basis.js.map +1 -0
- package/src/lib/app-utils/entity-picker-context.d.ts +10 -5
- package/src/lib/app-utils/entity-picker-context.js.map +1 -1
- package/src/lib/app-utils/error-beacon.d.ts +75 -6
- package/src/lib/app-utils/error-beacon.js +160 -21
- package/src/lib/app-utils/error-beacon.js.map +1 -1
- package/src/lib/app-utils/expand-repeatables.d.ts +10 -10
- package/src/lib/app-utils/expand-repeatables.js +14 -14
- package/src/lib/app-utils/expand-repeatables.js.map +1 -1
- package/src/lib/app-utils/forms.js +2 -2
- package/src/lib/app-utils/forms.js.map +1 -1
- package/src/lib/app-utils/health-report.d.ts +2 -3
- package/src/lib/app-utils/health-report.js +8 -6
- package/src/lib/app-utils/health-report.js.map +1 -1
- package/src/lib/app-utils/host-events.d.ts +82 -0
- package/src/lib/app-utils/host-events.js +62 -0
- package/src/lib/app-utils/host-events.js.map +1 -0
- package/src/lib/app-utils/inbound-mail-domain.d.ts +27 -0
- package/src/lib/app-utils/inbound-mail-domain.js +31 -0
- package/src/lib/app-utils/inbound-mail-domain.js.map +1 -0
- package/src/lib/app-utils/lockdown.d.ts +11 -0
- package/src/lib/app-utils/lockdown.js +33 -3
- package/src/lib/app-utils/lockdown.js.map +1 -1
- package/src/lib/app-utils/margin-utilization.d.ts +4 -69
- package/src/lib/app-utils/margin-utilization.js +82 -69
- package/src/lib/app-utils/margin-utilization.js.map +1 -1
- package/src/lib/app-utils/member-email-aliases.d.ts +25 -0
- package/src/lib/app-utils/member-email-aliases.js +29 -0
- package/src/lib/app-utils/member-email-aliases.js.map +1 -1
- package/src/lib/app-utils/node-definition-sanitizer.d.ts +16 -16
- package/src/lib/app-utils/node-definition-sanitizer.js +24 -20
- package/src/lib/app-utils/node-definition-sanitizer.js.map +1 -1
- package/src/lib/app-utils/node-interactions.d.ts +7 -7
- package/src/lib/app-utils/node-interactions.js.map +1 -1
- package/src/lib/app-utils/notifications.d.ts +147 -47
- package/src/lib/app-utils/notifications.js +182 -44
- package/src/lib/app-utils/notifications.js.map +1 -1
- package/src/lib/app-utils/operator-alerts.d.ts +15 -1
- package/src/lib/app-utils/operator-alerts.js +47 -10
- package/src/lib/app-utils/operator-alerts.js.map +1 -1
- package/src/lib/app-utils/payments-configured.d.ts +8 -21
- package/src/lib/app-utils/payments-configured.js +8 -23
- package/src/lib/app-utils/payments-configured.js.map +1 -1
- package/src/lib/app-utils/plan-entitlements.d.ts +207 -306
- package/src/lib/app-utils/plan-entitlements.js +345 -528
- package/src/lib/app-utils/plan-entitlements.js.map +1 -1
- package/src/lib/app-utils/platform-brand.d.ts +10 -0
- package/src/lib/app-utils/platform-brand.js +14 -3
- package/src/lib/app-utils/platform-brand.js.map +1 -1
- package/src/lib/app-utils/platform-marketing-consent.d.ts +56 -2
- package/src/lib/app-utils/platform-marketing-consent.js +6 -5
- package/src/lib/app-utils/platform-marketing-consent.js.map +1 -1
- package/src/lib/app-utils/plugin-api-rate-limit.d.ts +7 -1
- package/src/lib/app-utils/plugin-api-rate-limit.js +11 -3
- package/src/lib/app-utils/plugin-api-rate-limit.js.map +1 -1
- package/src/lib/app-utils/plugin-bundle-checks.js +2 -2
- package/src/lib/app-utils/plugin-bundle-checks.js.map +1 -1
- package/src/lib/app-utils/plugin-host-events.generated.d.ts +12 -0
- package/src/lib/app-utils/plugin-host-events.generated.js +169 -0
- package/src/lib/app-utils/plugin-host-events.generated.js.map +1 -0
- package/src/lib/app-utils/plugin-release-flags.generated.d.ts +12 -0
- package/src/lib/app-utils/plugin-release-flags.generated.js +106 -0
- package/src/lib/app-utils/plugin-release-flags.generated.js.map +1 -0
- package/src/lib/app-utils/plugin-starter-templates.generated.d.ts +12 -0
- package/src/lib/app-utils/plugin-starter-templates.generated.js +711 -0
- package/src/lib/app-utils/plugin-starter-templates.generated.js.map +1 -0
- package/src/lib/app-utils/realm-host-surface.generated.js +2 -0
- package/src/lib/app-utils/realm-host-surface.generated.js.map +1 -1
- package/src/lib/app-utils/release-flags.d.ts +14 -5
- package/src/lib/app-utils/release-flags.js +21 -125
- package/src/lib/app-utils/release-flags.js.map +1 -1
- package/src/lib/app-utils/repeat-query.d.ts +56 -0
- package/src/lib/app-utils/{dataset-query.js → repeat-query.js} +16 -16
- package/src/lib/app-utils/repeat-query.js.map +1 -0
- package/src/lib/app-utils/repeat-sources.d.ts +9 -0
- package/src/lib/app-utils/repeat-sources.js.map +1 -1
- package/src/lib/app-utils/retained-refusals.d.ts +73 -0
- package/src/lib/app-utils/retained-refusals.js +186 -0
- package/src/lib/app-utils/retained-refusals.js.map +1 -0
- package/src/lib/app-utils/scope-tokens.d.ts +27 -0
- package/src/lib/app-utils/scope-tokens.js +61 -0
- package/src/lib/app-utils/scope-tokens.js.map +1 -1
- package/src/lib/app-utils/screen-link-context.js +3 -3
- package/src/lib/app-utils/screen-link-context.js.map +1 -1
- package/src/lib/app-utils/screen-route.js +1 -1
- package/src/lib/app-utils/screen-route.js.map +1 -1
- package/src/lib/app-utils/seo-audit.d.ts +132 -0
- package/src/lib/app-utils/seo-audit.js +246 -0
- package/src/lib/app-utils/seo-audit.js.map +1 -0
- package/src/lib/app-utils/seo-keywords.d.ts +48 -0
- package/src/lib/app-utils/seo-keywords.js +60 -0
- package/src/lib/app-utils/seo-keywords.js.map +1 -0
- package/src/lib/app-utils/seo-page-facts.d.ts +66 -0
- package/src/lib/app-utils/seo-page-facts.js +155 -0
- package/src/lib/app-utils/seo-page-facts.js.map +1 -0
- package/src/lib/app-utils/seo-site-scan.d.ts +126 -0
- package/src/lib/app-utils/seo-site-scan.js +162 -0
- package/src/lib/app-utils/seo-site-scan.js.map +1 -0
- package/src/lib/app-utils/seo-title-variables.js +1 -1
- package/src/lib/app-utils/seo-title-variables.js.map +1 -1
- package/src/lib/app-utils/server.d.ts +13 -18
- package/src/lib/app-utils/server.js +33 -51
- package/src/lib/app-utils/server.js.map +1 -1
- package/src/lib/app-utils/site-interactions.d.ts +501 -0
- package/src/lib/app-utils/site-interactions.js +554 -0
- package/src/lib/app-utils/site-interactions.js.map +1 -0
- package/src/lib/app-utils/{marketplace-theme.d.ts → site-theme.d.ts} +13 -2
- package/src/lib/app-utils/{marketplace-theme.js → site-theme.js} +2 -2
- package/src/lib/app-utils/site-theme.js.map +1 -0
- package/src/lib/app-utils/sitemap.d.ts +4 -3
- package/src/lib/app-utils/sitemap.js +9 -7
- package/src/lib/app-utils/sitemap.js.map +1 -1
- package/src/lib/app-utils/stale-build-error.d.ts +51 -0
- package/src/lib/app-utils/stale-build-error.js +100 -1
- package/src/lib/app-utils/stale-build-error.js.map +1 -1
- package/src/lib/app-utils/starter-template-nodes.d.ts +137 -0
- package/src/lib/app-utils/starter-template-nodes.js +129 -0
- package/src/lib/app-utils/starter-template-nodes.js.map +1 -0
- package/src/lib/app-utils/starter-templates.d.ts +11 -34
- package/src/lib/app-utils/starter-templates.js +19 -230
- package/src/lib/app-utils/starter-templates.js.map +1 -1
- package/src/lib/app-utils/{email-topics.d.ts → subscription-topics.d.ts} +64 -48
- package/src/lib/app-utils/{email-topics.js → subscription-topics.js} +39 -109
- package/src/lib/app-utils/subscription-topics.js.map +1 -0
- package/src/lib/app-utils/tax-jurisdiction-figures.d.ts +118 -0
- package/src/lib/app-utils/tax-jurisdiction-figures.js +123 -0
- package/src/lib/app-utils/tax-jurisdiction-figures.js.map +1 -0
- package/src/lib/app-utils/theme-library.d.ts +10 -3
- package/src/lib/app-utils/theme-library.js +13 -4
- package/src/lib/app-utils/theme-library.js.map +1 -1
- package/src/lib/app-utils/usage-budget.d.ts +73 -188
- package/src/lib/app-utils/usage-budget.js +58 -194
- package/src/lib/app-utils/usage-budget.js.map +1 -1
- package/src/lib/app-utils/{campaign-attribution.d.ts → utm-attribution.d.ts} +11 -6
- package/src/lib/app-utils/{campaign-attribution.js → utm-attribution.js} +13 -8
- package/src/lib/app-utils/utm-attribution.js.map +1 -0
- package/src/lib/app-utils/{campaign-forwarding.d.ts → utm-forwarding.d.ts} +14 -14
- package/src/lib/app-utils/{campaign-forwarding.js → utm-forwarding.js} +26 -26
- package/src/lib/app-utils/utm-forwarding.js.map +1 -0
- package/src/lib/app-utils/{campaign-touch.d.ts → utm-touch.d.ts} +25 -17
- package/src/lib/app-utils/{campaign-touch.js → utm-touch.js} +38 -30
- package/src/lib/app-utils/utm-touch.js.map +1 -0
- package/src/lib/app-utils/variables.d.ts +9 -9
- package/src/lib/app-utils/variables.js.map +1 -1
- package/src/lib/app-utils/video-object.js +6 -5
- package/src/lib/app-utils/video-object.js.map +1 -1
- package/src/lib/app-utils/visitor-consent.d.ts +41 -164
- package/src/lib/app-utils/visitor-consent.js +66 -277
- package/src/lib/app-utils/visitor-consent.js.map +1 -1
- package/src/lib/app-utils/visitor-record-ceiling.d.ts +32 -0
- package/src/lib/app-utils/visitor-record-ceiling.js +39 -0
- package/src/lib/app-utils/visitor-record-ceiling.js.map +1 -1
- package/src/lib/app-utils/web-vitals-rum.d.ts +7 -7
- package/src/lib/app-utils/web-vitals-rum.js +31 -63
- package/src/lib/app-utils/web-vitals-rum.js.map +1 -1
- package/src/lib/app-utils/where-used.d.ts +11 -6
- package/src/lib/app-utils/where-used.js +3 -8
- package/src/lib/app-utils/where-used.js.map +1 -1
- package/src/lib/foundation/definitions/components.types.d.ts +1 -1
- package/src/lib/foundation/definitions/components.types.js +1 -1
- package/src/lib/foundation/definitions/components.types.js.map +1 -1
- package/src/lib/foundation/definitions/org-billing.types.d.ts +11 -137
- package/src/lib/foundation/definitions/org-billing.types.js.map +1 -1
- package/src/lib/foundation/definitions/organization.types.d.ts +1 -3
- package/src/lib/foundation/definitions/organization.types.js.map +1 -1
- package/src/lib/foundation/definitions/platform.types.d.ts +11 -5
- package/src/lib/foundation/definitions/platform.types.js.map +1 -1
- package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +16 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js +20 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -1
- package/src/lib/foundation/index.d.ts +1 -1
- package/src/lib/foundation/index.js.map +1 -1
- package/src/lib/plugin-manager/besigner-documents.d.ts +96 -0
- package/src/lib/plugin-manager/besigner-documents.js +61 -0
- package/src/lib/plugin-manager/besigner-documents.js.map +1 -0
- package/src/lib/plugin-manager/computed-variables.d.ts +71 -0
- package/src/lib/plugin-manager/computed-variables.js +74 -0
- package/src/lib/plugin-manager/computed-variables.js.map +1 -0
- package/src/lib/plugin-manager/custom-fields.d.ts +29 -2
- package/src/lib/plugin-manager/custom-fields.js +47 -1
- package/src/lib/plugin-manager/custom-fields.js.map +1 -1
- package/src/lib/plugin-manager/feature-plugins.d.ts +372 -99
- package/src/lib/plugin-manager/feature-plugins.js +126 -51
- package/src/lib/plugin-manager/feature-plugins.js.map +1 -1
- package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +134 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js +840 -10
- package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -1
- package/src/lib/plugin-manager/index.d.ts +0 -1
- package/src/lib/plugin-manager/index.js +0 -1
- package/src/lib/plugin-manager/index.js.map +1 -1
- package/src/lib/plugin-manager/plugin-activity-actions.d.ts +12 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js +25 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js.map +1 -1
- package/src/lib/plugin-manager/plugin-contact-capture.d.ts +9 -4
- package/src/lib/plugin-manager/plugin-contact-capture.js.map +1 -1
- package/src/lib/plugin-manager/plugin-containers.d.ts +68 -0
- package/src/lib/plugin-manager/plugin-containers.generated.d.ts +10 -0
- package/src/lib/plugin-manager/plugin-containers.generated.js +20 -0
- package/src/lib/plugin-manager/plugin-containers.generated.js.map +1 -0
- package/src/lib/plugin-manager/plugin-containers.js +27 -0
- package/src/lib/plugin-manager/plugin-containers.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contributions.d.ts +1 -1
- package/src/lib/plugin-manager/plugin-contributions.js.map +1 -1
- package/src/lib/plugin-manager/plugin-declarations-repair.d.ts +36 -0
- package/src/lib/plugin-manager/plugin-declarations-repair.js +64 -0
- package/src/lib/plugin-manager/plugin-declarations-repair.js.map +1 -0
- package/src/lib/plugin-manager/plugin-dependents.d.ts +101 -0
- package/src/lib/plugin-manager/plugin-dependents.js +75 -0
- package/src/lib/plugin-manager/plugin-dependents.js.map +1 -0
- package/src/lib/plugin-manager/plugin-distribution.d.ts +55 -0
- package/src/lib/plugin-manager/plugin-distribution.js +45 -0
- package/src/lib/plugin-manager/plugin-distribution.js.map +1 -0
- package/src/lib/plugin-manager/plugin-entitlements.d.ts +8 -0
- package/src/lib/plugin-manager/plugin-entitlements.js.map +1 -1
- package/src/lib/plugin-manager/plugin-host-collections.d.ts +17 -0
- package/src/lib/plugin-manager/plugin-host-collections.js +6 -0
- package/src/lib/plugin-manager/plugin-host-collections.js.map +1 -1
- package/src/lib/plugin-manager/plugin-host-resources.d.ts +133 -0
- package/src/lib/plugin-manager/plugin-host-resources.js +52 -0
- package/src/lib/plugin-manager/plugin-host-resources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-membership-detach.js +1 -1
- package/src/lib/plugin-manager/plugin-membership-detach.js.map +1 -1
- package/src/lib/plugin-manager/plugin-org-erasure.d.ts +28 -2
- package/src/lib/plugin-manager/plugin-org-erasure.js +61 -2
- package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -1
- package/src/lib/plugin-manager/plugin-plan-entitlements.d.ts +123 -0
- package/src/lib/plugin-manager/plugin-plan-entitlements.js +101 -0
- package/src/lib/plugin-manager/plugin-plan-entitlements.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-email-state.d.ts +69 -0
- package/src/lib/plugin-manager/plugin-record-email-state.js +32 -0
- package/src/lib/plugin-manager/plugin-record-email-state.js.map +1 -1
- package/src/lib/plugin-manager/plugin-record-index.d.ts +95 -0
- package/src/lib/plugin-manager/plugin-record-index.js +51 -0
- package/src/lib/plugin-manager/plugin-record-index.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-lists.d.ts +115 -0
- package/src/lib/plugin-manager/plugin-record-lists.js +75 -0
- package/src/lib/plugin-manager/plugin-record-lists.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-timeline.d.ts +42 -8
- package/src/lib/plugin-manager/plugin-record-timeline.js.map +1 -1
- package/src/lib/plugin-manager/plugin-record-written.d.ts +58 -0
- package/src/lib/plugin-manager/plugin-record-written.js +42 -0
- package/src/lib/plugin-manager/plugin-record-written.js.map +1 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.d.ts +213 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.js +194 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-site-beacons.d.ts +71 -0
- package/src/lib/plugin-manager/plugin-site-beacons.js +54 -0
- package/src/lib/plugin-manager/plugin-site-beacons.js.map +1 -0
- package/src/lib/plugin-manager/plugin-site-bundle.d.ts +145 -0
- package/src/lib/plugin-manager/plugin-site-bundle.js +78 -0
- package/src/lib/plugin-manager/plugin-site-bundle.js.map +1 -0
- package/src/lib/plugin-manager/plugin-site-cache.d.ts +12 -0
- package/src/lib/plugin-manager/plugin-site-cache.js.map +1 -1
- package/src/lib/plugin-manager/plugin-site-export.d.ts +81 -0
- package/src/lib/plugin-manager/plugin-site-export.js +40 -0
- package/src/lib/plugin-manager/plugin-site-export.js.map +1 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.d.ts +88 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.js +29 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.js.map +1 -0
- package/src/lib/plugin-manager/plugin-subscription-topics.generated.d.ts +11 -0
- package/src/lib/plugin-manager/plugin-subscription-topics.generated.js +41 -0
- package/src/lib/plugin-manager/plugin-subscription-topics.generated.js.map +1 -0
- package/src/lib/plugin-manager/plugin-tax-profile.d.ts +20 -4
- package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -1
- package/src/lib/plugin-manager/plugin-tax-return-sources.d.ts +255 -0
- package/src/lib/plugin-manager/plugin-tax-return-sources.js +191 -0
- package/src/lib/plugin-manager/plugin-tax-return-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-template-sources.d.ts +75 -0
- package/src/lib/plugin-manager/plugin-template-sources.js +37 -0
- package/src/lib/plugin-manager/plugin-template-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-usage-axes.d.ts +319 -0
- package/src/lib/plugin-manager/plugin-usage-axes.js +186 -0
- package/src/lib/plugin-manager/plugin-usage-axes.js.map +1 -0
- package/src/lib/plugin-manager/plugin-usage-meters.d.ts +108 -0
- package/src/lib/plugin-manager/plugin-usage-meters.js +105 -0
- package/src/lib/plugin-manager/plugin-usage-meters.js.map +1 -0
- package/src/lib/plugin-manager/plugin-zones.d.ts +4 -5
- package/src/lib/plugin-manager/plugin-zones.js.map +1 -1
- package/src/lib/plugin-manager/realm-host-aglyn.generated.js +2 -0
- package/src/lib/plugin-manager/realm-host-aglyn.generated.js.map +1 -1
- package/src/lib/plugin-manager/record-captured-contact.d.ts +1 -14
- package/src/lib/plugin-manager/record-captured-contact.js +10 -32
- package/src/lib/plugin-manager/record-captured-contact.js.map +1 -1
- package/src/lib/plugin-manager/repeat-rows.d.ts +124 -0
- package/src/lib/plugin-manager/repeat-rows.js +108 -0
- package/src/lib/plugin-manager/repeat-rows.js.map +1 -0
- package/src/lib/plugin-manager/submission-record-target.d.ts +144 -0
- package/src/lib/plugin-manager/submission-record-target.js +125 -0
- package/src/lib/plugin-manager/submission-record-target.js.map +1 -0
- package/src/lib/plugin-manager/usage-alert-contributors.d.ts +76 -6
- package/src/lib/plugin-manager/usage-alert-contributors.js +23 -10
- package/src/lib/plugin-manager/usage-alert-contributors.js.map +1 -1
- package/src/lib/plugin-manager/video-embed-provider.d.ts +108 -0
- package/src/lib/plugin-manager/video-embed-provider.js +165 -0
- package/src/lib/plugin-manager/video-embed-provider.js.map +1 -0
- package/src/lib/types/nodes.d.ts +2 -2
- package/src/lib/types/nodes.js.map +1 -1
- package/src/lib/app-utils/assist-credits.d.ts +0 -482
- package/src/lib/app-utils/assist-credits.js +0 -509
- package/src/lib/app-utils/assist-credits.js.map +0 -1
- package/src/lib/app-utils/campaign-attribution.js.map +0 -1
- package/src/lib/app-utils/campaign-forwarding.js.map +0 -1
- package/src/lib/app-utils/campaign-membership.d.ts +0 -121
- package/src/lib/app-utils/campaign-membership.js +0 -189
- package/src/lib/app-utils/campaign-membership.js.map +0 -1
- package/src/lib/app-utils/campaign-touch.js.map +0 -1
- package/src/lib/app-utils/console-record-links.d.ts +0 -163
- package/src/lib/app-utils/console-record-links.js +0 -180
- package/src/lib/app-utils/console-record-links.js.map +0 -1
- package/src/lib/app-utils/contact-holder.d.ts +0 -68
- package/src/lib/app-utils/contact-holder.js +0 -129
- package/src/lib/app-utils/contact-holder.js.map +0 -1
- package/src/lib/app-utils/contact-merge.d.ts +0 -136
- package/src/lib/app-utils/contact-merge.js +0 -412
- package/src/lib/app-utils/contact-merge.js.map +0 -1
- package/src/lib/app-utils/crm-booking.d.ts +0 -75
- package/src/lib/app-utils/crm-booking.js +0 -133
- package/src/lib/app-utils/crm-booking.js.map +0 -1
- package/src/lib/app-utils/crm-csv.d.ts +0 -239
- package/src/lib/app-utils/crm-csv.js +0 -467
- package/src/lib/app-utils/crm-csv.js.map +0 -1
- package/src/lib/app-utils/crm-digest.d.ts +0 -185
- package/src/lib/app-utils/crm-digest.js +0 -272
- package/src/lib/app-utils/crm-digest.js.map +0 -1
- package/src/lib/app-utils/crm-inbound.d.ts +0 -245
- package/src/lib/app-utils/crm-inbound.js +0 -407
- package/src/lib/app-utils/crm-inbound.js.map +0 -1
- package/src/lib/app-utils/crm-reports.d.ts +0 -479
- package/src/lib/app-utils/crm-reports.js +0 -680
- package/src/lib/app-utils/crm-reports.js.map +0 -1
- package/src/lib/app-utils/dataset-csv.js.map +0 -1
- package/src/lib/app-utils/dataset-query.d.ts +0 -57
- package/src/lib/app-utils/dataset-query.js.map +0 -1
- package/src/lib/app-utils/email-topics.js.map +0 -1
- package/src/lib/app-utils/form-dataset-binding.d.ts +0 -50
- package/src/lib/app-utils/form-dataset-binding.js +0 -74
- package/src/lib/app-utils/form-dataset-binding.js.map +0 -1
- package/src/lib/app-utils/list-assignment-policy.js.map +0 -1
- package/src/lib/app-utils/list-import.d.ts +0 -158
- package/src/lib/app-utils/list-import.js +0 -332
- package/src/lib/app-utils/list-import.js.map +0 -1
- package/src/lib/app-utils/marketplace-listing-visibility.d.ts +0 -122
- package/src/lib/app-utils/marketplace-listing-visibility.js +0 -147
- package/src/lib/app-utils/marketplace-listing-visibility.js.map +0 -1
- package/src/lib/app-utils/marketplace-overrides.js.map +0 -1
- package/src/lib/app-utils/marketplace-provenance.js.map +0 -1
- package/src/lib/app-utils/marketplace-theme.js.map +0 -1
- package/src/lib/app-utils/marketplace-update-state.d.ts +0 -119
- package/src/lib/app-utils/marketplace-update-state.js +0 -132
- package/src/lib/app-utils/marketplace-update-state.js.map +0 -1
- package/src/lib/app-utils/publisher-agreement.d.ts +0 -289
- package/src/lib/app-utils/publisher-agreement.js +0 -321
- package/src/lib/app-utils/publisher-agreement.js.map +0 -1
- package/src/lib/app-utils/wistia-embed.d.ts +0 -104
- package/src/lib/app-utils/wistia-embed.js +0 -138
- package/src/lib/app-utils/wistia-embed.js.map +0 -1
- package/src/lib/app-utils/workflows.d.ts +0 -136
- package/src/lib/app-utils/workflows.js +0 -346
- package/src/lib/app-utils/workflows.js.map +0 -1
- package/src/lib/plugin-manager/commerce-zone-props.d.ts +0 -172
- package/src/lib/plugin-manager/commerce-zone-props.js +0 -31
- package/src/lib/plugin-manager/commerce-zone-props.js.map +0 -1
- package/src/lib/plugin-manager/plugin-metered-lines.d.ts +0 -97
- package/src/lib/plugin-manager/plugin-metered-lines.js +0 -123
- package/src/lib/plugin-manager/plugin-metered-lines.js.map +0 -1
|
@@ -0,0 +1,501 @@
|
|
|
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
|
+
* SITE INTERACTIONS: what a published page does when a visitor does something.
|
|
19
|
+
*
|
|
20
|
+
* An interaction is a trigger and an ordered step list. The trigger names an
|
|
21
|
+
* event — a SITE event the page runtime watches for itself (a click, a hover,
|
|
22
|
+
* an element scrolled into view, exit intent), or an event raised on the
|
|
23
|
+
* server — narrowed by payload conditions and capped in how often it fires.
|
|
24
|
+
* The steps the platform knows are the ones a page carries out in the
|
|
25
|
+
* visitor's own browser: showing and hiding elements, opening menus and
|
|
26
|
+
* drawers, classes and ARIA attributes, scrolling, playing a video, an alert,
|
|
27
|
+
* a redirect, an analytics event, author HTML and script.
|
|
28
|
+
*
|
|
29
|
+
* An interaction is stored on the element that carries it
|
|
30
|
+
* (`node-interactions.ts`) or as a row of `hosts/{hostId}/actions`, and the
|
|
31
|
+
* same shape holds more than the platform's own steps. A plugin adds steps of
|
|
32
|
+
* its own — the workflows plugin's server steps, which a page hands to
|
|
33
|
+
* `/api/events/dispatch` for the host-event listener that owns them. The
|
|
34
|
+
* platform types only its own steps ({@link ClientInteractionStep}), knows any
|
|
35
|
+
* other step only by its `type`, and treats every step that is not one of its
|
|
36
|
+
* client steps as the server's to run. A plugin that wants one of its steps
|
|
37
|
+
* offered in the interaction builder DECLARES it, under `interactionSteps` in
|
|
38
|
+
* `plugins.config.json` ({@link InteractionStepDeclaration}); nothing here
|
|
39
|
+
* names a plugin.
|
|
40
|
+
*/
|
|
41
|
+
/**
|
|
42
|
+
* Client-side site events (AGL-256) the tenant page runtime emits:
|
|
43
|
+
* element interactions, scroll behavior, dwell time, and exit intent.
|
|
44
|
+
* Trigger config (selector/threshold/path) rides the interaction's trigger.
|
|
45
|
+
*/
|
|
46
|
+
export declare const SITE_EVENT_TYPES: readonly ["scrollDepth", "scrollToElement", "elementClick", "elementVisible", "elementHoverEnter", "elementHoverLeave", "exitIntent", "timeOnPage", "pageVisit"];
|
|
47
|
+
/** Site events that watch a specific element and need a selector. */
|
|
48
|
+
export declare const ELEMENT_SCOPED_SITE_EVENTS: readonly ["scrollToElement", "elementClick", "elementVisible", "elementHoverEnter", "elementHoverLeave"];
|
|
49
|
+
export type SiteEventType = (typeof SITE_EVENT_TYPES)[number];
|
|
50
|
+
export declare function isSiteEventType(event: string): event is SiteEventType;
|
|
51
|
+
/** Structured condition operators (AGL-557). */
|
|
52
|
+
export declare const TRIGGER_CONDITION_OPS: readonly ["equals", "contains", "notEmpty"];
|
|
53
|
+
export type TriggerConditionOp = (typeof TRIGGER_CONDITION_OPS)[number];
|
|
54
|
+
/**
|
|
55
|
+
* Structured per-interaction condition over the event payload (AGL-557): the
|
|
56
|
+
* no-code sibling of the free-text `filter` expression, e.g. "only run
|
|
57
|
+
* when the `subscribe` field is not empty". Evaluated against the same
|
|
58
|
+
* scope as the filter (event name + payload fields); the interaction is
|
|
59
|
+
* skipped when unmet.
|
|
60
|
+
*/
|
|
61
|
+
export interface InteractionCondition {
|
|
62
|
+
/** Payload field the condition reads (a submitted form field name). */
|
|
63
|
+
field: string;
|
|
64
|
+
op: TriggerConditionOp;
|
|
65
|
+
/** Comparison value for `equals`/`contains`; unused by `notEmpty`. */
|
|
66
|
+
value?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Evaluates a structured trigger condition (AGL-557). String-coerces the
|
|
70
|
+
* payload value; `equals`/`contains` compare trimmed + case-insensitive
|
|
71
|
+
* so checkbox values like "Yes" match an author-typed "yes". A missing
|
|
72
|
+
* field never matches (and is "empty" for `notEmpty`); an absent or
|
|
73
|
+
* field-less condition always passes, mirroring the filter's default.
|
|
74
|
+
*/
|
|
75
|
+
export declare function evaluateTriggerCondition(condition: InteractionCondition | undefined | null, payload: Record<string, unknown>): boolean;
|
|
76
|
+
/** How chained trigger conditions combine (AGL-565). */
|
|
77
|
+
export declare const TRIGGER_COMBINATORS: readonly ["and", "or"];
|
|
78
|
+
export type TriggerCombinator = (typeof TRIGGER_COMBINATORS)[number];
|
|
79
|
+
/** Cap on chained conditions per trigger (AGL-565). */
|
|
80
|
+
export declare const ACTION_MAX_CONDITIONS = 5;
|
|
81
|
+
/**
|
|
82
|
+
* Normalizes a trigger's condition clauses to a list (AGL-565): the
|
|
83
|
+
* `conditions` array wins when present; a legacy single `condition`
|
|
84
|
+
* (AGL-557) becomes a one-element list. Read-time only — persisted docs
|
|
85
|
+
* are never migrated, so pre-565 single-condition docs keep working
|
|
86
|
+
* unchanged.
|
|
87
|
+
*/
|
|
88
|
+
export declare function normalizeTriggerConditions(trigger: Pick<InteractionTrigger, 'condition' | 'conditions'> | undefined | null): InteractionCondition[];
|
|
89
|
+
/**
|
|
90
|
+
* Evaluates a trigger's condition list with its combinator (AGL-565):
|
|
91
|
+
* `and` (the default) requires every condition to pass, `or` any one.
|
|
92
|
+
* Per-condition semantics are unchanged from AGL-557
|
|
93
|
+
* (`evaluateTriggerCondition`), and an empty list always passes — which
|
|
94
|
+
* covers every pre-565 doc without conditions.
|
|
95
|
+
*/
|
|
96
|
+
export declare function evaluateTriggerConditions(trigger: Pick<InteractionTrigger, 'condition' | 'conditions' | 'combinator'> | undefined | null, payload: Record<string, unknown>): boolean;
|
|
97
|
+
export interface InteractionTrigger {
|
|
98
|
+
/**
|
|
99
|
+
* Event the interaction listens for: a HOST_EVENT_TYPE (server-emitted), a
|
|
100
|
+
* SITE_EVENT_TYPE (client-emitted, AGL-256), or a custom name fired by
|
|
101
|
+
* another automation's `customEvent` step.
|
|
102
|
+
*/
|
|
103
|
+
event: string;
|
|
104
|
+
/** Optional expression over the payload; runs only when truthy. */
|
|
105
|
+
filter?: string;
|
|
106
|
+
/** Optional structured payload condition (AGL-557); null clears it. */
|
|
107
|
+
condition?: InteractionCondition | null;
|
|
108
|
+
/**
|
|
109
|
+
* Chained payload conditions (AGL-565), combined with `combinator`.
|
|
110
|
+
* When present this list wins over the legacy single `condition`
|
|
111
|
+
* (see `normalizeTriggerConditions`); null clears it.
|
|
112
|
+
*/
|
|
113
|
+
conditions?: InteractionCondition[] | null;
|
|
114
|
+
/** How the chained conditions combine (AGL-565); default `and`. */
|
|
115
|
+
combinator?: TriggerCombinator | null;
|
|
116
|
+
/** CSS selector for element-scoped site events (click/visible/scroll-to). */
|
|
117
|
+
selector?: string;
|
|
118
|
+
/** Percent 0-100 (scrollDepth) or seconds (timeOnPage). */
|
|
119
|
+
threshold?: number;
|
|
120
|
+
/** Path pattern the site event listens on (overlay glob rules); empty = all. */
|
|
121
|
+
pathPattern?: string;
|
|
122
|
+
/**
|
|
123
|
+
* Fire at most once per visitor (AGL-266, localStorage-keyed) instead
|
|
124
|
+
* of once per pageview. Site events only.
|
|
125
|
+
*/
|
|
126
|
+
oncePerVisitor?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Fire at most once per browser session (AGL-274,
|
|
129
|
+
* sessionStorage-keyed). Site events only.
|
|
130
|
+
*/
|
|
131
|
+
oncePerSession?: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Minimum minutes between fires for the same visitor (AGL-274,
|
|
134
|
+
* localStorage timestamp). Site events only; ignored when
|
|
135
|
+
* `oncePerVisitor` is set.
|
|
136
|
+
*/
|
|
137
|
+
cooldownMinutes?: number;
|
|
138
|
+
/**
|
|
139
|
+
* Fire on EVERY occurrence instead of once per pageview (AGL-562) —
|
|
140
|
+
* required for repeatable UI choreography (menu toggles, drawer
|
|
141
|
+
* open/close, hover show/hide). Site events only; the explicit
|
|
142
|
+
* per-session/visitor/cooldown caps above still win when set.
|
|
143
|
+
*/
|
|
144
|
+
everyTime?: boolean;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* A per-STEP condition, and the difference between an automation and a flow.
|
|
148
|
+
*
|
|
149
|
+
* `InteractionTrigger.conditions` gates the whole interaction: every step runs or
|
|
150
|
+
* none does. That is enough for "when a form is submitted, do these three
|
|
151
|
+
* things" and not enough for anything with a shape — "wait three days, then,
|
|
152
|
+
* only if they have not ordered, send the reminder" needs the condition to
|
|
153
|
+
* belong to the step rather than to the run.
|
|
154
|
+
*
|
|
155
|
+
* Same clause type and the same combinator as the trigger's, evaluated
|
|
156
|
+
* against the same scope, so an author learns one condition editor and the
|
|
157
|
+
* two can never disagree about what `contains` means.
|
|
158
|
+
*/
|
|
159
|
+
export interface InteractionStepGuard {
|
|
160
|
+
conditions: InteractionCondition[];
|
|
161
|
+
/** How the clauses combine; default `and`, as on the trigger. */
|
|
162
|
+
combinator?: TriggerCombinator | null;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Evaluates a step's own guard, with the trigger's semantics.
|
|
166
|
+
*
|
|
167
|
+
* An absent or clause-less guard passes, exactly as an absent trigger
|
|
168
|
+
* condition does — so every step written before guards existed keeps running.
|
|
169
|
+
*/
|
|
170
|
+
export declare function evaluateStepGuard(guard: InteractionStepGuard | undefined | null, scope: Record<string, unknown>): boolean;
|
|
171
|
+
/**
|
|
172
|
+
* The steps the platform itself carries out, in the visitor's browser (AGL-257).
|
|
173
|
+
*
|
|
174
|
+
* Every other step an interaction may hold is a plugin's, known here only as
|
|
175
|
+
* {@link InteractionStepBase}.
|
|
176
|
+
*/
|
|
177
|
+
export type ClientInteractionStep = ({
|
|
178
|
+
type: 'siteAlert';
|
|
179
|
+
message: string;
|
|
180
|
+
severity?: 'info' | 'success' | 'warning' | 'error';
|
|
181
|
+
} | {
|
|
182
|
+
type: 'showOverlay';
|
|
183
|
+
overlayId?: string;
|
|
184
|
+
overlayName?: string;
|
|
185
|
+
} | {
|
|
186
|
+
type: 'stickyNav';
|
|
187
|
+
selector?: string;
|
|
188
|
+
} | {
|
|
189
|
+
type: 'addClass';
|
|
190
|
+
selector: string;
|
|
191
|
+
className: string;
|
|
192
|
+
} | {
|
|
193
|
+
type: 'removeClass';
|
|
194
|
+
selector: string;
|
|
195
|
+
className: string;
|
|
196
|
+
} | {
|
|
197
|
+
type: 'toggleClass';
|
|
198
|
+
selector: string;
|
|
199
|
+
className: string;
|
|
200
|
+
} | {
|
|
201
|
+
type: 'showElement';
|
|
202
|
+
selector: string;
|
|
203
|
+
delayMs?: number;
|
|
204
|
+
dismissOn?: ElementDismissOption[];
|
|
205
|
+
} | {
|
|
206
|
+
type: 'hideElement';
|
|
207
|
+
selector: string;
|
|
208
|
+
delayMs?: number;
|
|
209
|
+
} | {
|
|
210
|
+
type: 'toggleElement';
|
|
211
|
+
selector: string;
|
|
212
|
+
delayMs?: number;
|
|
213
|
+
dismissOn?: ElementDismissOption[];
|
|
214
|
+
} | {
|
|
215
|
+
type: 'setAttribute';
|
|
216
|
+
selector: string;
|
|
217
|
+
name: string;
|
|
218
|
+
value: string;
|
|
219
|
+
} | {
|
|
220
|
+
type: 'removeAttribute';
|
|
221
|
+
selector: string;
|
|
222
|
+
name: string;
|
|
223
|
+
} | {
|
|
224
|
+
type: 'scrollTo';
|
|
225
|
+
selector: string;
|
|
226
|
+
/** Absent means `smooth`. A visitor who asks for reduced motion is always scrolled instantly. */
|
|
227
|
+
behavior?: ScrollToBehavior;
|
|
228
|
+
/** Pixels left above the target, so a sticky header does not cover it. Absent means 0. */
|
|
229
|
+
offsetPx?: number;
|
|
230
|
+
} | {
|
|
231
|
+
type: 'playVideo';
|
|
232
|
+
selector: string;
|
|
233
|
+
} | {
|
|
234
|
+
type: 'openDrawer';
|
|
235
|
+
drawerNodeId?: string;
|
|
236
|
+
} | {
|
|
237
|
+
type: 'closeDrawer';
|
|
238
|
+
drawerNodeId?: string;
|
|
239
|
+
} | {
|
|
240
|
+
type: 'toggleDrawer';
|
|
241
|
+
drawerNodeId?: string;
|
|
242
|
+
} | {
|
|
243
|
+
type: 'openMenu';
|
|
244
|
+
menuNodeId?: string;
|
|
245
|
+
} | {
|
|
246
|
+
type: 'closeMenu';
|
|
247
|
+
menuNodeId?: string;
|
|
248
|
+
} | {
|
|
249
|
+
type: 'toggleMenu';
|
|
250
|
+
menuNodeId?: string;
|
|
251
|
+
} | {
|
|
252
|
+
type: 'showHtml';
|
|
253
|
+
html: string;
|
|
254
|
+
} | {
|
|
255
|
+
type: 'runJs';
|
|
256
|
+
code: string;
|
|
257
|
+
} | {
|
|
258
|
+
type: 'redirect';
|
|
259
|
+
url?: string;
|
|
260
|
+
screenId?: string;
|
|
261
|
+
} | {
|
|
262
|
+
type: 'trackGaEvent';
|
|
263
|
+
eventName: string;
|
|
264
|
+
params?: Record<string, string>;
|
|
265
|
+
}) & {
|
|
266
|
+
/** See {@link InteractionStepGuard}. Absent means the step always runs. */
|
|
267
|
+
when?: InteractionStepGuard | null;
|
|
268
|
+
};
|
|
269
|
+
export type ClientInteractionStepType = ClientInteractionStep['type'];
|
|
270
|
+
/**
|
|
271
|
+
* Any step, as the platform holds it: a type, the guard every step may carry,
|
|
272
|
+
* and fields the platform does not read. A plugin's own step types its other
|
|
273
|
+
* fields itself.
|
|
274
|
+
*/
|
|
275
|
+
export interface InteractionStepBase {
|
|
276
|
+
type: string;
|
|
277
|
+
when?: InteractionStepGuard | null;
|
|
278
|
+
[field: string]: unknown;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* An interaction, as `hosts/{hostId}/actions/{id}` and an element's own
|
|
282
|
+
* `interactions` hold it.
|
|
283
|
+
*
|
|
284
|
+
* `Step` is the platform's client vocabulary unless a reader names more: the
|
|
285
|
+
* workflows plugin reads the same documents with its server steps added, and
|
|
286
|
+
* a step from a plugin this reader does not know is still carried, untyped,
|
|
287
|
+
* in the list.
|
|
288
|
+
*/
|
|
289
|
+
export interface SiteInteraction<Step extends InteractionStepBase = ClientInteractionStep> {
|
|
290
|
+
name: string;
|
|
291
|
+
trigger: InteractionTrigger;
|
|
292
|
+
steps: Step[];
|
|
293
|
+
/** A disabled interaction never runs; a new one defaults enabled. */
|
|
294
|
+
enabled?: boolean;
|
|
295
|
+
}
|
|
296
|
+
/** Steps the tenant page runtime executes client-side (AGL-257). */
|
|
297
|
+
export declare const CLIENT_ACTION_STEP_TYPES: ReadonlySet<string>;
|
|
298
|
+
export declare function isClientActionStep(step: InteractionStepBase): step is ClientInteractionStep;
|
|
299
|
+
/**
|
|
300
|
+
* Basic presentational interactions (AGL-577): the subset of client steps
|
|
301
|
+
* that are pure DOM choreography — menu/drawer open-close, element
|
|
302
|
+
* show/hide, class toggles, sticky nav, navigation, and client-only
|
|
303
|
+
* alerts. They carry NO server cost and touch NO data, so they run on
|
|
304
|
+
* every plan (the `interactions` feature, on by default everywhere).
|
|
305
|
+
*
|
|
306
|
+
* The powerful client steps stay behind the `actions` entitlement:
|
|
307
|
+
* `showOverlay` (marketing overlays), `showHtml` (arbitrary HTML
|
|
308
|
+
* injection), and `trackGaEvent` (analytics). `runJs` keeps its own
|
|
309
|
+
* higher `webhooks` (Business) gate. A step that is not a client step is
|
|
310
|
+
* the server's, and is re-checked against `actions` where it runs.
|
|
311
|
+
*/
|
|
312
|
+
export declare const BASIC_CLIENT_ACTION_STEP_TYPES: ReadonlySet<string>;
|
|
313
|
+
/** A client step available on all plans (no `actions` entitlement). */
|
|
314
|
+
export declare function isBasicClientActionStep(step: InteractionStepBase): boolean;
|
|
315
|
+
/**
|
|
316
|
+
* Whether a client step may run for the given entitlement tier (AGL-577).
|
|
317
|
+
* This is the single source of truth the page enricher uses to trim the
|
|
318
|
+
* client-automation payload per plan:
|
|
319
|
+
*
|
|
320
|
+
* - Basic presentational steps → always (every plan).
|
|
321
|
+
* - `runJs` → `allowJs` (Business `webhooks` tier).
|
|
322
|
+
* - Remaining advanced client steps (overlay / showHtml / analytics) →
|
|
323
|
+
* `actionsEntitled` (`actions` tier).
|
|
324
|
+
*
|
|
325
|
+
* Server steps are not client steps and always return false here; they
|
|
326
|
+
* are dispatched and re-authorized server-side.
|
|
327
|
+
*/
|
|
328
|
+
export declare function isClientStepEntitled(step: InteractionStepBase, entitlements: {
|
|
329
|
+
actionsEntitled: boolean;
|
|
330
|
+
allowJs: boolean;
|
|
331
|
+
}): boolean;
|
|
332
|
+
/** The longest step list an interaction may hold. */
|
|
333
|
+
export declare const ACTION_MAX_STEPS = 10;
|
|
334
|
+
/**
|
|
335
|
+
* Cap on the parameters one `trackGaEvent` step may carry (AGL-1587).
|
|
336
|
+
*
|
|
337
|
+
* Not a storage concern. These pairs are the least trustworthy analytics
|
|
338
|
+
* input on the platform — both halves are typed by a site author and land in
|
|
339
|
+
* that site's own GA4 property — and a bounded list is one an author can read
|
|
340
|
+
* back in full before publishing, which is the only review a parameter ever
|
|
341
|
+
* gets. GA4 caps custom parameters per event as well and drops the overflow
|
|
342
|
+
* without saying so, so an unbounded editor would let an author configure
|
|
343
|
+
* parameters that are never delivered and never explained. Ten, the same
|
|
344
|
+
* ceiling {@link ACTION_MAX_STEPS} puts on the step list itself.
|
|
345
|
+
*/
|
|
346
|
+
export declare const ACTION_MAX_EVENT_PARAMS = 10;
|
|
347
|
+
/**
|
|
348
|
+
* Longest analytics parameter NAME GA4 accepts; it drops a longer one on
|
|
349
|
+
* arrival, so a name over this is silence rather than a truncated dimension.
|
|
350
|
+
* The value half is capped by `ANALYTICS_PARAM_MAX_LENGTH`, which truncates
|
|
351
|
+
* instead of dropping.
|
|
352
|
+
*/
|
|
353
|
+
export declare const ACTION_EVENT_PARAM_NAME_MAX_LENGTH = 40;
|
|
354
|
+
/** Self-dismiss triggers for shown elements (AGL-589). */
|
|
355
|
+
export declare const ELEMENT_DISMISS_OPTIONS: readonly ["escape", "outsideClick"];
|
|
356
|
+
export type ElementDismissOption = (typeof ELEMENT_DISMISS_OPTIONS)[number];
|
|
357
|
+
/** Visibility grace-delay ceiling — enough for hover travel, no dead UIs. */
|
|
358
|
+
export declare const ELEMENT_VISIBILITY_MAX_DELAY_MS = 5000;
|
|
359
|
+
/**
|
|
360
|
+
* How a `scrollTo` step moves the page. Stored in documents; never rename a
|
|
361
|
+
* value. `instant` rather than the DOM's `auto`, because `auto` defers to the
|
|
362
|
+
* site's CSS `scroll-behavior` — a site that sets `smooth` there would animate
|
|
363
|
+
* a scroll the author asked to be instant.
|
|
364
|
+
*/
|
|
365
|
+
export declare const SCROLL_TO_BEHAVIORS: readonly ["smooth", "instant"];
|
|
366
|
+
export type ScrollToBehavior = (typeof SCROLL_TO_BEHAVIORS)[number];
|
|
367
|
+
/**
|
|
368
|
+
* The largest offset a `scrollTo` step may leave above its target.
|
|
369
|
+
*
|
|
370
|
+
* The offset exists to clear a sticky header, which is tens of pixels and
|
|
371
|
+
* rarely more than a few hundred with an announcement bar stacked on it. A
|
|
372
|
+
* thousand leaves room for any header while still refusing the extra digit
|
|
373
|
+
* that would park the target off the bottom of the screen.
|
|
374
|
+
*/
|
|
375
|
+
export declare const SCROLL_TO_MAX_OFFSET_PX = 1000;
|
|
376
|
+
/** Custom event names: short, no collision with built-ins. */
|
|
377
|
+
export declare const CUSTOM_EVENT_PATTERN: RegExp;
|
|
378
|
+
/**
|
|
379
|
+
* The attribute names an interaction may write (AGL-2546).
|
|
380
|
+
*
|
|
381
|
+
* An unrestricted attribute setter is a self-XSS vector authored through the
|
|
382
|
+
* interactions UI: it reaches `href`, `src`, `onclick`, `formaction` and
|
|
383
|
+
* `style`, and on a site with collaborators the author and the victim need
|
|
384
|
+
* not be the same person. `aria-*` and `data-*` carry the entire
|
|
385
|
+
* accessibility use case and none of that exposure.
|
|
386
|
+
*
|
|
387
|
+
* Deliberately NOT solved by an entitlement gate. `runJs` is Business-gated
|
|
388
|
+
* because it is dangerous at any tier; this has to work on every plan,
|
|
389
|
+
* because a screen-reader user's access to a menu is not a paid feature.
|
|
390
|
+
*/
|
|
391
|
+
export declare const INTERACTION_ATTRIBUTE_NAME_PATTERN: RegExp;
|
|
392
|
+
/**
|
|
393
|
+
* Whether an interaction is allowed to write this attribute name.
|
|
394
|
+
*
|
|
395
|
+
* Case-insensitive because HTML attribute names are, and a rejected name is
|
|
396
|
+
* a no-op rather than an error: a step that cannot run must not break the
|
|
397
|
+
* steps after it in the same interaction.
|
|
398
|
+
*/
|
|
399
|
+
export declare function isInteractionAttributeAllowed(name: unknown): boolean;
|
|
400
|
+
/**
|
|
401
|
+
* An interaction step a plugin declares under `interactionSteps` in
|
|
402
|
+
* `plugins.config.json`, compiled into the first-party catalog, so the
|
|
403
|
+
* interaction builder can offer it and every validator can check it without
|
|
404
|
+
* the plugin loaded.
|
|
405
|
+
*
|
|
406
|
+
* A step may be the plugin's own (a server step the plugin runs) or a
|
|
407
|
+
* platform client step whose target is a record the plugin keeps. Either way
|
|
408
|
+
* the declaration says how the builder names it and, for a step that PICKS a
|
|
409
|
+
* record, where the builder lists the records from and which of the step's
|
|
410
|
+
* fields hold the pick.
|
|
411
|
+
*/
|
|
412
|
+
export interface InteractionStepDeclaration {
|
|
413
|
+
/** The plugin that declared it. */
|
|
414
|
+
pluginId: string;
|
|
415
|
+
/** The stored step `type`. */
|
|
416
|
+
type: string;
|
|
417
|
+
/** How the builder's step picker names it: "Run a workflow". */
|
|
418
|
+
label: string;
|
|
419
|
+
/** The record this step acts on, picked in the builder. */
|
|
420
|
+
picks?: {
|
|
421
|
+
/** The site collection the records are listed from — one the plugin declares it owns. */
|
|
422
|
+
collection: string;
|
|
423
|
+
/** How many records the builder lists. */
|
|
424
|
+
limit: number;
|
|
425
|
+
/** The step field holding the picked record's id (rename-safe). */
|
|
426
|
+
idField: string;
|
|
427
|
+
/** The step field holding its name at the time it was picked (display only). */
|
|
428
|
+
nameField: string;
|
|
429
|
+
/** The picker's label: "Workflow". */
|
|
430
|
+
label: string;
|
|
431
|
+
/** What a step with no pick is told, after its `Step N:` prefix. */
|
|
432
|
+
missing: string;
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
/** Every step the first-party plugins declare, in `plugins.config.json` order. */
|
|
436
|
+
export declare function declaredInteractionSteps(): readonly InteractionStepDeclaration[];
|
|
437
|
+
/** The declared step of this type, or `null` for one no plugin declares. */
|
|
438
|
+
export declare function declaredInteractionStep(type: string, declarations?: readonly InteractionStepDeclaration[]): InteractionStepDeclaration | null;
|
|
439
|
+
export interface ValidateInteractionOptions {
|
|
440
|
+
/**
|
|
441
|
+
* One step's checks that belong to its owner — a plugin's own step types.
|
|
442
|
+
* Runs after the step's guard is checked; its answer, when not `null`, is
|
|
443
|
+
* the interaction's.
|
|
444
|
+
*/
|
|
445
|
+
validateStep?: (step: InteractionStepBase, label: string) => string | null;
|
|
446
|
+
/** The declared steps; the compiled first-party catalog unless a spec says otherwise. */
|
|
447
|
+
declarations?: readonly InteractionStepDeclaration[];
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Validates an interaction's shape; returns a human-readable error or null.
|
|
451
|
+
* Every surface that writes one shares this, so a bad step never persists or
|
|
452
|
+
* runs.
|
|
453
|
+
*
|
|
454
|
+
* The platform checks what is its own: the name, the trigger and its
|
|
455
|
+
* conditions, the step count, each step's guard, its client steps, and the
|
|
456
|
+
* pick of every declared step that picks a record. A step it does not know is
|
|
457
|
+
* left to its owner, through `validateStep`.
|
|
458
|
+
*/
|
|
459
|
+
export declare function validateInteraction(interaction: SiteInteraction<InteractionStepBase>, options?: ValidateInteractionOptions): string | null;
|
|
460
|
+
/** Alert produced by a `siteAlert` step, surfaced to the emitting client. */
|
|
461
|
+
export interface SiteAlert {
|
|
462
|
+
message: string;
|
|
463
|
+
severity: 'info' | 'success' | 'warning' | 'error';
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* How many LIVE action documents one host may hold (AGL-2266).
|
|
467
|
+
*
|
|
468
|
+
* `hosts/{hostId}/actions` was in NO exclusion list in
|
|
469
|
+
* `cloud/firebase-firestore.rules`, so the host catch-all's `allow create`
|
|
470
|
+
* granted it to any editor, client-direct, on any plan — and the import
|
|
471
|
+
* route's own table said so in as many words: *"no `RESOURCES` entry and no
|
|
472
|
+
* quota key anywhere; all three creators write the document client-direct."*
|
|
473
|
+
* A free org could therefore mint unbounded Firestore documents from the
|
|
474
|
+
* browser against a $0 subscription. Unbounded infrastructure, not a bypass of
|
|
475
|
+
* anything we sell, which is `WEBHOOK_MAX_PER_HOST`'s (AGL-1360) and
|
|
476
|
+
* `NON_PAGE_SCREEN_MAX_PER_HOST`'s (AGL-1399) shape exactly: a flat PLATFORM
|
|
477
|
+
* cap with no `OrgEntitlements` key, no variation by plan, and nothing on the
|
|
478
|
+
* price list to explain.
|
|
479
|
+
*
|
|
480
|
+
* ## Not gated on the `actions` entitlement, deliberately
|
|
481
|
+
*
|
|
482
|
+
* `actions` is a Pro feature and `interactions` is free, and BOTH write this
|
|
483
|
+
* collection — the interaction builder and the besigner's preset wiring create
|
|
484
|
+
* the same document type the Pro actions card does. Gating creation on the
|
|
485
|
+
* paid flag would take element interactions away from every free and starter
|
|
486
|
+
* site, which is a pricing change wearing a cap's clothes. The runtime already
|
|
487
|
+
* checks the entitlement where it decides what may RUN
|
|
488
|
+
* (`run-event-actions.ts`), which is the right place for it.
|
|
489
|
+
*
|
|
490
|
+
* ## Why 500
|
|
491
|
+
*
|
|
492
|
+
* Sized to the busiest plausible site rather than to today's data. An action
|
|
493
|
+
* is authored per interactive element, so a heavy marketing site with dropdown
|
|
494
|
+
* choreography on every section reaches tens; presets wire a handful at a
|
|
495
|
+
* time. 500 is far past anything authoring produces and well short of what a
|
|
496
|
+
* script in a loop wants, which is the only property a flat cap needs. Live
|
|
497
|
+
* documents only — the interactions provider soft-deletes with `deletedAt`, so
|
|
498
|
+
* counting tombstones would be AGL-1173's bug one collection over, where
|
|
499
|
+
* removing an interaction never frees its slot.
|
|
500
|
+
*/
|
|
501
|
+
export declare const ACTIONS_MAX_PER_HOST = 500;
|