@aglyn/aglyn 1.0.0-beta.218 → 1.0.0-beta.220
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +12 -12
- package/src/lib/app-utils/actions.d.ts +26 -433
- package/src/lib/app-utils/actions.js +108 -633
- package/src/lib/app-utils/actions.js.map +1 -1
- package/src/lib/app-utils/activity-presenter.d.ts +3 -3
- package/src/lib/app-utils/activity-presenter.js +36 -52
- package/src/lib/app-utils/activity-presenter.js.map +1 -1
- package/src/lib/app-utils/analytics-events.d.ts +1 -1
- package/src/lib/app-utils/analytics-events.js.map +1 -1
- package/src/lib/app-utils/analytics-provider.d.ts +182 -0
- package/src/lib/app-utils/analytics-provider.js +133 -0
- package/src/lib/app-utils/analytics-provider.js.map +1 -0
- package/src/lib/app-utils/api-plugins.d.ts +46 -0
- package/src/lib/app-utils/api-plugins.js +19 -0
- package/src/lib/app-utils/api-plugins.js.map +1 -1
- package/src/lib/app-utils/{marketplace-overrides.d.ts → artifact-overrides.d.ts} +9 -6
- package/src/lib/app-utils/{marketplace-overrides.js → artifact-overrides.js} +10 -7
- package/src/lib/app-utils/artifact-overrides.js.map +1 -0
- package/src/lib/app-utils/{marketplace-provenance.d.ts → artifact-provenance.d.ts} +12 -10
- package/src/lib/app-utils/{marketplace-provenance.js → artifact-provenance.js} +9 -7
- package/src/lib/app-utils/artifact-provenance.js.map +1 -0
- package/src/lib/app-utils/binding-token-catalog.d.ts +5 -13
- package/src/lib/app-utils/binding-token-catalog.js +17 -41
- package/src/lib/app-utils/binding-token-catalog.js.map +1 -1
- package/src/lib/app-utils/brand-support-line.d.ts +36 -0
- package/src/lib/app-utils/brand-support-line.js +38 -0
- package/src/lib/app-utils/brand-support-line.js.map +1 -0
- package/src/lib/app-utils/collection-entries.d.ts +2 -2
- package/src/lib/app-utils/collection-entries.js.map +1 -1
- package/src/lib/app-utils/consent-group-change.d.ts +4 -0
- package/src/lib/app-utils/consent-group-change.js.map +1 -1
- package/src/lib/app-utils/consent-groups.d.ts +1 -1
- package/src/lib/app-utils/consent-groups.js.map +1 -1
- package/src/lib/app-utils/console-routes.d.ts +15 -42
- package/src/lib/app-utils/console-routes.js +10 -39
- package/src/lib/app-utils/console-routes.js.map +1 -1
- package/src/lib/app-utils/contacts.d.ts +24 -2
- package/src/lib/app-utils/contacts.js +21 -5
- package/src/lib/app-utils/contacts.js.map +1 -1
- package/src/lib/app-utils/container-membership.d.ts +93 -0
- package/src/lib/app-utils/container-membership.js +165 -0
- package/src/lib/app-utils/container-membership.js.map +1 -0
- package/src/lib/app-utils/crm-task-reminders.d.ts +23 -6
- package/src/lib/app-utils/crm-task-reminders.js +32 -11
- package/src/lib/app-utils/crm-task-reminders.js.map +1 -1
- package/src/lib/app-utils/crm.d.ts +24 -4
- package/src/lib/app-utils/crm.js +23 -0
- package/src/lib/app-utils/crm.js.map +1 -1
- package/src/lib/app-utils/cross-pool-desync.d.ts +39 -0
- package/src/lib/app-utils/cross-pool-desync.js +47 -0
- package/src/lib/app-utils/cross-pool-desync.js.map +1 -0
- package/src/lib/app-utils/csv-upload.d.ts +29 -0
- package/src/lib/app-utils/csv-upload.js +29 -0
- package/src/lib/app-utils/csv-upload.js.map +1 -0
- package/src/lib/app-utils/{dataset-csv.d.ts → csv.d.ts} +10 -43
- package/src/lib/app-utils/{dataset-csv.js → csv.js} +10 -81
- package/src/lib/app-utils/csv.js.map +1 -0
- package/src/lib/app-utils/dataset-models.d.ts +5 -5
- package/src/lib/app-utils/dataset-models.js +19 -2
- package/src/lib/app-utils/dataset-models.js.map +1 -1
- package/src/lib/app-utils/datasets.d.ts +65 -30
- package/src/lib/app-utils/datasets.js +74 -24
- package/src/lib/app-utils/datasets.js.map +1 -1
- package/src/lib/app-utils/docs-deflection.d.ts +6 -6
- package/src/lib/app-utils/docs-deflection.js.map +1 -1
- package/src/lib/app-utils/docs-help.generated.d.ts +14 -8
- package/src/lib/app-utils/docs-help.generated.js +23 -6
- package/src/lib/app-utils/docs-help.generated.js.map +1 -1
- package/src/lib/app-utils/docs-index.generated.d.ts +2 -2
- package/src/lib/app-utils/docs-index.generated.js +570 -346
- package/src/lib/app-utils/docs-index.generated.js.map +1 -1
- package/src/lib/app-utils/docs-retrieval.d.ts +3 -3
- package/src/lib/app-utils/docs-retrieval.js +14 -10
- package/src/lib/app-utils/docs-retrieval.js.map +1 -1
- package/src/lib/app-utils/duplicate-resource.d.ts +4 -1
- package/src/lib/app-utils/duplicate-resource.js +7 -4
- package/src/lib/app-utils/duplicate-resource.js.map +1 -1
- package/src/lib/app-utils/dynamic-list-rule.d.ts +1 -1
- package/src/lib/app-utils/dynamic-list-rule.js +3 -3
- package/src/lib/app-utils/dynamic-list-rule.js.map +1 -1
- package/src/lib/app-utils/element-ui.d.ts +1 -1
- package/src/lib/app-utils/element-ui.js +1 -1
- package/src/lib/app-utils/element-ui.js.map +1 -1
- package/src/lib/app-utils/email-starter-policy.js +3 -3
- package/src/lib/app-utils/email-starter-policy.js.map +1 -1
- package/src/lib/app-utils/email-text.d.ts +80 -0
- package/src/lib/app-utils/email-text.js +189 -0
- package/src/lib/app-utils/email-text.js.map +1 -0
- package/src/lib/app-utils/{list-assignment-policy.d.ts → enrollment-basis.d.ts} +4 -0
- package/src/lib/app-utils/{list-assignment-policy.js → enrollment-basis.js} +5 -1
- package/src/lib/app-utils/enrollment-basis.js.map +1 -0
- package/src/lib/app-utils/entity-picker-context.d.ts +10 -5
- package/src/lib/app-utils/entity-picker-context.js.map +1 -1
- package/src/lib/app-utils/error-beacon.d.ts +75 -6
- package/src/lib/app-utils/error-beacon.js +160 -21
- package/src/lib/app-utils/error-beacon.js.map +1 -1
- package/src/lib/app-utils/expand-repeatables.d.ts +10 -10
- package/src/lib/app-utils/expand-repeatables.js +14 -14
- package/src/lib/app-utils/expand-repeatables.js.map +1 -1
- package/src/lib/app-utils/forms.js +2 -2
- package/src/lib/app-utils/forms.js.map +1 -1
- package/src/lib/app-utils/health-report.d.ts +2 -3
- package/src/lib/app-utils/health-report.js +8 -6
- package/src/lib/app-utils/health-report.js.map +1 -1
- package/src/lib/app-utils/host-events.d.ts +82 -0
- package/src/lib/app-utils/host-events.js +62 -0
- package/src/lib/app-utils/host-events.js.map +1 -0
- package/src/lib/app-utils/inbound-mail-domain.d.ts +27 -0
- package/src/lib/app-utils/inbound-mail-domain.js +31 -0
- package/src/lib/app-utils/inbound-mail-domain.js.map +1 -0
- package/src/lib/app-utils/lockdown.d.ts +11 -0
- package/src/lib/app-utils/lockdown.js +33 -3
- package/src/lib/app-utils/lockdown.js.map +1 -1
- package/src/lib/app-utils/margin-utilization.d.ts +4 -69
- package/src/lib/app-utils/margin-utilization.js +82 -69
- package/src/lib/app-utils/margin-utilization.js.map +1 -1
- package/src/lib/app-utils/member-email-aliases.d.ts +25 -0
- package/src/lib/app-utils/member-email-aliases.js +29 -0
- package/src/lib/app-utils/member-email-aliases.js.map +1 -1
- package/src/lib/app-utils/node-definition-sanitizer.d.ts +16 -16
- package/src/lib/app-utils/node-definition-sanitizer.js +24 -20
- package/src/lib/app-utils/node-definition-sanitizer.js.map +1 -1
- package/src/lib/app-utils/node-interactions.d.ts +7 -7
- package/src/lib/app-utils/node-interactions.js.map +1 -1
- package/src/lib/app-utils/notifications.d.ts +147 -47
- package/src/lib/app-utils/notifications.js +182 -44
- package/src/lib/app-utils/notifications.js.map +1 -1
- package/src/lib/app-utils/operator-alerts.d.ts +15 -1
- package/src/lib/app-utils/operator-alerts.js +47 -10
- package/src/lib/app-utils/operator-alerts.js.map +1 -1
- package/src/lib/app-utils/payments-configured.d.ts +8 -21
- package/src/lib/app-utils/payments-configured.js +8 -23
- package/src/lib/app-utils/payments-configured.js.map +1 -1
- package/src/lib/app-utils/plan-entitlements.d.ts +207 -306
- package/src/lib/app-utils/plan-entitlements.js +345 -528
- package/src/lib/app-utils/plan-entitlements.js.map +1 -1
- package/src/lib/app-utils/platform-brand.d.ts +10 -0
- package/src/lib/app-utils/platform-brand.js +14 -3
- package/src/lib/app-utils/platform-brand.js.map +1 -1
- package/src/lib/app-utils/platform-marketing-consent.d.ts +56 -2
- package/src/lib/app-utils/platform-marketing-consent.js +6 -5
- package/src/lib/app-utils/platform-marketing-consent.js.map +1 -1
- package/src/lib/app-utils/plugin-api-rate-limit.d.ts +7 -1
- package/src/lib/app-utils/plugin-api-rate-limit.js +11 -3
- package/src/lib/app-utils/plugin-api-rate-limit.js.map +1 -1
- package/src/lib/app-utils/plugin-bundle-checks.js +2 -2
- package/src/lib/app-utils/plugin-bundle-checks.js.map +1 -1
- package/src/lib/app-utils/plugin-host-events.generated.d.ts +12 -0
- package/src/lib/app-utils/plugin-host-events.generated.js +169 -0
- package/src/lib/app-utils/plugin-host-events.generated.js.map +1 -0
- package/src/lib/app-utils/plugin-release-flags.generated.d.ts +12 -0
- package/src/lib/app-utils/plugin-release-flags.generated.js +106 -0
- package/src/lib/app-utils/plugin-release-flags.generated.js.map +1 -0
- package/src/lib/app-utils/plugin-starter-templates.generated.d.ts +12 -0
- package/src/lib/app-utils/plugin-starter-templates.generated.js +711 -0
- package/src/lib/app-utils/plugin-starter-templates.generated.js.map +1 -0
- package/src/lib/app-utils/realm-host-surface.generated.js +2 -0
- package/src/lib/app-utils/realm-host-surface.generated.js.map +1 -1
- package/src/lib/app-utils/release-flags.d.ts +14 -5
- package/src/lib/app-utils/release-flags.js +21 -125
- package/src/lib/app-utils/release-flags.js.map +1 -1
- package/src/lib/app-utils/repeat-query.d.ts +56 -0
- package/src/lib/app-utils/{dataset-query.js → repeat-query.js} +16 -16
- package/src/lib/app-utils/repeat-query.js.map +1 -0
- package/src/lib/app-utils/repeat-sources.d.ts +9 -0
- package/src/lib/app-utils/repeat-sources.js.map +1 -1
- package/src/lib/app-utils/retained-refusals.d.ts +73 -0
- package/src/lib/app-utils/retained-refusals.js +186 -0
- package/src/lib/app-utils/retained-refusals.js.map +1 -0
- package/src/lib/app-utils/scope-tokens.d.ts +27 -0
- package/src/lib/app-utils/scope-tokens.js +61 -0
- package/src/lib/app-utils/scope-tokens.js.map +1 -1
- package/src/lib/app-utils/screen-link-context.js +3 -3
- package/src/lib/app-utils/screen-link-context.js.map +1 -1
- package/src/lib/app-utils/screen-route.js +1 -1
- package/src/lib/app-utils/screen-route.js.map +1 -1
- package/src/lib/app-utils/seo-audit.d.ts +132 -0
- package/src/lib/app-utils/seo-audit.js +246 -0
- package/src/lib/app-utils/seo-audit.js.map +1 -0
- package/src/lib/app-utils/seo-keywords.d.ts +48 -0
- package/src/lib/app-utils/seo-keywords.js +60 -0
- package/src/lib/app-utils/seo-keywords.js.map +1 -0
- package/src/lib/app-utils/seo-page-facts.d.ts +66 -0
- package/src/lib/app-utils/seo-page-facts.js +155 -0
- package/src/lib/app-utils/seo-page-facts.js.map +1 -0
- package/src/lib/app-utils/seo-site-scan.d.ts +126 -0
- package/src/lib/app-utils/seo-site-scan.js +162 -0
- package/src/lib/app-utils/seo-site-scan.js.map +1 -0
- package/src/lib/app-utils/seo-title-variables.js +1 -1
- package/src/lib/app-utils/seo-title-variables.js.map +1 -1
- package/src/lib/app-utils/server.d.ts +13 -18
- package/src/lib/app-utils/server.js +33 -51
- package/src/lib/app-utils/server.js.map +1 -1
- package/src/lib/app-utils/site-interactions.d.ts +501 -0
- package/src/lib/app-utils/site-interactions.js +554 -0
- package/src/lib/app-utils/site-interactions.js.map +1 -0
- package/src/lib/app-utils/{marketplace-theme.d.ts → site-theme.d.ts} +13 -2
- package/src/lib/app-utils/{marketplace-theme.js → site-theme.js} +2 -2
- package/src/lib/app-utils/site-theme.js.map +1 -0
- package/src/lib/app-utils/sitemap.d.ts +4 -3
- package/src/lib/app-utils/sitemap.js +9 -7
- package/src/lib/app-utils/sitemap.js.map +1 -1
- package/src/lib/app-utils/stale-build-error.d.ts +51 -0
- package/src/lib/app-utils/stale-build-error.js +100 -1
- package/src/lib/app-utils/stale-build-error.js.map +1 -1
- package/src/lib/app-utils/starter-template-nodes.d.ts +137 -0
- package/src/lib/app-utils/starter-template-nodes.js +129 -0
- package/src/lib/app-utils/starter-template-nodes.js.map +1 -0
- package/src/lib/app-utils/starter-templates.d.ts +11 -34
- package/src/lib/app-utils/starter-templates.js +19 -230
- package/src/lib/app-utils/starter-templates.js.map +1 -1
- package/src/lib/app-utils/{email-topics.d.ts → subscription-topics.d.ts} +64 -48
- package/src/lib/app-utils/{email-topics.js → subscription-topics.js} +39 -109
- package/src/lib/app-utils/subscription-topics.js.map +1 -0
- package/src/lib/app-utils/tax-jurisdiction-figures.d.ts +118 -0
- package/src/lib/app-utils/tax-jurisdiction-figures.js +123 -0
- package/src/lib/app-utils/tax-jurisdiction-figures.js.map +1 -0
- package/src/lib/app-utils/theme-library.d.ts +10 -3
- package/src/lib/app-utils/theme-library.js +13 -4
- package/src/lib/app-utils/theme-library.js.map +1 -1
- package/src/lib/app-utils/usage-budget.d.ts +73 -188
- package/src/lib/app-utils/usage-budget.js +58 -194
- package/src/lib/app-utils/usage-budget.js.map +1 -1
- package/src/lib/app-utils/{campaign-attribution.d.ts → utm-attribution.d.ts} +11 -6
- package/src/lib/app-utils/{campaign-attribution.js → utm-attribution.js} +13 -8
- package/src/lib/app-utils/utm-attribution.js.map +1 -0
- package/src/lib/app-utils/{campaign-forwarding.d.ts → utm-forwarding.d.ts} +14 -14
- package/src/lib/app-utils/{campaign-forwarding.js → utm-forwarding.js} +26 -26
- package/src/lib/app-utils/utm-forwarding.js.map +1 -0
- package/src/lib/app-utils/{campaign-touch.d.ts → utm-touch.d.ts} +25 -17
- package/src/lib/app-utils/{campaign-touch.js → utm-touch.js} +38 -30
- package/src/lib/app-utils/utm-touch.js.map +1 -0
- package/src/lib/app-utils/variables.d.ts +9 -9
- package/src/lib/app-utils/variables.js.map +1 -1
- package/src/lib/app-utils/video-object.js +6 -5
- package/src/lib/app-utils/video-object.js.map +1 -1
- package/src/lib/app-utils/visitor-consent.d.ts +41 -164
- package/src/lib/app-utils/visitor-consent.js +66 -277
- package/src/lib/app-utils/visitor-consent.js.map +1 -1
- package/src/lib/app-utils/visitor-record-ceiling.d.ts +32 -0
- package/src/lib/app-utils/visitor-record-ceiling.js +39 -0
- package/src/lib/app-utils/visitor-record-ceiling.js.map +1 -1
- package/src/lib/app-utils/web-vitals-rum.d.ts +7 -7
- package/src/lib/app-utils/web-vitals-rum.js +31 -63
- package/src/lib/app-utils/web-vitals-rum.js.map +1 -1
- package/src/lib/app-utils/where-used.d.ts +11 -6
- package/src/lib/app-utils/where-used.js +3 -8
- package/src/lib/app-utils/where-used.js.map +1 -1
- package/src/lib/foundation/definitions/components.types.d.ts +1 -1
- package/src/lib/foundation/definitions/components.types.js +1 -1
- package/src/lib/foundation/definitions/components.types.js.map +1 -1
- package/src/lib/foundation/definitions/org-billing.types.d.ts +11 -137
- package/src/lib/foundation/definitions/org-billing.types.js.map +1 -1
- package/src/lib/foundation/definitions/organization.types.d.ts +1 -3
- package/src/lib/foundation/definitions/organization.types.js.map +1 -1
- package/src/lib/foundation/definitions/platform.types.d.ts +11 -5
- package/src/lib/foundation/definitions/platform.types.js.map +1 -1
- package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +16 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js +20 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -1
- package/src/lib/foundation/index.d.ts +1 -1
- package/src/lib/foundation/index.js.map +1 -1
- package/src/lib/plugin-manager/besigner-documents.d.ts +96 -0
- package/src/lib/plugin-manager/besigner-documents.js +61 -0
- package/src/lib/plugin-manager/besigner-documents.js.map +1 -0
- package/src/lib/plugin-manager/computed-variables.d.ts +71 -0
- package/src/lib/plugin-manager/computed-variables.js +74 -0
- package/src/lib/plugin-manager/computed-variables.js.map +1 -0
- package/src/lib/plugin-manager/custom-fields.d.ts +29 -2
- package/src/lib/plugin-manager/custom-fields.js +47 -1
- package/src/lib/plugin-manager/custom-fields.js.map +1 -1
- package/src/lib/plugin-manager/feature-plugins.d.ts +372 -99
- package/src/lib/plugin-manager/feature-plugins.js +126 -51
- package/src/lib/plugin-manager/feature-plugins.js.map +1 -1
- package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +134 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js +840 -10
- package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -1
- package/src/lib/plugin-manager/index.d.ts +0 -1
- package/src/lib/plugin-manager/index.js +0 -1
- package/src/lib/plugin-manager/index.js.map +1 -1
- package/src/lib/plugin-manager/plugin-activity-actions.d.ts +12 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js +25 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js.map +1 -1
- package/src/lib/plugin-manager/plugin-contact-capture.d.ts +9 -4
- package/src/lib/plugin-manager/plugin-contact-capture.js.map +1 -1
- package/src/lib/plugin-manager/plugin-containers.d.ts +68 -0
- package/src/lib/plugin-manager/plugin-containers.generated.d.ts +10 -0
- package/src/lib/plugin-manager/plugin-containers.generated.js +20 -0
- package/src/lib/plugin-manager/plugin-containers.generated.js.map +1 -0
- package/src/lib/plugin-manager/plugin-containers.js +27 -0
- package/src/lib/plugin-manager/plugin-containers.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contributions.d.ts +1 -1
- package/src/lib/plugin-manager/plugin-contributions.js.map +1 -1
- package/src/lib/plugin-manager/plugin-declarations-repair.d.ts +36 -0
- package/src/lib/plugin-manager/plugin-declarations-repair.js +64 -0
- package/src/lib/plugin-manager/plugin-declarations-repair.js.map +1 -0
- package/src/lib/plugin-manager/plugin-dependents.d.ts +101 -0
- package/src/lib/plugin-manager/plugin-dependents.js +75 -0
- package/src/lib/plugin-manager/plugin-dependents.js.map +1 -0
- package/src/lib/plugin-manager/plugin-distribution.d.ts +55 -0
- package/src/lib/plugin-manager/plugin-distribution.js +45 -0
- package/src/lib/plugin-manager/plugin-distribution.js.map +1 -0
- package/src/lib/plugin-manager/plugin-entitlements.d.ts +8 -0
- package/src/lib/plugin-manager/plugin-entitlements.js.map +1 -1
- package/src/lib/plugin-manager/plugin-host-collections.d.ts +17 -0
- package/src/lib/plugin-manager/plugin-host-collections.js +6 -0
- package/src/lib/plugin-manager/plugin-host-collections.js.map +1 -1
- package/src/lib/plugin-manager/plugin-host-resources.d.ts +133 -0
- package/src/lib/plugin-manager/plugin-host-resources.js +52 -0
- package/src/lib/plugin-manager/plugin-host-resources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-membership-detach.js +1 -1
- package/src/lib/plugin-manager/plugin-membership-detach.js.map +1 -1
- package/src/lib/plugin-manager/plugin-org-erasure.d.ts +28 -2
- package/src/lib/plugin-manager/plugin-org-erasure.js +61 -2
- package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -1
- package/src/lib/plugin-manager/plugin-plan-entitlements.d.ts +123 -0
- package/src/lib/plugin-manager/plugin-plan-entitlements.js +101 -0
- package/src/lib/plugin-manager/plugin-plan-entitlements.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-email-state.d.ts +69 -0
- package/src/lib/plugin-manager/plugin-record-email-state.js +32 -0
- package/src/lib/plugin-manager/plugin-record-email-state.js.map +1 -1
- package/src/lib/plugin-manager/plugin-record-index.d.ts +95 -0
- package/src/lib/plugin-manager/plugin-record-index.js +51 -0
- package/src/lib/plugin-manager/plugin-record-index.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-lists.d.ts +115 -0
- package/src/lib/plugin-manager/plugin-record-lists.js +75 -0
- package/src/lib/plugin-manager/plugin-record-lists.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-timeline.d.ts +42 -8
- package/src/lib/plugin-manager/plugin-record-timeline.js.map +1 -1
- package/src/lib/plugin-manager/plugin-record-written.d.ts +58 -0
- package/src/lib/plugin-manager/plugin-record-written.js +42 -0
- package/src/lib/plugin-manager/plugin-record-written.js.map +1 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.d.ts +213 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.js +194 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-site-beacons.d.ts +71 -0
- package/src/lib/plugin-manager/plugin-site-beacons.js +54 -0
- package/src/lib/plugin-manager/plugin-site-beacons.js.map +1 -0
- package/src/lib/plugin-manager/plugin-site-bundle.d.ts +145 -0
- package/src/lib/plugin-manager/plugin-site-bundle.js +78 -0
- package/src/lib/plugin-manager/plugin-site-bundle.js.map +1 -0
- package/src/lib/plugin-manager/plugin-site-cache.d.ts +12 -0
- package/src/lib/plugin-manager/plugin-site-cache.js.map +1 -1
- package/src/lib/plugin-manager/plugin-site-export.d.ts +81 -0
- package/src/lib/plugin-manager/plugin-site-export.js +40 -0
- package/src/lib/plugin-manager/plugin-site-export.js.map +1 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.d.ts +88 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.js +29 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.js.map +1 -0
- package/src/lib/plugin-manager/plugin-subscription-topics.generated.d.ts +11 -0
- package/src/lib/plugin-manager/plugin-subscription-topics.generated.js +41 -0
- package/src/lib/plugin-manager/plugin-subscription-topics.generated.js.map +1 -0
- package/src/lib/plugin-manager/plugin-tax-profile.d.ts +20 -4
- package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -1
- package/src/lib/plugin-manager/plugin-tax-return-sources.d.ts +255 -0
- package/src/lib/plugin-manager/plugin-tax-return-sources.js +191 -0
- package/src/lib/plugin-manager/plugin-tax-return-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-template-sources.d.ts +75 -0
- package/src/lib/plugin-manager/plugin-template-sources.js +37 -0
- package/src/lib/plugin-manager/plugin-template-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-usage-axes.d.ts +319 -0
- package/src/lib/plugin-manager/plugin-usage-axes.js +186 -0
- package/src/lib/plugin-manager/plugin-usage-axes.js.map +1 -0
- package/src/lib/plugin-manager/plugin-usage-meters.d.ts +108 -0
- package/src/lib/plugin-manager/plugin-usage-meters.js +105 -0
- package/src/lib/plugin-manager/plugin-usage-meters.js.map +1 -0
- package/src/lib/plugin-manager/plugin-zones.d.ts +4 -5
- package/src/lib/plugin-manager/plugin-zones.js.map +1 -1
- package/src/lib/plugin-manager/realm-host-aglyn.generated.js +2 -0
- package/src/lib/plugin-manager/realm-host-aglyn.generated.js.map +1 -1
- package/src/lib/plugin-manager/record-captured-contact.d.ts +1 -14
- package/src/lib/plugin-manager/record-captured-contact.js +10 -32
- package/src/lib/plugin-manager/record-captured-contact.js.map +1 -1
- package/src/lib/plugin-manager/repeat-rows.d.ts +124 -0
- package/src/lib/plugin-manager/repeat-rows.js +108 -0
- package/src/lib/plugin-manager/repeat-rows.js.map +1 -0
- package/src/lib/plugin-manager/submission-record-target.d.ts +144 -0
- package/src/lib/plugin-manager/submission-record-target.js +125 -0
- package/src/lib/plugin-manager/submission-record-target.js.map +1 -0
- package/src/lib/plugin-manager/usage-alert-contributors.d.ts +76 -6
- package/src/lib/plugin-manager/usage-alert-contributors.js +23 -10
- package/src/lib/plugin-manager/usage-alert-contributors.js.map +1 -1
- package/src/lib/plugin-manager/video-embed-provider.d.ts +108 -0
- package/src/lib/plugin-manager/video-embed-provider.js +165 -0
- package/src/lib/plugin-manager/video-embed-provider.js.map +1 -0
- package/src/lib/types/nodes.d.ts +2 -2
- package/src/lib/types/nodes.js.map +1 -1
- package/src/lib/app-utils/assist-credits.d.ts +0 -482
- package/src/lib/app-utils/assist-credits.js +0 -509
- package/src/lib/app-utils/assist-credits.js.map +0 -1
- package/src/lib/app-utils/campaign-attribution.js.map +0 -1
- package/src/lib/app-utils/campaign-forwarding.js.map +0 -1
- package/src/lib/app-utils/campaign-membership.d.ts +0 -121
- package/src/lib/app-utils/campaign-membership.js +0 -189
- package/src/lib/app-utils/campaign-membership.js.map +0 -1
- package/src/lib/app-utils/campaign-touch.js.map +0 -1
- package/src/lib/app-utils/console-record-links.d.ts +0 -163
- package/src/lib/app-utils/console-record-links.js +0 -180
- package/src/lib/app-utils/console-record-links.js.map +0 -1
- package/src/lib/app-utils/contact-holder.d.ts +0 -68
- package/src/lib/app-utils/contact-holder.js +0 -129
- package/src/lib/app-utils/contact-holder.js.map +0 -1
- package/src/lib/app-utils/contact-merge.d.ts +0 -136
- package/src/lib/app-utils/contact-merge.js +0 -412
- package/src/lib/app-utils/contact-merge.js.map +0 -1
- package/src/lib/app-utils/crm-booking.d.ts +0 -75
- package/src/lib/app-utils/crm-booking.js +0 -133
- package/src/lib/app-utils/crm-booking.js.map +0 -1
- package/src/lib/app-utils/crm-csv.d.ts +0 -239
- package/src/lib/app-utils/crm-csv.js +0 -467
- package/src/lib/app-utils/crm-csv.js.map +0 -1
- package/src/lib/app-utils/crm-digest.d.ts +0 -185
- package/src/lib/app-utils/crm-digest.js +0 -272
- package/src/lib/app-utils/crm-digest.js.map +0 -1
- package/src/lib/app-utils/crm-inbound.d.ts +0 -245
- package/src/lib/app-utils/crm-inbound.js +0 -407
- package/src/lib/app-utils/crm-inbound.js.map +0 -1
- package/src/lib/app-utils/crm-reports.d.ts +0 -479
- package/src/lib/app-utils/crm-reports.js +0 -680
- package/src/lib/app-utils/crm-reports.js.map +0 -1
- package/src/lib/app-utils/dataset-csv.js.map +0 -1
- package/src/lib/app-utils/dataset-query.d.ts +0 -57
- package/src/lib/app-utils/dataset-query.js.map +0 -1
- package/src/lib/app-utils/email-topics.js.map +0 -1
- package/src/lib/app-utils/form-dataset-binding.d.ts +0 -50
- package/src/lib/app-utils/form-dataset-binding.js +0 -74
- package/src/lib/app-utils/form-dataset-binding.js.map +0 -1
- package/src/lib/app-utils/list-assignment-policy.js.map +0 -1
- package/src/lib/app-utils/list-import.d.ts +0 -158
- package/src/lib/app-utils/list-import.js +0 -332
- package/src/lib/app-utils/list-import.js.map +0 -1
- package/src/lib/app-utils/marketplace-listing-visibility.d.ts +0 -122
- package/src/lib/app-utils/marketplace-listing-visibility.js +0 -147
- package/src/lib/app-utils/marketplace-listing-visibility.js.map +0 -1
- package/src/lib/app-utils/marketplace-overrides.js.map +0 -1
- package/src/lib/app-utils/marketplace-provenance.js.map +0 -1
- package/src/lib/app-utils/marketplace-theme.js.map +0 -1
- package/src/lib/app-utils/marketplace-update-state.d.ts +0 -119
- package/src/lib/app-utils/marketplace-update-state.js +0 -132
- package/src/lib/app-utils/marketplace-update-state.js.map +0 -1
- package/src/lib/app-utils/publisher-agreement.d.ts +0 -289
- package/src/lib/app-utils/publisher-agreement.js +0 -321
- package/src/lib/app-utils/publisher-agreement.js.map +0 -1
- package/src/lib/app-utils/wistia-embed.d.ts +0 -104
- package/src/lib/app-utils/wistia-embed.js +0 -138
- package/src/lib/app-utils/wistia-embed.js.map +0 -1
- package/src/lib/app-utils/workflows.d.ts +0 -136
- package/src/lib/app-utils/workflows.js +0 -346
- package/src/lib/app-utils/workflows.js.map +0 -1
- package/src/lib/plugin-manager/commerce-zone-props.d.ts +0 -172
- package/src/lib/plugin-manager/commerce-zone-props.js +0 -31
- package/src/lib/plugin-manager/commerce-zone-props.js.map +0 -1
- package/src/lib/plugin-manager/plugin-metered-lines.d.ts +0 -97
- package/src/lib/plugin-manager/plugin-metered-lines.js +0 -123
- package/src/lib/plugin-manager/plugin-metered-lines.js.map +0 -1
|
@@ -189,11 +189,13 @@ type NonQuotaEntitlementKeys = 'planComp';
|
|
|
189
189
|
* `Required` is over the CORE halves on purpose (AGL-3124). It is what keeps
|
|
190
190
|
* a plan table honest — a plan that forgets a platform quota or a platform
|
|
191
191
|
* gate does not compile — and that reasoning does not carry to a plugin's
|
|
192
|
-
* key: a plugin's
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
192
|
+
* key: a plugin's figure per plan comes from its own `plan-entitlements`
|
|
193
|
+
* declaration (AGL-3080), whose rows are typed per plan and so cannot forget
|
|
194
|
+
* one either, and requiring it here would mean every plan row in the core
|
|
195
|
+
* naming every installed plugin's keys, which is the arrangement the seam
|
|
196
|
+
* retires. So the plugin halves join as declared: present once a plugin
|
|
197
|
+
* declares them, and optional, because core compiles without the plugin's
|
|
198
|
+
* type and a workspace without the plugin has no value for them.
|
|
197
199
|
*
|
|
198
200
|
* They join in their MAPPED form (`PluginOrgQuotas`, `PluginOrgFeatures`)
|
|
199
201
|
* because an intersection with a bare interface has no implicit string index
|
|
@@ -204,80 +206,6 @@ type NonQuotaEntitlementKeys = 'planComp';
|
|
|
204
206
|
export type ResolvedOrgEntitlements = Required<Omit<CoreOrgEntitlements, 'features' | LegacyEntitlementKeys | RetiredEntitlementKeys | NonQuotaEntitlementKeys>> & PluginOrgQuotas & {
|
|
205
207
|
features: Required<CoreOrgFeatureFlags> & PluginOrgFeatures;
|
|
206
208
|
};
|
|
207
|
-
/**
|
|
208
|
-
* Aglyn Assist credits an Enterprise agreement includes per month, before the
|
|
209
|
-
* contract says otherwise.
|
|
210
|
-
*
|
|
211
|
-
* ## Never `UNLIMITED`, and the reason is not stylistic
|
|
212
|
-
*
|
|
213
|
-
* `UNLIMITED` is `Number.POSITIVE_INFINITY`, `JSON.stringify(Infinity)` is
|
|
214
|
-
* `null`, and `Number(null)` is `0`. An unbounded assist band therefore
|
|
215
|
-
* serialises to a band of ZERO through every route that does not also send
|
|
216
|
-
* the explicit flag `restoreQuotaLimit` rebuilds from — which would hand the
|
|
217
|
-
* only customers with a signed contract the one budget that refuses
|
|
218
|
-
* everything. A finite number crosses the wire as itself.
|
|
219
|
-
*
|
|
220
|
-
* The band is also a real liability rather than a capacity we already own.
|
|
221
|
-
* Storage and page views are infrastructure metered into the deal; assist is
|
|
222
|
-
* a per-token charge from a third party, and generative building spends it in
|
|
223
|
-
* units two orders of magnitude apart.
|
|
224
|
-
*
|
|
225
|
-
* ## Why this number
|
|
226
|
-
*
|
|
227
|
-
* Enterprise carries no list price, so the band cannot be sized the way every
|
|
228
|
-
* self-serve tier's is — against what that tier's other cost terms leave out
|
|
229
|
-
* of a known price. It is anchored to the top of the ladder instead: 116,000
|
|
230
|
-
* credits is twice Agency's band, the rule every Enterprise fallback follows
|
|
231
|
-
* since the 2026-09-07 pricing decision (see the `enterprise` row of
|
|
232
|
-
* `PLAN_ENTITLEMENTS`). In cost that is $116 of provider spend a month, or
|
|
233
|
-
* under 9% of any deal priced at or above the self-serve top. A deal below
|
|
234
|
-
* that is sold as Agency, not written as an Enterprise agreement.
|
|
235
|
-
*
|
|
236
|
-
* ## It is a DEFAULT, and a contract raises it
|
|
237
|
-
*
|
|
238
|
-
* `resolveOrgEntitlements` applies a per-org `entitlements.assistCreditsPerMonth`
|
|
239
|
-
* override ahead of this, so a deal that buys more assist buys it on that org
|
|
240
|
-
* without moving the figure every other agreement is measured against — the
|
|
241
|
-
* same mechanism the other contracted bands use.
|
|
242
|
-
*/
|
|
243
|
-
export declare const ENTERPRISE_ASSIST_CREDITS_PER_MONTH = 116000;
|
|
244
|
-
/**
|
|
245
|
-
* The Free AI taste (AGL-2925): the assist credits a Free workspace draws
|
|
246
|
-
* on each month, behind a hard wall.
|
|
247
|
-
*
|
|
248
|
-
* ## Why it exists
|
|
249
|
-
*
|
|
250
|
-
* So the AI landing pages can say "generate your first page free" and mean
|
|
251
|
-
* it. Three hundred credits is one or two generated sections or a handful
|
|
252
|
-
* of copy rewrites — enough to see what the assistant does, not enough to
|
|
253
|
-
* build a site on. The band is a WALL: `PLAN_PRICING.free
|
|
254
|
-
* .extraAssistCreditsUsdPer1k` stays `null`, so `assistBandRefuses` answers
|
|
255
|
-
* true and the reservation refuses at 100% with no overage, no switch and no
|
|
256
|
-
* invoice. Nothing about a Free workspace can produce a charge.
|
|
257
|
-
*
|
|
258
|
-
* ## What it costs, and why that is the number
|
|
259
|
-
*
|
|
260
|
-
* A credit is `ASSIST_CREDIT_COST_USD` of provider spend, so the band costs
|
|
261
|
-
* at most **$0.30 per Free workspace per month** — asserted by
|
|
262
|
-
* `apps/console/specs/tier-margin-floor.spec.ts`. It is the one AI band with
|
|
263
|
-
* no invoice behind it, which is why the same issue closes every multiplier
|
|
264
|
-
* a script could use before the flag flips:
|
|
265
|
-
*
|
|
266
|
-
* - it is metered per ACCOUNT as well as per workspace, so the three free
|
|
267
|
-
* workspaces an account may hold (AGL-2265) share one 300-credit
|
|
268
|
-
* allowance rather than tripling it (`reserveAssistMessage`);
|
|
269
|
-
* - a fresh account waits `AI_FREE_MIN_ACCOUNT_AGE_HOURS` before it can
|
|
270
|
-
* spend, and every free request is bounded per IP, per uid and per
|
|
271
|
-
* account per day;
|
|
272
|
-
* - a platform-wide daily ceiling on free spend pauses the taste for
|
|
273
|
-
* everyone until the UTC day rolls, paid workspaces untouched.
|
|
274
|
-
*
|
|
275
|
-
* The account allowance reads THIS constant rather than the workspace's
|
|
276
|
-
* resolved band, because a staff override that widens one workspace's band
|
|
277
|
-
* is a decision about that workspace, not about how much one person may
|
|
278
|
-
* draw across all of theirs.
|
|
279
|
-
*/
|
|
280
|
-
export declare const FREE_AI_TASTE_CREDITS_PER_MONTH = 300;
|
|
281
209
|
export declare const PLAN_ENTITLEMENTS: Record<OrgPlan, ResolvedOrgEntitlements>;
|
|
282
210
|
/**
|
|
283
211
|
* The tiers a customer can buy themselves — every plan EXCEPT `enterprise`
|
|
@@ -1002,6 +930,75 @@ export declare const INFRA_COGS_PER_SITE_USD = 2;
|
|
|
1002
930
|
* The console keeps importing it from `usage-metering` unchanged.
|
|
1003
931
|
*/
|
|
1004
932
|
export declare const METERED_MARKUP = 1.3;
|
|
933
|
+
/**
|
|
934
|
+
* What the CDN requests behind ONE page view cost once the platform is past
|
|
935
|
+
* its hosting plan's included request allowance, at the DEAREST region the
|
|
936
|
+
* CDN bills, in USD per view (AGL-1879, AGL-3444). A page view billed past a
|
|
937
|
+
* plan's band is priced at `(perPageView + this) × METERED_MARKUP` — $0.70
|
|
938
|
+
* per 1,000 — and every `bandwidthGb` band is sized with it counted.
|
|
939
|
+
*
|
|
940
|
+
* ## Why a page view needs a second cost term
|
|
941
|
+
*
|
|
942
|
+
* `perPageView` prices what a view WEIGHS: the bytes it transfers at the
|
|
943
|
+
* CDN's per-GB rate, plus the Firestore reads behind the render. The CDN also
|
|
944
|
+
* charges per REQUEST once the team's monthly allowance is spent — Vercel Pro
|
|
945
|
+
* includes 10,000,000 a month, then bills $2.00 to $3.20 per million by
|
|
946
|
+
* region. A cold load of `aglyn.com/` makes 57 first-party requests to settle
|
|
947
|
+
* (`tools/tenant-page-budget.json`, `wireCalibration.measuredAgainst`), so the
|
|
948
|
+
* allowance is about 175,000 views of that page a month, platform-wide —
|
|
949
|
+
* about 169 GB of included bandwidth — where the 1 TB transfer allowance
|
|
950
|
+
* lasts about 1.4 million. The request allowance runs out first.
|
|
951
|
+
*
|
|
952
|
+
* ## Why the dearest region
|
|
953
|
+
*
|
|
954
|
+
* The CDN bills a request, and the bytes it transfers, in the region that
|
|
955
|
+
* SERVES it — the one nearest the visitor — so a site whose audience is in
|
|
956
|
+
* São Paulo or Cape Town costs what those regions cost, and nothing about a
|
|
957
|
+
* plan can choose otherwise. The platform's rule is that no plan is under
|
|
958
|
+
* water at any utilization and that "at cost + 30%" is true of every billed
|
|
959
|
+
* unit, so both terms of a page view are priced where the CDN is dearest:
|
|
960
|
+
* transfer at $0.35 per GB (in `perPageView`) and requests at $3.20 per
|
|
961
|
+
* million (here). Past the allowance a view then costs:
|
|
962
|
+
*
|
|
963
|
+
* | | weight | requests | cost / 1k | margin at $0.70 |
|
|
964
|
+
* |-----------------------------------|------------|-----------|-----------|-----------------|
|
|
965
|
+
* | the page as measured (748.5 KB) | $0.262148 | $0.182400 | $0.4445 | +36.5% |
|
|
966
|
+
* | the priced basis (1012.8 KB) | $0.354715 | $0.182400 | $0.5371 | +23.3% |
|
|
967
|
+
*
|
|
968
|
+
* — at least 30% over cost in every region, which is the claim `/pricing`
|
|
969
|
+
* makes.
|
|
970
|
+
*
|
|
971
|
+
* ## The figure
|
|
972
|
+
*
|
|
973
|
+
* $0.00018374681 is 57.42 requests at $3.20 per million — the measured 57,
|
|
974
|
+
* with the basis set ABOVE the measurement as the weight basis is — pinned so
|
|
975
|
+
* the billed price lands on a whole cent: ($0.354715 + $0.1824) × 1.3 is
|
|
976
|
+
* $0.6982 per 1,000, rounded up to $0.70, and ($0.354715 + $0.183747) × 1.3
|
|
977
|
+
* is exactly $0.70. Published as "Our cost $0.538462 / You pay $0.70", the
|
|
978
|
+
* "at cost + 30%" claim stays true of the cost a billed view incurs in the
|
|
979
|
+
* dearest region, and so in every other.
|
|
980
|
+
*
|
|
981
|
+
* ## ⛔ Not in {@link ORG_COGS_UNIT_RATES_USD}, deliberately
|
|
982
|
+
*
|
|
983
|
+
* `perPageView` is half of a pair with `ESTIMATED_PAGE_TRANSFER_BYTES` — one
|
|
984
|
+
* page weight in dollars and in bytes — and `npm run check:page-view-rate`
|
|
985
|
+
* recovers that weight from the rate. A per-request charge is not
|
|
986
|
+
* proportional to weight, so folding it into `perPageView` would make the
|
|
987
|
+
* gate read a page nobody serves.
|
|
988
|
+
*
|
|
989
|
+
* ## The INCLUDED bands carry it too
|
|
990
|
+
*
|
|
991
|
+
* A view inside a plan's band makes the same requests as one past it, and
|
|
992
|
+
* once the platform is past the allowance the CDN bills them either way, so
|
|
993
|
+
* the `bandwidthGb` bands are sized with this term counted: $0.190 per
|
|
994
|
+
* included GB on top of $0.367 of weight. `tier-margin-floor.spec.ts`
|
|
995
|
+
* multiplies it in and pins every tier at 100% of every band.
|
|
996
|
+
*
|
|
997
|
+
* Lives HERE, beside the markup, for the reason the markup does: the
|
|
998
|
+
* `/pricing` generator publishes the cost column from it and cannot import
|
|
999
|
+
* anything under `apps/console`.
|
|
1000
|
+
*/
|
|
1001
|
+
export declare const PAGE_VIEW_CDN_REQUEST_COST_USD = 0.00018374681;
|
|
1005
1002
|
/**
|
|
1006
1003
|
* Monthly unit costs for the meters the rollup already records (AGL-1134).
|
|
1007
1004
|
*
|
|
@@ -1025,6 +1022,23 @@ export declare const METERED_MARKUP = 1.3;
|
|
|
1025
1022
|
* infrastructure pass-through, and the customer is charged those figures
|
|
1026
1023
|
* times `METERED_MARKUP`. They therefore appear in `METERED_UNIT_RATES_USD`
|
|
1027
1024
|
* as well, with identical values, and must be changed in both places at once.
|
|
1025
|
+
* A page view billed past its band also carries
|
|
1026
|
+
* {@link PAGE_VIEW_CDN_REQUEST_COST_USD}, which neither table holds: it is
|
|
1027
|
+
* the per-request CDN charge past the hosting plan's allowance, and this
|
|
1028
|
+
* table's `perPageView` is the weight-proportional half of what a band is
|
|
1029
|
+
* sized against — the request term is the other.
|
|
1030
|
+
*
|
|
1031
|
+
* ## Every Vercel-billed input is priced at Vercel's dearest region
|
|
1032
|
+
*
|
|
1033
|
+
* The CDN and functions bill by region, from $0.15 to $0.35 per GB of
|
|
1034
|
+
* transfer, $2.00 to $3.20 per million requests, and $0.128 to $0.221 per
|
|
1035
|
+
* hour of active CPU (memory $0.0106 to $0.0183 per GB-hour), and a plan
|
|
1036
|
+
* cannot choose where its visitors are. So the Vercel share of every rate
|
|
1037
|
+
* here is priced at the dearest region (AGL-3444): the transfer inside
|
|
1038
|
+
* `perPageView`, the function invocation inside `perFormSubmission`, and the
|
|
1039
|
+
* compute inside `perRun`. The GCP shares — object and Firestore storage, and
|
|
1040
|
+
* the Firestore reads and writes behind a render, a submission or a run —
|
|
1041
|
+
* are priced as they were.
|
|
1028
1042
|
*
|
|
1029
1043
|
* Everything else here is a cost-model input ONLY. `dataStoragePerGbMonth`,
|
|
1030
1044
|
* `perApiRequest`, `perContactMonth` and `perEmailSend` price what an org
|
|
@@ -1034,9 +1048,11 @@ export declare const METERED_MARKUP = 1.3;
|
|
|
1034
1048
|
* "at cost + 30%" claim, which is true of exactly three meters.
|
|
1035
1049
|
*
|
|
1036
1050
|
* The first three were corrected 2026-08-09 (AGL-1280) — storage $0.03 →
|
|
1037
|
-
* $0.026 and form submissions $0.0005 → $0.00005 —
|
|
1038
|
-
* re-pegged 2026-09-09 (AGL-2711), from $0.0001 to $0.00016153846
|
|
1039
|
-
*
|
|
1051
|
+
* $0.026 and form submissions $0.0005 → $0.00005 — `perPageView` was
|
|
1052
|
+
* re-pegged 2026-09-09 (AGL-2711), from $0.0001 to $0.00016153846, and the
|
|
1053
|
+
* last two were re-priced at Vercel's dearest region on 2026-10-01
|
|
1054
|
+
* (AGL-3444): page views $0.00035471473, form submissions $0.000053846154.
|
|
1055
|
+
* All three MUST be changed here and in `METERED_UNIT_RATES_USD` together. See that
|
|
1040
1056
|
* table for each figure's basis; it is the one a customer is billed against,
|
|
1041
1057
|
* so it is the one that carries the working.
|
|
1042
1058
|
*
|
|
@@ -1057,8 +1073,8 @@ export declare const ORG_COGS_UNIT_RATES_USD: {
|
|
|
1057
1073
|
* ⛔ HALF OF A PAIR — see ESTIMATED_PAGE_TRANSFER_BYTES, which states the
|
|
1058
1074
|
* same page in bytes as this states it in dollars. Both are calibrated
|
|
1059
1075
|
* against a 1012.8 KB page and neither may move alone: their quotient is
|
|
1060
|
-
* the cost of a gigabyte, and that
|
|
1061
|
-
* ladder
|
|
1076
|
+
* the cost of a gigabyte's weight, and that — with the request term — is
|
|
1077
|
+
* what every bandwidthGb band on the ladder is sized against.
|
|
1062
1078
|
*/
|
|
1063
1079
|
perPageView: number;
|
|
1064
1080
|
perFormSubmission: number;
|
|
@@ -1082,7 +1098,7 @@ export declare const ORG_COGS_UNIT_RATES_USD: {
|
|
|
1082
1098
|
*/
|
|
1083
1099
|
perEmailSend: number;
|
|
1084
1100
|
/**
|
|
1085
|
-
* One workflow or action run — $
|
|
1101
|
+
* One workflow or action run — $13 per million.
|
|
1086
1102
|
*
|
|
1087
1103
|
* Derived from the run paths at list prices (2026-09-07), because nothing
|
|
1088
1104
|
* measurable exists yet: runs execute inside the Vercel request that fired
|
|
@@ -1101,9 +1117,11 @@ export declare const ORG_COGS_UNIT_RATES_USD: {
|
|
|
1101
1117
|
* - writes: the activity row and the counter increment — 2, at $0.18 per
|
|
1102
1118
|
* 100,000 = $0.0000036
|
|
1103
1119
|
* - compute: a few milliseconds of active CPU and memory on Fluid compute
|
|
1104
|
-
* for the expression evaluation, about $0.000001
|
|
1120
|
+
* for the expression evaluation, about $0.000001 in the cheapest
|
|
1121
|
+
* region and $0.0000017 in the dearest ($0.221 against $0.128 an
|
|
1122
|
+
* hour of active CPU), which is where it is priced
|
|
1105
1123
|
*
|
|
1106
|
-
* $0.
|
|
1124
|
+
* $0.0000125, carried as $0.000013. It scales with the catalog a site holds
|
|
1107
1125
|
* — every `limit(100)` read above is a query that costs one read per
|
|
1108
1126
|
* document returned — and a step that writes a dataset record or calls a
|
|
1109
1127
|
* webhook adds to it, so this is the typical figure, not the ceiling.
|
|
@@ -1115,36 +1133,24 @@ export declare const ORG_COGS_UNIT_RATES_USD: {
|
|
|
1115
1133
|
*/
|
|
1116
1134
|
perRun: number;
|
|
1117
1135
|
};
|
|
1118
|
-
/**
|
|
1136
|
+
/**
|
|
1137
|
+
* The rollup fields `orgMonthlyCogsUsd` prices. All optional and all
|
|
1138
|
+
* absent-safe.
|
|
1139
|
+
*
|
|
1140
|
+
* The named fields are the platform's own meters. A plugin's meter rides the
|
|
1141
|
+
* index signature under the rollup field its declaration names
|
|
1142
|
+
* (`plugin-usage-axes.ts`): the AI plugin's provider spend, the CRM's
|
|
1143
|
+
* records, the forms plugin's submissions, the workflows plugin's runs.
|
|
1144
|
+
*/
|
|
1119
1145
|
export interface OrgUsageRollupInput {
|
|
1120
1146
|
hostCount?: number | null;
|
|
1121
1147
|
storageGb?: number | null;
|
|
1122
1148
|
pageViews?: number | null;
|
|
1123
|
-
formSubmissions?: number | null;
|
|
1124
1149
|
dataStorageMb?: number | null;
|
|
1125
1150
|
apiRequests?: number | null;
|
|
1126
|
-
/**
|
|
1127
|
-
* Contacts alone — the figure every rollup carried before AGL-2611 widened
|
|
1128
|
-
* the band, kept so a month written under the old basis still prices.
|
|
1129
|
-
* Read only when `crmRecordsCount` is absent; see it.
|
|
1130
|
-
*/
|
|
1131
|
-
contactsCount?: number | null;
|
|
1132
|
-
/**
|
|
1133
|
-
* Contacts + companies + deals, the CRM records band's own figure
|
|
1134
|
-
* (AGL-2611). Priced at `perContactMonth` — the rate was measured on a
|
|
1135
|
-
* contact, which is the most expensive of the three to hold, so it
|
|
1136
|
-
* over-covers a company or a deal rather than under-pricing one. When
|
|
1137
|
-
* present it REPLACES `contactsCount` in the model rather than adding to
|
|
1138
|
-
* it: the contacts are inside this sum, and a model that priced both
|
|
1139
|
-
* would charge the same people twice.
|
|
1140
|
-
*/
|
|
1141
|
-
crmRecordsCount?: number | null;
|
|
1142
|
-
/** The components of `crmRecordsCount`, recorded so the sum is legible. */
|
|
1143
|
-
companiesCount?: number | null;
|
|
1144
|
-
dealsCount?: number | null;
|
|
1145
1151
|
/**
|
|
1146
1152
|
* Every email the org sent this month, campaigns and transactional alike —
|
|
1147
|
-
* the `emailSends` cost meter, not
|
|
1153
|
+
* the `emailSends` cost meter, not the campaign meter.
|
|
1148
1154
|
*
|
|
1149
1155
|
* The cost meter is the right input precisely because the campaign meter is
|
|
1150
1156
|
* the one with a cap on it. What this org cost us is every message the
|
|
@@ -1153,24 +1159,13 @@ export interface OrgUsageRollupInput {
|
|
|
1153
1159
|
*/
|
|
1154
1160
|
emailSends?: number | null;
|
|
1155
1161
|
/**
|
|
1156
|
-
*
|
|
1157
|
-
*
|
|
1158
|
-
*
|
|
1159
|
-
* `
|
|
1160
|
-
*
|
|
1161
|
-
* enters the model at ×1 and has no entry in `ORG_COGS_UNIT_RATES_USD`;
|
|
1162
|
-
* inventing a second per-token rate here is precisely the drift AGL-1134
|
|
1163
|
-
* removed.
|
|
1162
|
+
* A plugin's meter, by the rollup field its declaration names. `unknown`
|
|
1163
|
+
* because a rollup document carries its month and its audit fields beside
|
|
1164
|
+
* the meters, and a caller may hand the document over whole; every meter
|
|
1165
|
+
* is read through `declaredMeterReading`, which prices only a positive
|
|
1166
|
+
* finite number.
|
|
1164
1167
|
*/
|
|
1165
|
-
|
|
1166
|
-
/**
|
|
1167
|
-
* Workflow and action runs this month — the two counters `report-usage`
|
|
1168
|
-
* sums across the org's hosts. Priced together at `perRun`: a run is the
|
|
1169
|
-
* same handful of reads, two writes and a moment of compute whichever
|
|
1170
|
-
* builder produced it, and the bands differ only in which tier sells them.
|
|
1171
|
-
*/
|
|
1172
|
-
workflowRuns?: number | null;
|
|
1173
|
-
actionRuns?: number | null;
|
|
1168
|
+
[field: string]: unknown;
|
|
1174
1169
|
}
|
|
1175
1170
|
export interface OrgCogsResult {
|
|
1176
1171
|
/** What the guardrail should charge against revenue. */
|
|
@@ -1226,9 +1221,9 @@ export declare function orgMonthlyCogsUsd(rollup: OrgUsageRollupInput | null | u
|
|
|
1226
1221
|
* UNITS, because the field names do not all say: `storageGb` and
|
|
1227
1222
|
* `dataStorageMb` are gigabytes and MEGABYTES respectively (the conversion
|
|
1228
1223
|
* lives in `orgMonthlyCogsUsd`, with its own test); `pageViews`,
|
|
1229
|
-
* `
|
|
1230
|
-
*
|
|
1231
|
-
*
|
|
1224
|
+
* `apiRequests` and `emailSends` are counts FOR THE MONTH. A plugin's fields
|
|
1225
|
+
* carry the unit its cost-axis declaration states — a monthly count, a
|
|
1226
|
+
* point-in-time level, or dollars.
|
|
1232
1227
|
*/
|
|
1233
1228
|
export declare function orgCogsInputFrom(source: Record<string, unknown> | null | undefined): OrgUsageRollupInput;
|
|
1234
1229
|
/**
|
|
@@ -1678,10 +1673,10 @@ export declare function checkHostRegisterQuota(org: Partial<AglynOrgBilling> | n
|
|
|
1678
1673
|
*/
|
|
1679
1674
|
export declare function resolveTransactionFeePct(org: Partial<AglynOrgBilling> | null | undefined, productType: 'physical' | 'digital' | 'service'): number;
|
|
1680
1675
|
/**
|
|
1681
|
-
* Stripe's processing cost on ONE
|
|
1682
|
-
* (AGL-2152) —
|
|
1683
|
-
* rounded UP on the percentage so the
|
|
1684
|
-
* Stripe actually debits.
|
|
1676
|
+
* Stripe's processing cost on ONE destination-charge sale, in cents
|
|
1677
|
+
* (AGL-2152) — a storefront order, a booking deposit — the dearest enabled
|
|
1678
|
+
* method's percentage plus the fixed 30¢, rounded UP on the percentage so the
|
|
1679
|
+
* answer is never a cent short of what Stripe actually debits.
|
|
1685
1680
|
*
|
|
1686
1681
|
* WHO PAYS THIS. Every storefront charge is a DESTINATION charge:
|
|
1687
1682
|
* `payment_intent_data[transfer_data][destination]` names the merchant's
|
|
@@ -1707,18 +1702,18 @@ export declare function resolveTransactionFeePct(org: Partial<AglynOrgBilling> |
|
|
|
1707
1702
|
* decides the set — and per AGL-2343 that configuration has `klarna` and
|
|
1708
1703
|
* `affirm` on beside the card family. Pricing this at the card rate would be
|
|
1709
1704
|
* wrong exactly on the orders where it cost the most, which is the same
|
|
1710
|
-
* reasoning
|
|
1711
|
-
*
|
|
1705
|
+
* reasoning the marketplace listing floor applies; both are defined from the
|
|
1706
|
+
* SAME processing constants so the two cannot drift.
|
|
1712
1707
|
*
|
|
1713
1708
|
* THE ONE-LINE LEVER. On a card-family order this over-recovers by the spread
|
|
1714
1709
|
* between the two rates. Pinning `payment_method_types` on the storefront
|
|
1715
1710
|
* sessions to the card family would make 2.9% the true binding rate, and
|
|
1716
|
-
* `
|
|
1711
|
+
* `SALE_PROCESSING_PERCENT` below is then the single identifier to
|
|
1717
1712
|
* repoint. That is a product decision about which payment methods a storefront
|
|
1718
1713
|
* offers, not this one; it is recorded on AGL-2152 and in the Pricing Decision
|
|
1719
1714
|
* Log so it can be taken deliberately.
|
|
1720
1715
|
*/
|
|
1721
|
-
export declare function
|
|
1716
|
+
export declare function saleProcessingCostCents(chargeCents: number): number;
|
|
1722
1717
|
/**
|
|
1723
1718
|
* The Stripe Connect `application_fee_amount` for ONE storefront sale
|
|
1724
1719
|
* (AGL-2152) — the platform's advertised take PLUS Stripe's processing cost,
|
|
@@ -1751,7 +1746,7 @@ export declare function resolveTransactionFeeCents(org: Partial<AglynOrgBilling>
|
|
|
1751
1746
|
*
|
|
1752
1747
|
* A Stripe Subscription accepts no `application_fee_amount` — only
|
|
1753
1748
|
* `application_fee_percent`, a rate with at most two decimal places — so the
|
|
1754
|
-
* fixed 30¢ that `
|
|
1749
|
+
* fixed 30¢ that `saleProcessingCostCents` adds in cents has to be
|
|
1755
1750
|
* folded into the rate. `(rate × amount + fixed) ÷ amount` is, with the
|
|
1756
1751
|
* amount cancelled,
|
|
1757
1752
|
*
|
|
@@ -1768,10 +1763,10 @@ export declare function resolveTransactionFeeCents(org: Partial<AglynOrgBilling>
|
|
|
1768
1763
|
* decimal outright, so the only honest direction is over. Integers, because
|
|
1769
1764
|
* `0.09 * 100` is not `9` in floating point and a percent one ulp above a
|
|
1770
1765
|
* whole hundredth would round up to the next one. The same two constants as
|
|
1771
|
-
* the one-time path, so repointing `
|
|
1766
|
+
* the one-time path, so repointing `SALE_PROCESSING_PERCENT` moves
|
|
1772
1767
|
* both surfaces together. Zero for a charge that is not a charge.
|
|
1773
1768
|
*/
|
|
1774
|
-
export declare function
|
|
1769
|
+
export declare function saleProcessingPassThroughPercent(amountCents: number): number;
|
|
1775
1770
|
/**
|
|
1776
1771
|
* The `application_fee_percent` for ONE storefront subscription (AGL-2655):
|
|
1777
1772
|
* the plan's advertised take PLUS Stripe's processing cost as a percent —
|
|
@@ -1818,163 +1813,45 @@ export declare function resolveMarketplaceFeePct(org: Partial<AglynOrgBilling> |
|
|
|
1818
1813
|
*/
|
|
1819
1814
|
export declare function bindingMarketplaceFeePct(): number;
|
|
1820
1815
|
/**
|
|
1821
|
-
* What one
|
|
1822
|
-
*
|
|
1823
|
-
*
|
|
1824
|
-
*
|
|
1825
|
-
*
|
|
1826
|
-
* the charged amounts are `resolveMarketplaceFeePct` and Stripe's own
|
|
1827
|
-
* invoicing — so changing one changes a sentence, never a bill.
|
|
1816
|
+
* What one destination-charge sale costs the PLATFORM to process (AGL-2343):
|
|
1817
|
+
* a storefront order, a booking deposit, a marketplace listing. On a
|
|
1818
|
+
* destination charge Stripe debits its fee from the PLATFORM's balance, so
|
|
1819
|
+
* every surface that sells through the platform's account prices its take
|
|
1820
|
+
* against these.
|
|
1828
1821
|
*
|
|
1829
|
-
*
|
|
1830
|
-
*
|
|
1831
|
-
*
|
|
1832
|
-
* owes it (AGL-1544). On a destination charge Stripe debits its fee from the
|
|
1833
|
-
* PLATFORM's balance, and it is charged on `amount_total` — the listing price
|
|
1834
|
-
* plus the tax added on top of it.
|
|
1835
|
-
*
|
|
1836
|
-
* So a $1 listing at a 20% take rate is a loss: the buyer pays $1.08, the
|
|
1837
|
-
* seller is transferred $0.80, $0.08 is owed to the state, Aglyn keeps $0.20
|
|
1838
|
-
* and pays Stripe about $0.33. Net −$0.13.
|
|
1822
|
+
* NONE OF THESE IS AN AGLYN PRICE. They are Stripe's published US rates, and
|
|
1823
|
+
* they exist only as inputs to a platform take and to figures a seller reads;
|
|
1824
|
+
* changing one never changes a price list.
|
|
1839
1825
|
*
|
|
1840
1826
|
* THE BNPL RATE IS THE ONE THAT BINDS, and it is not hypothetical: the live
|
|
1841
1827
|
* default payment method configuration has `klarna` and `affirm` enabled
|
|
1842
|
-
* alongside `card`, `cashapp`, `link`, `amazon_pay` and `apple_pay`, and
|
|
1843
|
-
*
|
|
1844
|
-
*
|
|
1845
|
-
*
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
*/
|
|
1849
|
-
export declare const MARKETPLACE_PROCESSING_PERCENT_CARD = 2.9;
|
|
1828
|
+
* alongside `card`, `cashapp`, `link`, `amazon_pay` and `apple_pay`, and no
|
|
1829
|
+
* checkout session pins `payment_method_types`, so a buyer may pay by either.
|
|
1830
|
+
* A cost computed from the cheapest method would be wrong exactly when it
|
|
1831
|
+
* mattered.
|
|
1832
|
+
*/
|
|
1833
|
+
export declare const CARD_PROCESSING_PERCENT = 2.9;
|
|
1850
1834
|
/** Klarna/Affirm, roughly. See the note above — this is the binding one. */
|
|
1851
|
-
export declare const
|
|
1835
|
+
export declare const BNPL_PROCESSING_PERCENT = 6;
|
|
1852
1836
|
/** Stripe's per-transaction fixed component, in cents. */
|
|
1853
|
-
export declare const
|
|
1854
|
-
/**
|
|
1855
|
-
* The
|
|
1856
|
-
*
|
|
1857
|
-
*
|
|
1858
|
-
*
|
|
1859
|
-
*
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
*
|
|
1864
|
-
*
|
|
1865
|
-
*
|
|
1866
|
-
*
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
* Stripe's published rates and today share the platform's payment method
|
|
1870
|
-
* configuration, but they are separate product decisions. A future choice to
|
|
1871
|
-
* pin `payment_method_types` on storefront sessions to the card family — and
|
|
1872
|
-
* so to recover at `MARKETPLACE_PROCESSING_PERCENT_CARD` — must not silently
|
|
1873
|
-
* lower the marketplace listing floor, which is derived from the same figure
|
|
1874
|
-
* for a different flow.
|
|
1875
|
-
*/
|
|
1876
|
-
export declare const STOREFRONT_PROCESSING_PERCENT = 6;
|
|
1837
|
+
export declare const PROCESSING_FIXED_CENTS = 30;
|
|
1838
|
+
/**
|
|
1839
|
+
* The processing rate a storefront or booking destination charge is priced
|
|
1840
|
+
* against (AGL-2152), and the one identifier to repoint if those sessions'
|
|
1841
|
+
* payment method set changes.
|
|
1842
|
+
*
|
|
1843
|
+
* Deliberately its OWN name rather than a direct use of the binding rate,
|
|
1844
|
+
* while being defined as it: every seller shares Stripe's published rates and
|
|
1845
|
+
* today shares the platform's payment method configuration, but each surface
|
|
1846
|
+
* is a separate product decision. A future choice to pin
|
|
1847
|
+
* `payment_method_types` on storefront sessions to the card family — and so
|
|
1848
|
+
* to recover at `CARD_PROCESSING_PERCENT` — must not silently lower the
|
|
1849
|
+
* marketplace listing floor, which is derived from the binding rate for a
|
|
1850
|
+
* different flow.
|
|
1851
|
+
*/
|
|
1852
|
+
export declare const SALE_PROCESSING_PERCENT = 6;
|
|
1877
1853
|
/** Stripe's per-transaction fixed component, in cents. Not rate-dependent. */
|
|
1878
|
-
export declare const
|
|
1879
|
-
/** Where the money goes on one sale of a paid listing (AGL-2343). */
|
|
1880
|
-
export interface MarketplaceSaleEconomics {
|
|
1881
|
-
/** The listing price. */
|
|
1882
|
-
priceCents: number;
|
|
1883
|
-
/** Added on top, and owed to the state. */
|
|
1884
|
-
taxCents: number;
|
|
1885
|
-
/** What the buyer is charged. */
|
|
1886
|
-
buyerPaysCents: number;
|
|
1887
|
-
/** `transfer_data[amount]` — the seller's share of the pre-tax price. */
|
|
1888
|
-
sellerReceivesCents: number;
|
|
1889
|
-
/** The platform's take. */
|
|
1890
|
-
platformFeeCents: number;
|
|
1891
|
-
/** Stripe's fee, debited from the platform on a destination charge. */
|
|
1892
|
-
processingCents: number;
|
|
1893
|
-
/** `platformFeeCents - processingCents`. Negative is a loss on the sale. */
|
|
1894
|
-
platformNetCents: number;
|
|
1895
|
-
}
|
|
1896
|
-
/**
|
|
1897
|
-
* The funds flow for one sale, mirroring what `checkout.ts` actually builds
|
|
1898
|
-
* (AGL-2343): tax exclusive and on top, a fixed transfer of the seller's share
|
|
1899
|
-
* of the PRE-tax price, and Stripe's fee charged on the buyer's total.
|
|
1900
|
-
*/
|
|
1901
|
-
export declare function marketplaceSaleEconomics(priceUsd: number, feePercent: number, processingPercent?: number): MarketplaceSaleEconomics;
|
|
1902
|
-
/**
|
|
1903
|
-
* The cheapest WHOLE-DOLLAR price at which the platform does not lose money on
|
|
1904
|
-
* a sale (AGL-2343).
|
|
1905
|
-
*
|
|
1906
|
-
* Whole dollars because every publish route rounds `priceUsd` to one, so a
|
|
1907
|
-
* fractional break-even is not a price anyone can actually set. Searched
|
|
1908
|
-
* rather than solved algebraically so that it can never disagree with
|
|
1909
|
-
* `marketplaceSaleEconomics` — the rounding in there is what decides the
|
|
1910
|
-
* answer at these amounts, and a closed form would drift from it silently.
|
|
1911
|
-
*
|
|
1912
|
-
* THIS IS THE ENFORCED FLOOR: `marketplaceMinPriceUsd` returns this figure
|
|
1913
|
-
* and every publish door refuses a paid listing under it. Recorded in the Pricing
|
|
1914
|
-
* Decision Log and on AGL-2343.
|
|
1915
|
-
*/
|
|
1916
|
-
export declare function marketplaceBreakEvenUsd(feePercent?: number, processingPercent?: number): number;
|
|
1917
|
-
/**
|
|
1918
|
-
* THE MINIMUM PRICE a paid marketplace listing may carry (AGL-2343).
|
|
1919
|
-
*
|
|
1920
|
-
* The floor is not a chosen round number — it is the break-even price itself,
|
|
1921
|
-
* the
|
|
1922
|
-
* cheapest whole dollar at which `marketplaceSaleEconomics` stops returning a
|
|
1923
|
-
* negative platform net, computed at the take rate that breaks even LATEST and
|
|
1924
|
-
* the dearest payment method the live configuration enables. Today that is $3.
|
|
1925
|
-
*
|
|
1926
|
-
* DERIVED, NEVER RESTATED. A second hand-written copy of this number in a
|
|
1927
|
-
* publish route or a form is the artifact that decays into a route refusing a
|
|
1928
|
-
* price a form invited, so both the server-side validator
|
|
1929
|
-
* (`MARKETPLACE_MIN_PRICE_USD` in the marketplace model) and every price field
|
|
1930
|
-
* read this. If the payment method set changes, or the plan table's lowest
|
|
1931
|
-
* take rate moves, the floor moves with them on the next call.
|
|
1932
|
-
*
|
|
1933
|
-
* ZERO IS NOT BELOW THE FLOOR. A free listing takes no payment at all, so it
|
|
1934
|
-
* costs nothing to process; the floor is a minimum on PAID listings only.
|
|
1935
|
-
*/
|
|
1936
|
-
export declare function marketplaceMinPriceUsd(): number;
|
|
1937
|
-
/**
|
|
1938
|
-
* Whether a price is a PAID price that the floor refuses (AGL-2343) — the one
|
|
1939
|
-
* predicate a form uses to mark its price field in error and hold its publish
|
|
1940
|
-
* button, so that the button and the server agree about what is publishable.
|
|
1941
|
-
*
|
|
1942
|
-
* Rounds first because every publish route does, and a form's value is a
|
|
1943
|
-
* string mid-type: `'2.6'` is stored as $3 and must read as allowed here, or
|
|
1944
|
-
* the button would refuse a price the route accepts.
|
|
1945
|
-
*/
|
|
1946
|
-
export declare function isBelowMarketplacePriceFloor(priceUsd: unknown): boolean;
|
|
1947
|
-
/**
|
|
1948
|
-
* The sentence a publish form shows under its price field when the price is
|
|
1949
|
-
* below the floor (AGL-2343), or `undefined` when there is nothing to say.
|
|
1950
|
-
*
|
|
1951
|
-
* NOT ADVISORY ANY MORE. The same figure is enforced by every publish route
|
|
1952
|
-
* through `publishPreconditionRefusal`, so this text has to read as a
|
|
1953
|
-
* requirement rather than a warning — a publisher who is told "consider
|
|
1954
|
-
* raising it" and then refused has been lied to by the form. It still explains
|
|
1955
|
-
* WHY, because a bare minimum with no arithmetic behind it reads as an
|
|
1956
|
-
* arbitrary tax on cheap listings.
|
|
1957
|
-
*
|
|
1958
|
-
* Shared by every publish form rather than written into each, because the
|
|
1959
|
-
* figure has to be the same one in all of them and the wording is the only
|
|
1960
|
-
* place a publisher ever sees it.
|
|
1961
|
-
*
|
|
1962
|
-
* Quoted at the take rate that breaks even LATEST, so the sentence holds for a
|
|
1963
|
-
* free-plan publisher too.
|
|
1964
|
-
*/
|
|
1965
|
-
export declare function marketplacePriceCostNote(priceUsd: unknown): string | undefined;
|
|
1966
|
-
/**
|
|
1967
|
-
* The standing helper sentence a price field shows when there is nothing wrong
|
|
1968
|
-
* (AGL-2343): the minimum stated up front, so a publisher meets it while
|
|
1969
|
-
* typing instead of discovering it as a refusal.
|
|
1970
|
-
*
|
|
1971
|
-
* A capability that is not surfaced in the console does not count as shipped,
|
|
1972
|
-
* and that applies to a REFUSAL as much as to a feature: a floor only a route
|
|
1973
|
-
* knows about is a trap.
|
|
1974
|
-
*
|
|
1975
|
-
* @param suffix whatever else that particular form needs to say, appended.
|
|
1976
|
-
*/
|
|
1977
|
-
export declare function marketplacePriceFloorHint(suffix?: string): string;
|
|
1854
|
+
export declare const SALE_PROCESSING_FIXED_CENTS = 30;
|
|
1978
1855
|
/**
|
|
1979
1856
|
* The cheapest plan whose BASE features include `feature`, in ladder order —
|
|
1980
1857
|
* the answer to "which plan do I need for this?", which is the one thing an
|
|
@@ -2033,6 +1910,15 @@ export { PLATFORM_BRANDING_PROFILE } from './platform-brand';
|
|
|
2033
1910
|
* entitlement the stored profile is ignored entirely and the full Aglyn
|
|
2034
1911
|
* brand is returned — so an org that white-labeled and then downgraded
|
|
2035
1912
|
* reverts cleanly.
|
|
1913
|
+
*
|
|
1914
|
+
* An org WITH the entitlement that has stored no brand value at all gets the
|
|
1915
|
+
* full Aglyn brand too (AGL-3440). The entitlement is the right to a brand,
|
|
1916
|
+
* not a brand: until the org sets one, every name it shows is the platform's
|
|
1917
|
+
* anyway, so the white-label profile's blanks — no logo, no support link, no
|
|
1918
|
+
* home — conceal nothing and only strip the platform's own header and footer
|
|
1919
|
+
* from mail whose every line already names the platform. Every Enterprise
|
|
1920
|
+
* org carries the entitlement, Aglyn's own included. One field set, and the
|
|
1921
|
+
* rules below apply.
|
|
2036
1922
|
*/
|
|
2037
1923
|
export declare function resolveBrandingProfile(org: Partial<AglynOrgBilling> | null | undefined): ResolvedBrandingProfile;
|
|
2038
1924
|
/**
|
|
@@ -2545,7 +2431,9 @@ export declare function checkFormSubmissionAbuseCeiling(org: Partial<AglynOrgBil
|
|
|
2545
2431
|
* view costs. They are one physical measurement written in two units, and
|
|
2546
2432
|
* what every `bandwidthGb` band is actually sized against is neither of them
|
|
2547
2433
|
* alone but their quotient — `(1 GB ÷ this) × perPageView`, the cost of a
|
|
2548
|
-
* gigabyte
|
|
2434
|
+
* gigabyte's WEIGHT, to which the band sizing adds the CDN requests the same
|
|
2435
|
+
* views make ({@link PAGE_VIEW_CDN_REQUEST_COST_USD}). That quotient is
|
|
2436
|
+
* stable even while the page's weight is not,
|
|
2549
2437
|
* which is precisely why moving one half re-prices every band on the ladder
|
|
2550
2438
|
* without touching a band: a heavier page costs more per view and buys fewer
|
|
2551
2439
|
* views per gigabyte, and the two cancel.
|
|
@@ -2593,11 +2481,13 @@ export declare function bandwidthGbFromPageViews(pageViews: number): number;
|
|
|
2593
2481
|
* It is a CAP, not a price, and it is lower than {@link
|
|
2594
2482
|
* FORM_ABUSE_CEILING_MULTIPLE} because bandwidth is the largest cost line the
|
|
2595
2483
|
* platform carries and the one a stranger can spend on the customer's behalf.
|
|
2596
|
-
* Past the band every 1,000 views bills $0.
|
|
2597
|
-
* cost
|
|
2598
|
-
*
|
|
2599
|
-
*
|
|
2600
|
-
*
|
|
2484
|
+
* Past the band every 1,000 views bills $0.70 against at most $0.54 of real
|
|
2485
|
+
* cost — the dearest region's — once the CDN's request allowance is spent
|
|
2486
|
+
* ({@link PAGE_VIEW_CDN_REQUEST_COST_USD}), so the tail is not a loss — but a
|
|
2487
|
+
* scraper, a hotlinked asset or a botnet still bills the account holder for
|
|
2488
|
+
* traffic they did not ask for, and the ceiling is what bounds that before
|
|
2489
|
+
* staff look at it. At 10× the band that tail was open-ended on Agency; at 3×
|
|
2490
|
+
* it is bounded.
|
|
2601
2491
|
*/
|
|
2602
2492
|
export declare const BANDWIDTH_ABUSE_CEILING_MULTIPLE = 3;
|
|
2603
2493
|
/**
|
|
@@ -2608,9 +2498,10 @@ export declare const BANDWIDTH_ABUSE_CEILING_MULTIPLE = 3;
|
|
|
2608
2498
|
* Free includes 2 GB ≈ 2,071 views; 3× would be ~6,212, which a genuinely
|
|
2609
2499
|
* successful hobby site (a post that lands on Hacker News) reaches in an
|
|
2610
2500
|
* afternoon and would be a miserable first experience of the platform.
|
|
2611
|
-
* 100,000 views/month ≈ 96.6 GB ≈ **$
|
|
2612
|
-
* `METERED_UNIT_RATES_USD.perPageView`
|
|
2613
|
-
*
|
|
2501
|
+
* 100,000 views/month ≈ 96.6 GB ≈ **$54 of real COGS** at the dearest
|
|
2502
|
+
* region (`METERED_UNIT_RATES_USD.perPageView` plus
|
|
2503
|
+
* `PAGE_VIEW_CDN_REQUEST_COST_USD`) — well above the free band, and an order
|
|
2504
|
+
* of magnitude below the $538 a million views costs. It is the number
|
|
2614
2505
|
* that makes "free stays free" true without making it stingy.
|
|
2615
2506
|
*/
|
|
2616
2507
|
export declare const BANDWIDTH_ABUSE_CEILING_FLOOR = 100000;
|
|
@@ -2731,14 +2622,24 @@ export declare function normalizeHostBandwidthCeiling(host: Record<string, any>
|
|
|
2731
2622
|
/**
|
|
2732
2623
|
* Is the render path required to serve the capped notice instead of the page?
|
|
2733
2624
|
*
|
|
2734
|
-
*
|
|
2735
|
-
*
|
|
2736
|
-
*
|
|
2737
|
-
*
|
|
2738
|
-
*
|
|
2739
|
-
*
|
|
2625
|
+
* Three things must hold: the flag is for THIS month, the trip was recorded
|
|
2626
|
+
* as one that degrades, and the org's CURRENT plan still degrades.
|
|
2627
|
+
*
|
|
2628
|
+
* The stored `degraded` alone cannot answer the last one. It is written once,
|
|
2629
|
+
* at trip time, and nothing rewrites it: the beacon stops evaluating a host
|
|
2630
|
+
* once it has tripped this month, and a contained site serves no pages to
|
|
2631
|
+
* beacon from. So a host that upgraded mid-month stayed on the notice until
|
|
2632
|
+
* the 1st, while the owner notice and the visitor notice both promised an
|
|
2633
|
+
* upgrade would bring it back. Re-deriving from `org` on every read releases
|
|
2634
|
+
* it on the next org-doc TTL with no write, the same asymmetry
|
|
2635
|
+
* `bandwidthCapEngaged` keeps for the plan band.
|
|
2636
|
+
*
|
|
2637
|
+
* Both halves still hold in the other direction: a flag written for a paying
|
|
2638
|
+
* host (`degraded: false`) can never take that host down, whatever its plan
|
|
2639
|
+
* becomes later. An unknown org (`null`) resolves as unmetered, so a lookup
|
|
2640
|
+
* failure keeps the containment rather than lifting it.
|
|
2740
2641
|
*/
|
|
2741
|
-
export declare function bandwidthCeilingDegradesHost(host: Record<string, any> | null | undefined, month: string): boolean;
|
|
2642
|
+
export declare function bandwidthCeilingDegradesHost(host: Record<string, any> | null | undefined, month: string, org: Partial<AglynOrgBilling> | null | undefined): boolean;
|
|
2742
2643
|
/** UTC `YYYY-MM`, the key both the beacon and the render path agree on. */
|
|
2743
2644
|
export declare function bandwidthCeilingMonthKey(now?: Date): string;
|
|
2744
2645
|
/**
|