@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
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2026 Aglyn LLC
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/ import { resolveProvenance } from "./marketplace-provenance.js";
|
|
17
|
-
import { offeredPluginVersion } from "./plugin-manifest.js";
|
|
18
|
-
/**
|
|
19
|
-
* Orders two artifact versions, or returns null when they cannot be ordered.
|
|
20
|
-
*
|
|
21
|
-
* Two numbering schemes are in play and both are real: copied artifacts get a
|
|
22
|
-
* monotonic integer from the publish route, plugins get the semver string off
|
|
23
|
-
* their manifest. A single string compare handles neither ("10" < "9",
|
|
24
|
-
* "1.10.0" < "1.9.0"), so both are parsed as dotted numbers — which covers the
|
|
25
|
-
* integer case as a one-segment version.
|
|
26
|
-
*
|
|
27
|
-
* Anything non-numeric (a prerelease tag, a date-stamped build) is not ordered
|
|
28
|
-
* by guesswork: unequal-and-incomparable is reported as such and surfaces as
|
|
29
|
-
* `unknown`, which is honest, where a string compare would confidently point
|
|
30
|
-
* an update button at an older build.
|
|
31
|
-
*/ export function compareArtifactVersions(a, b) {
|
|
32
|
-
if (a == null || b == null || a === '' || b === '') return null;
|
|
33
|
-
const left = String(a);
|
|
34
|
-
const right = String(b);
|
|
35
|
-
if (left === right) return 0;
|
|
36
|
-
const parse = (value)=>{
|
|
37
|
-
const parts = value.split('.');
|
|
38
|
-
const numbers = [];
|
|
39
|
-
for (const part of parts){
|
|
40
|
-
if (!/^\d+$/.test(part)) return null;
|
|
41
|
-
numbers.push(Number(part));
|
|
42
|
-
}
|
|
43
|
-
return numbers.length ? numbers : null;
|
|
44
|
-
};
|
|
45
|
-
const leftParts = parse(left);
|
|
46
|
-
const rightParts = parse(right);
|
|
47
|
-
if (!leftParts || !rightParts) return null;
|
|
48
|
-
const length = Math.max(leftParts.length, rightParts.length);
|
|
49
|
-
for(let index = 0; index < length; index += 1){
|
|
50
|
-
var _leftParts_index, _rightParts_index;
|
|
51
|
-
const leftPart = (_leftParts_index = leftParts[index]) != null ? _leftParts_index : 0;
|
|
52
|
-
const rightPart = (_rightParts_index = rightParts[index]) != null ? _rightParts_index : 0;
|
|
53
|
-
if (leftPart < rightPart) return -1;
|
|
54
|
-
if (leftPart > rightPart) return 1;
|
|
55
|
-
}
|
|
56
|
-
// Equal numerically but not as strings — "1.0" and "1.0.0" are the same
|
|
57
|
-
// version written two ways.
|
|
58
|
-
return 0;
|
|
59
|
-
}
|
|
60
|
-
const UNKNOWN = {
|
|
61
|
-
state: 'unknown',
|
|
62
|
-
installedVersion: null,
|
|
63
|
-
availableVersion: null,
|
|
64
|
-
unknownReason: 'no-provenance'
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Compares what is installed against what the listing offers (AGL-1016).
|
|
68
|
-
*
|
|
69
|
-
* For plugins the offer is the newest INSTALLABLE version, never
|
|
70
|
-
* `latestVersion`. Installs already resolve it that way; advertising
|
|
71
|
-
* `latestVersion` would leak AGL-966's guarantee straight back out through a
|
|
72
|
-
* badge, telling a workspace an update exists that the install route would
|
|
73
|
-
* then refuse to give them.
|
|
74
|
-
*
|
|
75
|
-
* `revocation` is the same leak one state over (AGL-2368). Approval is a
|
|
76
|
-
* review verdict and the kill switch does not clear it, so `latestApprovedVersion`
|
|
77
|
-
* could name a stopped version — an "Update to vX" for bytes `install-plugin`
|
|
78
|
-
* answers 409 to. Optional because it is a second document and not every
|
|
79
|
-
* caller holds it; every writer of the mirror derives it from
|
|
80
|
-
* `newestInstallableVersion` since AGL-2306, so a caller without one is
|
|
81
|
-
* reading a cache that is correct except in the window between two writes.
|
|
82
|
-
* A caller that HAS it should pass it.
|
|
83
|
-
*/ export function resolveUpdateState(installed, listing, artifactType, revocation) {
|
|
84
|
-
var _ref, _provenance_artifactType;
|
|
85
|
-
const provenance = resolveProvenance(installed, artifactType);
|
|
86
|
-
if (!installed || provenance.state === 'unknown' || !provenance.version) {
|
|
87
|
-
return UNKNOWN;
|
|
88
|
-
}
|
|
89
|
-
const installedVersion = provenance.version;
|
|
90
|
-
const type = (_ref = (_provenance_artifactType = provenance.artifactType) != null ? _provenance_artifactType : artifactType) != null ? _ref : null;
|
|
91
|
-
const available = type === 'plugin' ? offeredPluginVersion(listing, revocation) : listing == null ? void 0 : listing.latestVersion;
|
|
92
|
-
if (available == null || available === '') {
|
|
93
|
-
return {
|
|
94
|
-
state: 'unknown',
|
|
95
|
-
installedVersion,
|
|
96
|
-
availableVersion: null,
|
|
97
|
-
unknownReason: 'nothing-published'
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
const availableVersion = String(available);
|
|
101
|
-
const order = compareArtifactVersions(installedVersion, availableVersion);
|
|
102
|
-
if (order === null) {
|
|
103
|
-
return {
|
|
104
|
-
state: 'unknown',
|
|
105
|
-
installedVersion,
|
|
106
|
-
availableVersion,
|
|
107
|
-
unknownReason: 'incomparable'
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
state: order === 0 ? 'current' : order < 0 ? 'update-available' : 'ahead',
|
|
112
|
-
installedVersion,
|
|
113
|
-
availableVersion
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* One sentence describing an update state, so four surfaces do not each invent
|
|
118
|
-
* their own wording for the same fact.
|
|
119
|
-
*/ export function updateStateLabel(status) {
|
|
120
|
-
switch(status.state){
|
|
121
|
-
case 'update-available':
|
|
122
|
-
return `You have v${status.installedVersion} · v${status.availableVersion} available`;
|
|
123
|
-
case 'current':
|
|
124
|
-
return `Up to date · v${status.installedVersion}`;
|
|
125
|
-
case 'ahead':
|
|
126
|
-
return `You have v${status.installedVersion}, newer than the published v${status.availableVersion}`;
|
|
127
|
-
default:
|
|
128
|
-
return status.unknownReason === 'nothing-published' ? 'No published version to compare against' : status.unknownReason === 'incomparable' ? `You have v${status.installedVersion}; v${status.availableVersion} cannot be ordered against it` : 'Installed before update tracking — version unknown';
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
//# sourceMappingURL=marketplace-update-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/marketplace-update-state.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MarketplaceArtifactType } from './marketplace-provenance'\nimport { resolveProvenance } from './marketplace-provenance'\nimport {\n offeredPluginVersion,\n type PluginRevocation,\n} from './plugin-manifest'\n\n/**\n * \"Is what I have installed still what the publisher ships?\" (AGL-1016).\n *\n * This comparison was previously derived inline on the installed-plugins card\n * and nowhere else, so the Plugins index, the installation page and the\n * marketplace listing could each show a different answer — or none. It is\n * exactly the sort of thing that gets re-derived slightly differently in four\n * places, so it lives here, pure, and every surface asks it.\n */\n\nexport type UpdateState =\n /** Running the newest version the publisher offers. */\n | 'current'\n /** A newer version exists and can be taken. */\n | 'update-available'\n /**\n * Installed version is NEWER than what is offered. Not a bug: a publisher\n * installs their own unapproved version to test it, and a version can be\n * withdrawn after someone installed it.\n */\n | 'ahead'\n /** Not enough is known to say — no provenance, or nothing published to compare. */\n | 'unknown'\n\nexport interface UpdateStatus {\n state: UpdateState\n /** The version running, or null when provenance cannot say. */\n installedVersion: string | null\n /** The newest version on offer — for plugins, the newest APPROVED one. */\n availableVersion: string | null\n /**\n * Why the answer is `unknown`, for a UI that should say which kind of\n * silence this is rather than implying the artifact is current.\n */\n unknownReason?: 'no-provenance' | 'nothing-published' | 'incomparable'\n}\n\n/**\n * Orders two artifact versions, or returns null when they cannot be ordered.\n *\n * Two numbering schemes are in play and both are real: copied artifacts get a\n * monotonic integer from the publish route, plugins get the semver string off\n * their manifest. A single string compare handles neither (\"10\" < \"9\",\n * \"1.10.0\" < \"1.9.0\"), so both are parsed as dotted numbers — which covers the\n * integer case as a one-segment version.\n *\n * Anything non-numeric (a prerelease tag, a date-stamped build) is not ordered\n * by guesswork: unequal-and-incomparable is reported as such and surfaces as\n * `unknown`, which is honest, where a string compare would confidently point\n * an update button at an older build.\n */\nexport function compareArtifactVersions(\n a: string | number | null | undefined,\n b: string | number | null | undefined,\n): -1 | 0 | 1 | null {\n if (a == null || b == null || a === '' || b === '') return null\n const left = String(a)\n const right = String(b)\n if (left === right) return 0\n const parse = (value: string): number[] | null => {\n const parts = value.split('.')\n const numbers: number[] = []\n for (const part of parts) {\n if (!/^\\d+$/.test(part)) return null\n numbers.push(Number(part))\n }\n return numbers.length ? numbers : null\n }\n const leftParts = parse(left)\n const rightParts = parse(right)\n if (!leftParts || !rightParts) return null\n const length = Math.max(leftParts.length, rightParts.length)\n for (let index = 0; index < length; index += 1) {\n const leftPart = leftParts[index] ?? 0\n const rightPart = rightParts[index] ?? 0\n if (leftPart < rightPart) return -1\n if (leftPart > rightPart) return 1\n }\n // Equal numerically but not as strings — \"1.0\" and \"1.0.0\" are the same\n // version written two ways.\n return 0\n}\n\n/** The installed side: a plugin pin, or any copied artifact's document. */\nexport interface UpdateComparableInstall {\n version?: unknown\n installedFrom?: Record<string, unknown> | null\n marketplace?: { listingId?: string; version?: unknown } | null\n source?: { listingId?: string; version?: unknown } | null\n listingId?: string\n pluginId?: string\n sha256?: string\n}\n\n/** The listing side, as the public listing document carries it. */\nexport interface UpdateComparableListing {\n artifactType?: string\n type?: string\n kind?: string\n latestVersion?: unknown\n /**\n * The newest version that PASSED REVIEW (AGL-966), denormalised onto the\n * listing by the approval route because `pluginVersions` is server-only.\n */\n latestApprovedVersion?: unknown\n}\n\nconst UNKNOWN: UpdateStatus = {\n state: 'unknown',\n installedVersion: null,\n availableVersion: null,\n unknownReason: 'no-provenance',\n}\n\n/**\n * Compares what is installed against what the listing offers (AGL-1016).\n *\n * For plugins the offer is the newest INSTALLABLE version, never\n * `latestVersion`. Installs already resolve it that way; advertising\n * `latestVersion` would leak AGL-966's guarantee straight back out through a\n * badge, telling a workspace an update exists that the install route would\n * then refuse to give them.\n *\n * `revocation` is the same leak one state over (AGL-2368). Approval is a\n * review verdict and the kill switch does not clear it, so `latestApprovedVersion`\n * could name a stopped version — an \"Update to vX\" for bytes `install-plugin`\n * answers 409 to. Optional because it is a second document and not every\n * caller holds it; every writer of the mirror derives it from\n * `newestInstallableVersion` since AGL-2306, so a caller without one is\n * reading a cache that is correct except in the window between two writes.\n * A caller that HAS it should pass it.\n */\nexport function resolveUpdateState(\n installed: UpdateComparableInstall | null | undefined,\n listing: UpdateComparableListing | null | undefined,\n artifactType?: MarketplaceArtifactType,\n revocation?: PluginRevocation | null,\n): UpdateStatus {\n const provenance = resolveProvenance(installed as never, artifactType)\n if (!installed || provenance.state === 'unknown' || !provenance.version) {\n return UNKNOWN\n }\n const installedVersion = provenance.version\n const type = provenance.artifactType ?? artifactType ?? null\n const available =\n type === 'plugin'\n ? offeredPluginVersion(listing, revocation)\n : listing?.latestVersion\n if (available == null || available === '') {\n return {\n state: 'unknown',\n installedVersion,\n availableVersion: null,\n unknownReason: 'nothing-published',\n }\n }\n const availableVersion = String(available)\n const order = compareArtifactVersions(installedVersion, availableVersion)\n if (order === null) {\n return {\n state: 'unknown',\n installedVersion,\n availableVersion,\n unknownReason: 'incomparable',\n }\n }\n return {\n state: order === 0 ? 'current' : order < 0 ? 'update-available' : 'ahead',\n installedVersion,\n availableVersion,\n }\n}\n\n/**\n * One sentence describing an update state, so four surfaces do not each invent\n * their own wording for the same fact.\n */\nexport function updateStateLabel(status: UpdateStatus): string {\n switch (status.state) {\n case 'update-available':\n return `You have v${status.installedVersion} · v${status.availableVersion} available`\n case 'current':\n return `Up to date · v${status.installedVersion}`\n case 'ahead':\n return `You have v${status.installedVersion}, newer than the published v${status.availableVersion}`\n default:\n return status.unknownReason === 'nothing-published'\n ? 'No published version to compare against'\n : status.unknownReason === 'incomparable'\n ? `You have v${status.installedVersion}; v${status.availableVersion} cannot be ordered against it`\n : 'Installed before update tracking — version unknown'\n }\n}\n"],"names":["resolveProvenance","offeredPluginVersion","compareArtifactVersions","a","b","left","String","right","parse","value","parts","split","numbers","part","test","push","Number","length","leftParts","rightParts","Math","max","index","leftPart","rightPart","UNKNOWN","state","installedVersion","availableVersion","unknownReason","resolveUpdateState","installed","listing","artifactType","revocation","provenance","version","type","available","latestVersion","order","updateStateLabel","status"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAGD,SAASA,iBAAiB,QAAQ,8BAA0B;AAC5D,SACEC,oBAAoB,QAEf,uBAAmB;AAuC1B;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASC,wBACdC,CAAqC,EACrCC,CAAqC;IAErC,IAAID,KAAK,QAAQC,KAAK,QAAQD,MAAM,MAAMC,MAAM,IAAI,OAAO;IAC3D,MAAMC,OAAOC,OAAOH;IACpB,MAAMI,QAAQD,OAAOF;IACrB,IAAIC,SAASE,OAAO,OAAO;IAC3B,MAAMC,QAAQ,CAACC;QACb,MAAMC,QAAQD,MAAME,KAAK,CAAC;QAC1B,MAAMC,UAAoB,EAAE;QAC5B,KAAK,MAAMC,QAAQH,MAAO;YACxB,IAAI,CAAC,QAAQI,IAAI,CAACD,OAAO,OAAO;YAChCD,QAAQG,IAAI,CAACC,OAAOH;QACtB;QACA,OAAOD,QAAQK,MAAM,GAAGL,UAAU;IACpC;IACA,MAAMM,YAAYV,MAAMH;IACxB,MAAMc,aAAaX,MAAMD;IACzB,IAAI,CAACW,aAAa,CAACC,YAAY,OAAO;IACtC,MAAMF,SAASG,KAAKC,GAAG,CAACH,UAAUD,MAAM,EAAEE,WAAWF,MAAM;IAC3D,IAAK,IAAIK,QAAQ,GAAGA,QAAQL,QAAQK,SAAS,EAAG;YAC7BJ,kBACCC;QADlB,MAAMI,YAAWL,mBAAAA,SAAS,CAACI,MAAM,YAAhBJ,mBAAoB;QACrC,MAAMM,aAAYL,oBAAAA,UAAU,CAACG,MAAM,YAAjBH,oBAAqB;QACvC,IAAII,WAAWC,WAAW,OAAO,CAAC;QAClC,IAAID,WAAWC,WAAW,OAAO;IACnC;IACA,wEAAwE;IACxE,4BAA4B;IAC5B,OAAO;AACT;AA0BA,MAAMC,UAAwB;IAC5BC,OAAO;IACPC,kBAAkB;IAClBC,kBAAkB;IAClBC,eAAe;AACjB;AAEA;;;;;;;;;;;;;;;;;CAiBC,GACD,OAAO,SAASC,mBACdC,SAAqD,EACrDC,OAAmD,EACnDC,YAAsC,EACtCC,UAAoC;QAOvBC,MAAAA;IALb,MAAMA,aAAanC,kBAAkB+B,WAAoBE;IACzD,IAAI,CAACF,aAAaI,WAAWT,KAAK,KAAK,aAAa,CAACS,WAAWC,OAAO,EAAE;QACvE,OAAOX;IACT;IACA,MAAME,mBAAmBQ,WAAWC,OAAO;IAC3C,MAAMC,QAAOF,QAAAA,2BAAAA,WAAWF,YAAY,YAAvBE,2BAA2BF,wBAA3BE,OAA2C;IACxD,MAAMG,YACJD,SAAS,WACLpC,qBAAqB+B,SAASE,cAC9BF,2BAAAA,QAASO,aAAa;IAC5B,IAAID,aAAa,QAAQA,cAAc,IAAI;QACzC,OAAO;YACLZ,OAAO;YACPC;YACAC,kBAAkB;YAClBC,eAAe;QACjB;IACF;IACA,MAAMD,mBAAmBtB,OAAOgC;IAChC,MAAME,QAAQtC,wBAAwByB,kBAAkBC;IACxD,IAAIY,UAAU,MAAM;QAClB,OAAO;YACLd,OAAO;YACPC;YACAC;YACAC,eAAe;QACjB;IACF;IACA,OAAO;QACLH,OAAOc,UAAU,IAAI,YAAYA,QAAQ,IAAI,qBAAqB;QAClEb;QACAC;IACF;AACF;AAEA;;;CAGC,GACD,OAAO,SAASa,iBAAiBC,MAAoB;IACnD,OAAQA,OAAOhB,KAAK;QAClB,KAAK;YACH,OAAO,CAAC,UAAU,EAAEgB,OAAOf,gBAAgB,CAAC,IAAI,EAAEe,OAAOd,gBAAgB,CAAC,UAAU,CAAC;QACvF,KAAK;YACH,OAAO,CAAC,cAAc,EAAEc,OAAOf,gBAAgB,EAAE;QACnD,KAAK;YACH,OAAO,CAAC,UAAU,EAAEe,OAAOf,gBAAgB,CAAC,4BAA4B,EAAEe,OAAOd,gBAAgB,EAAE;QACrG;YACE,OAAOc,OAAOb,aAAa,KAAK,sBAC5B,4CACAa,OAAOb,aAAa,KAAK,iBACvB,CAAC,UAAU,EAAEa,OAAOf,gBAAgB,CAAC,GAAG,EAAEe,OAAOd,gBAAgB,CAAC,6BAA6B,CAAC,GAChG;IACV;AACF"}
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2026 Aglyn LLC
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* The version of the agreement currently in force.
|
|
19
|
-
*
|
|
20
|
-
* Matches the `Agreement version` header of the document itself, which is now
|
|
21
|
-
* besigner content at {@link PUBLISHER_AGREEMENT_URL} rather than a repo file
|
|
22
|
-
* (same practice as the Terms of Service). Bump this **only** when the
|
|
23
|
-
* substance changes in a way a publisher should re-read — a typo fix is not a
|
|
24
|
-
* bump. Bumping it stops every publisher at their next publish until they
|
|
25
|
-
* accept again.
|
|
26
|
-
*
|
|
27
|
-
* Moved off `2026-07-28.1` on 2026-08-14 (AGL-1674). That string named the
|
|
28
|
-
* July draft, which was never published and whose §8 said the publisher is the
|
|
29
|
-
* seller of record. The published text says the opposite — Aglyn processes the
|
|
30
|
-
* sale and remits transaction tax — so it is a different document in
|
|
31
|
-
* substance, not a reissue, and re-asking is the point rather than a cost.
|
|
32
|
-
*
|
|
33
|
-
* Moved to `2026-08-18.1` on 2026-08-18 (AGL-1840 + AGL-1661). Two body-text
|
|
34
|
-
* changes: §1 now says "the Aglyn marketplace" (the AGL-975 rename, and the
|
|
35
|
-
* reason this snapshot must NOT need the AGL-975 naming-guard exemption that
|
|
36
|
-
* the `2026-08-14.1` one still carries), and §1's cross-reference to
|
|
37
|
-
* the "End User Licence Agreement"
|
|
38
|
-
* becomes "License" to match the document that agreement actually is, which
|
|
39
|
-
* was renamed on the same day.
|
|
40
|
-
*
|
|
41
|
-
* ⚠️ Read against the "a typo fix is not a bump" rule above, both edits are
|
|
42
|
-
* closer to a typo than to substance, and the tension is real. The bump was
|
|
43
|
-
* taken anyway on the decision (2026-08-18), for a reason the rule does not
|
|
44
|
-
* cover: the served page changed, so keeping `2026-08-14.1` would leave the
|
|
45
|
-
* pin below asserting a hash for text nobody is shown any more — a FALSE
|
|
46
|
-
* RECORD, which is the exact failure the pin exists to detect. The choice is
|
|
47
|
-
* therefore between a bump and a broken pin, not between a bump and nothing.
|
|
48
|
-
*
|
|
49
|
-
* ## 2026-08-22 — the page changed and this string DELIBERATELY did not
|
|
50
|
-
*
|
|
51
|
-
* Three clauses were added on 2026-08-22 (§3(h) listing conduct, §8.6 sales
|
|
52
|
-
* through the Marketplace, §13.6 marks) and the pin below moved with them, but
|
|
53
|
-
* `2026-08-18.1` stayed. That is not the third option the paragraph above says
|
|
54
|
-
* does not exist — it is the same choice with one input changed. A bump exists
|
|
55
|
-
* to re-ask publishers who accepted the OLD text; production holds exactly one
|
|
56
|
-
* acceptance record and it is the own, so there is nobody to re-ask and the
|
|
57
|
-
* bump would buy nothing. the decision, 2026-08-22.
|
|
58
|
-
*
|
|
59
|
-
* The pin still had to move, for precisely the reason given above: the served
|
|
60
|
-
* bytes changed, so leaving the old hash here would assert a document nobody
|
|
61
|
-
* is shown. Version unchanged + pin re-captured is coherent ONLY while the
|
|
62
|
-
* acceptance set is empty. The first real publisher acceptance ends that, and
|
|
63
|
-
* from then on any body-text change costs a bump — see the same rule in
|
|
64
|
-
* `apps/console/constants/legal-documents.ts`, where the clickwrap snapshots
|
|
65
|
-
* collapsed back to `v1` on the identical argument.
|
|
66
|
-
*
|
|
67
|
-
* ## 2026-08-24 — `2026-08-24.1`, and why this one CANNOT be folded (AGL-1956)
|
|
68
|
-
*
|
|
69
|
-
* §13.3 changed twice in one sentence. The venue moved from Williamson County
|
|
70
|
-
* to TRAVIS County (decided) — Williamson entered from the former
|
|
71
|
-
* Jarrell residential address, while every published Aglyn address is 5900
|
|
72
|
-
* Balcones Dr STE 100, Austin, TX 78731, which is Travis. And the clause cited
|
|
73
|
-
* "Terms of Service Section 19" for governing law and venue when those live at
|
|
74
|
-
* §18.6; §19 is General. A wrong cross-reference in a forum-selection clause is
|
|
75
|
-
* the kind of defect that gets argued about, so it was corrected in the same
|
|
76
|
-
* pass.
|
|
77
|
-
*
|
|
78
|
-
* Unlike 2026-08-22, this one takes the bump rather than only re-pinning, and
|
|
79
|
-
* the deciding reason is mechanical rather than editorial: THIS VERSION STRING
|
|
80
|
-
* IS PUBLISHED IN THE DOCUMENT. The page at {@link PUBLISHER_AGREEMENT_URL}
|
|
81
|
-
* serves `Agreement version: 2026-08-24.1` in its own second line, so the
|
|
82
|
-
* capture below contains it, and `publisher-agreement-version.spec.ts` asserts
|
|
83
|
-
* the snapshot contains `Agreement version: ${PUBLISHER_AGREEMENT_VERSION}`.
|
|
84
|
-
* Holding the constant at `2026-08-18.1` against that text would need the page
|
|
85
|
-
* republished to say so, and would otherwise record a publisher as having
|
|
86
|
-
* accepted `2026-08-18.1` while naming bytes that call themselves
|
|
87
|
-
* `2026-08-24.1`. That is a false record of exactly the shape the pin exists
|
|
88
|
-
* to prevent.
|
|
89
|
-
*
|
|
90
|
-
* ⚠️ THIS IS THE ONE PLACE THE CLICKWRAP ARGUMENT DOES NOT REACH. The signup
|
|
91
|
-
* clickwrap folded its 2026-08-24 corrections into `v1` and did not bump
|
|
92
|
-
* (`apps/console/constants/legal-documents.ts`) — decided: no v2
|
|
93
|
-
* before launch. That works there because `v1` is a REPO-SIDE label: the
|
|
94
|
-
* published Terms carry a "Last updated" date and no version string at all, so
|
|
95
|
-
* the label can stay still while the text moves. Here the label is part of the
|
|
96
|
-
* document a publisher reads. The two schemes are not the same kind of thing
|
|
97
|
-
* and must not be reasoned about as one — that difference is the whole content
|
|
98
|
-
* of this paragraph.
|
|
99
|
-
*
|
|
100
|
-
* On the merits it would have been a bump anyway: a forum-selection clause is
|
|
101
|
-
* substance, not a typo — it names the court a publisher would have to travel
|
|
102
|
-
* to. The 2026-08-22 cost argument is unchanged and still cheap, production
|
|
103
|
-
* holding exactly one acceptance record which is the own.
|
|
104
|
-
*
|
|
105
|
-
* §8.1 and §8.3 are UNTOUCHED and were already correct: they have said Aglyn is
|
|
106
|
-
* merchant of record and determines, collects and remits transaction tax since
|
|
107
|
-
* 2026-08-14. The Terms of Service moved TO them in this pass (new ToS §10.7),
|
|
108
|
-
* not the other way around.
|
|
109
|
-
*/
|
|
110
|
-
export declare const PUBLISHER_AGREEMENT_VERSION = "2026-08-24.1";
|
|
111
|
-
export declare const PUBLISHER_AGREEMENT_TITLE = "Marketplace Publisher Agreement";
|
|
112
|
-
/**
|
|
113
|
-
* The snapshot pin for the version above (AGL-1678).
|
|
114
|
-
*
|
|
115
|
-
* A version string is a label we control and can reuse, so on its own it
|
|
116
|
-
* proves nothing about what a publisher actually read. These two values pin
|
|
117
|
-
* the archived snapshot at
|
|
118
|
-
* `legal/publisher-agreement/{PUBLISHER_AGREEMENT_VERSION}/marketplace-publisher-agreement.txt`
|
|
119
|
-
* (beside this module), captured FROM THE LIVE PAGE after publication — the
|
|
120
|
-
* same publication-first machinery as the signup clickwrap
|
|
121
|
-
* (`apps/console/constants/legal-documents.ts`, AGL-1497), and deliberately a
|
|
122
|
-
* PARALLEL manifest rather than an entry in `LEGAL_DOCUMENTS`: ToS §19.1 makes
|
|
123
|
-
* that set the entire signup agreement, and the publisher agreement is
|
|
124
|
-
* deliberately not part of it. Mixing them would widen what a signup
|
|
125
|
-
* acceptance covers.
|
|
126
|
-
*
|
|
127
|
-
* Both values go onto every acceptance record, so a record is self-contained
|
|
128
|
-
* evidence of content and later tampering with the archive is detectable
|
|
129
|
-
* rather than invisible. `publisher-agreement-version.spec.ts` re-hashes the
|
|
130
|
-
* snapshot, so one version string can never come to mean two different
|
|
131
|
-
* documents.
|
|
132
|
-
*
|
|
133
|
-
* Capture method (proven byte-for-byte against the clickwrap v4 hashes before
|
|
134
|
-
* this snapshot was taken): fetch the live page, walk its HTML text nodes
|
|
135
|
-
* skipping script/style, trim each, drop empties, take the document's content
|
|
136
|
-
* block (first line `Last updated: …` through its closing `© …` line,
|
|
137
|
-
* excluding site chrome and the table of contents), join with `\n`, and end
|
|
138
|
-
* with a trailing newline. UTF-8 throughout.
|
|
139
|
-
*
|
|
140
|
-
* TO PUBLISH A CHANGE: publish the besigner edit first, confirm the live page
|
|
141
|
-
* serves it, capture a new snapshot under the new version's directory, then
|
|
142
|
-
* bump `PUBLISHER_AGREEMENT_VERSION` and these two values together, and add
|
|
143
|
-
* the version's entry to `PUBLISHER_AGREEMENT_CHANGES` below. Never
|
|
144
|
-
* hand-write a snapshot: it is evidence of what a publisher was shown, and a
|
|
145
|
-
* snapshot of unpublished text is a false record.
|
|
146
|
-
*/
|
|
147
|
-
export declare const PUBLISHER_AGREEMENT_SHA256 = "2df6e940f037b4630e53c8f63bad8604ef4bf370374b89afcd4ea7f9fe8e8d63";
|
|
148
|
-
/** Byte length of the same snapshot — a cheap second check on the content. */
|
|
149
|
-
export declare const PUBLISHER_AGREEMENT_BYTES = 13730;
|
|
150
|
-
/**
|
|
151
|
-
* Canonical document, on the operator's legal origin beside the other terms.
|
|
152
|
-
*
|
|
153
|
-
* Built from `LEGAL_ORIGIN` (AGL-2196), which this module already depends on:
|
|
154
|
-
* `publisherAgreementIsPublished` below calls `isPublishedLegalUrl`, and that
|
|
155
|
-
* accepts ONLY `LEGAL_ORIGIN`. So the gate was operator-aware while the link
|
|
156
|
-
* it gates was a bare `aglyn.com` literal — meaning on a self-host install
|
|
157
|
-
* with `NEXT_PUBLIC_OPERATOR_LEGAL_ORIGIN` set, the gate rejected the very URL
|
|
158
|
-
* this file handed it, and every publisher was blocked from accepting. One
|
|
159
|
-
* origin for both closes that, and leaves Aglyn's own URL byte-identical.
|
|
160
|
-
*/
|
|
161
|
-
export declare const PUBLISHER_AGREEMENT_URL: string;
|
|
162
|
-
/**
|
|
163
|
-
* Whether that document can actually be read (AGL-1660).
|
|
164
|
-
*
|
|
165
|
-
* It could not, from the day this gate shipped until the day this check did:
|
|
166
|
-
* the URL above 404ed, and the console still rendered it as "Read the full
|
|
167
|
-
* Marketplace Publisher Agreement" above an Accept button. An acceptance
|
|
168
|
-
* collected that way is a signature on a blank page — the same
|
|
169
|
-
* publication-first principle the clickwrap snapshots are built on, failing in
|
|
170
|
-
* the one place the text was never published at all.
|
|
171
|
-
*
|
|
172
|
-
* Derived, not a second flag: it reads `PUBLISHED_LEGAL_PATHS`, so the ONE
|
|
173
|
-
* edit that adds the path when the page goes live is what re-opens acceptance
|
|
174
|
-
* everywhere. There is no boolean to forget to flip, and no way for the link
|
|
175
|
-
* and the gate to disagree.
|
|
176
|
-
*/
|
|
177
|
-
export declare function publisherAgreementIsPublished(url?: string): boolean;
|
|
178
|
-
/**
|
|
179
|
-
* What a publisher is told while the document has no page.
|
|
180
|
-
*
|
|
181
|
-
* Deliberately not "try again later" — it names the reason, because the fix is
|
|
182
|
-
* ours and the publisher can do nothing about it. It must never read as though
|
|
183
|
-
* accepting is something they merely have not got round to.
|
|
184
|
-
*/
|
|
185
|
-
export declare const PUBLISHER_AGREEMENT_UNAVAILABLE_NOTICE: string;
|
|
186
|
-
/**
|
|
187
|
-
* What the agreement actually commits a publisher to.
|
|
188
|
-
*
|
|
189
|
-
* Shown above the accept control. A link alone is the pattern that produces
|
|
190
|
-
* agreements nobody has read; these are the terms most likely to surprise
|
|
191
|
-
* someone later, in the words they would need at that moment. They summarise
|
|
192
|
-
* the document — they are not it, and the copy says so.
|
|
193
|
-
*/
|
|
194
|
-
export declare const PUBLISHER_AGREEMENT_POINTS: readonly {
|
|
195
|
-
id: string;
|
|
196
|
-
label: string;
|
|
197
|
-
detail: string;
|
|
198
|
-
}[];
|
|
199
|
-
/**
|
|
200
|
-
* What each version changed from the one before it, in the words a publisher
|
|
201
|
-
* re-accepting needs (AGL-3407).
|
|
202
|
-
*
|
|
203
|
-
* An org that accepted an older version is asked again, and "the terms
|
|
204
|
-
* changed" with nothing more is a request to re-read thirteen sections to
|
|
205
|
-
* find two edited clauses. Each entry names the sections that moved, read off
|
|
206
|
-
* the archived snapshots beside this module (`legal/publisher-agreement/`) —
|
|
207
|
-
* never written from memory of the edit, for the same reason a snapshot is
|
|
208
|
-
* never hand-written.
|
|
209
|
-
*
|
|
210
|
-
* Oldest first. The last entry is always {@link PUBLISHER_AGREEMENT_VERSION}:
|
|
211
|
-
* a bump adds its entry in the same change, and
|
|
212
|
-
* `publisher-agreement-version.spec.ts` fails a bump that did not. The first
|
|
213
|
-
* published version has no entry, because nothing preceded it that anyone
|
|
214
|
-
* accepted.
|
|
215
|
-
*/
|
|
216
|
-
export declare const PUBLISHER_AGREEMENT_CHANGES: readonly {
|
|
217
|
-
version: string;
|
|
218
|
-
changes: readonly string[];
|
|
219
|
-
}[];
|
|
220
|
-
/**
|
|
221
|
-
* The changes an org has not yet accepted, oldest first.
|
|
222
|
-
*
|
|
223
|
-
* Versions are dated strings (`YYYY-MM-DD.n`), so they order as text. An
|
|
224
|
-
* acceptance of a version this list does not name — one older than the first
|
|
225
|
-
* entry — gets every entry, which is the honest answer: all of it is new to
|
|
226
|
-
* them. No acceptance at all gets none, because a first acceptance is of the
|
|
227
|
-
* whole document, not a set of edits.
|
|
228
|
-
*/
|
|
229
|
-
export declare function publisherAgreementChangesSince(acceptedVersion: string | null | undefined, currentVersion?: string): readonly {
|
|
230
|
-
version: string;
|
|
231
|
-
changes: readonly string[];
|
|
232
|
-
}[];
|
|
233
|
-
/**
|
|
234
|
-
* A recorded acceptance: which version, of which exact bytes, by whom, when.
|
|
235
|
-
*
|
|
236
|
-
* `sha256`/`bytes` (AGL-1678) pin the acceptance to the archived snapshot of
|
|
237
|
-
* the text the publisher was shown. Optional because records written before
|
|
238
|
-
* the pin existed carry only the version string — absence means "accepted
|
|
239
|
-
* before 2026-08-17", not "accepted nothing".
|
|
240
|
-
*/
|
|
241
|
-
export interface PublisherAgreementAcceptance {
|
|
242
|
-
version?: string;
|
|
243
|
-
sha256?: string;
|
|
244
|
-
bytes?: number;
|
|
245
|
-
acceptedBy?: string;
|
|
246
|
-
acceptedAt?: unknown;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Where an org stands with the agreement.
|
|
250
|
-
*
|
|
251
|
-
* `none` and `outdated` are deliberately different answers. "You have never
|
|
252
|
-
* agreed to anything" and "the terms changed since you agreed" are different
|
|
253
|
-
* situations with different copy, and collapsing them into a boolean is how
|
|
254
|
-
* a re-acceptance ends up reading like a first-time setup step.
|
|
255
|
-
*/
|
|
256
|
-
export type PublisherAgreementState = 'none' | 'outdated' | 'current';
|
|
257
|
-
export declare function publisherAgreementState(acceptance: PublisherAgreementAcceptance | null | undefined, currentVersion?: string): PublisherAgreementState;
|
|
258
|
-
/**
|
|
259
|
-
* Whether a publish may proceed.
|
|
260
|
-
*
|
|
261
|
-
* An older acceptance is NOT carried forward. Whoever publishes next reads
|
|
262
|
-
* the changed agreement and accepts it, or does not publish — silently
|
|
263
|
-
* inheriting an acceptance across a rewrite is precisely what makes the
|
|
264
|
-
* record worthless.
|
|
265
|
-
*/
|
|
266
|
-
export declare function hasCurrentPublisherAgreement(acceptance: PublisherAgreementAcceptance | null | undefined, currentVersion?: string): boolean;
|
|
267
|
-
/**
|
|
268
|
-
* What the acceptance UI may show (AGL-1660).
|
|
269
|
-
*
|
|
270
|
-
* The gate lives HERE rather than in the panel, for the reason every "check it
|
|
271
|
-
* in the component" control eventually fails: the component is not the only
|
|
272
|
-
* caller. The accept route consults the same function, so a client that skips
|
|
273
|
-
* the UI entirely meets the same answer.
|
|
274
|
-
*
|
|
275
|
-
* `documentUrl` is null, not the URL, when the document is unpublished — the
|
|
276
|
-
* console reads the link target from this, so an unreadable document is
|
|
277
|
-
* structurally unable to reach an href.
|
|
278
|
-
*/
|
|
279
|
-
export interface PublisherAgreementPresentation {
|
|
280
|
-
/** The document to link, or null when there is no page to link to. */
|
|
281
|
-
documentUrl: string | null;
|
|
282
|
-
/** Whether the accept control may be offered at all. */
|
|
283
|
-
canAccept: boolean;
|
|
284
|
-
/** Why acceptance is unavailable, or null when it is available. */
|
|
285
|
-
unavailableNotice: string | null;
|
|
286
|
-
}
|
|
287
|
-
export declare function publisherAgreementPresentation(state: PublisherAgreementState, published?: boolean): PublisherAgreementPresentation;
|
|
288
|
-
/** The refusal a publisher sees, saying which of the two problems it is. */
|
|
289
|
-
export declare function publisherAgreementRefusal(state: PublisherAgreementState, published?: boolean): string;
|