@aglyn/aglyn 1.0.0-beta.217 → 1.0.0-beta.219
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 +14 -14
- package/src/lib/app-utils/actions.d.ts +25 -374
- package/src/lib/app-utils/actions.js +101 -561
- 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/admin-audit-index.js +2 -2
- package/src/lib/app-utils/admin-audit-index.js.map +1 -1
- package/src/lib/app-utils/analytics-events.d.ts +11 -2
- package/src/lib/app-utils/analytics-events.js +11 -2
- 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/assist-credits.js +2 -1
- package/src/lib/app-utils/assist-credits.js.map +1 -1
- 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/binding-tokens.js +1 -1
- package/src/lib/app-utils/binding-tokens.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/campaign-touch.d.ts +5 -5
- package/src/lib/app-utils/campaign-touch.js +8 -8
- package/src/lib/app-utils/campaign-touch.js.map +1 -1
- 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/console-record-links.d.ts +10 -89
- package/src/lib/app-utils/console-record-links.js +3 -107
- package/src/lib/app-utils/console-record-links.js.map +1 -1
- package/src/lib/app-utils/console-routes.d.ts +16 -7
- package/src/lib/app-utils/console-routes.js +9 -3
- package/src/lib/app-utils/console-routes.js.map +1 -1
- package/src/lib/app-utils/contacts.d.ts +23 -1
- package/src/lib/app-utils/contacts.js +21 -5
- package/src/lib/app-utils/contacts.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-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 -11
- package/src/lib/app-utils/datasets.js +74 -11
- 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 +12 -6
- package/src/lib/app-utils/docs-help.generated.js +21 -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 +514 -318
- 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.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/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 +10 -10
- package/src/lib/app-utils/expand-repeatables.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/lockdown.d.ts +33 -1
- package/src/lib/app-utils/lockdown.js +45 -4
- 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/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 +78 -47
- package/src/lib/app-utils/notifications.js +63 -44
- package/src/lib/app-utils/notifications.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 +43 -128
- package/src/lib/app-utils/plan-entitlements.js +145 -304
- 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/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/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-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.d.ts +15 -0
- package/src/lib/app-utils/screen-route.js +21 -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 +6 -9
- package/src/lib/app-utils/server.js +17 -27
- 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} +5 -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-templates.d.ts +20 -0
- package/src/lib/app-utils/starter-templates.js +49 -0
- package/src/lib/app-utils/starter-templates.js.map +1 -1
- 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/{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/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/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/canvas-manager/canvas-manager.js +3 -3
- package/src/lib/canvas-manager/canvas-manager.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 +18 -135
- package/src/lib/foundation/definitions/org-billing.types.js.map +1 -1
- package/src/lib/foundation/definitions/organization.types.d.ts +6 -3
- package/src/lib/foundation/definitions/organization.types.js.map +1 -1
- package/src/lib/foundation/definitions/platform.types.d.ts +27 -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 +292 -20
- package/src/lib/plugin-manager/feature-plugins.js +105 -17
- package/src/lib/plugin-manager/feature-plugins.js.map +1 -1
- package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +123 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js +785 -14
- package/src/lib/plugin-manager/first-party-plugins.generated.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-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-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-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-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-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-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-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 +107 -0
- package/src/lib/plugin-manager/plugin-usage-axes.js +107 -0
- package/src/lib/plugin-manager/plugin-usage-axes.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/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/campaign-attribution.js.map +0 -1
- package/src/lib/app-utils/campaign-forwarding.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-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/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-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
|
@@ -13,61 +13,9 @@
|
|
|
13
13
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* to agree about it — the tenant's GA injection, the consent banner, the
|
|
20
|
-
* marketing runtime's visitor id, the console card that configures it, and
|
|
21
|
-
* the console preview's region simulator.
|
|
22
|
-
*
|
|
23
|
-
* The model, and the honesty bar it was built against:
|
|
24
|
-
*
|
|
25
|
-
* - **Strictly necessary — no consent asked, none required.** The cart cookie
|
|
26
|
-
* (`aglyn_cart_{hostId}`, commerce checkout), the member session
|
|
27
|
-
* (`aglyn_member_{hostId}`, memberships sign-in), the `aglyn-tenant-host`
|
|
28
|
-
* preview-host override, popup/announcement dismissal stamps (local-only,
|
|
29
|
-
* never transmitted, and blocking them would show MORE popups), the
|
|
30
|
-
* first-party pageview beacon (cookieless, stores no visitor identifier —
|
|
31
|
-
* AGL-82), and the stored consent choice itself.
|
|
32
|
-
* - **Consent-gated: `advertising`** (AGL-1649) — GA4's `ad_storage`,
|
|
33
|
-
* `ad_user_data` and `ad_personalization`. OFF for every site unless the
|
|
34
|
-
* host turns the question on, and granted only by an explicit visitor yes
|
|
35
|
-
* to that specific category: never by the implied default, never by a
|
|
36
|
-
* record written before the category existed, never by any refusal status.
|
|
37
|
-
* A host who needs Ads storage previously had one workaround — switch the
|
|
38
|
-
* whole tool off and run their own CMP — which is why this exists.
|
|
39
|
-
* - **Consent-gated: `analytics`.** Today that is the customer-configured
|
|
40
|
-
* Google Analytics tag — a third-party identifier-setting script — plus
|
|
41
|
-
* the CROSS-VISIT persistence of the `aglyn:visitor` experiment id (the id
|
|
42
|
-
* never leaves the browser, but an indefinite-lifetime identifier is
|
|
43
|
-
* disproportionate without a basis; without one it degrades to
|
|
44
|
-
* sessionStorage, so variants stay stable within the visit).
|
|
45
|
-
*
|
|
46
|
-
* **Two postures, resolved per visitor** (the Squarespace shape, host-chosen):
|
|
47
|
-
*
|
|
48
|
-
* - **`opt-in`** — prior consent: nothing gated loads until an explicit
|
|
49
|
-
* accept. Applied in regions whose law requires prior consent (EU/EEA/UK),
|
|
50
|
-
* whenever the visitor's region is UNKNOWN, and everywhere when the host
|
|
51
|
-
* picks `strict` mode. Unknown-geo falls to opt-in deliberately: the
|
|
52
|
-
* asymmetry is a few lost analytics events on rare headerless visits
|
|
53
|
-
* versus pre-consent tracking of an EU visitor.
|
|
54
|
-
* - **`opt-out`** — implied consent: gated features are live from first
|
|
55
|
-
* paint, no banner and no notice; the visitor's recorded state is
|
|
56
|
-
* `implied`, and the always-present "Your Privacy Choices" control is the
|
|
57
|
-
* opt-out surface. Applied outside prior-consent regions when the host
|
|
58
|
-
* mode is `geo`.
|
|
59
|
-
*
|
|
60
|
-
* **GPC (Global Privacy Control)** is honored as an automatic opt-out in
|
|
61
|
-
* both postures: a visitor whose browser sends it is recorded `gpc-opt-out`
|
|
62
|
-
* and never tracked, unless they later explicitly accept (the signal is a
|
|
63
|
-
* default; a specific, informed choice overrides it).
|
|
64
|
-
*
|
|
65
|
-
* Enforcement is AT THE SOURCE and MODE-INDEPENDENT: whenever the verdict is
|
|
66
|
-
* "no", the GA script never loads — not load-then-suppress — and the gate
|
|
67
|
-
* does not care WHY consent is absent. Because tenant pages are ISR-cached,
|
|
68
|
-
* both the posture and the verdict are evaluated client-side only — the
|
|
69
|
-
* cached HTML never varies by region or consent state.
|
|
70
|
-
*/ /** The host fields this module reads; keeps callers free of the full doc. */ const CONSENT_STATUSES = new Set([
|
|
16
|
+
*/ import { ANALYTICS_PROVIDERS_DECLARED } from "../plugin-manager/first-party-plugins.generated.js";
|
|
17
|
+
import { applyAnalyticsConsent } from "./analytics-provider.js";
|
|
18
|
+
const CONSENT_STATUSES = new Set([
|
|
71
19
|
'implied',
|
|
72
20
|
'accepted',
|
|
73
21
|
'declined',
|
|
@@ -217,17 +165,44 @@
|
|
|
217
165
|
return GTM_CONTAINER_ID_PATTERN.test(candidate) ? candidate : null;
|
|
218
166
|
}
|
|
219
167
|
/**
|
|
220
|
-
*
|
|
221
|
-
*
|
|
168
|
+
* The site's analytics settings that can configure a tag, and the shape each
|
|
169
|
+
* must have to reach a page — the same patterns the console's Tracking tab
|
|
170
|
+
* validates with. A provider declares which of these it mounts a tag for
|
|
171
|
+
* (`analyticsProvider.settings` in `plugins.config.json`); a declared setting
|
|
172
|
+
* with no shape here configures nothing.
|
|
173
|
+
*/ export const ANALYTICS_SETTING_PATTERNS = Object.freeze({
|
|
174
|
+
gaMeasurementId: GA_MEASUREMENT_ID_PATTERN,
|
|
175
|
+
gtmContainerId: GTM_CONTAINER_ID_PATTERN
|
|
176
|
+
});
|
|
177
|
+
/**
|
|
178
|
+
* Whether the site runs ANY analytics tag a provider mounts — a measurement
|
|
179
|
+
* id, a tag container, or both (AGL-2486).
|
|
222
180
|
*
|
|
223
181
|
* The one predicate both consent questions are asked through, because the
|
|
224
|
-
* alternative is two places that each remember only one of the
|
|
225
|
-
* with a container and no
|
|
226
|
-
* would have had `consentGatedCategories` return `[]`, no
|
|
227
|
-
* the container loading ungated — which for
|
|
228
|
-
* container is exactly the thing that
|
|
229
|
-
|
|
230
|
-
|
|
182
|
+
* alternative is two places that each remember only one of the settings. A
|
|
183
|
+
* site with a container and no measurement id is a site that tracks: it was
|
|
184
|
+
* the shape that would have had `consentGatedCategories` return `[]`, no
|
|
185
|
+
* banner rendered, and the container loading ungated — which for a container
|
|
186
|
+
* is worse than for a single tag, since a container is exactly the thing that
|
|
187
|
+
* can carry advertising tags.
|
|
188
|
+
*
|
|
189
|
+
* Read from the COMPILED provider declarations, never from which adapters
|
|
190
|
+
* have loaded: this is asked during render on the published page and in the
|
|
191
|
+
* console, before any adapter could have arrived, and "no tag" would mean no
|
|
192
|
+
* banner in front of one. With no provider declared, nothing can mount, and
|
|
193
|
+
* the answer is `false`.
|
|
194
|
+
*/ export function hostConfiguresAnalyticsTag(host, declared = ANALYTICS_PROVIDERS_DECLARED) {
|
|
195
|
+
var _ref;
|
|
196
|
+
const settings = (_ref = host == null ? void 0 : host.analytics) != null ? _ref : null;
|
|
197
|
+
if (!settings) return false;
|
|
198
|
+
for (const provider of declared){
|
|
199
|
+
for (const field of provider.settings){
|
|
200
|
+
var _settings_field;
|
|
201
|
+
const pattern = ANALYTICS_SETTING_PATTERNS[field];
|
|
202
|
+
if (pattern && pattern.test(String((_settings_field = settings[field]) != null ? _settings_field : ''))) return true;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return false;
|
|
231
206
|
}
|
|
232
207
|
/** Host opt-out of the tool. Absent means ACTIVE — the safe default. */ export function isConsentToolDisabled(host) {
|
|
233
208
|
var _host_consent;
|
|
@@ -242,10 +217,10 @@
|
|
|
242
217
|
* nothing to consent to and no consent UI renders — a banner with no
|
|
243
218
|
* question behind it is decoration that trains visitors to click banners.
|
|
244
219
|
*/ export function consentGatedCategories(host) {
|
|
245
|
-
// A
|
|
246
|
-
//
|
|
247
|
-
//
|
|
248
|
-
if (!
|
|
220
|
+
// A CONTAINER counts (AGL-2486). Read as the measurement id alone, a site
|
|
221
|
+
// running only a container had no gated category, so no banner rendered
|
|
222
|
+
// and the container loaded ungated — see `hostConfiguresAnalyticsTag`.
|
|
223
|
+
if (!hostConfiguresAnalyticsTag(host)) return [];
|
|
249
224
|
return hostAsksAboutAdvertising(host) ? [
|
|
250
225
|
'analytics',
|
|
251
226
|
'advertising'
|
|
@@ -263,10 +238,10 @@
|
|
|
263
238
|
* without one. A banner with no question behind it is decoration (AGL-1498).
|
|
264
239
|
*/ export function hostAsksAboutAdvertising(host) {
|
|
265
240
|
var _host_consent;
|
|
266
|
-
// Either tag qualifies (AGL-2486):
|
|
267
|
-
// and what a
|
|
268
|
-
// likelier of the two to carry them.
|
|
269
|
-
return (host == null ? void 0 : (_host_consent = host.consent) == null ? void 0 : _host_consent.advertising) === true &&
|
|
241
|
+
// Either tag qualifies (AGL-2486): advertising storage is what a
|
|
242
|
+
// measurement tag reads and what a container's advertising tags read, and
|
|
243
|
+
// a container is the likelier of the two to carry them.
|
|
244
|
+
return (host == null ? void 0 : (_host_consent = host.consent) == null ? void 0 : _host_consent.advertising) === true && hostConfiguresAnalyticsTag(host);
|
|
270
245
|
}
|
|
271
246
|
/**
|
|
272
247
|
* Whether the published site runs the consent machinery at all: the tool is
|
|
@@ -571,14 +546,6 @@ function normalizeCookieHostname(hostname) {
|
|
|
571
546
|
return [];
|
|
572
547
|
}
|
|
573
548
|
}
|
|
574
|
-
/**
|
|
575
|
-
* The `window` flag `gtag.js` consults before every hit: with
|
|
576
|
-
* `window['ga-disable-G-XXXX'] === true` the tag for that property sends
|
|
577
|
-
* nothing and writes nothing. Google's own documented opt-out mechanism, and
|
|
578
|
-
* the one that works on a tag which never received a consent-mode default
|
|
579
|
-
* (AGL-1608) — a case that still exists after AGL-1622, because a tag arriving
|
|
580
|
-
* through GTM or a host's own CMP is not one this module declared for.
|
|
581
|
-
*/ export const GA_DISABLE_FLAG_PREFIX = 'ga-disable-';
|
|
582
549
|
/**
|
|
583
550
|
* The consent-mode payload for a given analytics grant — ONE source, so the
|
|
584
551
|
* `default` declared before the tag loads (AGL-1622) and the `update` sent on a
|
|
@@ -641,208 +608,30 @@ function normalizeCookieHostname(hostname) {
|
|
|
641
608
|
return stored.advertising === true;
|
|
642
609
|
}
|
|
643
610
|
/**
|
|
644
|
-
*
|
|
645
|
-
*
|
|
646
|
-
* `dataLayer` and calls `gtag('config', …)`.
|
|
647
|
-
*
|
|
648
|
-
* ## What this is, and — load-bearing — what it is NOT
|
|
649
|
-
*
|
|
650
|
-
* It is NOT a licence to load the tag earlier. It is emitted INSIDE the block
|
|
651
|
-
* that only renders when the AGL-1498 gate has already said yes, so it is
|
|
652
|
-
* reached only on a pageview where analytics is granted. On every gated
|
|
653
|
-
* pageview — an EU/UK/EEA visitor with no explicit accept, an unknown region, a
|
|
654
|
-
* declined or opted-out visitor, a GPC browser — nothing here renders, no
|
|
655
|
-
* request goes to `googletagmanager.com`, and this constant is never evaluated
|
|
656
|
-
* into the page. "The script never LOADS, rather than load-then-suppress" is a
|
|
657
|
-
* stated AGL-1498 property and it is intact everywhere the gate applies;
|
|
658
|
-
* `consent-mode-default.spec.tsx` fails if that ever stops being true.
|
|
659
|
-
*
|
|
660
|
-
* the decision, 2026-08-14: load-then-restrict is approved for the UNITED
|
|
661
|
-
* STATES, where the implied-consent posture already permits the load and the
|
|
662
|
-
* restriction signals act on a tag that is legitimately resident. EU and UK
|
|
663
|
-
* keep the prior-consent gate exactly as it is, because loading an analytics
|
|
664
|
-
* tag before consent is the specific thing prior-consent law prohibits. So the
|
|
665
|
-
* consent-mode mechanism is strictly ADDITIVE to the gate, never a replacement
|
|
666
|
-
* for it.
|
|
667
|
-
*
|
|
668
|
-
* What declaring it actually buys, given the tag is granted by the time it is
|
|
669
|
-
* read:
|
|
670
|
-
*
|
|
671
|
-
* - The advertising signals are denied FROM THE FIRST HIT. Without a default,
|
|
672
|
-
* a freshly loaded tag runs with `ad_storage` unrestricted and only becomes
|
|
673
|
-
* denied if the visitor happens to withdraw and change their mind again
|
|
674
|
-
* (AGL-1608's `update`). The load-time state now matches the tool's actual
|
|
675
|
-
* scope instead of being wider than it.
|
|
676
|
-
* - A later `update` is a transition from a declared state rather than a tag's
|
|
677
|
-
* first-ever consent signal, which is the shape GA4's consent-mode reporting
|
|
678
|
-
* and any third-party CMP alongside ours both expect.
|
|
679
|
-
*
|
|
680
|
-
* The value is a literal, built from {@link analyticsConsentSignals} — no
|
|
681
|
-
* interpolated input reaches it, which matters because it lands inside an
|
|
682
|
-
* inline script (the AGL-138 concern).
|
|
683
|
-
*/ export const GA_CONSENT_DEFAULT_SNIPPET = `gtag('consent', 'default', ${JSON.stringify(analyticsConsentSignals(true))});`;
|
|
684
|
-
/**
|
|
685
|
-
* The same declaration for a visitor who granted ADVERTISING too (AGL-1649).
|
|
686
|
-
*
|
|
687
|
-
* A second CONSTANT rather than a parameterised builder, for the reason the
|
|
688
|
-
* first one is a constant: it lands inside an inline script (the AGL-138
|
|
689
|
-
* concern), and a constant cannot interpolate anything. Both values are
|
|
690
|
-
* literals fixed at module load; the only thing the caller chooses is which
|
|
691
|
-
* of the two to emit.
|
|
692
|
-
*
|
|
693
|
-
* Reached only where {@link advertisingGrantedByRecord} says yes — host
|
|
694
|
-
* opted in, explicit accept, explicit yes to this category — which is
|
|
695
|
-
* evaluated client-side after hydration, like every other part of this gate.
|
|
696
|
-
* The ISR property is unaffected: the cached HTML contains neither snippet,
|
|
697
|
-
* because the whole block is inside the client-side `analyticsAllowed`
|
|
698
|
-
* condition.
|
|
699
|
-
*
|
|
700
|
-
* Declaring the grant as the DEFAULT rather than sending a later `update` is
|
|
701
|
-
* what keeps the tag's first hit correct. An update would arrive after
|
|
702
|
-
* `config`, so the session's first pageview — usually the entire session for
|
|
703
|
-
* a marketing visit — would carry the denied state the visitor did not
|
|
704
|
-
* choose.
|
|
705
|
-
*/ export const GA_CONSENT_DEFAULT_WITH_ADS_SNIPPET = `gtag('consent', 'default', ${JSON.stringify(consentModeSignals({
|
|
706
|
-
analytics: true,
|
|
707
|
-
advertising: true
|
|
708
|
-
}))});`;
|
|
709
|
-
/**
|
|
710
|
-
* Consent-mode URL passthrough for the platform's own tag (AGL-2548).
|
|
711
|
-
*
|
|
712
|
-
* The advertising signals in {@link GA_CONSENT_DEFAULT_SNIPPET} are denied, so
|
|
713
|
-
* on `aglyn.com` gtag writes no `_gcl_aw` cookie and the `gclid` an ad click
|
|
714
|
-
* arrives with lives only in that first URL. The conversions it should be
|
|
715
|
-
* credited for fire one hop later, on the console, where the posture grants
|
|
716
|
-
* advertising storage outside the prior-consent regions — and without this
|
|
717
|
-
* declaration the click id never makes that hop. The console reports a
|
|
718
|
-
* conversion with no click behind it, and Google Ads counts nothing.
|
|
719
|
-
*
|
|
720
|
-
* `url_passthrough` is Google's mechanism for exactly this state: while
|
|
721
|
-
* `ad_storage` is denied, gtag appends the click identifiers to links into the
|
|
722
|
-
* cross-domain-linked hosts as URL parameters instead of setting a cookie. The
|
|
723
|
-
* receiving tag reads them under its own consent state. Nothing is stored on
|
|
724
|
-
* the denying surface, so the marketing site's opt-in advertising posture is
|
|
725
|
-
* unchanged; the click id simply survives the link it was always meant to
|
|
726
|
-
* survive.
|
|
727
|
-
*
|
|
728
|
-
* `ads_data_redaction` is the companion Google documents alongside it: with
|
|
729
|
-
* `ad_storage` denied, the ad click identifiers are stripped from the hits this
|
|
730
|
-
* tag sends and its network requests go to a cookieless endpoint. Declared
|
|
731
|
-
* together so a denied visitor is measured with less, not merely differently.
|
|
732
|
-
*
|
|
733
|
-
* Both are `set` calls, so they must precede `gtag('config', …)` in the same
|
|
734
|
-
* inline block — a `set` applies to hits processed after it, and the session's
|
|
735
|
-
* first pageview is the one carrying the click.
|
|
736
|
-
*
|
|
737
|
-
* PLATFORM ID ONLY. A customer's tag is configured with their id and their
|
|
738
|
-
* consent posture; how their ad click ids travel is theirs to decide, and a
|
|
739
|
-
* passthrough declared on their behalf would rewrite links on their site.
|
|
740
|
-
*/ export const GA_CLICK_ID_PASSTHROUGH_SNIPPET = "gtag('set', 'url_passthrough', true);" + "gtag('set', 'ads_data_redaction', true);";
|
|
741
|
-
/**
|
|
742
|
-
* The measurement ids whose tag is actually RESIDENT in this page.
|
|
743
|
-
*
|
|
744
|
-
* Discovered from the page rather than taken from the host document on
|
|
745
|
-
* purpose: what has to be silenced is whatever gtag.js is currently loaded and
|
|
746
|
-
* configured for, which is not always what the host record configures — a tag
|
|
747
|
-
* can arrive through GTM, and a stale `<script>` from earlier in the pageview
|
|
748
|
-
* is exactly the thing this function exists to find.
|
|
749
|
-
*
|
|
750
|
-
* Ids are format-checked before they are used, because each one becomes a
|
|
751
|
-
* `window` property name.
|
|
752
|
-
*/ export function residentGaMeasurementIds() {
|
|
753
|
-
if (typeof document === 'undefined') return [];
|
|
754
|
-
const ids = new Set();
|
|
755
|
-
try {
|
|
756
|
-
const loaded = document.querySelectorAll('script[src*="googletagmanager.com/gtag/js"]');
|
|
757
|
-
for (const element of Array.from(loaded)){
|
|
758
|
-
var _element_src;
|
|
759
|
-
const src = String((_element_src = element.src) != null ? _element_src : '');
|
|
760
|
-
const match = /[?&]id=([^&]*)/.exec(src);
|
|
761
|
-
const id = match ? decodeURIComponent(match[1]) : '';
|
|
762
|
-
if (GA_MEASUREMENT_ID_PATTERN.test(id)) ids.add(id);
|
|
763
|
-
}
|
|
764
|
-
} catch (unused) {
|
|
765
|
-
// A hostile or absent DOM: the dataLayer pass below still applies.
|
|
766
|
-
}
|
|
767
|
-
try {
|
|
768
|
-
var _window;
|
|
769
|
-
const layer = (_window = window) == null ? void 0 : _window.dataLayer;
|
|
770
|
-
for (const entry of Array.from(layer != null ? layer : [])){
|
|
771
|
-
var _args_;
|
|
772
|
-
// `arguments` objects, not arrays — gtag pushes its own call sites.
|
|
773
|
-
const args = Array.from(entry != null ? entry : []);
|
|
774
|
-
if (args[0] !== 'config') continue;
|
|
775
|
-
const id = String((_args_ = args[1]) != null ? _args_ : '');
|
|
776
|
-
if (GA_MEASUREMENT_ID_PATTERN.test(id)) ids.add(id);
|
|
777
|
-
}
|
|
778
|
-
} catch (unused) {
|
|
779
|
-
// No dataLayer, or one that is not iterable: the script pass stands.
|
|
780
|
-
}
|
|
781
|
-
return [
|
|
782
|
-
...ids
|
|
783
|
-
];
|
|
784
|
-
}
|
|
785
|
-
/**
|
|
786
|
-
* Make every resident GA tag agree with the consent state, and return the ids
|
|
787
|
-
* it acted on.
|
|
788
|
-
*
|
|
789
|
-
* ## Why deleting the cookies is not enough (AGL-1608)
|
|
790
|
-
*
|
|
791
|
-
* The AGL-1498 gate stops the script from LOADING, which is the right
|
|
792
|
-
* enforcement for a fresh pageview and the wrong tool for a visitor who
|
|
793
|
-
* withdraws mid-pageview: `gtag.js` has already executed, and React unmounting
|
|
794
|
-
* the `<script>` element does not unload it. `window.gtag` stays live, GA4
|
|
795
|
-
* enhanced measurement fires on its own (scroll depth, outbound click, file
|
|
796
|
-
* download), and the tag re-writes `_ga_<id>` AFTER
|
|
797
|
-
* {@link clearAnalyticsCookies} has deleted it. Reproduced on aglyn.com: an
|
|
798
|
-
* opt-out, a hand-run sweep to zero cookies, then one scroll to the footer
|
|
799
|
-
* brought `_ga_YW5PG16YTM` back.
|
|
800
|
-
*
|
|
801
|
-
* Two signals, because they fail differently and neither is guaranteed:
|
|
802
|
-
* the `ga-disable-<id>` window flag silences a tag that never received a
|
|
803
|
-
* consent-mode default, and the `consent`/`update` call reaches a tag that
|
|
804
|
-
* arrived through GTM with its own id this function never saw.
|
|
611
|
+
* Make every resident analytics tag agree with the consent state, and return
|
|
612
|
+
* the ids it acted on (AGL-1608).
|
|
805
613
|
*
|
|
806
|
-
*
|
|
807
|
-
*
|
|
808
|
-
*
|
|
809
|
-
*
|
|
810
|
-
*
|
|
811
|
-
*
|
|
812
|
-
*
|
|
813
|
-
* replacement for it, and the prior-consent regions are unaffected.
|
|
614
|
+
* The AGL-1498 gate stops a tag from LOADING, which is the right enforcement
|
|
615
|
+
* for a fresh pageview and the wrong tool for a visitor who withdraws
|
|
616
|
+
* mid-pageview: the vendor's library has already executed, and React
|
|
617
|
+
* unmounting its `<script>` element does not unload it. So the tag that is
|
|
618
|
+
* already there is told, through the adapter of whichever vendor it is
|
|
619
|
+
* (`analytics-provider.ts`). A tag only exists after a grant, so this never
|
|
620
|
+
* touches the gate.
|
|
814
621
|
*
|
|
815
622
|
* Symmetric on purpose: a visitor who opts out and changes their mind in the
|
|
816
|
-
* same pageview would otherwise stay silently unmeasured until they
|
|
817
|
-
*
|
|
818
|
-
*
|
|
819
|
-
*
|
|
820
|
-
*
|
|
821
|
-
*
|
|
822
|
-
* unrepresentable, so a withdrawal can never restore advertising alone.
|
|
623
|
+
* same pageview would otherwise stay silently unmeasured until they
|
|
624
|
+
* navigated. The re-grant restores whatever the CALLER passes — analytics
|
|
625
|
+
* alone on a site that never asks the advertising question (`advertising`
|
|
626
|
+
* defaults to false), and both categories where the visitor's record grants
|
|
627
|
+
* both (AGL-1649). Advertising is clamped to analytics, so a withdrawal can
|
|
628
|
+
* never restore advertising alone.
|
|
823
629
|
*/ export function setResidentAnalyticsTags(granted, advertising = false) {
|
|
824
630
|
if (typeof window === 'undefined') return [];
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
}
|
|
830
|
-
try {
|
|
831
|
-
const send = scope.gtag;
|
|
832
|
-
if (typeof send === 'function') {
|
|
833
|
-
// The same payload builder the load-time `default` is made from
|
|
834
|
-
// (AGL-1622), so the two declarations cannot drift.
|
|
835
|
-
;
|
|
836
|
-
send('consent', 'update', consentModeSignals({
|
|
837
|
-
analytics: granted,
|
|
838
|
-
advertising
|
|
839
|
-
}));
|
|
840
|
-
}
|
|
841
|
-
} catch (unused) {
|
|
842
|
-
// A tag that throws on its own consent call is one we cannot silence;
|
|
843
|
-
// the flag above and the cookie sweep still stand.
|
|
844
|
-
}
|
|
845
|
-
return ids;
|
|
631
|
+
return applyAnalyticsConsent({
|
|
632
|
+
analytics: granted,
|
|
633
|
+
advertising
|
|
634
|
+
});
|
|
846
635
|
}
|
|
847
636
|
/**
|
|
848
637
|
* The stored record, or null when there is none (never resolved, storage
|