@aglyn/aglyn 1.0.0-beta.217 → 1.0.0-beta.219
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +14 -14
- package/src/lib/app-utils/actions.d.ts +25 -374
- package/src/lib/app-utils/actions.js +101 -561
- package/src/lib/app-utils/actions.js.map +1 -1
- package/src/lib/app-utils/activity-presenter.d.ts +3 -3
- package/src/lib/app-utils/activity-presenter.js +36 -52
- package/src/lib/app-utils/activity-presenter.js.map +1 -1
- package/src/lib/app-utils/admin-audit-index.js +2 -2
- package/src/lib/app-utils/admin-audit-index.js.map +1 -1
- package/src/lib/app-utils/analytics-events.d.ts +11 -2
- package/src/lib/app-utils/analytics-events.js +11 -2
- package/src/lib/app-utils/analytics-events.js.map +1 -1
- package/src/lib/app-utils/analytics-provider.d.ts +182 -0
- package/src/lib/app-utils/analytics-provider.js +133 -0
- package/src/lib/app-utils/analytics-provider.js.map +1 -0
- package/src/lib/app-utils/api-plugins.d.ts +46 -0
- package/src/lib/app-utils/api-plugins.js +19 -0
- package/src/lib/app-utils/api-plugins.js.map +1 -1
- package/src/lib/app-utils/{marketplace-overrides.d.ts → artifact-overrides.d.ts} +9 -6
- package/src/lib/app-utils/{marketplace-overrides.js → artifact-overrides.js} +10 -7
- package/src/lib/app-utils/artifact-overrides.js.map +1 -0
- package/src/lib/app-utils/{marketplace-provenance.d.ts → artifact-provenance.d.ts} +12 -10
- package/src/lib/app-utils/{marketplace-provenance.js → artifact-provenance.js} +9 -7
- package/src/lib/app-utils/artifact-provenance.js.map +1 -0
- package/src/lib/app-utils/assist-credits.js +2 -1
- package/src/lib/app-utils/assist-credits.js.map +1 -1
- package/src/lib/app-utils/binding-token-catalog.d.ts +5 -13
- package/src/lib/app-utils/binding-token-catalog.js +17 -41
- package/src/lib/app-utils/binding-token-catalog.js.map +1 -1
- package/src/lib/app-utils/binding-tokens.js +1 -1
- package/src/lib/app-utils/binding-tokens.js.map +1 -1
- package/src/lib/app-utils/brand-support-line.d.ts +36 -0
- package/src/lib/app-utils/brand-support-line.js +38 -0
- package/src/lib/app-utils/brand-support-line.js.map +1 -0
- package/src/lib/app-utils/campaign-touch.d.ts +5 -5
- package/src/lib/app-utils/campaign-touch.js +8 -8
- package/src/lib/app-utils/campaign-touch.js.map +1 -1
- package/src/lib/app-utils/collection-entries.d.ts +2 -2
- package/src/lib/app-utils/collection-entries.js.map +1 -1
- package/src/lib/app-utils/consent-group-change.d.ts +4 -0
- package/src/lib/app-utils/consent-group-change.js.map +1 -1
- package/src/lib/app-utils/console-record-links.d.ts +10 -89
- package/src/lib/app-utils/console-record-links.js +3 -107
- package/src/lib/app-utils/console-record-links.js.map +1 -1
- package/src/lib/app-utils/console-routes.d.ts +16 -7
- package/src/lib/app-utils/console-routes.js +9 -3
- package/src/lib/app-utils/console-routes.js.map +1 -1
- package/src/lib/app-utils/contacts.d.ts +23 -1
- package/src/lib/app-utils/contacts.js +21 -5
- package/src/lib/app-utils/contacts.js.map +1 -1
- package/src/lib/app-utils/cross-pool-desync.d.ts +39 -0
- package/src/lib/app-utils/cross-pool-desync.js +47 -0
- package/src/lib/app-utils/cross-pool-desync.js.map +1 -0
- package/src/lib/app-utils/csv-upload.d.ts +29 -0
- package/src/lib/app-utils/csv-upload.js +29 -0
- package/src/lib/app-utils/csv-upload.js.map +1 -0
- package/src/lib/app-utils/dataset-models.d.ts +5 -5
- package/src/lib/app-utils/dataset-models.js +19 -2
- package/src/lib/app-utils/dataset-models.js.map +1 -1
- package/src/lib/app-utils/datasets.d.ts +65 -11
- package/src/lib/app-utils/datasets.js +74 -11
- package/src/lib/app-utils/datasets.js.map +1 -1
- package/src/lib/app-utils/docs-deflection.d.ts +6 -6
- package/src/lib/app-utils/docs-deflection.js.map +1 -1
- package/src/lib/app-utils/docs-help.generated.d.ts +12 -6
- package/src/lib/app-utils/docs-help.generated.js +21 -6
- package/src/lib/app-utils/docs-help.generated.js.map +1 -1
- package/src/lib/app-utils/docs-index.generated.d.ts +2 -2
- package/src/lib/app-utils/docs-index.generated.js +514 -318
- package/src/lib/app-utils/docs-index.generated.js.map +1 -1
- package/src/lib/app-utils/docs-retrieval.d.ts +3 -3
- package/src/lib/app-utils/docs-retrieval.js +14 -10
- package/src/lib/app-utils/docs-retrieval.js.map +1 -1
- package/src/lib/app-utils/duplicate-resource.d.ts +4 -1
- package/src/lib/app-utils/duplicate-resource.js +7 -4
- package/src/lib/app-utils/duplicate-resource.js.map +1 -1
- package/src/lib/app-utils/dynamic-list-rule.d.ts +1 -1
- package/src/lib/app-utils/dynamic-list-rule.js.map +1 -1
- package/src/lib/app-utils/element-ui.d.ts +1 -1
- package/src/lib/app-utils/element-ui.js +1 -1
- package/src/lib/app-utils/element-ui.js.map +1 -1
- package/src/lib/app-utils/email-starter-policy.js +3 -3
- package/src/lib/app-utils/email-starter-policy.js.map +1 -1
- package/src/lib/app-utils/entity-picker-context.d.ts +10 -5
- package/src/lib/app-utils/entity-picker-context.js.map +1 -1
- package/src/lib/app-utils/error-beacon.d.ts +75 -6
- package/src/lib/app-utils/error-beacon.js +160 -21
- package/src/lib/app-utils/error-beacon.js.map +1 -1
- package/src/lib/app-utils/expand-repeatables.d.ts +10 -10
- package/src/lib/app-utils/expand-repeatables.js +10 -10
- package/src/lib/app-utils/expand-repeatables.js.map +1 -1
- package/src/lib/app-utils/host-events.d.ts +82 -0
- package/src/lib/app-utils/host-events.js +62 -0
- package/src/lib/app-utils/host-events.js.map +1 -0
- package/src/lib/app-utils/lockdown.d.ts +33 -1
- package/src/lib/app-utils/lockdown.js +45 -4
- package/src/lib/app-utils/lockdown.js.map +1 -1
- package/src/lib/app-utils/margin-utilization.d.ts +4 -69
- package/src/lib/app-utils/margin-utilization.js +82 -69
- package/src/lib/app-utils/margin-utilization.js.map +1 -1
- package/src/lib/app-utils/node-definition-sanitizer.d.ts +16 -16
- package/src/lib/app-utils/node-definition-sanitizer.js +24 -20
- package/src/lib/app-utils/node-definition-sanitizer.js.map +1 -1
- package/src/lib/app-utils/node-interactions.d.ts +7 -7
- package/src/lib/app-utils/node-interactions.js.map +1 -1
- package/src/lib/app-utils/notifications.d.ts +78 -47
- package/src/lib/app-utils/notifications.js +63 -44
- package/src/lib/app-utils/notifications.js.map +1 -1
- package/src/lib/app-utils/payments-configured.d.ts +8 -21
- package/src/lib/app-utils/payments-configured.js +8 -23
- package/src/lib/app-utils/payments-configured.js.map +1 -1
- package/src/lib/app-utils/plan-entitlements.d.ts +43 -128
- package/src/lib/app-utils/plan-entitlements.js +145 -304
- package/src/lib/app-utils/plan-entitlements.js.map +1 -1
- package/src/lib/app-utils/platform-brand.d.ts +10 -0
- package/src/lib/app-utils/platform-brand.js +14 -3
- package/src/lib/app-utils/platform-brand.js.map +1 -1
- package/src/lib/app-utils/plugin-api-rate-limit.d.ts +7 -1
- package/src/lib/app-utils/plugin-api-rate-limit.js +11 -3
- package/src/lib/app-utils/plugin-api-rate-limit.js.map +1 -1
- package/src/lib/app-utils/plugin-bundle-checks.js +2 -2
- package/src/lib/app-utils/plugin-bundle-checks.js.map +1 -1
- package/src/lib/app-utils/plugin-host-events.generated.d.ts +12 -0
- package/src/lib/app-utils/plugin-host-events.generated.js +169 -0
- package/src/lib/app-utils/plugin-host-events.generated.js.map +1 -0
- package/src/lib/app-utils/plugin-release-flags.generated.d.ts +12 -0
- package/src/lib/app-utils/plugin-release-flags.generated.js +106 -0
- package/src/lib/app-utils/plugin-release-flags.generated.js.map +1 -0
- package/src/lib/app-utils/realm-host-surface.generated.js +2 -0
- package/src/lib/app-utils/realm-host-surface.generated.js.map +1 -1
- package/src/lib/app-utils/release-flags.d.ts +14 -5
- package/src/lib/app-utils/release-flags.js +21 -125
- package/src/lib/app-utils/release-flags.js.map +1 -1
- package/src/lib/app-utils/repeat-sources.d.ts +9 -0
- package/src/lib/app-utils/repeat-sources.js.map +1 -1
- package/src/lib/app-utils/retained-refusals.d.ts +73 -0
- package/src/lib/app-utils/retained-refusals.js +186 -0
- package/src/lib/app-utils/retained-refusals.js.map +1 -0
- package/src/lib/app-utils/scope-tokens.d.ts +27 -0
- package/src/lib/app-utils/scope-tokens.js +61 -0
- package/src/lib/app-utils/scope-tokens.js.map +1 -1
- package/src/lib/app-utils/screen-link-context.js +3 -3
- package/src/lib/app-utils/screen-link-context.js.map +1 -1
- package/src/lib/app-utils/screen-route.d.ts +15 -0
- package/src/lib/app-utils/screen-route.js +21 -1
- package/src/lib/app-utils/screen-route.js.map +1 -1
- package/src/lib/app-utils/seo-audit.d.ts +132 -0
- package/src/lib/app-utils/seo-audit.js +246 -0
- package/src/lib/app-utils/seo-audit.js.map +1 -0
- package/src/lib/app-utils/seo-keywords.d.ts +48 -0
- package/src/lib/app-utils/seo-keywords.js +60 -0
- package/src/lib/app-utils/seo-keywords.js.map +1 -0
- package/src/lib/app-utils/seo-page-facts.d.ts +66 -0
- package/src/lib/app-utils/seo-page-facts.js +155 -0
- package/src/lib/app-utils/seo-page-facts.js.map +1 -0
- package/src/lib/app-utils/seo-site-scan.d.ts +126 -0
- package/src/lib/app-utils/seo-site-scan.js +162 -0
- package/src/lib/app-utils/seo-site-scan.js.map +1 -0
- package/src/lib/app-utils/seo-title-variables.js +1 -1
- package/src/lib/app-utils/seo-title-variables.js.map +1 -1
- package/src/lib/app-utils/server.d.ts +6 -9
- package/src/lib/app-utils/server.js +17 -27
- package/src/lib/app-utils/server.js.map +1 -1
- package/src/lib/app-utils/site-interactions.d.ts +501 -0
- package/src/lib/app-utils/site-interactions.js +554 -0
- package/src/lib/app-utils/site-interactions.js.map +1 -0
- package/src/lib/app-utils/{marketplace-theme.d.ts → site-theme.d.ts} +13 -2
- package/src/lib/app-utils/{marketplace-theme.js → site-theme.js} +5 -2
- package/src/lib/app-utils/site-theme.js.map +1 -0
- package/src/lib/app-utils/sitemap.d.ts +4 -3
- package/src/lib/app-utils/sitemap.js +9 -7
- package/src/lib/app-utils/sitemap.js.map +1 -1
- package/src/lib/app-utils/stale-build-error.d.ts +51 -0
- package/src/lib/app-utils/stale-build-error.js +100 -1
- package/src/lib/app-utils/stale-build-error.js.map +1 -1
- package/src/lib/app-utils/starter-templates.d.ts +20 -0
- package/src/lib/app-utils/starter-templates.js +49 -0
- package/src/lib/app-utils/starter-templates.js.map +1 -1
- package/src/lib/app-utils/tax-jurisdiction-figures.d.ts +118 -0
- package/src/lib/app-utils/tax-jurisdiction-figures.js +123 -0
- package/src/lib/app-utils/tax-jurisdiction-figures.js.map +1 -0
- package/src/lib/app-utils/theme-library.d.ts +10 -3
- package/src/lib/app-utils/theme-library.js +13 -4
- package/src/lib/app-utils/theme-library.js.map +1 -1
- package/src/lib/app-utils/{campaign-attribution.d.ts → utm-attribution.d.ts} +11 -6
- package/src/lib/app-utils/{campaign-attribution.js → utm-attribution.js} +13 -8
- package/src/lib/app-utils/utm-attribution.js.map +1 -0
- package/src/lib/app-utils/{campaign-forwarding.d.ts → utm-forwarding.d.ts} +14 -14
- package/src/lib/app-utils/{campaign-forwarding.js → utm-forwarding.js} +26 -26
- package/src/lib/app-utils/utm-forwarding.js.map +1 -0
- package/src/lib/app-utils/video-object.js +6 -5
- package/src/lib/app-utils/video-object.js.map +1 -1
- package/src/lib/app-utils/visitor-consent.d.ts +41 -164
- package/src/lib/app-utils/visitor-consent.js +66 -277
- package/src/lib/app-utils/visitor-consent.js.map +1 -1
- package/src/lib/app-utils/web-vitals-rum.d.ts +7 -7
- package/src/lib/app-utils/web-vitals-rum.js +31 -63
- package/src/lib/app-utils/web-vitals-rum.js.map +1 -1
- package/src/lib/app-utils/where-used.d.ts +11 -6
- package/src/lib/app-utils/where-used.js +3 -8
- package/src/lib/app-utils/where-used.js.map +1 -1
- package/src/lib/canvas-manager/canvas-manager.js +3 -3
- package/src/lib/canvas-manager/canvas-manager.js.map +1 -1
- package/src/lib/foundation/definitions/components.types.d.ts +1 -1
- package/src/lib/foundation/definitions/components.types.js +1 -1
- package/src/lib/foundation/definitions/components.types.js.map +1 -1
- package/src/lib/foundation/definitions/org-billing.types.d.ts +18 -135
- package/src/lib/foundation/definitions/org-billing.types.js.map +1 -1
- package/src/lib/foundation/definitions/organization.types.d.ts +6 -3
- package/src/lib/foundation/definitions/organization.types.js.map +1 -1
- package/src/lib/foundation/definitions/platform.types.d.ts +27 -5
- package/src/lib/foundation/definitions/platform.types.js.map +1 -1
- package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +16 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js +20 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -1
- package/src/lib/foundation/index.d.ts +1 -1
- package/src/lib/foundation/index.js.map +1 -1
- package/src/lib/plugin-manager/besigner-documents.d.ts +96 -0
- package/src/lib/plugin-manager/besigner-documents.js +61 -0
- package/src/lib/plugin-manager/besigner-documents.js.map +1 -0
- package/src/lib/plugin-manager/computed-variables.d.ts +71 -0
- package/src/lib/plugin-manager/computed-variables.js +74 -0
- package/src/lib/plugin-manager/computed-variables.js.map +1 -0
- package/src/lib/plugin-manager/custom-fields.d.ts +29 -2
- package/src/lib/plugin-manager/custom-fields.js +47 -1
- package/src/lib/plugin-manager/custom-fields.js.map +1 -1
- package/src/lib/plugin-manager/feature-plugins.d.ts +292 -20
- package/src/lib/plugin-manager/feature-plugins.js +105 -17
- package/src/lib/plugin-manager/feature-plugins.js.map +1 -1
- package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +123 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js +785 -14
- package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -1
- package/src/lib/plugin-manager/plugin-activity-actions.d.ts +12 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js +25 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js.map +1 -1
- package/src/lib/plugin-manager/plugin-contributions.d.ts +1 -1
- package/src/lib/plugin-manager/plugin-contributions.js.map +1 -1
- package/src/lib/plugin-manager/plugin-declarations-repair.d.ts +36 -0
- package/src/lib/plugin-manager/plugin-declarations-repair.js +64 -0
- package/src/lib/plugin-manager/plugin-declarations-repair.js.map +1 -0
- package/src/lib/plugin-manager/plugin-dependents.d.ts +101 -0
- package/src/lib/plugin-manager/plugin-dependents.js +75 -0
- package/src/lib/plugin-manager/plugin-dependents.js.map +1 -0
- package/src/lib/plugin-manager/plugin-distribution.d.ts +55 -0
- package/src/lib/plugin-manager/plugin-distribution.js +45 -0
- package/src/lib/plugin-manager/plugin-distribution.js.map +1 -0
- package/src/lib/plugin-manager/plugin-host-collections.d.ts +17 -0
- package/src/lib/plugin-manager/plugin-host-collections.js +6 -0
- package/src/lib/plugin-manager/plugin-host-collections.js.map +1 -1
- package/src/lib/plugin-manager/plugin-host-resources.d.ts +133 -0
- package/src/lib/plugin-manager/plugin-host-resources.js +52 -0
- package/src/lib/plugin-manager/plugin-host-resources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-org-erasure.d.ts +28 -2
- package/src/lib/plugin-manager/plugin-org-erasure.js +61 -2
- package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -1
- package/src/lib/plugin-manager/plugin-plan-entitlements.d.ts +123 -0
- package/src/lib/plugin-manager/plugin-plan-entitlements.js +101 -0
- package/src/lib/plugin-manager/plugin-plan-entitlements.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-index.d.ts +95 -0
- package/src/lib/plugin-manager/plugin-record-index.js +51 -0
- package/src/lib/plugin-manager/plugin-record-index.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-written.d.ts +58 -0
- package/src/lib/plugin-manager/plugin-record-written.js +42 -0
- package/src/lib/plugin-manager/plugin-record-written.js.map +1 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.d.ts +213 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.js +194 -0
- package/src/lib/plugin-manager/plugin-revenue-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-site-bundle.d.ts +145 -0
- package/src/lib/plugin-manager/plugin-site-bundle.js +78 -0
- package/src/lib/plugin-manager/plugin-site-bundle.js.map +1 -0
- package/src/lib/plugin-manager/plugin-site-cache.d.ts +12 -0
- package/src/lib/plugin-manager/plugin-site-cache.js.map +1 -1
- package/src/lib/plugin-manager/plugin-site-export.d.ts +81 -0
- package/src/lib/plugin-manager/plugin-site-export.js +40 -0
- package/src/lib/plugin-manager/plugin-site-export.js.map +1 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.d.ts +88 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.js +29 -0
- package/src/lib/plugin-manager/plugin-sitemap-sections.js.map +1 -0
- package/src/lib/plugin-manager/plugin-tax-profile.d.ts +20 -4
- package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -1
- package/src/lib/plugin-manager/plugin-tax-return-sources.d.ts +255 -0
- package/src/lib/plugin-manager/plugin-tax-return-sources.js +191 -0
- package/src/lib/plugin-manager/plugin-tax-return-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-template-sources.d.ts +75 -0
- package/src/lib/plugin-manager/plugin-template-sources.js +37 -0
- package/src/lib/plugin-manager/plugin-template-sources.js.map +1 -0
- package/src/lib/plugin-manager/plugin-usage-axes.d.ts +107 -0
- package/src/lib/plugin-manager/plugin-usage-axes.js +107 -0
- package/src/lib/plugin-manager/plugin-usage-axes.js.map +1 -0
- package/src/lib/plugin-manager/plugin-zones.d.ts +4 -5
- package/src/lib/plugin-manager/plugin-zones.js.map +1 -1
- package/src/lib/plugin-manager/realm-host-aglyn.generated.js +2 -0
- package/src/lib/plugin-manager/realm-host-aglyn.generated.js.map +1 -1
- package/src/lib/plugin-manager/record-captured-contact.d.ts +1 -14
- package/src/lib/plugin-manager/record-captured-contact.js +10 -32
- package/src/lib/plugin-manager/record-captured-contact.js.map +1 -1
- package/src/lib/plugin-manager/repeat-rows.d.ts +124 -0
- package/src/lib/plugin-manager/repeat-rows.js +108 -0
- package/src/lib/plugin-manager/repeat-rows.js.map +1 -0
- package/src/lib/plugin-manager/submission-record-target.d.ts +144 -0
- package/src/lib/plugin-manager/submission-record-target.js +125 -0
- package/src/lib/plugin-manager/submission-record-target.js.map +1 -0
- package/src/lib/plugin-manager/video-embed-provider.d.ts +108 -0
- package/src/lib/plugin-manager/video-embed-provider.js +165 -0
- package/src/lib/plugin-manager/video-embed-provider.js.map +1 -0
- package/src/lib/types/nodes.d.ts +2 -2
- package/src/lib/types/nodes.js.map +1 -1
- package/src/lib/app-utils/campaign-attribution.js.map +0 -1
- package/src/lib/app-utils/campaign-forwarding.js.map +0 -1
- package/src/lib/app-utils/contact-holder.d.ts +0 -68
- package/src/lib/app-utils/contact-holder.js +0 -129
- package/src/lib/app-utils/contact-holder.js.map +0 -1
- package/src/lib/app-utils/contact-merge.d.ts +0 -136
- package/src/lib/app-utils/contact-merge.js +0 -412
- package/src/lib/app-utils/contact-merge.js.map +0 -1
- package/src/lib/app-utils/crm-csv.d.ts +0 -239
- package/src/lib/app-utils/crm-csv.js +0 -467
- package/src/lib/app-utils/crm-csv.js.map +0 -1
- package/src/lib/app-utils/crm-digest.d.ts +0 -185
- package/src/lib/app-utils/crm-digest.js +0 -272
- package/src/lib/app-utils/crm-digest.js.map +0 -1
- package/src/lib/app-utils/form-dataset-binding.d.ts +0 -50
- package/src/lib/app-utils/form-dataset-binding.js +0 -74
- package/src/lib/app-utils/form-dataset-binding.js.map +0 -1
- package/src/lib/app-utils/list-import.d.ts +0 -158
- package/src/lib/app-utils/list-import.js +0 -332
- package/src/lib/app-utils/list-import.js.map +0 -1
- package/src/lib/app-utils/marketplace-listing-visibility.d.ts +0 -122
- package/src/lib/app-utils/marketplace-listing-visibility.js +0 -147
- package/src/lib/app-utils/marketplace-listing-visibility.js.map +0 -1
- package/src/lib/app-utils/marketplace-overrides.js.map +0 -1
- package/src/lib/app-utils/marketplace-provenance.js.map +0 -1
- package/src/lib/app-utils/marketplace-theme.js.map +0 -1
- package/src/lib/app-utils/marketplace-update-state.d.ts +0 -119
- package/src/lib/app-utils/marketplace-update-state.js +0 -132
- package/src/lib/app-utils/marketplace-update-state.js.map +0 -1
- package/src/lib/app-utils/publisher-agreement.d.ts +0 -289
- package/src/lib/app-utils/publisher-agreement.js +0 -321
- package/src/lib/app-utils/publisher-agreement.js.map +0 -1
- package/src/lib/app-utils/wistia-embed.d.ts +0 -104
- package/src/lib/app-utils/wistia-embed.js +0 -138
- package/src/lib/app-utils/wistia-embed.js.map +0 -1
- package/src/lib/app-utils/workflows.d.ts +0 -136
- package/src/lib/app-utils/workflows.js +0 -346
- package/src/lib/app-utils/workflows.js.map +0 -1
- package/src/lib/plugin-manager/commerce-zone-props.d.ts +0 -172
- package/src/lib/plugin-manager/commerce-zone-props.js +0 -31
- package/src/lib/plugin-manager/commerce-zone-props.js.map +0 -1
|
@@ -25,8 +25,11 @@ import type { ComponentType } from 'react';
|
|
|
25
25
|
* runs on BOTH sides (editor pre-save and the server import/write paths)
|
|
26
26
|
* after the base-type validation.
|
|
27
27
|
*
|
|
28
|
-
* Register
|
|
29
|
-
*
|
|
28
|
+
* Register the pure-data half (no `Input`) from the plugin's
|
|
29
|
+
* `serverDeclarations`, which every app runs at boot, so each server path
|
|
30
|
+
* that writes a record — the console's and the tenant's, including a public
|
|
31
|
+
* form and an automation step — validates it without loading the plugin's
|
|
32
|
+
* surfaces (AGL-2773). The client barrel registers it again with the Input.
|
|
30
33
|
*/
|
|
31
34
|
/** Storage subset custom types may ride (mirrors Strapi's limitation). */
|
|
32
35
|
export type CustomFieldBaseType = 'text' | 'bool' | 'int32' | 'float' | 'map';
|
|
@@ -58,3 +61,27 @@ export declare function listCustomFieldTypes(): CustomFieldType[];
|
|
|
58
61
|
* guards storage), or empty optional values.
|
|
59
62
|
*/
|
|
60
63
|
export declare function validateCustomFieldValue(customType: string | undefined, value: unknown): string | null;
|
|
64
|
+
/** The custom type names a model's fields ride, in field order. */
|
|
65
|
+
declare function customTypesOf(model: {
|
|
66
|
+
fields?: Record<string, {
|
|
67
|
+
customType?: string;
|
|
68
|
+
} | undefined>;
|
|
69
|
+
order?: readonly string[];
|
|
70
|
+
} | null | undefined): string[];
|
|
71
|
+
/**
|
|
72
|
+
* Makes sure every custom type a model names is registered before a record
|
|
73
|
+
* is validated against it (AGL-2773).
|
|
74
|
+
*
|
|
75
|
+
* `validateCustomFieldValue` answers "no error" for a type nobody registered.
|
|
76
|
+
* That is right for a plugin that is genuinely absent and wrong for one whose
|
|
77
|
+
* declarations did not run in this process, so a type the registry does not
|
|
78
|
+
* know runs the app's boot step once more (see `plugin-declarations-repair`)
|
|
79
|
+
* before the write validates. A model with no custom field, or whose types
|
|
80
|
+
* are all registered, costs nothing.
|
|
81
|
+
*
|
|
82
|
+
* Never throws: a failed repair leaves the base type guarding storage, which
|
|
83
|
+
* is what an absent plugin gets too, and the write it guards must not fail
|
|
84
|
+
* over it.
|
|
85
|
+
*/
|
|
86
|
+
export declare function ensureDeclaredCustomFieldTypes(model: Parameters<typeof customTypesOf>[0]): Promise<void>;
|
|
87
|
+
export {};
|
|
@@ -13,7 +13,18 @@
|
|
|
13
13
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
|
-
*/
|
|
16
|
+
*/ var _globalScope, _REGISTRY_KEY, _;
|
|
17
|
+
import { runPluginDeclarationsRepair } from "./plugin-declarations-repair.js";
|
|
18
|
+
/**
|
|
19
|
+
* The registry, held on `globalThis` rather than in a module `const`
|
|
20
|
+
* (AGL-3412, AGL-2773). A plugin's server declarations register its field
|
|
21
|
+
* types from the app's `instrumentation.ts`, which Next compiles into a
|
|
22
|
+
* different module graph from the routes that validate records, so a
|
|
23
|
+
* module-scoped map is filled in one copy and read as empty in the other —
|
|
24
|
+
* and an empty registry answers "no error" for every custom value.
|
|
25
|
+
*/ const REGISTRY_KEY = Symbol.for('@aglyn/aglyn:custom-field-types');
|
|
26
|
+
const globalScope = globalThis;
|
|
27
|
+
const customFieldTypes = (_ = (_globalScope = globalScope)[_REGISTRY_KEY = REGISTRY_KEY]) != null ? _ : _globalScope[_REGISTRY_KEY] = new Map();
|
|
17
28
|
/** Idempotent by name — re-registration replaces the type. */ export function registerCustomFieldType(fieldType) {
|
|
18
29
|
customFieldTypes.set(fieldType.name, fieldType);
|
|
19
30
|
}
|
|
@@ -35,5 +46,40 @@ export function listCustomFieldTypes() {
|
|
|
35
46
|
if (value === undefined || value === null || value === '') return null;
|
|
36
47
|
return fieldType.validate(value);
|
|
37
48
|
}
|
|
49
|
+
/** The custom type names a model's fields ride, in field order. */ function customTypesOf(model) {
|
|
50
|
+
var _ref;
|
|
51
|
+
const names = new Set();
|
|
52
|
+
for (const fieldId of (_ref = model == null ? void 0 : model.order) != null ? _ref : []){
|
|
53
|
+
var _model_fields_fieldId, _model_fields;
|
|
54
|
+
const customType = model == null ? void 0 : (_model_fields = model.fields) == null ? void 0 : (_model_fields_fieldId = _model_fields[fieldId]) == null ? void 0 : _model_fields_fieldId.customType;
|
|
55
|
+
if (customType) names.add(customType);
|
|
56
|
+
}
|
|
57
|
+
return [
|
|
58
|
+
...names
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Makes sure every custom type a model names is registered before a record
|
|
63
|
+
* is validated against it (AGL-2773).
|
|
64
|
+
*
|
|
65
|
+
* `validateCustomFieldValue` answers "no error" for a type nobody registered.
|
|
66
|
+
* That is right for a plugin that is genuinely absent and wrong for one whose
|
|
67
|
+
* declarations did not run in this process, so a type the registry does not
|
|
68
|
+
* know runs the app's boot step once more (see `plugin-declarations-repair`)
|
|
69
|
+
* before the write validates. A model with no custom field, or whose types
|
|
70
|
+
* are all registered, costs nothing.
|
|
71
|
+
*
|
|
72
|
+
* Never throws: a failed repair leaves the base type guarding storage, which
|
|
73
|
+
* is what an absent plugin gets too, and the write it guards must not fail
|
|
74
|
+
* over it.
|
|
75
|
+
*/ export async function ensureDeclaredCustomFieldTypes(model) {
|
|
76
|
+
const missing = customTypesOf(model).filter((name)=>!customFieldTypes.has(name));
|
|
77
|
+
if (!missing.length) return;
|
|
78
|
+
try {
|
|
79
|
+
await runPluginDeclarationsRepair();
|
|
80
|
+
} catch (error) {
|
|
81
|
+
console.error(`[custom-fields] plugin declarations failed before validating ${missing.join(', ')}`, error);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
38
84
|
|
|
39
85
|
//# sourceMappingURL=custom-fields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/custom-fields.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ComponentType } from 'react'\n\n/**\n * Custom field types (AGL-434, Strapi custom-fields parity): a plugin\n * declares a NAMED field type that rides an EXISTING dataset storage type\n * — no new storage primitives, so records stay portable and every query/\n * binding path keeps working. The dataset schema editor offers registered\n * types; a field using one stores `customType` next to its base `type`,\n * the record editor mounts the plugin's Input, and the custom `validate`\n * runs on BOTH sides (editor pre-save and the server import/write paths)\n * after the base-type validation.\n *\n * Register at
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/plugin-manager/custom-fields.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ComponentType } from 'react'\nimport { runPluginDeclarationsRepair } from './plugin-declarations-repair'\n\n/**\n * Custom field types (AGL-434, Strapi custom-fields parity): a plugin\n * declares a NAMED field type that rides an EXISTING dataset storage type\n * — no new storage primitives, so records stay portable and every query/\n * binding path keeps working. The dataset schema editor offers registered\n * types; a field using one stores `customType` next to its base `type`,\n * the record editor mounts the plugin's Input, and the custom `validate`\n * runs on BOTH sides (editor pre-save and the server import/write paths)\n * after the base-type validation.\n *\n * Register the pure-data half (no `Input`) from the plugin's\n * `serverDeclarations`, which every app runs at boot, so each server path\n * that writes a record — the console's and the tenant's, including a public\n * form and an automation step — validates it without loading the plugin's\n * surfaces (AGL-2773). The client barrel registers it again with the Input.\n */\n\n/** Storage subset custom types may ride (mirrors Strapi's limitation). */\nexport type CustomFieldBaseType = 'text' | 'bool' | 'int32' | 'float' | 'map'\n\nexport interface CustomFieldInputProps {\n value: unknown\n onChange: (value: unknown) => void\n disabled?: boolean\n label?: string\n}\n\nexport interface CustomFieldType {\n /** Stable name persisted on field definitions ('rating'); never rename. */\n name: string\n pluginId: string\n label: string\n baseType: CustomFieldBaseType\n description?: string\n /** Record-editor input; base-type input is the fallback when absent. */\n Input?: ComponentType<CustomFieldInputProps>\n /** Runs after base-type validation; returns an error message or null. */\n validate?: (value: unknown) => string | null\n}\n\n/**\n * The registry, held on `globalThis` rather than in a module `const`\n * (AGL-3412, AGL-2773). A plugin's server declarations register its field\n * types from the app's `instrumentation.ts`, which Next compiles into a\n * different module graph from the routes that validate records, so a\n * module-scoped map is filled in one copy and read as empty in the other —\n * and an empty registry answers \"no error\" for every custom value.\n */\nconst REGISTRY_KEY = Symbol.for('@aglyn/aglyn:custom-field-types')\n\nconst globalScope = globalThis as typeof globalThis & {\n [REGISTRY_KEY]?: Map<string, CustomFieldType>\n}\n\nconst customFieldTypes: Map<string, CustomFieldType> =\n (globalScope[REGISTRY_KEY] ??= new Map<string, CustomFieldType>())\n\n/** Idempotent by name — re-registration replaces the type. */\nexport function registerCustomFieldType(fieldType: CustomFieldType): void {\n customFieldTypes.set(fieldType.name, fieldType)\n}\n\nexport function getCustomFieldType(\n name: string | undefined,\n): CustomFieldType | undefined {\n return name ? customFieldTypes.get(name) : undefined\n}\n\nexport function listCustomFieldTypes(): CustomFieldType[] {\n return [...customFieldTypes.values()]\n}\n\n/**\n * The custom-type validation hook (both sides): no-op for plain fields,\n * unknown custom types (plugin disabled/uninstalled — the base type still\n * guards storage), or empty optional values.\n */\nexport function validateCustomFieldValue(\n customType: string | undefined,\n value: unknown,\n): string | null {\n const fieldType = getCustomFieldType(customType)\n if (!fieldType?.validate) return null\n if (value === undefined || value === null || value === '') return null\n return fieldType.validate(value)\n}\n\n/** The custom type names a model's fields ride, in field order. */\nfunction customTypesOf(\n model:\n | {\n fields?: Record<string, { customType?: string } | undefined>\n order?: readonly string[]\n }\n | null\n | undefined,\n): string[] {\n const names = new Set<string>()\n for (const fieldId of model?.order ?? []) {\n const customType = model?.fields?.[fieldId]?.customType\n if (customType) names.add(customType)\n }\n return [...names]\n}\n\n/**\n * Makes sure every custom type a model names is registered before a record\n * is validated against it (AGL-2773).\n *\n * `validateCustomFieldValue` answers \"no error\" for a type nobody registered.\n * That is right for a plugin that is genuinely absent and wrong for one whose\n * declarations did not run in this process, so a type the registry does not\n * know runs the app's boot step once more (see `plugin-declarations-repair`)\n * before the write validates. A model with no custom field, or whose types\n * are all registered, costs nothing.\n *\n * Never throws: a failed repair leaves the base type guarding storage, which\n * is what an absent plugin gets too, and the write it guards must not fail\n * over it.\n */\nexport async function ensureDeclaredCustomFieldTypes(\n model: Parameters<typeof customTypesOf>[0],\n): Promise<void> {\n const missing = customTypesOf(model).filter(\n (name) => !customFieldTypes.has(name),\n )\n if (!missing.length) return\n try {\n await runPluginDeclarationsRepair()\n } catch (error) {\n console.error(\n `[custom-fields] plugin declarations failed before validating ${missing.join(', ')}`,\n error,\n )\n }\n}\n"],"names":["globalScope","REGISTRY_KEY","runPluginDeclarationsRepair","Symbol","for","globalThis","customFieldTypes","Map","registerCustomFieldType","fieldType","set","name","getCustomFieldType","get","undefined","listCustomFieldTypes","values","validateCustomFieldValue","customType","value","validate","customTypesOf","model","names","Set","fieldId","order","fields","add","ensureDeclaredCustomFieldTypes","missing","filter","has","length","error","console","join"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,OA4DEA,cAAYC,eAAZD;AAzDH,SAASE,2BAA2B,QAAQ,kCAA8B;AA0C1E;;;;;;;CAOC,GACD,MAAMD,eAAeE,OAAOC,GAAG,CAAC;AAEhC,MAAMJ,cAAcK;AAIpB,MAAMC,oBACHN,IAAAA,CAAAA,eAAAA,YAAW,CAACC,gBAAAA,aAAa,YAAzBD,IAAAA,YAAW,CAACC,cAAa,GAAK,IAAIM;AAErC,4DAA4D,GAC5D,OAAO,SAASC,wBAAwBC,SAA0B;IAChEH,iBAAiBI,GAAG,CAACD,UAAUE,IAAI,EAAEF;AACvC;AAEA,OAAO,SAASG,mBACdD,IAAwB;IAExB,OAAOA,OAAOL,iBAAiBO,GAAG,CAACF,QAAQG;AAC7C;AAEA,OAAO,SAASC;IACd,OAAO;WAAIT,iBAAiBU,MAAM;KAAG;AACvC;AAEA;;;;CAIC,GACD,OAAO,SAASC,yBACdC,UAA8B,EAC9BC,KAAc;IAEd,MAAMV,YAAYG,mBAAmBM;IACrC,IAAI,EAACT,6BAAAA,UAAWW,QAAQ,GAAE,OAAO;IACjC,IAAID,UAAUL,aAAaK,UAAU,QAAQA,UAAU,IAAI,OAAO;IAClE,OAAOV,UAAUW,QAAQ,CAACD;AAC5B;AAEA,iEAAiE,GACjE,SAASE,cACPC,KAMa;;IAEb,MAAMC,QAAQ,IAAIC;IAClB,KAAK,MAAMC,mBAAWH,yBAAAA,MAAOI,KAAK,mBAAI,EAAE,CAAE;YACrBJ,uBAAAA;QAAnB,MAAMJ,aAAaI,0BAAAA,gBAAAA,MAAOK,MAAM,sBAAbL,wBAAAA,aAAe,CAACG,QAAQ,qBAAxBH,sBAA0BJ,UAAU;QACvD,IAAIA,YAAYK,MAAMK,GAAG,CAACV;IAC5B;IACA,OAAO;WAAIK;KAAM;AACnB;AAEA;;;;;;;;;;;;;;CAcC,GACD,OAAO,eAAeM,+BACpBP,KAA0C;IAE1C,MAAMQ,UAAUT,cAAcC,OAAOS,MAAM,CACzC,CAACpB,OAAS,CAACL,iBAAiB0B,GAAG,CAACrB;IAElC,IAAI,CAACmB,QAAQG,MAAM,EAAE;IACrB,IAAI;QACF,MAAM/B;IACR,EAAE,OAAOgC,OAAO;QACdC,QAAQD,KAAK,CACX,CAAC,6DAA6D,EAAEJ,QAAQM,IAAI,CAAC,OAAO,EACpFF;IAEJ;AACF"}
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import type { OrgPermissions } from '../app-utils/org-permissions';
|
|
18
|
+
import type { SeoAuditReport } from '../app-utils/seo-audit';
|
|
18
19
|
import type { SeoListingFieldKey } from '../app-utils/seo-listing-fields';
|
|
19
20
|
import type { AglynOrgBilling, OrgFeatureFlags } from '../foundation';
|
|
20
21
|
import type { ComponentSchema, MdiIconProps, PresetSchema } from '../types/nodes';
|
|
21
22
|
import type { Plugin, PluginId } from './plugin-manager';
|
|
22
|
-
import type { HostThemeSource } from '../app-utils/
|
|
23
|
+
import type { HostThemeSource } from '../app-utils/site-theme';
|
|
23
24
|
import type { HostTheme, HostThemeScheme } from '@aglyn/shared-data-types';
|
|
24
25
|
import type { ComponentType } from 'react';
|
|
25
|
-
export type { ConsoleProductCopyValues, ConsoleProductDraft, ConsoleProductEditorZoneProps, ConsoleProductImportZoneProps, ConsoleProductOption, ConsoleProductSummary, ConsoleProductType, ConsoleProductsHubZoneProps, ConsoleProposedDiscount, ConsoleProposedProduct, } from './commerce-zone-props';
|
|
26
26
|
export type { ConsoleImportMappingZoneProps, ConsoleRecordEmailZoneProps, ConsoleRecordInsightsZoneProps, } from './record-zone-props';
|
|
27
27
|
/** The mui bundle id every UI feature bundle depends on. */
|
|
28
28
|
export declare const MUI_BUNDLE_ID: PluginId;
|
|
@@ -588,6 +588,69 @@ export declare const CONSOLE_WIDGET_SLOTS: {
|
|
|
588
588
|
* marketplace.
|
|
589
589
|
*/
|
|
590
590
|
readonly hostArtifactPublish: "hostArtifactPublish";
|
|
591
|
+
/**
|
|
592
|
+
* The org Plugins page, above the built-in plugins (AGL-3080): the code a
|
|
593
|
+
* plugin has INSTALLED into this workspace, one row per installation.
|
|
594
|
+
* Props: {@link ConsoleOrgPluginInstallsZoneProps}.
|
|
595
|
+
*
|
|
596
|
+
* The Plugins page is the workspace's inventory — what it runs, wherever it
|
|
597
|
+
* came from. The built-in half is the shell's own: the switchboard catalog
|
|
598
|
+
* says what ships. The installed half is not: where an installation is
|
|
599
|
+
* pinned, what version it runs, whether a newer one may be installed and
|
|
600
|
+
* whether its publisher's kill switch is thrown are all facts held by the
|
|
601
|
+
* plugin that installed it, in collections that are its own. So the page
|
|
602
|
+
* hands over the sites it can see and the plugin draws its installations.
|
|
603
|
+
*
|
|
604
|
+
* Every row links to `/[orgSlug]/plugins/[pluginRef]`, the shell's
|
|
605
|
+
* installation page, keyed by whatever id the installing plugin pins by —
|
|
606
|
+
* that page is the one place an installation is managed, whoever drew the
|
|
607
|
+
* row.
|
|
608
|
+
*/
|
|
609
|
+
readonly orgPluginInstalls: "orgPluginInstalls";
|
|
610
|
+
/**
|
|
611
|
+
* The installation page of a plugin some plugin INSTALLED, above where it
|
|
612
|
+
* runs (AGL-3080): what the installer says about the version this
|
|
613
|
+
* workspace runs. Props: {@link ConsolePluginInstallStatusZoneProps}.
|
|
614
|
+
*
|
|
615
|
+
* Drawn only for an installation that exists — a first-party plugin has no
|
|
616
|
+
* version to be behind, and a page for code installed nowhere says so
|
|
617
|
+
* itself. A widget here reports; it never installs. Applying an update is
|
|
618
|
+
* the installing plugin's own surface, which the widget may link to.
|
|
619
|
+
*/
|
|
620
|
+
readonly pluginInstallStatus: "pluginInstallStatus";
|
|
621
|
+
/**
|
|
622
|
+
* The template gallery — "Start from a template" on a site's Screens,
|
|
623
|
+
* Layouts and Components pages — below the site's own templates and the
|
|
624
|
+
* starters (AGL-3080): a shelf of templates a plugin offers to INSTALL.
|
|
625
|
+
* Props: {@link ConsoleTemplateGalleryZoneProps}.
|
|
626
|
+
*
|
|
627
|
+
* The gallery is the shell's: what the site holds and what ships with the
|
|
628
|
+
* platform. Templates offered from elsewhere are the offering plugin's —
|
|
629
|
+
* what it lists, how it is searched, what it costs and the route that
|
|
630
|
+
* installs one, with every check that route makes — so the dialog hands
|
|
631
|
+
* over the kind it picks and the word typed in its search, and the plugin
|
|
632
|
+
* draws its own shelf. An install lands in the site's library and
|
|
633
|
+
* publishes nothing; the widget calls `onInstalled` so the gallery closes.
|
|
634
|
+
*
|
|
635
|
+
* The dialog's "nothing matches" line covers every shelf, so a widget
|
|
636
|
+
* reports whether its shelf is loading, empty or showing something through
|
|
637
|
+
* `reportShelf`. A widget that never reports is a shelf the line ignores;
|
|
638
|
+
* with no widget at all the gallery is the site's own and the starters.
|
|
639
|
+
*/
|
|
640
|
+
readonly templateGallery: "templateGallery";
|
|
641
|
+
/**
|
|
642
|
+
* One row of a site's Templates library whose template a plugin INSTALLED,
|
|
643
|
+
* beside its Source badge (AGL-3080): what the installer says about the
|
|
644
|
+
* copy the site holds — that a newer version can be installed, and the
|
|
645
|
+
* control that installs it. Props: {@link ConsoleTemplateInstallStatusZoneProps}.
|
|
646
|
+
*
|
|
647
|
+
* Drawn once per such row, and never for a template saved here or a
|
|
648
|
+
* starter. A widget draws nothing for a template it did not install, and
|
|
649
|
+
* nothing when there is nothing to say. Applying an update goes through
|
|
650
|
+
* the installing plugin's own route, which keeps all its checks; the
|
|
651
|
+
* library's rows re-read the templates it replaced.
|
|
652
|
+
*/
|
|
653
|
+
readonly templateInstallStatus: "templateInstallStatus";
|
|
591
654
|
/** Bottom of the host dashboard. Props: hostId, org. (AGL-433) */
|
|
592
655
|
readonly dashboardFooter: "dashboardFooter";
|
|
593
656
|
/** Org settings page, below the tabbed cards. Props: orgId, org. */
|
|
@@ -642,6 +705,13 @@ export declare const CONSOLE_WIDGET_SLOTS: {
|
|
|
642
705
|
* widget.
|
|
643
706
|
*/
|
|
644
707
|
readonly hostTheme: "hostTheme";
|
|
708
|
+
/**
|
|
709
|
+
* The staff overview, among its platform-wide cards (AGL-3080). No props:
|
|
710
|
+
* the overview is about the platform, not one org, so a widget here reads
|
|
711
|
+
* what its plugin holds across every workspace through its own staff
|
|
712
|
+
* route. A staff zone — see {@link CONSOLE_STAFF_WIDGET_SLOTS}.
|
|
713
|
+
*/
|
|
714
|
+
readonly staffOverview: "staffOverview";
|
|
645
715
|
/**
|
|
646
716
|
* Staff admin org detail (staff-only surfaces). Props: orgId. A staff
|
|
647
717
|
* zone — see {@link CONSOLE_STAFF_WIDGET_SLOTS}.
|
|
@@ -723,12 +793,13 @@ export declare const CONSOLE_WIDGET_SLOTS: {
|
|
|
723
793
|
*/
|
|
724
794
|
readonly hostMembers: "hostMembers";
|
|
725
795
|
/**
|
|
726
|
-
* The console
|
|
727
|
-
*
|
|
728
|
-
*
|
|
729
|
-
*
|
|
796
|
+
* The console dock (AGL-2940): the one position above every route boundary
|
|
797
|
+
* in both the `(app)` and `(editor)` shells, where a floating panel — an
|
|
798
|
+
* assistant, a helper — survives a navigation. Props:
|
|
799
|
+
* {@link ConsoleDockZoneProps}. Named for the position, not for what a
|
|
800
|
+
* plugin puts there (AGL-3080: it was `assistPanel`).
|
|
730
801
|
*/
|
|
731
|
-
readonly
|
|
802
|
+
readonly consoleDock: "consoleDock";
|
|
732
803
|
/**
|
|
733
804
|
* A section at the bottom of the besigner's Attributes panel (AGL-2940),
|
|
734
805
|
* under the selected element's own fields. Props: `hostId` (`null` on an
|
|
@@ -751,11 +822,11 @@ export declare const CONSOLE_WIDGET_SLOTS: {
|
|
|
751
822
|
*/
|
|
752
823
|
readonly seoFields: "seoFields";
|
|
753
824
|
/**
|
|
754
|
-
* The host setup SEO section,
|
|
755
|
-
* {@link ConsoleHostSeoZoneProps} — the site,
|
|
756
|
-
*
|
|
757
|
-
*
|
|
758
|
-
* published site before that.
|
|
825
|
+
* The host setup SEO section, under the site's SEO check and above the site
|
|
826
|
+
* SEO form (AGL-2910). Props: {@link ConsoleHostSeoZoneProps} — the site,
|
|
827
|
+
* its stored SEO settings, the check's last report, and `proposeDraft`,
|
|
828
|
+
* which puts values in the form as unsaved edits. The form's Update stores
|
|
829
|
+
* them; nothing a widget proposes reaches the published site before that.
|
|
759
830
|
*/
|
|
760
831
|
readonly hostSeo: "hostSeo";
|
|
761
832
|
/** {@link ConsoleRecordInsightsZoneProps} */
|
|
@@ -852,12 +923,6 @@ export declare const CONSOLE_WIDGET_SLOTS: {
|
|
|
852
923
|
* changes nothing.
|
|
853
924
|
*/
|
|
854
925
|
readonly automationRun: "automationRun";
|
|
855
|
-
/** The commerce product editor's fields (AGL-2916). Props: {@link ConsoleProductEditorZoneProps}. */
|
|
856
|
-
readonly productEditor: "productEditor";
|
|
857
|
-
/** Above the commerce products hub's catalog table (AGL-2916). Props: {@link ConsoleProductsHubZoneProps}. */
|
|
858
|
-
readonly productsHub: "productsHub";
|
|
859
|
-
/** Inside the commerce CSV import dialog (AGL-2916). Props: {@link ConsoleProductImportZoneProps}. */
|
|
860
|
-
readonly productImport: "productImport";
|
|
861
926
|
};
|
|
862
927
|
export type ConsoleWidgetSlot = (typeof CONSOLE_WIDGET_SLOTS)[keyof typeof CONSOLE_WIDGET_SLOTS];
|
|
863
928
|
/** What the `hostScreens` zone hands each widget (AGL-2907). */
|
|
@@ -975,6 +1040,108 @@ export interface ConsolePublishableArtifact {
|
|
|
975
1040
|
displayName?: string;
|
|
976
1041
|
description?: string;
|
|
977
1042
|
}
|
|
1043
|
+
/** One site of the workspace, as the console names it. */
|
|
1044
|
+
export interface ConsoleZoneSite {
|
|
1045
|
+
id: string;
|
|
1046
|
+
label: string;
|
|
1047
|
+
}
|
|
1048
|
+
/** What the `orgPluginInstalls` zone hands each widget (AGL-3080). */
|
|
1049
|
+
export interface ConsoleOrgPluginInstallsZoneProps {
|
|
1050
|
+
/** The organization whose inventory the page is. */
|
|
1051
|
+
orgId: string;
|
|
1052
|
+
/** Path slug for building `/[orgSlug]/…` links. */
|
|
1053
|
+
orgSlug: string;
|
|
1054
|
+
/**
|
|
1055
|
+
* The sites of the organization the reader can see. An installation may be
|
|
1056
|
+
* pinned to some of them rather than to the whole organization, so a widget
|
|
1057
|
+
* reads each site's pins through this list rather than listing sites
|
|
1058
|
+
* itself.
|
|
1059
|
+
*/
|
|
1060
|
+
hosts: ReadonlyArray<ConsoleZoneSite>;
|
|
1061
|
+
}
|
|
1062
|
+
/** What the `pluginInstallStatus` zone hands each widget (AGL-3080). */
|
|
1063
|
+
export interface ConsolePluginInstallStatusZoneProps {
|
|
1064
|
+
/** Path slug for building `/[orgSlug]/…` links. */
|
|
1065
|
+
orgSlug: string;
|
|
1066
|
+
/** The installation's id: the segment of the page, which is the pin's key. */
|
|
1067
|
+
pluginRef: string;
|
|
1068
|
+
/**
|
|
1069
|
+
* One pin of the installation — org-wide if there is one, else any site's.
|
|
1070
|
+
* Every pin carries the same version and manifest, which is what a status
|
|
1071
|
+
* is about.
|
|
1072
|
+
*/
|
|
1073
|
+
pin: Readonly<Record<string, unknown>>;
|
|
1074
|
+
}
|
|
1075
|
+
/** A release flag's verdict as the console applies it: the staff bypass included. */
|
|
1076
|
+
export interface ConsoleReleaseVerdict {
|
|
1077
|
+
/** Released, or the reader is staff. */
|
|
1078
|
+
visible: boolean;
|
|
1079
|
+
/** Visible ONLY because the reader is staff. */
|
|
1080
|
+
staffPreview: boolean;
|
|
1081
|
+
}
|
|
1082
|
+
/** What the `consoleDock` zone hands each widget (AGL-2940, AGL-3080). */
|
|
1083
|
+
export interface ConsoleDockZoneProps {
|
|
1084
|
+
orgId?: string;
|
|
1085
|
+
org?: unknown;
|
|
1086
|
+
orgReady: boolean;
|
|
1087
|
+
/**
|
|
1088
|
+
* The org a widget may speak for, act as, and be METERED against — or
|
|
1089
|
+
* `undefined` where the page named none, or where the membership positively
|
|
1090
|
+
* contradicts the URL (AGL-1130, AGL-1916, AGL-1934).
|
|
1091
|
+
*/
|
|
1092
|
+
scopedOrgId?: string;
|
|
1093
|
+
/** Path slug for building `/[orgSlug]/…` links. */
|
|
1094
|
+
orgSlug: string;
|
|
1095
|
+
/** The site in view, or null off a host route. */
|
|
1096
|
+
hostId: string | null;
|
|
1097
|
+
/** The product's name as this org reads it (AGL-2319). */
|
|
1098
|
+
productName: string;
|
|
1099
|
+
/**
|
|
1100
|
+
* The verdict for any release flag the widget names, staff bypass applied.
|
|
1101
|
+
* The shell names no plugin's flag; a widget asks for its own.
|
|
1102
|
+
*/
|
|
1103
|
+
releaseVerdict: (key: string) => ConsoleReleaseVerdict;
|
|
1104
|
+
isStaff: boolean;
|
|
1105
|
+
/** The reader's verdict for every declared permission key on the site in view. */
|
|
1106
|
+
permissionsOnHost?: {
|
|
1107
|
+
loaded: boolean;
|
|
1108
|
+
granted: Readonly<Record<string, boolean>>;
|
|
1109
|
+
};
|
|
1110
|
+
}
|
|
1111
|
+
/** How one plugin's shelf of the template gallery stands (AGL-3080). */
|
|
1112
|
+
export type ConsoleTemplateGalleryShelfState = 'loading' | 'empty' | 'shown';
|
|
1113
|
+
/** What the `templateGallery` zone hands each widget (AGL-3080). */
|
|
1114
|
+
export interface ConsoleTemplateGalleryZoneProps {
|
|
1115
|
+
/** The site a template installs into. */
|
|
1116
|
+
hostId: string;
|
|
1117
|
+
/**
|
|
1118
|
+
* The kind of template the gallery picks: `page` on the Screens page,
|
|
1119
|
+
* `layout` and `component` on theirs. A shelf offering only one kind
|
|
1120
|
+
* draws nothing for the others.
|
|
1121
|
+
*/
|
|
1122
|
+
kind: 'page' | 'component' | 'layout';
|
|
1123
|
+
/** The word typed in the gallery's search box, `''` for none. */
|
|
1124
|
+
search: string;
|
|
1125
|
+
/** Closes the gallery once an install has landed in the library. */
|
|
1126
|
+
onInstalled: () => void;
|
|
1127
|
+
/**
|
|
1128
|
+
* Says how this shelf stands, keyed by a name the widget chooses and keeps,
|
|
1129
|
+
* so the gallery's "nothing matches" line counts it. Report `empty` rather
|
|
1130
|
+
* than nothing once a read answers with nothing.
|
|
1131
|
+
*/
|
|
1132
|
+
reportShelf: (shelfId: string, state: ConsoleTemplateGalleryShelfState) => void;
|
|
1133
|
+
}
|
|
1134
|
+
/** What the `templateInstallStatus` zone hands each widget (AGL-3080). */
|
|
1135
|
+
export interface ConsoleTemplateInstallStatusZoneProps {
|
|
1136
|
+
/** The site whose library the row is in. */
|
|
1137
|
+
hostId: string;
|
|
1138
|
+
/**
|
|
1139
|
+
* The row's template document as the library read it, `$id` included:
|
|
1140
|
+
* its server-managed `source` and `installedFrom` stamps say who installed
|
|
1141
|
+
* it, and `editedAt` whether the site has edited its copy since.
|
|
1142
|
+
*/
|
|
1143
|
+
template: Readonly<Record<string, unknown>>;
|
|
1144
|
+
}
|
|
978
1145
|
/** What the `hostArtifactPublish` zone hands each widget (AGL-3080). */
|
|
979
1146
|
export interface ConsoleArtifactPublishZoneProps {
|
|
980
1147
|
/**
|
|
@@ -1012,8 +1179,8 @@ export interface ConsoleHostThemeZoneProps {
|
|
|
1012
1179
|
proposeDraft: (theme: HostTheme, key: string) => void;
|
|
1013
1180
|
}
|
|
1014
1181
|
/**
|
|
1015
|
-
* The zones on the STAFF pages (AGL-2939): the staff
|
|
1016
|
-
* zone, and the staff user page.
|
|
1182
|
+
* The zones on the STAFF pages (AGL-2939): the staff overview, the staff org
|
|
1183
|
+
* page, its detail zone, and the staff user page.
|
|
1017
1184
|
*
|
|
1018
1185
|
* No workspace names the plugin set there. A staff page is ABOUT an org or
|
|
1019
1186
|
* an account, and the reader's own memberships have nothing to do with what
|
|
@@ -1073,6 +1240,16 @@ export interface ConsoleSeoFieldsZoneProps {
|
|
|
1073
1240
|
*/
|
|
1074
1241
|
proposeValues: (values: ConsoleSeoFieldValues, key: string) => void;
|
|
1075
1242
|
}
|
|
1243
|
+
/**
|
|
1244
|
+
* The site's SEO check as the SEO section last ran it: the platform's
|
|
1245
|
+
* findings (`app-utils/seo-audit`), which the section draws for every site
|
|
1246
|
+
* owner, and the target keyword lines the check was run with.
|
|
1247
|
+
*/
|
|
1248
|
+
export interface ConsoleSeoCheck {
|
|
1249
|
+
report: SeoAuditReport;
|
|
1250
|
+
/** The keyword lines as typed, one page a line: `/pricing: plans, pricing`. */
|
|
1251
|
+
keywords: string;
|
|
1252
|
+
}
|
|
1076
1253
|
/** What the `hostSeo` zone hands each widget (AGL-2910). */
|
|
1077
1254
|
export interface ConsoleHostSeoZoneProps {
|
|
1078
1255
|
hostId: string;
|
|
@@ -1091,6 +1268,12 @@ export interface ConsoleHostSeoZoneProps {
|
|
|
1091
1268
|
* applies once, and the form's Update is what stores them.
|
|
1092
1269
|
*/
|
|
1093
1270
|
proposeDraft: (values: Record<string, string>, key: string) => void;
|
|
1271
|
+
/**
|
|
1272
|
+
* The SEO check the section drew above the zone, once somebody has run it
|
|
1273
|
+
* this visit; `null` before. The section lists the findings: a widget adds
|
|
1274
|
+
* what it has for them — a proposed fix, say — and never lists them again.
|
|
1275
|
+
*/
|
|
1276
|
+
check: ConsoleSeoCheck | null;
|
|
1094
1277
|
}
|
|
1095
1278
|
/**
|
|
1096
1279
|
* A column a widget contributes to a shell-owned table (AGL-2940) — the org
|
|
@@ -1432,6 +1615,13 @@ export interface ConsoleExtension {
|
|
|
1432
1615
|
* `console.slots`.
|
|
1433
1616
|
*/
|
|
1434
1617
|
themePresets?: readonly ConsoleThemePreset[];
|
|
1618
|
+
/**
|
|
1619
|
+
* The kinds of record this plugin lets the console's search find — see
|
|
1620
|
+
* {@link ConsoleSearchSource}. Loaded with the plugin at the
|
|
1621
|
+
* {@link CONSOLE_SEARCH_LOAD_POINT}, which the plugin declares among its
|
|
1622
|
+
* `console.slots`.
|
|
1623
|
+
*/
|
|
1624
|
+
searchSources?: readonly ConsoleSearchSource[];
|
|
1435
1625
|
/**
|
|
1436
1626
|
* Pages in the STAFF area (AGL-2939) — see {@link ConsoleStaffPage}.
|
|
1437
1627
|
* Neither `featureFlag` nor `permission` applies to them.
|
|
@@ -1604,5 +1794,87 @@ export declare const THEME_PRESETS_LOAD_POINT = "hostThemePresets";
|
|
|
1604
1794
|
export declare function listConsoleThemePresets(enabledPluginIds?: readonly PluginId[]): Array<ConsoleThemePreset & {
|
|
1605
1795
|
pluginId: PluginId;
|
|
1606
1796
|
}>;
|
|
1797
|
+
/**
|
|
1798
|
+
* A kind of record a plugin lets the console's search find (AGL-3080): the
|
|
1799
|
+
* collection its rows are read from, the fields a row is named and matched
|
|
1800
|
+
* by, and where a row opens.
|
|
1801
|
+
*
|
|
1802
|
+
* The palette reads a source the way it reads the console's own groups — one
|
|
1803
|
+
* capped window per collection, ordered by document id and matched in the
|
|
1804
|
+
* browser — so a source describes a read the Firestore rules already admit
|
|
1805
|
+
* and needs no index of its own. `host` reads `hosts/{hostId}/{collection}`
|
|
1806
|
+
* under the site that is open; `orgData` reads `orgs/{orgId}/{collection}`,
|
|
1807
|
+
* the organization's shared data, through the reader's `visibleTo` tokens
|
|
1808
|
+
* under a site (the predicate the rules evaluate) and unfiltered at the
|
|
1809
|
+
* organization level, where only an org-wide member is offered it.
|
|
1810
|
+
*
|
|
1811
|
+
* Gated as every surface the extension registers is: the plugin must be on
|
|
1812
|
+
* for the workspace and the site, and the extension's `featureFlag` and
|
|
1813
|
+
* `permission` compose with the source's own. A source the reader may not
|
|
1814
|
+
* open is never read, because a row that links to a page the reader is
|
|
1815
|
+
* refused is a dead row.
|
|
1816
|
+
*/
|
|
1817
|
+
export interface ConsoleSearchSource {
|
|
1818
|
+
/**
|
|
1819
|
+
* The group's id, unique across the palette: its rows, its cache and its
|
|
1820
|
+
* key in the rendered list are held under it. Name it by the plugin's own
|
|
1821
|
+
* words (`contacts`, `products`) and keep it stable.
|
|
1822
|
+
*/
|
|
1823
|
+
id: string;
|
|
1824
|
+
/** The heading above the group's rows. */
|
|
1825
|
+
group: string;
|
|
1826
|
+
/** The kind in a sentence: "Only the first 30 {noun} were searched." */
|
|
1827
|
+
noun: string;
|
|
1828
|
+
/** Where the collection hangs, which decides the path and who may read it. */
|
|
1829
|
+
scope: 'host' | 'orgData';
|
|
1830
|
+
/** The collection's name under the scope's root. */
|
|
1831
|
+
collection: string;
|
|
1832
|
+
/** The field holding a row's human-readable name. */
|
|
1833
|
+
nameField: string;
|
|
1834
|
+
/** The field a row is labeled by when `nameField` is empty. */
|
|
1835
|
+
fallbackNameField?: string;
|
|
1836
|
+
/** Further fields a reader may find a row by (an address, a slug). */
|
|
1837
|
+
extraFields?: readonly string[];
|
|
1838
|
+
/**
|
|
1839
|
+
* A plan quota that must be non-zero for the group to be read at all: a
|
|
1840
|
+
* collection the organization cannot hold costs a read to render nothing.
|
|
1841
|
+
*/
|
|
1842
|
+
entitlementKey?: string;
|
|
1843
|
+
/** A plan flag this group needs beyond the extension's `featureFlag`. */
|
|
1844
|
+
featureFlag?: keyof OrgFeatureFlags;
|
|
1845
|
+
/** A permission this group needs beyond the extension's `permission`. */
|
|
1846
|
+
permission?: string;
|
|
1847
|
+
/**
|
|
1848
|
+
* Where the group is listed, ascending. The console's own groups hold 10
|
|
1849
|
+
* (sites), 20 (pages), 30 (emails) and 100 to 140 (components, layouts,
|
|
1850
|
+
* templates, content, authors); equal numbers keep registration order.
|
|
1851
|
+
*/
|
|
1852
|
+
order: number;
|
|
1853
|
+
/**
|
|
1854
|
+
* Where one row opens, or `null` when it cannot be addressed from here — a
|
|
1855
|
+
* row with nowhere to go is dropped rather than drawn dead. `host` is the
|
|
1856
|
+
* open site's subdomain, or `null` at the organization level.
|
|
1857
|
+
*/
|
|
1858
|
+
href(row: Readonly<Record<string, unknown>>, context: ConsoleSearchLinkContext): string | null;
|
|
1859
|
+
}
|
|
1860
|
+
/** The two route params a search row is linked from. */
|
|
1861
|
+
export interface ConsoleSearchLinkContext {
|
|
1862
|
+
orgSlug: string;
|
|
1863
|
+
host: string | null;
|
|
1864
|
+
}
|
|
1865
|
+
/**
|
|
1866
|
+
* The load point a plugin contributing search sources declares in its
|
|
1867
|
+
* `console.slots`, and the palette loads before it lists them.
|
|
1868
|
+
*/
|
|
1869
|
+
export declare const CONSOLE_SEARCH_LOAD_POINT = "consoleSearch";
|
|
1870
|
+
/**
|
|
1871
|
+
* Every search source the enabled plugins contribute, with the extension
|
|
1872
|
+
* each came from so the caller can apply its gates. A second source with an
|
|
1873
|
+
* id already listed is dropped, so two plugins cannot share one group.
|
|
1874
|
+
*/
|
|
1875
|
+
export declare function listConsoleSearchSources(enabledPluginIds?: readonly PluginId[]): Array<{
|
|
1876
|
+
extension: ConsoleExtension;
|
|
1877
|
+
source: ConsoleSearchSource;
|
|
1878
|
+
}>;
|
|
1607
1879
|
/** Providers registered by every extension, in registration order. */
|
|
1608
1880
|
export declare function listConsoleProviders(enabledPluginIds?: readonly PluginId[]): Array<ComponentType<any>>;
|