@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
|
@@ -1,172 +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 props the commerce plugin's zones hand each widget (AGL-2916): the
|
|
19
|
-
* product editor, the products hub and the CSV import dialog.
|
|
20
|
-
*
|
|
21
|
-
* Types only. `feature-plugins.ts` re-exports them with `export type`, which
|
|
22
|
-
* TypeScript erases, so a published page that imports the zone catalog does
|
|
23
|
-
* not carry them.
|
|
24
|
-
*/
|
|
25
|
-
/** A product type, as the commerce catalog names it. */
|
|
26
|
-
export type ConsoleProductType = 'physical' | 'digital' | 'service';
|
|
27
|
-
/** A product option axis: its name and the values a shopper picks from. */
|
|
28
|
-
export interface ConsoleProductOption {
|
|
29
|
-
name: string;
|
|
30
|
-
values: string[];
|
|
31
|
-
}
|
|
32
|
-
/** A product as the commerce editor holds it: saved, or staged and unsaved (AGL-2916). */
|
|
33
|
-
export interface ConsoleProductDraft {
|
|
34
|
-
/** `null` for a product nobody has saved yet. */
|
|
35
|
-
id: string | null;
|
|
36
|
-
name: string;
|
|
37
|
-
type: ConsoleProductType;
|
|
38
|
-
description: string;
|
|
39
|
-
tags: string[];
|
|
40
|
-
categoryIds: string[];
|
|
41
|
-
options: ConsoleProductOption[];
|
|
42
|
-
/** The product's media, in order; the first is the photo the storefront leads with. */
|
|
43
|
-
mediaUrls: string[];
|
|
44
|
-
seoTitle: string;
|
|
45
|
-
seoDescription: string;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Copy a widget proposes for one product (AGL-2916). A field left out is left
|
|
49
|
-
* alone; `optionNames` renames the product's options in order, keeping every
|
|
50
|
-
* variant, and is ignored unless it names each option once.
|
|
51
|
-
*/
|
|
52
|
-
export interface ConsoleProductCopyValues {
|
|
53
|
-
description?: string;
|
|
54
|
-
tags?: string[];
|
|
55
|
-
categoryIds?: string[];
|
|
56
|
-
optionNames?: string[];
|
|
57
|
-
seoTitle?: string;
|
|
58
|
-
seoDescription?: string;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* What the `productEditor` zone hands each widget (AGL-2916): the product as
|
|
62
|
-
* the editor holds it, and `proposeValues`, which stages copy in the editor as
|
|
63
|
-
* unsaved edits. The zone sits under the product's description, tags and
|
|
64
|
-
* categories, hosted by the commerce plugin through `useConsoleWidgetSlot` as
|
|
65
|
-
* the editor's search listing hosts `seoFields`. A widget here proposes and
|
|
66
|
-
* never writes: Save product is the write, with the guards it carries.
|
|
67
|
-
*/
|
|
68
|
-
export interface ConsoleProductEditorZoneProps {
|
|
69
|
-
hostId: string;
|
|
70
|
-
/** The org the page names; `undefined` where the host does not know it. */
|
|
71
|
-
orgId: string | undefined;
|
|
72
|
-
product: ConsoleProductDraft;
|
|
73
|
-
/** The site's categories, as the editor's picker lists them. */
|
|
74
|
-
categories: ReadonlyArray<{
|
|
75
|
-
id: string;
|
|
76
|
-
name: string;
|
|
77
|
-
}>;
|
|
78
|
-
/**
|
|
79
|
-
* Stages `values` in the editor as unsaved edits under `key`. Save product
|
|
80
|
-
* is what stores them; a widget never writes the product itself.
|
|
81
|
-
*/
|
|
82
|
-
proposeValues: (values: ConsoleProductCopyValues, key: string) => void;
|
|
83
|
-
}
|
|
84
|
-
/** A catalog row as the products hub holds it (AGL-2916). */
|
|
85
|
-
export interface ConsoleProductSummary {
|
|
86
|
-
id: string;
|
|
87
|
-
name: string;
|
|
88
|
-
status: 'draft' | 'active' | 'archived';
|
|
89
|
-
/** Whether a variant of the product has no price yet. */
|
|
90
|
-
priceMissing: boolean;
|
|
91
|
-
/** Whether the product has a photo. */
|
|
92
|
-
hasPhoto: boolean;
|
|
93
|
-
}
|
|
94
|
-
/** A new product a widget asks the hub to create, always as a draft with no price (AGL-2916). */
|
|
95
|
-
export interface ConsoleProposedProduct {
|
|
96
|
-
name: string;
|
|
97
|
-
type: ConsoleProductType;
|
|
98
|
-
description: string;
|
|
99
|
-
tags: string[];
|
|
100
|
-
options: ConsoleProductOption[];
|
|
101
|
-
seoTitle: string;
|
|
102
|
-
seoDescription: string;
|
|
103
|
-
}
|
|
104
|
-
/** A discount a widget asks the hub to create, always switched off (AGL-2916). */
|
|
105
|
-
export interface ConsoleProposedDiscount {
|
|
106
|
-
name: string;
|
|
107
|
-
/** The code a shopper types, or `null` for a discount that applies on its own. */
|
|
108
|
-
code: string | null;
|
|
109
|
-
kind: 'percent' | 'fixed' | 'free_shipping';
|
|
110
|
-
valuePct: number | null;
|
|
111
|
-
valueCents: number | null;
|
|
112
|
-
minSubtotalCents: number | null;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* What the `productsHub` zone hands each widget (AGL-2916): the catalog rows
|
|
116
|
-
* the hub holds, the products its latest import created, and the hub's own
|
|
117
|
-
* writes a widget may ask it to make — copy onto saved products, new draft
|
|
118
|
-
* products, categories and switched-off discounts. The zone sits above the
|
|
119
|
-
* catalog table. Each write is the hub's, with its seed, allowance and slug
|
|
120
|
-
* checks; a widget writes nothing itself. Every write
|
|
121
|
-
* resolves once it is stored and throws with a message a person can act on
|
|
122
|
-
* when the hub refuses it: an allowance the plan has no room for, a product
|
|
123
|
-
* that is gone.
|
|
124
|
-
*
|
|
125
|
-
* The creates are safe to ask twice: a product or a category named like one
|
|
126
|
-
* the site has, and a discount with the code (or, with no code, the name) of
|
|
127
|
-
* one the site has, are passed over, so a proposal applied again, by anyone,
|
|
128
|
-
* creates nothing it already created.
|
|
129
|
-
*/
|
|
130
|
-
export interface ConsoleProductsHubZoneProps {
|
|
131
|
-
hostId: string;
|
|
132
|
-
/** The org the page names; `undefined` where the host does not know it. */
|
|
133
|
-
orgId: string | undefined;
|
|
134
|
-
/** The catalog rows the hub holds, in its order. */
|
|
135
|
-
products: readonly ConsoleProductSummary[];
|
|
136
|
-
/**
|
|
137
|
-
* The products the hub's latest CSV import created in this visit, and the
|
|
138
|
-
* options the `productImport` zone set for them; `null` before any import.
|
|
139
|
-
* `key` is new for each import.
|
|
140
|
-
*/
|
|
141
|
-
lastImport: {
|
|
142
|
-
key: string;
|
|
143
|
-
productIds: readonly string[];
|
|
144
|
-
options: Readonly<Record<string, boolean>>;
|
|
145
|
-
} | null;
|
|
146
|
-
/** Writes copy onto a saved product, read fresh from the store. */
|
|
147
|
-
applyProductCopy: (productId: string, values: ConsoleProductCopyValues) => Promise<void>;
|
|
148
|
-
/** Creates each product as a draft with no price, and resolves with the ids it created. */
|
|
149
|
-
createProductDrafts: (products: readonly ConsoleProposedProduct[]) => Promise<string[]>;
|
|
150
|
-
/** Creates categories by name, and resolves with how many it created. */
|
|
151
|
-
createCategories: (names: readonly string[]) => Promise<number>;
|
|
152
|
-
/** Creates each discount switched off, and resolves with how many it created. */
|
|
153
|
-
createDiscountDrafts: (discounts: readonly ConsoleProposedDiscount[]) => Promise<number>;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* What the `productImport` zone hands each widget (AGL-2916), inside the
|
|
157
|
-
* commerce CSV import dialog: how many products the import creates, and
|
|
158
|
-
* options a widget sets for what happens to them once they land. The hub hands
|
|
159
|
-
* the options, with the ids of the products the import created, to
|
|
160
|
-
* `productsHub` as its `lastImport`.
|
|
161
|
-
*/
|
|
162
|
-
export interface ConsoleProductImportZoneProps {
|
|
163
|
-
hostId: string;
|
|
164
|
-
/** The org the page names; `undefined` where the host does not know it. */
|
|
165
|
-
orgId: string | undefined;
|
|
166
|
-
/** How many products the import creates. */
|
|
167
|
-
count: number;
|
|
168
|
-
/** The options set for this import, by key. */
|
|
169
|
-
options: Readonly<Record<string, boolean>>;
|
|
170
|
-
/** Sets one option; the hub carries it to `productsHub` with what the import created. */
|
|
171
|
-
setOption: (key: string, on: boolean) => void;
|
|
172
|
-
}
|
|
@@ -1,31 +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
|
-
* The props the commerce plugin's zones hand each widget (AGL-2916): the
|
|
18
|
-
* product editor, the products hub and the CSV import dialog.
|
|
19
|
-
*
|
|
20
|
-
* Types only. `feature-plugins.ts` re-exports them with `export type`, which
|
|
21
|
-
* TypeScript erases, so a published page that imports the zone catalog does
|
|
22
|
-
* not carry them.
|
|
23
|
-
*/ /** A product type, as the commerce catalog names it. */ /**
|
|
24
|
-
* What the `productImport` zone hands each widget (AGL-2916), inside the
|
|
25
|
-
* commerce CSV import dialog: how many products the import creates, and
|
|
26
|
-
* options a widget sets for what happens to them once they land. The hub hands
|
|
27
|
-
* the options, with the ids of the products the import created, to
|
|
28
|
-
* `productsHub` as its `lastImport`.
|
|
29
|
-
*/ export { };
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=commerce-zone-props.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/commerce-zone-props.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\n/**\n * The props the commerce plugin's zones hand each widget (AGL-2916): the\n * product editor, the products hub and the CSV import dialog.\n *\n * Types only. `feature-plugins.ts` re-exports them with `export type`, which\n * TypeScript erases, so a published page that imports the zone catalog does\n * not carry them.\n */\n\n/** A product type, as the commerce catalog names it. */\nexport type ConsoleProductType = 'physical' | 'digital' | 'service'\n\n/** A product option axis: its name and the values a shopper picks from. */\nexport interface ConsoleProductOption {\n name: string\n values: string[]\n}\n\n/** A product as the commerce editor holds it: saved, or staged and unsaved (AGL-2916). */\nexport interface ConsoleProductDraft {\n /** `null` for a product nobody has saved yet. */\n id: string | null\n name: string\n type: ConsoleProductType\n description: string\n tags: string[]\n categoryIds: string[]\n options: ConsoleProductOption[]\n /** The product's media, in order; the first is the photo the storefront leads with. */\n mediaUrls: string[]\n seoTitle: string\n seoDescription: string\n}\n\n/**\n * Copy a widget proposes for one product (AGL-2916). A field left out is left\n * alone; `optionNames` renames the product's options in order, keeping every\n * variant, and is ignored unless it names each option once.\n */\nexport interface ConsoleProductCopyValues {\n description?: string\n tags?: string[]\n categoryIds?: string[]\n optionNames?: string[]\n seoTitle?: string\n seoDescription?: string\n}\n\n/**\n * What the `productEditor` zone hands each widget (AGL-2916): the product as\n * the editor holds it, and `proposeValues`, which stages copy in the editor as\n * unsaved edits. The zone sits under the product's description, tags and\n * categories, hosted by the commerce plugin through `useConsoleWidgetSlot` as\n * the editor's search listing hosts `seoFields`. A widget here proposes and\n * never writes: Save product is the write, with the guards it carries.\n */\nexport interface ConsoleProductEditorZoneProps {\n hostId: string\n /** The org the page names; `undefined` where the host does not know it. */\n orgId: string | undefined\n product: ConsoleProductDraft\n /** The site's categories, as the editor's picker lists them. */\n categories: ReadonlyArray<{ id: string; name: string }>\n /**\n * Stages `values` in the editor as unsaved edits under `key`. Save product\n * is what stores them; a widget never writes the product itself.\n */\n proposeValues: (values: ConsoleProductCopyValues, key: string) => void\n}\n\n/** A catalog row as the products hub holds it (AGL-2916). */\nexport interface ConsoleProductSummary {\n id: string\n name: string\n status: 'draft' | 'active' | 'archived'\n /** Whether a variant of the product has no price yet. */\n priceMissing: boolean\n /** Whether the product has a photo. */\n hasPhoto: boolean\n}\n\n/** A new product a widget asks the hub to create, always as a draft with no price (AGL-2916). */\nexport interface ConsoleProposedProduct {\n name: string\n type: ConsoleProductType\n description: string\n tags: string[]\n options: ConsoleProductOption[]\n seoTitle: string\n seoDescription: string\n}\n\n/** A discount a widget asks the hub to create, always switched off (AGL-2916). */\nexport interface ConsoleProposedDiscount {\n name: string\n /** The code a shopper types, or `null` for a discount that applies on its own. */\n code: string | null\n kind: 'percent' | 'fixed' | 'free_shipping'\n valuePct: number | null\n valueCents: number | null\n minSubtotalCents: number | null\n}\n\n/**\n * What the `productsHub` zone hands each widget (AGL-2916): the catalog rows\n * the hub holds, the products its latest import created, and the hub's own\n * writes a widget may ask it to make — copy onto saved products, new draft\n * products, categories and switched-off discounts. The zone sits above the\n * catalog table. Each write is the hub's, with its seed, allowance and slug\n * checks; a widget writes nothing itself. Every write\n * resolves once it is stored and throws with a message a person can act on\n * when the hub refuses it: an allowance the plan has no room for, a product\n * that is gone.\n *\n * The creates are safe to ask twice: a product or a category named like one\n * the site has, and a discount with the code (or, with no code, the name) of\n * one the site has, are passed over, so a proposal applied again, by anyone,\n * creates nothing it already created.\n */\nexport interface ConsoleProductsHubZoneProps {\n hostId: string\n /** The org the page names; `undefined` where the host does not know it. */\n orgId: string | undefined\n /** The catalog rows the hub holds, in its order. */\n products: readonly ConsoleProductSummary[]\n /**\n * The products the hub's latest CSV import created in this visit, and the\n * options the `productImport` zone set for them; `null` before any import.\n * `key` is new for each import.\n */\n lastImport: {\n key: string\n productIds: readonly string[]\n options: Readonly<Record<string, boolean>>\n } | null\n /** Writes copy onto a saved product, read fresh from the store. */\n applyProductCopy: (productId: string, values: ConsoleProductCopyValues) => Promise<void>\n /** Creates each product as a draft with no price, and resolves with the ids it created. */\n createProductDrafts: (products: readonly ConsoleProposedProduct[]) => Promise<string[]>\n /** Creates categories by name, and resolves with how many it created. */\n createCategories: (names: readonly string[]) => Promise<number>\n /** Creates each discount switched off, and resolves with how many it created. */\n createDiscountDrafts: (discounts: readonly ConsoleProposedDiscount[]) => Promise<number>\n}\n\n/**\n * What the `productImport` zone hands each widget (AGL-2916), inside the\n * commerce CSV import dialog: how many products the import creates, and\n * options a widget sets for what happens to them once they land. The hub hands\n * the options, with the ids of the products the import created, to\n * `productsHub` as its `lastImport`.\n */\nexport interface ConsoleProductImportZoneProps {\n hostId: string\n /** The org the page names; `undefined` where the host does not know it. */\n orgId: string | undefined\n /** How many products the import creates. */\n count: number\n /** The options set for this import, by key. */\n options: Readonly<Record<string, boolean>>\n /** Sets one option; the hub carries it to `productsHub` with what the import created. */\n setOption: (key: string, on: boolean) => void\n}\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;CAOC,GAED,sDAAsD,GAwItD;;;;;;CAMC,GACD,WAUC"}
|
|
@@ -1,97 +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
|
-
/** One plugin's claim on one line. */
|
|
18
|
-
export interface PluginMeteredLineClaim {
|
|
19
|
-
/**
|
|
20
|
-
* The line the sweep knows, e.g. the assist-overage line. Core's own name
|
|
21
|
-
* for a figure it already computes — not a plugin's internal name for it.
|
|
22
|
-
*/
|
|
23
|
-
lineId: string;
|
|
24
|
-
/** The plugin that bills it. */
|
|
25
|
-
pluginId: string;
|
|
26
|
-
/**
|
|
27
|
-
* The first month (`YYYY-MM`) the plugin bills the line for, or `null`
|
|
28
|
-
* while the plugin has registered the claim but not yet been switched on.
|
|
29
|
-
*
|
|
30
|
-
* A function rather than a value because the answer comes from deployment
|
|
31
|
-
* configuration that can change without a restart, and because a claim
|
|
32
|
-
* evaluated once at boot would pin the cutover to whenever the process
|
|
33
|
-
* happened to start.
|
|
34
|
-
*/
|
|
35
|
-
billsFrom: () => string | null;
|
|
36
|
-
/**
|
|
37
|
-
* Called once per workspace for a month this sweep has CLOSED, so a plugin
|
|
38
|
-
* billing the line can settle what is left of it.
|
|
39
|
-
*
|
|
40
|
-
* A plugin that charges as usage accrues always has a remainder: the part
|
|
41
|
-
* that never reached its threshold before the month ended. Something has to
|
|
42
|
-
* bill that, and the sweep that closes the month is the one thing that
|
|
43
|
-
* already knows every workspace, its month and its Stripe customer — which
|
|
44
|
-
* is why this is a hook here rather than a second cron with a second
|
|
45
|
-
* schedule to keep in step with this one.
|
|
46
|
-
*
|
|
47
|
-
* Called whether or not the meter reported for the workspace, because the
|
|
48
|
-
* remainder is owed either way. Errors are logged and never the sweep's:
|
|
49
|
-
* this is money the plugin bills, and failing the platform's own metering
|
|
50
|
-
* over it would be the larger loss. A plugin makes it idempotent; it is
|
|
51
|
-
* called again every day the sweep runs.
|
|
52
|
-
*/
|
|
53
|
-
closeMonth?: (context: PluginMeteredLineMonthContext) => Promise<void>;
|
|
54
|
-
}
|
|
55
|
-
/** What a plugin is told about one workspace's closed month. */
|
|
56
|
-
export interface PluginMeteredLineMonthContext {
|
|
57
|
-
orgId: string;
|
|
58
|
-
/** `YYYY-MM`, the month that closed. */
|
|
59
|
-
month: string;
|
|
60
|
-
/** The workspace's own document, as the sweep already read it. */
|
|
61
|
-
org: Record<string, unknown>;
|
|
62
|
-
/** Its Stripe customer, or `null` when it has none. */
|
|
63
|
-
stripeCustomerId: string | null;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Claims a meter line. One plugin per line: a second plugin claiming a line
|
|
67
|
-
* another already holds throws, because two plugins each believing they bill
|
|
68
|
-
* a line is how it reaches no invoice at all.
|
|
69
|
-
*
|
|
70
|
-
* The same plugin re-registering replaces its own claim, so a module
|
|
71
|
-
* evaluated twice leaves one claim rather than two.
|
|
72
|
-
*/
|
|
73
|
-
export declare function registerPluginMeteredLine(claim: Omit<PluginMeteredLineClaim, 'pluginId'> & {
|
|
74
|
-
pluginId?: string;
|
|
75
|
-
}): void;
|
|
76
|
-
/**
|
|
77
|
-
* Does a plugin bill this line for this month, so the sweep must leave it
|
|
78
|
-
* out of the meter figure?
|
|
79
|
-
*
|
|
80
|
-
* A claim whose `billsFrom` throws answers `false` and logs: the sweep is
|
|
81
|
-
* the only thing that bills the line while a claim is broken, and a throw
|
|
82
|
-
* that propagated would fail the whole month's billing for every workspace.
|
|
83
|
-
*/
|
|
84
|
-
export declare function pluginBillsMeteredLine(lineId: string, month: string): boolean;
|
|
85
|
-
/**
|
|
86
|
-
* Runs the claiming plugin's close-out for one workspace's closed month.
|
|
87
|
-
*
|
|
88
|
-
* `false` when no plugin claims the line, when it does not bill this month,
|
|
89
|
-
* or when it registered no close-out — three different "nothing happened"s
|
|
90
|
-
* that the sweep does not need to tell apart, and the plugin is the only
|
|
91
|
-
* thing that could.
|
|
92
|
-
*/
|
|
93
|
-
export declare function runPluginMeteredLineClose(lineId: string, context: PluginMeteredLineMonthContext): Promise<boolean>;
|
|
94
|
-
/** The plugin billing a line, for diagnostics and staff readouts. */
|
|
95
|
-
export declare function pluginMeteredLineOwner(lineId: string): string | null;
|
|
96
|
-
/** Test seam: forget every claim. */
|
|
97
|
-
export declare function resetPluginMeteredLinesForTests(): void;
|
|
@@ -1,123 +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
|
-
* A METER LINE A PLUGIN BILLS FOR ITSELF (AGL-3011).
|
|
18
|
-
*
|
|
19
|
-
* The monthly usage sweep prices several lines into one figure and posts it
|
|
20
|
-
* as a single Stripe meter event. A plugin that bills one of those lines its
|
|
21
|
-
* own way — charging it as it accrues, say — must have that line LEFT OUT of
|
|
22
|
-
* the meter figure from the month it takes over, or the customer is billed
|
|
23
|
-
* for it twice.
|
|
24
|
-
*
|
|
25
|
-
* That claim is what this registry holds: a line id, the plugin that owns
|
|
26
|
-
* the billing of it, and the first month from which the plugin bills it. The
|
|
27
|
-
* sweep asks by line id and gets a yes or a no. It never learns how the
|
|
28
|
-
* plugin bills, and the plugin never edits the sweep.
|
|
29
|
-
*
|
|
30
|
-
* ## Only the billing moves, never the measurement
|
|
31
|
-
*
|
|
32
|
-
* A claimed line is still measured, still priced and still written to the
|
|
33
|
-
* month's audit fields. What changes is whether its dollars enter the figure
|
|
34
|
-
* the meter event carries. "We stopped billing it here" and "we stopped
|
|
35
|
-
* counting it" must stay different facts, or a claim would erase a month of
|
|
36
|
-
* usage history along with its invoice line.
|
|
37
|
-
*
|
|
38
|
-
* ## Unclaimed is the safe answer
|
|
39
|
-
*
|
|
40
|
-
* A line nobody claimed, a month before the claim's start, an unparseable
|
|
41
|
-
* start month and a plugin that failed to register all answer the same way:
|
|
42
|
-
* the sweep bills the line as it always has. Every failure mode therefore
|
|
43
|
-
* bills through the channel that already works, rather than through neither.
|
|
44
|
-
*/ import { getRegisteringPluginId } from "../app-utils/registering-plugin.js";
|
|
45
|
-
const claims = new Map();
|
|
46
|
-
/**
|
|
47
|
-
* Claims a meter line. One plugin per line: a second plugin claiming a line
|
|
48
|
-
* another already holds throws, because two plugins each believing they bill
|
|
49
|
-
* a line is how it reaches no invoice at all.
|
|
50
|
-
*
|
|
51
|
-
* The same plugin re-registering replaces its own claim, so a module
|
|
52
|
-
* evaluated twice leaves one claim rather than two.
|
|
53
|
-
*/ export function registerPluginMeteredLine(claim) {
|
|
54
|
-
var _ref, _getRegisteringPluginId;
|
|
55
|
-
const pluginId = ((_ref = (_getRegisteringPluginId = getRegisteringPluginId()) != null ? _getRegisteringPluginId : claim.pluginId) != null ? _ref : '').trim();
|
|
56
|
-
if (!pluginId) {
|
|
57
|
-
throw new Error(`metered line "${claim.lineId}" claimed with no owner: pass ` + '{ pluginId } when registering outside a plugin register fn');
|
|
58
|
-
}
|
|
59
|
-
const held = claims.get(claim.lineId);
|
|
60
|
-
if (held && held.pluginId !== pluginId) {
|
|
61
|
-
throw new Error(`metered line "${claim.lineId}" is already billed by plugin ` + `"${held.pluginId}"; "${pluginId}" cannot claim it too`);
|
|
62
|
-
}
|
|
63
|
-
claims.set(claim.lineId, {
|
|
64
|
-
lineId: claim.lineId,
|
|
65
|
-
pluginId,
|
|
66
|
-
billsFrom: claim.billsFrom,
|
|
67
|
-
closeMonth: claim.closeMonth
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Does a plugin bill this line for this month, so the sweep must leave it
|
|
72
|
-
* out of the meter figure?
|
|
73
|
-
*
|
|
74
|
-
* A claim whose `billsFrom` throws answers `false` and logs: the sweep is
|
|
75
|
-
* the only thing that bills the line while a claim is broken, and a throw
|
|
76
|
-
* that propagated would fail the whole month's billing for every workspace.
|
|
77
|
-
*/ export function pluginBillsMeteredLine(lineId, month) {
|
|
78
|
-
const claim = claims.get(lineId);
|
|
79
|
-
if (!claim) return false;
|
|
80
|
-
let from;
|
|
81
|
-
try {
|
|
82
|
-
from = claim.billsFrom();
|
|
83
|
-
} catch (error) {
|
|
84
|
-
console.error(`[plugins] ${claim.pluginId} failed to answer for ${lineId}`, error);
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
const start = String(from != null ? from : '').trim();
|
|
88
|
-
if (!/^\d{4}-\d{2}$/.test(start)) return false;
|
|
89
|
-
if (!/^\d{4}-\d{2}$/.test(month)) return false;
|
|
90
|
-
// Zero-padded fixed-width `YYYY-MM` orders identically as a string and as
|
|
91
|
-
// a date; the format checks above are what make that true rather than
|
|
92
|
-
// lucky. The same comparison `billsEmailSendOverage` makes on its own gate.
|
|
93
|
-
return month >= start;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Runs the claiming plugin's close-out for one workspace's closed month.
|
|
97
|
-
*
|
|
98
|
-
* `false` when no plugin claims the line, when it does not bill this month,
|
|
99
|
-
* or when it registered no close-out — three different "nothing happened"s
|
|
100
|
-
* that the sweep does not need to tell apart, and the plugin is the only
|
|
101
|
-
* thing that could.
|
|
102
|
-
*/ export async function runPluginMeteredLineClose(lineId, context) {
|
|
103
|
-
const claim = claims.get(lineId);
|
|
104
|
-
if (!(claim == null ? void 0 : claim.closeMonth)) return false;
|
|
105
|
-
if (!pluginBillsMeteredLine(lineId, context.month)) return false;
|
|
106
|
-
try {
|
|
107
|
-
await claim.closeMonth(context);
|
|
108
|
-
return true;
|
|
109
|
-
} catch (error) {
|
|
110
|
-
console.error(`[plugins] ${claim.pluginId} failed to close ${lineId} for ${context.orgId}`, error);
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/** The plugin billing a line, for diagnostics and staff readouts. */ export function pluginMeteredLineOwner(lineId) {
|
|
115
|
-
var _ref;
|
|
116
|
-
var _claims_get;
|
|
117
|
-
return (_ref = (_claims_get = claims.get(lineId)) == null ? void 0 : _claims_get.pluginId) != null ? _ref : null;
|
|
118
|
-
}
|
|
119
|
-
/** Test seam: forget every claim. */ export function resetPluginMeteredLinesForTests() {
|
|
120
|
-
claims.clear();
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
//# sourceMappingURL=plugin-metered-lines.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/plugin-metered-lines.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\n/**\n * A METER LINE A PLUGIN BILLS FOR ITSELF (AGL-3011).\n *\n * The monthly usage sweep prices several lines into one figure and posts it\n * as a single Stripe meter event. A plugin that bills one of those lines its\n * own way — charging it as it accrues, say — must have that line LEFT OUT of\n * the meter figure from the month it takes over, or the customer is billed\n * for it twice.\n *\n * That claim is what this registry holds: a line id, the plugin that owns\n * the billing of it, and the first month from which the plugin bills it. The\n * sweep asks by line id and gets a yes or a no. It never learns how the\n * plugin bills, and the plugin never edits the sweep.\n *\n * ## Only the billing moves, never the measurement\n *\n * A claimed line is still measured, still priced and still written to the\n * month's audit fields. What changes is whether its dollars enter the figure\n * the meter event carries. \"We stopped billing it here\" and \"we stopped\n * counting it\" must stay different facts, or a claim would erase a month of\n * usage history along with its invoice line.\n *\n * ## Unclaimed is the safe answer\n *\n * A line nobody claimed, a month before the claim's start, an unparseable\n * start month and a plugin that failed to register all answer the same way:\n * the sweep bills the line as it always has. Every failure mode therefore\n * bills through the channel that already works, rather than through neither.\n */\n\nimport { getRegisteringPluginId } from '../app-utils/registering-plugin'\n\n/** One plugin's claim on one line. */\nexport interface PluginMeteredLineClaim {\n /**\n * The line the sweep knows, e.g. the assist-overage line. Core's own name\n * for a figure it already computes — not a plugin's internal name for it.\n */\n lineId: string\n /** The plugin that bills it. */\n pluginId: string\n /**\n * The first month (`YYYY-MM`) the plugin bills the line for, or `null`\n * while the plugin has registered the claim but not yet been switched on.\n *\n * A function rather than a value because the answer comes from deployment\n * configuration that can change without a restart, and because a claim\n * evaluated once at boot would pin the cutover to whenever the process\n * happened to start.\n */\n billsFrom: () => string | null\n /**\n * Called once per workspace for a month this sweep has CLOSED, so a plugin\n * billing the line can settle what is left of it.\n *\n * A plugin that charges as usage accrues always has a remainder: the part\n * that never reached its threshold before the month ended. Something has to\n * bill that, and the sweep that closes the month is the one thing that\n * already knows every workspace, its month and its Stripe customer — which\n * is why this is a hook here rather than a second cron with a second\n * schedule to keep in step with this one.\n *\n * Called whether or not the meter reported for the workspace, because the\n * remainder is owed either way. Errors are logged and never the sweep's:\n * this is money the plugin bills, and failing the platform's own metering\n * over it would be the larger loss. A plugin makes it idempotent; it is\n * called again every day the sweep runs.\n */\n closeMonth?: (context: PluginMeteredLineMonthContext) => Promise<void>\n}\n\n/** What a plugin is told about one workspace's closed month. */\nexport interface PluginMeteredLineMonthContext {\n orgId: string\n /** `YYYY-MM`, the month that closed. */\n month: string\n /** The workspace's own document, as the sweep already read it. */\n org: Record<string, unknown>\n /** Its Stripe customer, or `null` when it has none. */\n stripeCustomerId: string | null\n}\n\nconst claims = new Map<string, PluginMeteredLineClaim>()\n\n/**\n * Claims a meter line. One plugin per line: a second plugin claiming a line\n * another already holds throws, because two plugins each believing they bill\n * a line is how it reaches no invoice at all.\n *\n * The same plugin re-registering replaces its own claim, so a module\n * evaluated twice leaves one claim rather than two.\n */\nexport function registerPluginMeteredLine(\n claim: Omit<PluginMeteredLineClaim, 'pluginId'> & { pluginId?: string },\n): void {\n const pluginId = (getRegisteringPluginId() ?? claim.pluginId ?? '').trim()\n if (!pluginId) {\n throw new Error(\n `metered line \"${claim.lineId}\" claimed with no owner: pass ` +\n '{ pluginId } when registering outside a plugin register fn',\n )\n }\n const held = claims.get(claim.lineId)\n if (held && held.pluginId !== pluginId) {\n throw new Error(\n `metered line \"${claim.lineId}\" is already billed by plugin ` +\n `\"${held.pluginId}\"; \"${pluginId}\" cannot claim it too`,\n )\n }\n claims.set(claim.lineId, {\n lineId: claim.lineId,\n pluginId,\n billsFrom: claim.billsFrom,\n closeMonth: claim.closeMonth,\n })\n}\n\n/**\n * Does a plugin bill this line for this month, so the sweep must leave it\n * out of the meter figure?\n *\n * A claim whose `billsFrom` throws answers `false` and logs: the sweep is\n * the only thing that bills the line while a claim is broken, and a throw\n * that propagated would fail the whole month's billing for every workspace.\n */\nexport function pluginBillsMeteredLine(lineId: string, month: string): boolean {\n const claim = claims.get(lineId)\n if (!claim) return false\n let from: string | null\n try {\n from = claim.billsFrom()\n } catch (error) {\n console.error(`[plugins] ${claim.pluginId} failed to answer for ${lineId}`, error)\n return false\n }\n const start = String(from ?? '').trim()\n if (!/^\\d{4}-\\d{2}$/.test(start)) return false\n if (!/^\\d{4}-\\d{2}$/.test(month)) return false\n // Zero-padded fixed-width `YYYY-MM` orders identically as a string and as\n // a date; the format checks above are what make that true rather than\n // lucky. The same comparison `billsEmailSendOverage` makes on its own gate.\n return month >= start\n}\n\n/**\n * Runs the claiming plugin's close-out for one workspace's closed month.\n *\n * `false` when no plugin claims the line, when it does not bill this month,\n * or when it registered no close-out — three different \"nothing happened\"s\n * that the sweep does not need to tell apart, and the plugin is the only\n * thing that could.\n */\nexport async function runPluginMeteredLineClose(\n lineId: string,\n context: PluginMeteredLineMonthContext,\n): Promise<boolean> {\n const claim = claims.get(lineId)\n if (!claim?.closeMonth) return false\n if (!pluginBillsMeteredLine(lineId, context.month)) return false\n try {\n await claim.closeMonth(context)\n return true\n } catch (error) {\n console.error(\n `[plugins] ${claim.pluginId} failed to close ${lineId} for ${context.orgId}`,\n error,\n )\n return false\n }\n}\n\n/** The plugin billing a line, for diagnostics and staff readouts. */\nexport function pluginMeteredLineOwner(lineId: string): string | null {\n return claims.get(lineId)?.pluginId ?? null\n}\n\n/** Test seam: forget every claim. */\nexport function resetPluginMeteredLinesForTests(): void {\n claims.clear()\n}\n"],"names":["getRegisteringPluginId","claims","Map","registerPluginMeteredLine","claim","pluginId","trim","Error","lineId","held","get","set","billsFrom","closeMonth","pluginBillsMeteredLine","month","from","error","console","start","String","test","runPluginMeteredLineClose","context","orgId","pluginMeteredLineOwner","resetPluginMeteredLinesForTests","clear"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BC,GAED,SAASA,sBAAsB,QAAQ,qCAAiC;AAoDxE,MAAMC,SAAS,IAAIC;AAEnB;;;;;;;CAOC,GACD,OAAO,SAASC,0BACdC,KAAuE;QAErDJ,MAAAA;IAAlB,MAAMK,WAAW,EAACL,QAAAA,0BAAAA,oCAAAA,0BAA4BI,MAAMC,QAAQ,YAA1CL,OAA8C,IAAIM,IAAI;IACxE,IAAI,CAACD,UAAU;QACb,MAAM,IAAIE,MACR,CAAC,cAAc,EAAEH,MAAMI,MAAM,CAAC,8BAA8B,CAAC,GAC3D;IAEN;IACA,MAAMC,OAAOR,OAAOS,GAAG,CAACN,MAAMI,MAAM;IACpC,IAAIC,QAAQA,KAAKJ,QAAQ,KAAKA,UAAU;QACtC,MAAM,IAAIE,MACR,CAAC,cAAc,EAAEH,MAAMI,MAAM,CAAC,8BAA8B,CAAC,GAC3D,CAAC,CAAC,EAAEC,KAAKJ,QAAQ,CAAC,IAAI,EAAEA,SAAS,qBAAqB,CAAC;IAE7D;IACAJ,OAAOU,GAAG,CAACP,MAAMI,MAAM,EAAE;QACvBA,QAAQJ,MAAMI,MAAM;QACpBH;QACAO,WAAWR,MAAMQ,SAAS;QAC1BC,YAAYT,MAAMS,UAAU;IAC9B;AACF;AAEA;;;;;;;CAOC,GACD,OAAO,SAASC,uBAAuBN,MAAc,EAAEO,KAAa;IAClE,MAAMX,QAAQH,OAAOS,GAAG,CAACF;IACzB,IAAI,CAACJ,OAAO,OAAO;IACnB,IAAIY;IACJ,IAAI;QACFA,OAAOZ,MAAMQ,SAAS;IACxB,EAAE,OAAOK,OAAO;QACdC,QAAQD,KAAK,CAAC,CAAC,UAAU,EAAEb,MAAMC,QAAQ,CAAC,sBAAsB,EAAEG,QAAQ,EAAES;QAC5E,OAAO;IACT;IACA,MAAME,QAAQC,OAAOJ,eAAAA,OAAQ,IAAIV,IAAI;IACrC,IAAI,CAAC,gBAAgBe,IAAI,CAACF,QAAQ,OAAO;IACzC,IAAI,CAAC,gBAAgBE,IAAI,CAACN,QAAQ,OAAO;IACzC,0EAA0E;IAC1E,sEAAsE;IACtE,4EAA4E;IAC5E,OAAOA,SAASI;AAClB;AAEA;;;;;;;CAOC,GACD,OAAO,eAAeG,0BACpBd,MAAc,EACde,OAAsC;IAEtC,MAAMnB,QAAQH,OAAOS,GAAG,CAACF;IACzB,IAAI,EAACJ,yBAAAA,MAAOS,UAAU,GAAE,OAAO;IAC/B,IAAI,CAACC,uBAAuBN,QAAQe,QAAQR,KAAK,GAAG,OAAO;IAC3D,IAAI;QACF,MAAMX,MAAMS,UAAU,CAACU;QACvB,OAAO;IACT,EAAE,OAAON,OAAO;QACdC,QAAQD,KAAK,CACX,CAAC,UAAU,EAAEb,MAAMC,QAAQ,CAAC,iBAAiB,EAAEG,OAAO,KAAK,EAAEe,QAAQC,KAAK,EAAE,EAC5EP;QAEF,OAAO;IACT;AACF;AAEA,mEAAmE,GACnE,OAAO,SAASQ,uBAAuBjB,MAAc;;QAC5CP;IAAP,gBAAOA,cAAAA,OAAOS,GAAG,CAACF,4BAAXP,YAAoBI,QAAQ,mBAAI;AACzC;AAEA,mCAAmC,GACnC,OAAO,SAASqB;IACdzB,OAAO0B,KAAK;AACd"}
|