@aglyn/aglyn 1.0.0-beta.230 → 1.0.0-beta.232
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 +11 -11
- package/src/lib/app-utils/account-acquisition.d.ts +15 -2
- package/src/lib/app-utils/account-acquisition.js +20 -1
- package/src/lib/app-utils/account-acquisition.js.map +1 -1
- package/src/lib/app-utils/artifact-list-queries.d.ts +35 -0
- package/src/lib/app-utils/artifact-list-queries.js +203 -0
- package/src/lib/app-utils/artifact-list-queries.js.map +1 -0
- package/src/lib/app-utils/business-profile.d.ts +171 -0
- package/src/lib/app-utils/business-profile.js +277 -0
- package/src/lib/app-utils/business-profile.js.map +1 -0
- package/src/lib/app-utils/child-contract.d.ts +4 -1
- package/src/lib/app-utils/child-contract.js +5 -2
- package/src/lib/app-utils/child-contract.js.map +1 -1
- package/src/lib/app-utils/console-routes.d.ts +5 -0
- package/src/lib/app-utils/console-routes.js +1 -0
- package/src/lib/app-utils/console-routes.js.map +1 -1
- package/src/lib/app-utils/content-schema-type.d.ts +9 -0
- package/src/lib/app-utils/content-schema-type.js +4 -0
- package/src/lib/app-utils/content-schema-type.js.map +1 -1
- package/src/lib/app-utils/crm.d.ts +14 -1
- package/src/lib/app-utils/crm.js +19 -2
- package/src/lib/app-utils/crm.js.map +1 -1
- package/src/lib/app-utils/docs-help.generated.d.ts +119 -5
- package/src/lib/app-utils/docs-help.generated.js +290 -2
- package/src/lib/app-utils/docs-help.generated.js.map +1 -1
- package/src/lib/app-utils/docs-index.generated.js +697 -32
- package/src/lib/app-utils/docs-index.generated.js.map +1 -1
- package/src/lib/app-utils/entry-list-declaration.d.ts +33 -0
- package/src/lib/app-utils/entry-list-declaration.js +172 -0
- package/src/lib/app-utils/entry-list-declaration.js.map +1 -0
- package/src/lib/app-utils/first-version-seed.d.ts +19 -0
- package/src/lib/app-utils/first-version-seed.js +53 -0
- package/src/lib/app-utils/first-version-seed.js.map +1 -0
- package/src/lib/app-utils/host-status.d.ts +85 -0
- package/src/lib/app-utils/host-status.js +115 -0
- package/src/lib/app-utils/host-status.js.map +1 -0
- package/src/lib/app-utils/local-business.d.ts +8 -0
- package/src/lib/app-utils/local-business.js +4 -0
- package/src/lib/app-utils/local-business.js.map +1 -1
- package/src/lib/app-utils/lockdown.js +1 -1
- package/src/lib/app-utils/lockdown.js.map +1 -1
- package/src/lib/app-utils/media-filter.d.ts +136 -0
- package/src/lib/app-utils/media-filter.js +400 -0
- package/src/lib/app-utils/media-filter.js.map +1 -0
- package/src/lib/app-utils/mobile-push.d.ts +98 -0
- package/src/lib/app-utils/mobile-push.js +97 -0
- package/src/lib/app-utils/mobile-push.js.map +1 -0
- package/src/lib/app-utils/notification-push.d.ts +38 -0
- package/src/lib/app-utils/notification-push.js +54 -0
- package/src/lib/app-utils/notification-push.js.map +1 -0
- package/src/lib/app-utils/notifications.d.ts +7 -0
- package/src/lib/app-utils/notifications.js.map +1 -1
- package/src/lib/app-utils/organizations.js +5 -2
- package/src/lib/app-utils/organizations.js.map +1 -1
- package/src/lib/app-utils/page-markdown.js +3 -0
- package/src/lib/app-utils/page-markdown.js.map +1 -1
- package/src/lib/app-utils/plugin-host-events.generated.d.ts +1 -1
- package/src/lib/app-utils/plugin-host-events.generated.js +149 -0
- package/src/lib/app-utils/plugin-host-events.generated.js.map +1 -1
- package/src/lib/app-utils/plugin-release-flags.generated.d.ts +1 -1
- package/src/lib/app-utils/plugin-release-flags.generated.js +7 -0
- package/src/lib/app-utils/plugin-release-flags.generated.js.map +1 -1
- package/src/lib/app-utils/realm-host-surface.generated.js +3 -0
- package/src/lib/app-utils/realm-host-surface.generated.js.map +1 -1
- package/src/lib/app-utils/release-flags.js +6 -2
- package/src/lib/app-utils/release-flags.js.map +1 -1
- package/src/lib/app-utils/scope-tokens.d.ts +16 -1
- package/src/lib/app-utils/scope-tokens.js +15 -1
- package/src/lib/app-utils/scope-tokens.js.map +1 -1
- package/src/lib/app-utils/site-list-query.d.ts +47 -0
- package/src/lib/app-utils/site-list-query.js +142 -0
- package/src/lib/app-utils/site-list-query.js.map +1 -0
- package/src/lib/app-utils/site-wide-outbox.d.ts +95 -0
- package/src/lib/app-utils/site-wide-outbox.js +117 -0
- package/src/lib/app-utils/site-wide-outbox.js.map +1 -0
- package/src/lib/app-utils/transfer-launcher-context.d.ts +6 -0
- package/src/lib/app-utils/transfer-launcher-context.js.map +1 -1
- package/src/lib/app-utils/upload-inspection.js +7 -0
- package/src/lib/app-utils/upload-inspection.js.map +1 -1
- package/src/lib/app-utils/webhook-delivery.js +4 -1
- package/src/lib/app-utils/webhook-delivery.js.map +1 -1
- package/src/lib/foundation/definitions/org-billing.types.d.ts +8 -0
- package/src/lib/foundation/definitions/org-billing.types.js.map +1 -1
- package/src/lib/foundation/definitions/organization.types.d.ts +18 -7
- package/src/lib/foundation/definitions/organization.types.js.map +1 -1
- package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +4 -1
- package/src/lib/foundation/definitions/write-deny-coverage.util.js +12 -2
- package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -1
- package/src/lib/plugin-manager/enabled-plugins.js +4 -2
- package/src/lib/plugin-manager/enabled-plugins.js.map +1 -1
- package/src/lib/plugin-manager/feature-plugins.d.ts +107 -0
- package/src/lib/plugin-manager/feature-plugins.js +52 -0
- package/src/lib/plugin-manager/feature-plugins.js.map +1 -1
- package/src/lib/plugin-manager/first-party-plugins.generated.js +326 -2
- package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -1
- package/src/lib/plugin-manager/plugin-channel-orders.d.ts +262 -0
- package/src/lib/plugin-manager/plugin-channel-orders.js +32 -0
- package/src/lib/plugin-manager/plugin-channel-orders.js.map +1 -0
- package/src/lib/plugin-manager/plugin-checkout-extras.d.ts +168 -0
- package/src/lib/plugin-manager/plugin-checkout-extras.js +172 -0
- package/src/lib/plugin-manager/plugin-checkout-extras.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contributions.d.ts +7 -0
- package/src/lib/plugin-manager/plugin-contributions.js +1 -1
- package/src/lib/plugin-manager/plugin-contributions.js.map +1 -1
- package/src/lib/plugin-manager/plugin-domain-events.d.ts +138 -0
- package/src/lib/plugin-manager/plugin-domain-events.js +148 -0
- package/src/lib/plugin-manager/plugin-domain-events.js.map +1 -0
- package/src/lib/plugin-manager/plugin-events.d.ts +30 -0
- package/src/lib/plugin-manager/plugin-events.js +4 -0
- package/src/lib/plugin-manager/plugin-events.js.map +1 -1
- package/src/lib/plugin-manager/plugin-fulfillment-providers.d.ts +101 -0
- package/src/lib/plugin-manager/plugin-fulfillment-providers.js +83 -0
- package/src/lib/plugin-manager/plugin-fulfillment-providers.js.map +1 -0
- package/src/lib/plugin-manager/plugin-permissions.js +21 -5
- package/src/lib/plugin-manager/plugin-permissions.js.map +1 -1
- package/src/lib/plugin-manager/plugin-person-records.d.ts +90 -0
- package/src/lib/plugin-manager/plugin-person-records.js +26 -0
- package/src/lib/plugin-manager/plugin-person-records.js.map +1 -1
- package/src/lib/plugin-manager/plugin-product-catalog.d.ts +209 -0
- package/src/lib/plugin-manager/plugin-product-catalog.js +43 -0
- package/src/lib/plugin-manager/plugin-product-catalog.js.map +1 -0
- package/src/lib/plugin-manager/plugin-product-writer.d.ts +166 -0
- package/src/lib/plugin-manager/plugin-product-writer.js +31 -0
- package/src/lib/plugin-manager/plugin-product-writer.js.map +1 -0
- package/src/lib/plugin-manager/plugin-shipment-records.d.ts +210 -0
- package/src/lib/plugin-manager/plugin-shipment-records.js +63 -0
- package/src/lib/plugin-manager/plugin-shipment-records.js.map +1 -0
- package/src/lib/plugin-manager/plugin-shipping-rates.d.ts +151 -0
- package/src/lib/plugin-manager/plugin-shipping-rates.js +62 -0
- package/src/lib/plugin-manager/plugin-shipping-rates.js.map +1 -0
- package/src/lib/plugin-manager/plugin-sms-messaging.d.ts +103 -0
- package/src/lib/plugin-manager/plugin-sms-messaging.js +39 -0
- package/src/lib/plugin-manager/plugin-sms-messaging.js.map +1 -0
- package/src/lib/plugin-manager/plugin-stock-levels.d.ts +81 -0
- package/src/lib/plugin-manager/plugin-stock-levels.js +32 -0
- package/src/lib/plugin-manager/plugin-stock-levels.js.map +1 -0
- package/src/lib/plugin-manager/plugin-tax-profile.d.ts +154 -0
- package/src/lib/plugin-manager/plugin-tax-profile.js +56 -0
- package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -1
- package/src/lib/plugin-manager/plugin-theme-font-catalog.d.ts +59 -0
- package/src/lib/plugin-manager/plugin-theme-font-catalog.js +40 -0
- package/src/lib/plugin-manager/plugin-theme-font-catalog.js.map +1 -0
- package/src/lib/plugin-manager/plugin-theme-presets.d.ts +40 -0
- package/src/lib/plugin-manager/plugin-theme-presets.js +44 -0
- package/src/lib/plugin-manager/plugin-theme-presets.js.map +1 -0
- package/src/lib/plugin-manager/plugin-tracking-pages.d.ts +55 -0
- package/src/lib/plugin-manager/plugin-tracking-pages.js +76 -0
- package/src/lib/plugin-manager/plugin-tracking-pages.js.map +1 -0
- package/src/lib/plugin-manager/realm-host-aglyn.generated.js +3 -0
- package/src/lib/plugin-manager/realm-host-aglyn.generated.js.map +1 -1
|
@@ -743,6 +743,18 @@ export declare const CONSOLE_WIDGET_SLOTS: {
|
|
|
743
743
|
* widget.
|
|
744
744
|
*/
|
|
745
745
|
readonly hostTheme: "hostTheme";
|
|
746
|
+
/**
|
|
747
|
+
* Inside the theme editor's Typography card (AGL-3656): the control that
|
|
748
|
+
* chooses the site's fonts. Props: {@link ConsoleThemeEditorFontsZoneProps}
|
|
749
|
+
* — the site, the editor's draft, and `updateDraft`, which changes the
|
|
750
|
+
* draft as any of the editor's own controls does.
|
|
751
|
+
*
|
|
752
|
+
* A widget here edits the draft and never writes: the editor's Save keeps
|
|
753
|
+
* the change and Discard drops it, with the preview beside it following
|
|
754
|
+
* every step. With no widget the editor offers its own short list of
|
|
755
|
+
* fonts, so a workspace without a fonts plugin can still choose one.
|
|
756
|
+
*/
|
|
757
|
+
readonly themeEditorFonts: "themeEditorFonts";
|
|
746
758
|
/**
|
|
747
759
|
* The staff overview, among its platform-wide cards (AGL-3080). No props:
|
|
748
760
|
* the overview is about the platform, not one org, so a widget here reads
|
|
@@ -901,6 +913,15 @@ export declare const CONSOLE_WIDGET_SLOTS: {
|
|
|
901
913
|
* them; nothing a widget proposes reaches the published site before that.
|
|
902
914
|
*/
|
|
903
915
|
readonly hostSeo: "hostSeo";
|
|
916
|
+
/**
|
|
917
|
+
* The host setup Business profile section, under the site's profile and
|
|
918
|
+
* the facts read from its settings (AGL-3661). Props:
|
|
919
|
+
* {@link ConsoleHostBusinessProfileZoneProps}. What a plugin keeps ABOUT the
|
|
920
|
+
* business — the preferences an AI plugin learned from the owner's edits —
|
|
921
|
+
* shown where the owner reads and corrects the profile itself. A widget
|
|
922
|
+
* here writes only its own records.
|
|
923
|
+
*/
|
|
924
|
+
readonly hostBusinessProfile: "hostBusinessProfile";
|
|
904
925
|
/** {@link ConsoleRecordInsightsZoneProps} */
|
|
905
926
|
readonly recordInsights: "recordInsights";
|
|
906
927
|
/** {@link ConsoleRecordEmailZoneProps} */
|
|
@@ -1020,6 +1041,16 @@ export interface ConsoleHostScreenRowZoneProps {
|
|
|
1020
1041
|
/** The page's `kind` as stored. */
|
|
1021
1042
|
screenKind?: string;
|
|
1022
1043
|
}
|
|
1044
|
+
/** What the `hostBusinessProfile` zone hands each widget (AGL-3661). */
|
|
1045
|
+
export interface ConsoleHostBusinessProfileZoneProps {
|
|
1046
|
+
hostId: string;
|
|
1047
|
+
/** The org the page names; `undefined` while it resolves. */
|
|
1048
|
+
orgId: string | undefined;
|
|
1049
|
+
/** Path slug for building `/[orgSlug]/…` links. */
|
|
1050
|
+
orgSlug: string;
|
|
1051
|
+
/** The site's subdomain, which is what a console URL names a site by. */
|
|
1052
|
+
host: string | null;
|
|
1053
|
+
}
|
|
1023
1054
|
/** What the `hostScreens` zone hands each widget (AGL-2907). */
|
|
1024
1055
|
export interface ConsoleHostScreensZoneProps {
|
|
1025
1056
|
hostId: string;
|
|
@@ -1331,6 +1362,18 @@ export interface ConsoleHostThemeZoneProps {
|
|
|
1331
1362
|
*/
|
|
1332
1363
|
proposeDraft: (theme: HostTheme, key: string) => void;
|
|
1333
1364
|
}
|
|
1365
|
+
/** What the `themeEditorFonts` zone hands each widget (AGL-3656). */
|
|
1366
|
+
export interface ConsoleThemeEditorFontsZoneProps {
|
|
1367
|
+
/** The site whose theme is being edited; `null` on an editor that names none. */
|
|
1368
|
+
hostId: string | null;
|
|
1369
|
+
/** The editor's draft: the saved theme with every unsaved edit on it. */
|
|
1370
|
+
draft: HostTheme;
|
|
1371
|
+
/**
|
|
1372
|
+
* Changes the draft. The updater gets the draft as it is when the change
|
|
1373
|
+
* applies, so two edits in one tick both land.
|
|
1374
|
+
*/
|
|
1375
|
+
updateDraft: (updater: (draft: HostTheme) => HostTheme) => void;
|
|
1376
|
+
}
|
|
1334
1377
|
/**
|
|
1335
1378
|
* The zones on the STAFF pages (AGL-2939): the staff overview, the staff org
|
|
1336
1379
|
* page, its detail zone, and the staff user page.
|
|
@@ -1763,6 +1806,46 @@ export interface ConsoleStaffPage {
|
|
|
1763
1806
|
ownsSubtree?: boolean;
|
|
1764
1807
|
Component: ComponentType<ConsoleStaffPageProps>;
|
|
1765
1808
|
}
|
|
1809
|
+
/** What the console's generic public route hands a public page. */
|
|
1810
|
+
export interface ConsolePublicPageProps {
|
|
1811
|
+
/** The plugin that registered the page, the URL's first segment after `/kiosk`. */
|
|
1812
|
+
pluginId: PluginId;
|
|
1813
|
+
/** The page's own path, as it registered it (`/display`). */
|
|
1814
|
+
path: string;
|
|
1815
|
+
}
|
|
1816
|
+
/**
|
|
1817
|
+
* A full-screen console page that needs NO staff session (AGL-3608): served
|
|
1818
|
+
* at `/kiosk/{pluginId}{path}` by the console's generic public route, outside
|
|
1819
|
+
* the workspace shell, with only the console theme around it.
|
|
1820
|
+
*
|
|
1821
|
+
* The case is a device a business sets down in front of the public — a
|
|
1822
|
+
* screen facing a customer, a sign-in tablet at a front desk — which is
|
|
1823
|
+
* nobody's console session and must never become one. The shell draws no
|
|
1824
|
+
* nav, no workspace, no org switcher and no plugin providers here, and the
|
|
1825
|
+
* route loads this one plugin's console bundle and nothing else.
|
|
1826
|
+
*
|
|
1827
|
+
* Neither the extension's `featureFlag` nor its `permission` applies: there is
|
|
1828
|
+
* no member to ask. The page proves itself to its own API routes — a pairing
|
|
1829
|
+
* code exchanged for a device token, say — and every read it makes must be
|
|
1830
|
+
* refused server-side without that proof. Treat everything the page renders
|
|
1831
|
+
* as visible to whoever is standing in front of the device.
|
|
1832
|
+
*
|
|
1833
|
+
* The plugin also declares each path in its manifest as
|
|
1834
|
+
* `contributes.console.publicRoutes`, which is what lets the route load the
|
|
1835
|
+
* bundle only for a path that exists. First-party plugins only: the route
|
|
1836
|
+
* reads the console's generated manifest, never a marketplace install.
|
|
1837
|
+
*/
|
|
1838
|
+
export interface ConsolePublicPage {
|
|
1839
|
+
/**
|
|
1840
|
+
* The path beneath `/kiosk/{pluginId}`, with its leading slash
|
|
1841
|
+
* (`/display`). Matched exactly. It is in URLs saved on devices — treat it
|
|
1842
|
+
* as persisted.
|
|
1843
|
+
*/
|
|
1844
|
+
path: string;
|
|
1845
|
+
/** The browser tab's title, which is also what a home-screen shortcut shows. */
|
|
1846
|
+
title: string;
|
|
1847
|
+
Component: ComponentType<ConsolePublicPageProps>;
|
|
1848
|
+
}
|
|
1766
1849
|
export interface ConsoleExtension {
|
|
1767
1850
|
pluginId: PluginId;
|
|
1768
1851
|
displayName: string;
|
|
@@ -1848,6 +1931,12 @@ export interface ConsoleExtension {
|
|
|
1848
1931
|
* Neither `featureFlag` nor `permission` applies to them.
|
|
1849
1932
|
*/
|
|
1850
1933
|
staffPages?: readonly ConsoleStaffPage[];
|
|
1934
|
+
/**
|
|
1935
|
+
* Full-screen pages that need no staff session (AGL-3608) — see
|
|
1936
|
+
* {@link ConsolePublicPage}. Neither `featureFlag` nor `permission` applies
|
|
1937
|
+
* to them.
|
|
1938
|
+
*/
|
|
1939
|
+
publicPages?: readonly ConsolePublicPage[];
|
|
1851
1940
|
/**
|
|
1852
1941
|
* App-level providers the shell mounts around every console page
|
|
1853
1942
|
* (AGL-419) — e.g. the marketplace plugin's AI-assist provider.
|
|
@@ -1973,6 +2062,24 @@ export declare function listConsoleStaffPages(enabledPluginIds?: readonly Plugin
|
|
|
1973
2062
|
* symptom — the same rule {@link resolveConsolePluginPage} applies to paths.
|
|
1974
2063
|
*/
|
|
1975
2064
|
export declare function resolveConsoleStaffPage(id: string, enabledPluginIds?: readonly PluginId[]): ConsoleStaffPageEntry | undefined;
|
|
2065
|
+
/** A public page flattened with its owning extension's id. */
|
|
2066
|
+
export interface ConsolePublicPageEntry extends ConsolePublicPage {
|
|
2067
|
+
pluginId: PluginId;
|
|
2068
|
+
}
|
|
2069
|
+
/** `pos-display`, `/pos-display/` and `/pos-display` all name `/pos-display`. */
|
|
2070
|
+
export declare function normalizeConsolePublicPath(path: string): string;
|
|
2071
|
+
/** Every registered public page, in registration order. */
|
|
2072
|
+
export declare function listConsolePublicPages(enabledPluginIds?: readonly PluginId[]): ConsolePublicPageEntry[];
|
|
2073
|
+
/**
|
|
2074
|
+
* The public page at `/kiosk/{pluginId}{path}` (AGL-3608), or `undefined`.
|
|
2075
|
+
*
|
|
2076
|
+
* Scoped to the ONE plugin the URL names, because the registry is a
|
|
2077
|
+
* session-wide union (AGL-758): a device that once loaded another plugin
|
|
2078
|
+
* must not have that plugin answer a path in this one's namespace. Two
|
|
2079
|
+
* extensions of the same plugin claiming one path resolve to nothing and
|
|
2080
|
+
* say so, the rule {@link resolveConsoleStaffPage} applies to ids.
|
|
2081
|
+
*/
|
|
2082
|
+
export declare function resolveConsolePublicPage(pluginId: PluginId, path: string): ConsolePublicPageEntry | undefined;
|
|
1976
2083
|
/** Widgets registered for a slot, across every extension (AGL-419). */
|
|
1977
2084
|
export declare function listConsoleWidgets(slot: string, enabledPluginIds?: readonly PluginId[]): Array<{
|
|
1978
2085
|
extension: ConsoleExtension;
|
|
@@ -279,6 +279,17 @@ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
|
279
279
|
* widget.
|
|
280
280
|
*/ hostTheme: 'hostTheme',
|
|
281
281
|
/**
|
|
282
|
+
* Inside the theme editor's Typography card (AGL-3656): the control that
|
|
283
|
+
* chooses the site's fonts. Props: {@link ConsoleThemeEditorFontsZoneProps}
|
|
284
|
+
* — the site, the editor's draft, and `updateDraft`, which changes the
|
|
285
|
+
* draft as any of the editor's own controls does.
|
|
286
|
+
*
|
|
287
|
+
* A widget here edits the draft and never writes: the editor's Save keeps
|
|
288
|
+
* the change and Discard drops it, with the preview beside it following
|
|
289
|
+
* every step. With no widget the editor offers its own short list of
|
|
290
|
+
* fonts, so a workspace without a fonts plugin can still choose one.
|
|
291
|
+
*/ themeEditorFonts: 'themeEditorFonts',
|
|
292
|
+
/**
|
|
282
293
|
* The staff overview, among its platform-wide cards (AGL-3080). No props:
|
|
283
294
|
* the overview is about the platform, not one org, so a widget here reads
|
|
284
295
|
* what its plugin holds across every workspace through its own staff
|
|
@@ -417,6 +428,14 @@ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
|
417
428
|
* which puts values in the form as unsaved edits. The form's Update stores
|
|
418
429
|
* them; nothing a widget proposes reaches the published site before that.
|
|
419
430
|
*/ hostSeo: 'hostSeo',
|
|
431
|
+
/**
|
|
432
|
+
* The host setup Business profile section, under the site's profile and
|
|
433
|
+
* the facts read from its settings (AGL-3661). Props:
|
|
434
|
+
* {@link ConsoleHostBusinessProfileZoneProps}. What a plugin keeps ABOUT the
|
|
435
|
+
* business — the preferences an AI plugin learned from the owner's edits —
|
|
436
|
+
* shown where the owner reads and corrects the profile itself. A widget
|
|
437
|
+
* here writes only its own records.
|
|
438
|
+
*/ hostBusinessProfile: 'hostBusinessProfile',
|
|
420
439
|
/** {@link ConsoleRecordInsightsZoneProps} */ recordInsights: 'recordInsights',
|
|
421
440
|
/** {@link ConsoleRecordEmailZoneProps} */ recordEmail: 'recordEmail',
|
|
422
441
|
/** {@link ConsoleImportMappingZoneProps} */ importMapping: 'importMapping',
|
|
@@ -763,6 +782,39 @@ function matchNavItemHref(navItem, itemHref, href) {
|
|
|
763
782
|
}
|
|
764
783
|
return matches[0];
|
|
765
784
|
}
|
|
785
|
+
/** `pos-display`, `/pos-display/` and `/pos-display` all name `/pos-display`. */ export function normalizeConsolePublicPath(path) {
|
|
786
|
+
return `/${String(path != null ? path : '').split('/').filter(Boolean).join('/')}`;
|
|
787
|
+
}
|
|
788
|
+
/** Every registered public page, in registration order. */ export function listConsolePublicPages(enabledPluginIds) {
|
|
789
|
+
return listConsoleExtensions(enabledPluginIds).flatMap((extension)=>{
|
|
790
|
+
var _extension_publicPages;
|
|
791
|
+
return ((_extension_publicPages = extension.publicPages) != null ? _extension_publicPages : []).map((page)=>_extends({}, page, {
|
|
792
|
+
path: normalizeConsolePublicPath(page.path),
|
|
793
|
+
pluginId: extension.pluginId
|
|
794
|
+
}));
|
|
795
|
+
});
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* The public page at `/kiosk/{pluginId}{path}` (AGL-3608), or `undefined`.
|
|
799
|
+
*
|
|
800
|
+
* Scoped to the ONE plugin the URL names, because the registry is a
|
|
801
|
+
* session-wide union (AGL-758): a device that once loaded another plugin
|
|
802
|
+
* must not have that plugin answer a path in this one's namespace. Two
|
|
803
|
+
* extensions of the same plugin claiming one path resolve to nothing and
|
|
804
|
+
* say so, the rule {@link resolveConsoleStaffPage} applies to ids.
|
|
805
|
+
*/ export function resolveConsolePublicPage(pluginId, path) {
|
|
806
|
+
if (!pluginId) return undefined;
|
|
807
|
+
const wanted = normalizeConsolePublicPath(path);
|
|
808
|
+
if (wanted === '/') return undefined;
|
|
809
|
+
const matches = listConsolePublicPages([
|
|
810
|
+
pluginId
|
|
811
|
+
]).filter((page)=>page.path === wanted);
|
|
812
|
+
if (matches.length > 1) {
|
|
813
|
+
console.error(`[aglyn] public page "/kiosk/${pluginId}${wanted}" is registered more ` + 'than once; refusing to guess which one to serve.');
|
|
814
|
+
return undefined;
|
|
815
|
+
}
|
|
816
|
+
return matches[0];
|
|
817
|
+
}
|
|
766
818
|
/** Widgets registered for a slot, across every extension (AGL-419). */ export function listConsoleWidgets(slot, enabledPluginIds) {
|
|
767
819
|
const out = [];
|
|
768
820
|
for (const extension of listConsoleExtensions(enabledPluginIds)){
|