@antelopejs/interface-dms 0.7.4 → 0.8.0
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/CHANGELOG.md +107 -0
- package/dist/auth/index.d.ts +3 -3
- package/dist/auth/index.js +11 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/internal/jwt-auth-decorator.d.ts +20 -0
- package/dist/auth/internal/jwt-auth-decorator.js +51 -0
- package/dist/auth/internal/jwt-auth-decorator.js.map +1 -0
- package/dist/auth/internal/request-authenticators.d.ts +12 -0
- package/dist/auth/internal/request-authenticators.js +22 -0
- package/dist/auth/internal/request-authenticators.js.map +1 -1
- package/dist/base/activity-feed.d.ts +6 -6
- package/dist/base/block-registry/types.d.ts +16 -0
- package/dist/base/block-types.d.ts +1 -0
- package/dist/base/block-types.js +1 -0
- package/dist/base/block-types.js.map +1 -1
- package/dist/base/chart-card.d.ts +15 -0
- package/dist/base/chart-card.js +4 -0
- package/dist/base/chart-card.js.map +1 -1
- package/dist/base/chart-schemas.d.ts +26 -26
- package/dist/base/code-block.d.ts +3 -3
- package/dist/base/data-types/compare-types.js +19 -13
- package/dist/base/data-types/compare-types.js.map +1 -1
- package/dist/base/data-types/core.d.ts +11 -0
- package/dist/base/data-types/core.js +14 -1
- package/dist/base/data-types/core.js.map +1 -1
- package/dist/base/data-types/default-types.d.ts +112 -2
- package/dist/base/data-types/default-types.js +90 -19
- package/dist/base/data-types/default-types.js.map +1 -1
- package/dist/base/data-types/field-types.d.ts +10 -4
- package/dist/base/data-types/field-types.js +12 -2
- package/dist/base/data-types/field-types.js.map +1 -1
- package/dist/base/data-types/internal/compare-types.d.ts +3 -0
- package/dist/base/data-types/internal/compare-types.js +7 -0
- package/dist/base/data-types/internal/compare-types.js.map +1 -1
- package/dist/base/empty-state.d.ts +4 -4
- package/dist/base/form-block-schema.d.ts +59 -3
- package/dist/base/form-block-schema.js +12 -2
- package/dist/base/form-block-schema.js.map +1 -1
- package/dist/base/form-schema.d.ts +46 -1
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/form-types.d.ts +56 -13
- package/dist/base/form-types.js +12 -4
- package/dist/base/form-types.js.map +1 -1
- package/dist/base/guard.d.ts +6 -6
- package/dist/base/helpers/archive-mode-helpers.js +6 -2
- package/dist/base/helpers/archive-mode-helpers.js.map +1 -1
- package/dist/base/index.d.ts +1 -0
- package/dist/base/index.js +1 -0
- package/dist/base/index.js.map +1 -1
- package/dist/base/internal/form-schema.js +2 -0
- package/dist/base/internal/form-schema.js.map +1 -1
- package/dist/base/internal/layouts.d.ts +4 -0
- package/dist/base/key-value-list.d.ts +12 -9
- package/dist/base/key-value-list.js +1 -1
- package/dist/base/key-value-list.js.map +1 -1
- package/dist/base/kpi-card.d.ts +39 -5
- package/dist/base/kpi-card.js +18 -6
- package/dist/base/kpi-card.js.map +1 -1
- package/dist/base/layouts.d.ts +24 -0
- package/dist/base/layouts.js.map +1 -1
- package/dist/base/live-toggle.d.ts +11 -0
- package/dist/base/live-toggle.js +8 -1
- package/dist/base/live-toggle.js.map +1 -1
- package/dist/base/page-toolbar.d.ts +158 -0
- package/dist/base/page-toolbar.js +198 -0
- package/dist/base/page-toolbar.js.map +1 -0
- package/dist/base/period-selector.d.ts +9 -2
- package/dist/base/period-selector.js.map +1 -1
- package/dist/base/placeholder.d.ts +2 -2
- package/dist/base/section.d.ts +2 -2
- package/dist/base/stack.d.ts +2 -2
- package/dist/base/stat-group.d.ts +18 -6
- package/dist/base/stat-group.js +9 -0
- package/dist/base/stat-group.js.map +1 -1
- package/dist/base/table-view/column-display.d.ts +9 -5
- package/dist/base/table-view/column-display.js +1 -1
- package/dist/base/table-view/column-display.js.map +1 -1
- package/dist/base/table-view/data-functions.d.ts +26 -7
- package/dist/base/table-view/data-functions.js +10 -6
- package/dist/base/table-view/data-functions.js.map +1 -1
- package/dist/base/table-view/factory.js +24 -13
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/auth.d.ts +2 -0
- package/dist/base/table-view/internal/auth.js +3 -1
- package/dist/base/table-view/internal/auth.js.map +1 -1
- package/dist/base/table-view/internal/factory-helpers.d.ts +5 -0
- package/dist/base/table-view/internal/factory-helpers.js +55 -11
- package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
- package/dist/base/table-view/internal/guards.js +19 -2
- package/dist/base/table-view/internal/guards.js.map +1 -1
- package/dist/base/table-view/internal/realtime.js +17 -0
- package/dist/base/table-view/internal/realtime.js.map +1 -1
- package/dist/base/table-view/internal/resource-form.js +1 -0
- package/dist/base/table-view/internal/resource-form.js.map +1 -1
- package/dist/base/table-view/internal/row-actions-schema.d.ts +296 -0
- package/dist/base/table-view/internal/row-actions-schema.js +62 -0
- package/dist/base/table-view/internal/row-actions-schema.js.map +1 -0
- package/dist/base/table-view/internal/validation.d.ts +15 -3
- package/dist/base/table-view/internal/validation.js +70 -2
- package/dist/base/table-view/internal/validation.js.map +1 -1
- package/dist/base/table-view/meta.d.ts +8 -0
- package/dist/base/table-view/meta.js +25 -3
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/options.d.ts +90 -16
- package/dist/base/table-view/options.js.map +1 -1
- package/dist/base/table-view/realtime.d.ts +8 -0
- package/dist/base/table-view/realtime.js.map +1 -1
- package/dist/base/table-view/routes.js +5 -2
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +36 -30
- package/dist/base/table-view/schema.js +11 -57
- package/dist/base/table-view/schema.js.map +1 -1
- package/dist/base/table-view/source.d.ts +1 -1
- package/dist/base/table-view/source.js +4 -1
- package/dist/base/table-view/source.js.map +1 -1
- package/dist/base/table-view.d.ts +2 -2
- package/dist/base/table-view.js.map +1 -1
- package/dist/base/top-list-card.d.ts +5 -5
- package/dist/base/types/action-target.d.ts +77 -20
- package/dist/base/types/confirm-dialog.d.ts +5 -1
- package/dist/base/types/custom-button.d.ts +5 -3
- package/dist/base/types/field-config.d.ts +4 -4
- package/dist/base/types/guards.d.ts +10 -0
- package/dist/base/types/row-action.d.ts +6 -1
- package/dist/base/types/size.d.ts +3 -1
- package/dist/client-ip.d.ts +6 -2
- package/dist/client-ip.js +4 -2
- package/dist/client-ip.js.map +1 -1
- package/dist/component.d.ts +8 -0
- package/dist/component.js.map +1 -1
- package/dist/data-controllers/members.d.ts +0 -3
- package/dist/data-controllers/members.js +30 -8
- package/dist/data-controllers/members.js.map +1 -1
- package/dist/db/internal/tenantLifecycle.model.js +5 -2
- package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
- package/dist/guards.js +2 -3
- package/dist/guards.js.map +1 -1
- package/dist/hooks.d.ts +41 -5
- package/dist/hooks.js +5 -1
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/invite-membership.d.ts +9 -0
- package/dist/internal/invite-membership.js +25 -7
- package/dist/internal/invite-membership.js.map +1 -1
- package/dist/internal/member-changes.d.ts +24 -0
- package/dist/internal/member-changes.js +66 -0
- package/dist/internal/member-changes.js.map +1 -0
- package/dist/internal/tenant-ownership.d.ts +4 -1
- package/dist/internal/tenant-ownership.js +4 -10
- package/dist/internal/tenant-ownership.js.map +1 -1
- package/dist/invite-extensions.d.ts +0 -9
- package/dist/invite-extensions.js +1 -36
- package/dist/invite-extensions.js.map +1 -1
- package/dist/invite-resolution.js +6 -2
- package/dist/invite-resolution.js.map +1 -1
- package/dist/invites.js +36 -22
- package/dist/invites.js.map +1 -1
- package/dist/layout-banners.d.ts +40 -4
- package/dist/layout-banners.js +25 -3
- package/dist/layout-banners.js.map +1 -1
- package/dist/notifications/internal.d.ts +2 -2
- package/dist/notifications/internal.js.map +1 -1
- package/dist/notifications/sendable.d.ts +3 -2
- package/dist/notifications/sendable.js +2 -1
- package/dist/notifications/sendable.js.map +1 -1
- package/dist/notifications/types.d.ts +9 -0
- package/dist/page/controllers.d.ts +44 -0
- package/dist/page/controllers.js +14 -1
- package/dist/page/controllers.js.map +1 -1
- package/dist/page/internal/layout-filter.d.ts +2 -1
- package/dist/page/internal/layout-filter.js +3 -1
- package/dist/page/internal/layout-filter.js.map +1 -1
- package/dist/page/internal/metadata-helpers.d.ts +7 -0
- package/dist/page/internal/metadata-helpers.js +13 -2
- package/dist/page/internal/metadata-helpers.js.map +1 -1
- package/dist/page/internal/page-registration.d.ts +2 -0
- package/dist/page/internal/page-registration.js.map +1 -1
- package/dist/page/layout-filter.js +31 -10
- package/dist/page/layout-filter.js.map +1 -1
- package/dist/page/metadata.js +29 -24
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/types.d.ts +39 -4
- package/dist/page/types.js.map +1 -1
- package/dist/page.d.ts +1 -1
- package/dist/page.js +2 -1
- package/dist/page.js.map +1 -1
- package/dist/permissions-resolver.d.ts +26 -3
- package/dist/permissions-resolver.js +2 -1
- package/dist/permissions-resolver.js.map +1 -1
- package/dist/permissions.d.ts +7 -3
- package/dist/permissions.js +8 -6
- package/dist/permissions.js.map +1 -1
- package/dist/realtime.d.ts +24 -1
- package/dist/realtime.js +7 -1
- package/dist/realtime.js.map +1 -1
- package/dist/request-tenant.d.ts +17 -13
- package/dist/request-tenant.js +54 -42
- package/dist/request-tenant.js.map +1 -1
- package/dist/tenant-members.d.ts +26 -0
- package/dist/tenant-members.js +29 -0
- package/dist/tenant-members.js.map +1 -0
- package/dist/tenant-ownership.d.ts +4 -1
- package/dist/tenant-ownership.js +12 -17
- package/dist/tenant-ownership.js.map +1 -1
- package/dist/tenant-scoped-model.d.ts +2 -1
- package/dist/tenant-scoped-model.js +4 -3
- package/dist/tenant-scoped-model.js.map +1 -1
- package/docs/1.core/10.layout-banners.md +57 -2
- package/docs/1.core/2.pages-and-modules.md +20 -11
- package/docs/1.core/4.permissions.md +34 -1
- package/docs/1.core/5.tenancy.md +37 -6
- package/docs/1.core/7.hooks.md +12 -2
- package/docs/1.core/8.realtime.md +24 -3
- package/docs/2.auth/2.authentication.md +3 -3
- package/docs/3.base/1.introduction.md +1 -0
- package/docs/3.base/10.display-blocks.md +20 -2
- package/docs/3.base/2.types.md +7 -5
- package/docs/3.base/3.forms.md +21 -6
- package/docs/3.base/4.tables.md +14 -9
- package/docs/3.base/5.charts-and-widgets.md +8 -4
- package/docs/3.base/6.layout.md +38 -1
- package/docs/3.base/8.data-types.md +14 -7
- package/docs/4.notifications/3.sending.md +4 -3
- package/docs/5.html-render/1.introduction.md +5 -7
- package/package.json +3 -7
package/dist/invites.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invites.js","sourceRoot":"","sources":["../src/invites.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"invites.js","sourceRoot":"","sources":["../src/invites.ts"],"names":[],"mappings":"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"}
|
package/dist/layout-banners.d.ts
CHANGED
|
@@ -14,6 +14,28 @@ export declare const LayoutBannerVariant: {
|
|
|
14
14
|
readonly ERROR: "error";
|
|
15
15
|
};
|
|
16
16
|
export type LayoutBannerVariant = (typeof LayoutBannerVariant)[keyof typeof LayoutBannerVariant];
|
|
17
|
+
/**
|
|
18
|
+
* Which pages of the dashboard a layout banner shows on. The module area is
|
|
19
|
+
* everything under `MODULE_URL_PREFIX` (`/modules`): the modules page, the
|
|
20
|
+
* module store and every module's own pages.
|
|
21
|
+
*/
|
|
22
|
+
export declare const LayoutBannerScope: {
|
|
23
|
+
/**
|
|
24
|
+
* The application's pages, outside the module area: the default, for a
|
|
25
|
+
* banner about the application being built (overdue invoices, a stock
|
|
26
|
+
* alert) that has no business inside a module's back office.
|
|
27
|
+
*/
|
|
28
|
+
readonly APP: "app";
|
|
29
|
+
/** The module area only. */
|
|
30
|
+
readonly MODULES: "modules";
|
|
31
|
+
/**
|
|
32
|
+
* Every page, module area included: for a workspace-wide state that must
|
|
33
|
+
* follow the user wherever they go (billing past due, a suspended
|
|
34
|
+
* workspace, a maintenance window).
|
|
35
|
+
*/
|
|
36
|
+
readonly EVERYWHERE: "everywhere";
|
|
37
|
+
};
|
|
38
|
+
export type LayoutBannerScope = (typeof LayoutBannerScope)[keyof typeof LayoutBannerScope];
|
|
17
39
|
/**
|
|
18
40
|
* What a banner's `visible` or `resolve` resolver decides on: the request the
|
|
19
41
|
* site layout is being built for.
|
|
@@ -83,6 +105,18 @@ interface LayoutBannerBase {
|
|
|
83
105
|
order?: number;
|
|
84
106
|
/** Leading icon. Defaults to one matching the variant. */
|
|
85
107
|
icon?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Which pages the banner shows on, the same option on a text, a resolved
|
|
110
|
+
* and a component banner. Defaults to
|
|
111
|
+
* {@link LayoutBannerScope.APP}: the application's pages, not the module
|
|
112
|
+
* area. A workspace-wide state uses {@link LayoutBannerScope.EVERYWHERE}.
|
|
113
|
+
*
|
|
114
|
+
* The scope is applied by the dashboard against the current route, both
|
|
115
|
+
* when the page is server-rendered and on every client-side navigation, so
|
|
116
|
+
* moving in or out of the module area adds or removes the banner without
|
|
117
|
+
* re-fetching the site layout.
|
|
118
|
+
*/
|
|
119
|
+
scope?: LayoutBannerScope;
|
|
86
120
|
/**
|
|
87
121
|
* Whether the user can close the banner. A dismissal lasts for the browser
|
|
88
122
|
* session and is remembered in a cookie, so the server-rendered page already
|
|
@@ -148,8 +182,9 @@ export interface LayoutBannerResolvedInfo extends LayoutBannerBase {
|
|
|
148
182
|
props?: never;
|
|
149
183
|
}
|
|
150
184
|
/**
|
|
151
|
-
* A global banner rendered under the header of the dashboard layout, on
|
|
152
|
-
*
|
|
185
|
+
* A global banner rendered under the header of the dashboard layout, on the
|
|
186
|
+
* pages its `scope` selects — by default the application's pages, leaving the
|
|
187
|
+
* module area (`/modules/...`) out.
|
|
153
188
|
*/
|
|
154
189
|
export type LayoutBannerInfo = LayoutBannerTextInfo | LayoutBannerComponentInfo | LayoutBannerResolvedInfo;
|
|
155
190
|
/** @internal */
|
|
@@ -157,8 +192,9 @@ export declare namespace internal {
|
|
|
157
192
|
const RegisterLayoutBanner: RegisteringProxy<(info: LayoutBannerInfo) => void>;
|
|
158
193
|
}
|
|
159
194
|
/**
|
|
160
|
-
* Register a global banner under the dashboard header
|
|
161
|
-
* `
|
|
195
|
+
* Register a global banner under the dashboard header, on the pages its
|
|
196
|
+
* `scope` selects (the application's pages by default, not the module area).
|
|
197
|
+
* Banners stack by `order`, and each one's `visible` or `resolve` resolver is evaluated
|
|
162
198
|
* server-side for every site layout request, so the banner is in the
|
|
163
199
|
* server-rendered page. When the state a resolver reads changes, call `NotifyMenuChanged(tenantId)` so the
|
|
164
200
|
* connected clients re-fetch their site layout.
|
package/dist/layout-banners.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.internal = exports.LayoutBannerVariant = void 0;
|
|
3
|
+
exports.internal = exports.LayoutBannerScope = exports.LayoutBannerVariant = void 0;
|
|
4
4
|
exports.RegisterLayoutBanner = RegisterLayoutBanner;
|
|
5
5
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
6
6
|
/**
|
|
@@ -13,14 +13,36 @@ exports.LayoutBannerVariant = {
|
|
|
13
13
|
WARNING: "warning",
|
|
14
14
|
ERROR: "error",
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Which pages of the dashboard a layout banner shows on. The module area is
|
|
18
|
+
* everything under `MODULE_URL_PREFIX` (`/modules`): the modules page, the
|
|
19
|
+
* module store and every module's own pages.
|
|
20
|
+
*/
|
|
21
|
+
exports.LayoutBannerScope = {
|
|
22
|
+
/**
|
|
23
|
+
* The application's pages, outside the module area: the default, for a
|
|
24
|
+
* banner about the application being built (overdue invoices, a stock
|
|
25
|
+
* alert) that has no business inside a module's back office.
|
|
26
|
+
*/
|
|
27
|
+
APP: "app",
|
|
28
|
+
/** The module area only. */
|
|
29
|
+
MODULES: "modules",
|
|
30
|
+
/**
|
|
31
|
+
* Every page, module area included: for a workspace-wide state that must
|
|
32
|
+
* follow the user wherever they go (billing past due, a suspended
|
|
33
|
+
* workspace, a maintenance window).
|
|
34
|
+
*/
|
|
35
|
+
EVERYWHERE: "everywhere",
|
|
36
|
+
};
|
|
16
37
|
/** @internal */
|
|
17
38
|
var internal;
|
|
18
39
|
(function (internal) {
|
|
19
40
|
internal.RegisterLayoutBanner = new interface_core_1.RegisteringProxy();
|
|
20
41
|
})(internal || (exports.internal = internal = {}));
|
|
21
42
|
/**
|
|
22
|
-
* Register a global banner under the dashboard header
|
|
23
|
-
* `
|
|
43
|
+
* Register a global banner under the dashboard header, on the pages its
|
|
44
|
+
* `scope` selects (the application's pages by default, not the module area).
|
|
45
|
+
* Banners stack by `order`, and each one's `visible` or `resolve` resolver is evaluated
|
|
24
46
|
* server-side for every site layout request, so the banner is in the
|
|
25
47
|
* server-rendered page. When the state a resolver reads changes, call `NotifyMenuChanged(tenantId)` so the
|
|
26
48
|
* connected clients re-fetch their site layout.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-banners.js","sourceRoot":"","sources":["../src/layout-banners.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"layout-banners.js","sourceRoot":"","sources":["../src/layout-banners.ts"],"names":[],"mappings":";;;AA0OA,oDAGC;AA7OD,+DAA8D;AAM9D;;;;GAIG;AACU,QAAA,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACN,CAAC;AAKX;;;;GAIG;AACU,QAAA,iBAAiB,GAAG;IAC/B;;;;OAIG;IACH,GAAG,EAAE,KAAK;IACV,4BAA4B;IAC5B,OAAO,EAAE,SAAS;IAClB;;;;OAIG;IACH,UAAU,EAAE,YAAY;CAChB,CAAC;AA8KX,gBAAgB;AAChB,IAAiB,QAAQ,CAIxB;AAJD,WAAiB,QAAQ;IACV,6BAAoB,GAAG,IAAI,iCAAgB,EAErD,CAAC;AACN,CAAC,EAJgB,QAAQ,wBAAR,QAAQ,QAIxB;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAAC,IAAsB;IACzD,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RegisteringProxy } from "@antelopejs/interface-core";
|
|
2
|
-
import type { DeliveryOptions, NotificationCategoryInfo, NotificationData, NotificationSubjectInfo, ReadScope } from "./types";
|
|
2
|
+
import type { DeliveryOptions, NotificationCategoryInfo, NotificationData, NotificationSubjectInfo, ReadScope, RoleSendOptions } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
@@ -9,6 +9,6 @@ export declare namespace internal {
|
|
|
9
9
|
const RegisterNotificationSubject: RegisteringProxy<(info: NotificationSubjectInfo) => void>;
|
|
10
10
|
const SendToUser: (userId: string, data: NotificationData, groupId?: string | undefined, idempotencyKey?: string | undefined, delivery?: DeliveryOptions | undefined) => Promise<void>;
|
|
11
11
|
const SendToUsers: (userIds: string[], data: NotificationData, readScope?: ReadScope | undefined, idempotencyKey?: string | undefined, delivery?: DeliveryOptions | undefined) => Promise<void>;
|
|
12
|
-
const SendToRoles: (roleIds: string[], data: NotificationData,
|
|
12
|
+
const SendToRoles: (roleIds: string[], data: NotificationData, options?: RoleSendOptions | undefined) => Promise<void>;
|
|
13
13
|
const SendToAll: (data: NotificationData, readScope?: ReadScope | undefined, idempotencyKey?: string | undefined, delivery?: DeliveryOptions | undefined) => Promise<void>;
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/notifications/internal.ts"],"names":[],"mappings":";;;AAAA,+DAGoC;
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/notifications/internal.ts"],"names":[],"mappings":";;;AAAA,+DAGoC;AAUpC,8EAA8E;AAC9E,+EAA+E;AAC/E,6BAA6B;AAE7B;;GAEG;AACH,IAAiB,QAAQ,CAmDxB;AAnDD,WAAiB,QAAQ;IACV,4BAAmB,GAC9B,IAAA,kCAAiB,GAA0B,CAAC;IAEjC,qCAA4B,GAAG,IAAI,iCAAgB,EAE7D,CAAC;IACS,oCAA2B,GAAG,IAAI,iCAAgB,EAE5D,CAAC;IAES,mBAAU,GACrB,IAAA,kCAAiB,GAQd,CAAC;IAEO,oBAAW,GACtB,IAAA,kCAAiB,GAQd,CAAC;IAEO,oBAAW,GACtB,IAAA,kCAAiB,GAMd,CAAC;IAEO,kBAAS,GACpB,IAAA,kCAAiB,GAOd,CAAC;AACR,CAAC,EAnDgB,QAAQ,wBAAR,QAAQ,QAmDxB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NotificationData, SendOptions } from "./types";
|
|
1
|
+
import type { NotificationData, RoleSendOptions, SendOptions } from "./types";
|
|
2
2
|
export declare class SendableNotification {
|
|
3
3
|
private readonly data;
|
|
4
4
|
constructor(data: NotificationData);
|
|
@@ -11,7 +11,8 @@ export declare class SendableNotification {
|
|
|
11
11
|
toUsers(userIds: string[], options?: SendOptions): Promise<void>;
|
|
12
12
|
/** Explicit capability for durable outbox delivery; older DMS versions do not expose this method. */
|
|
13
13
|
toUsersIdempotently(userIds: string[], idempotencyKey: string, options?: SendOptions): Promise<void>;
|
|
14
|
-
|
|
14
|
+
/** Sends to the holders of any of `roleIds`, in `options.tenantId` only when set. */
|
|
15
|
+
toRoles(roleIds: string[], options?: RoleSendOptions): Promise<void>;
|
|
15
16
|
broadcast(options?: SendOptions): Promise<void>;
|
|
16
17
|
private requireIdempotencySupport;
|
|
17
18
|
}
|
|
@@ -27,9 +27,10 @@ class SendableNotification {
|
|
|
27
27
|
async toUsersIdempotently(userIds, idempotencyKey, options = {}) {
|
|
28
28
|
await this.toUsers(userIds, { ...options, idempotencyKey });
|
|
29
29
|
}
|
|
30
|
+
/** Sends to the holders of any of `roleIds`, in `options.tenantId` only when set. */
|
|
30
31
|
async toRoles(roleIds, options = {}) {
|
|
31
32
|
await this.requireIdempotencySupport(options);
|
|
32
|
-
await internal_1.internal.SendToRoles(roleIds, this.data, options
|
|
33
|
+
await internal_1.internal.SendToRoles(roleIds, this.data, options);
|
|
33
34
|
}
|
|
34
35
|
async broadcast(options = {}) {
|
|
35
36
|
await this.requireIdempotencySupport(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendable.js","sourceRoot":"","sources":["../../src/notifications/sendable.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;
|
|
1
|
+
{"version":3,"file":"sendable.js","sourceRoot":"","sources":["../../src/notifications/sendable.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAQtC,SAAS,UAAU,CAAC,OAAoB;IACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,MAAa,oBAAoB;IACd,IAAI,CAAmB;IAExC,YAAY,IAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAqB,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,UAAuB,EAAE;QACpD,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAQ,CAAC,UAAU,CACvB,MAAM,EACN,IAAI,CAAC,IAAI,EACT,SAAS,EACT,OAAO,CAAC,cAAc,EACtB,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE,UAAuB,EAAE;QACxD,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAQ,CAAC,WAAW,CACxB,OAAO,EACP,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,cAAc,EACtB,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,qGAAqG;IACrG,KAAK,CAAC,mBAAmB,CACvB,OAAiB,EACjB,cAAsB,EACtB,UAAuB,EAAE;QAEzB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,qFAAqF;IACrF,KAAK,CAAC,OAAO,CACX,OAAiB,EACjB,UAA2B,EAAE;QAE7B,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAuB,EAAE;QACvC,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAQ,CAAC,SAAS,CACtB,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,cAAc,EACtB,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,OAAoB;QAC1D,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO;QACjD,IAAI,CAAC,MAAM,mBAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;CACF;AApED,oDAoEC"}
|
|
@@ -41,6 +41,15 @@ export interface SendOptions extends DeliveryOptions {
|
|
|
41
41
|
/** Stable event key, unique across notification producers. Retries preserve delivery and dismissal state. */
|
|
42
42
|
idempotencyKey?: string;
|
|
43
43
|
}
|
|
44
|
+
/** Options of `toRoles`: a send to the holders of roles. */
|
|
45
|
+
export interface RoleSendOptions extends SendOptions {
|
|
46
|
+
/**
|
|
47
|
+
* Only the members of this tenant holding the roles. Role ids belong to a
|
|
48
|
+
* tenant, so a send about one tenant names it; without it, the holders are
|
|
49
|
+
* looked up in every tenant.
|
|
50
|
+
*/
|
|
51
|
+
tenantId?: string;
|
|
52
|
+
}
|
|
44
53
|
export interface NotificationData {
|
|
45
54
|
icon: string;
|
|
46
55
|
title: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ControllerClass } from "@antelopejs/interface-api";
|
|
2
|
+
import { EventProxy } from "@antelopejs/interface-core";
|
|
2
3
|
import { type ComponentInfo } from "../component";
|
|
3
4
|
import type { CategoryInfo, DynamicMenuResolver, MenuOptions } from "./types";
|
|
4
5
|
export declare const RegisterPage: () => import("@antelopejs/interface-core/decorators").ClassDecorator<import("@antelopejs/interface-core/decorators").Class<any, any[]>>;
|
|
@@ -224,6 +225,36 @@ export interface FrontendPublicEndpoint {
|
|
|
224
225
|
headers?: string[];
|
|
225
226
|
}
|
|
226
227
|
export declare const AddFrontendModule: (config: AddFrontendModuleOptions) => Promise<void>;
|
|
228
|
+
/**
|
|
229
|
+
* A module's frontend registration as both the backend and the frontend build
|
|
230
|
+
* compute it from the module's configuration. Its `privateOptions`, if any,
|
|
231
|
+
* hold their shape only, every value an empty string: the backend fills in its
|
|
232
|
+
* secrets before `AddFrontendModule`, and the frontend server fills them from
|
|
233
|
+
* its own environment when it starts (`DMS_HTML_RENDER_SECRET`,
|
|
234
|
+
* `DMS_PRIVATE_OPTIONS`…).
|
|
235
|
+
*/
|
|
236
|
+
export type FrontendModuleRegistration = AddFrontendModuleOptions;
|
|
237
|
+
/** What a {@link FrontendModuleFunction} knows besides the module's config. */
|
|
238
|
+
export interface FrontendModuleContext {
|
|
239
|
+
/** Whether the project runs in development, as the core reports it. */
|
|
240
|
+
dev: boolean;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* The pure `config → registration` function a module ships with its
|
|
244
|
+
* frontend, named in its package.json:
|
|
245
|
+
*
|
|
246
|
+
* ```json
|
|
247
|
+
* { "dmsFrontend": "dist/frontend-module.js" }
|
|
248
|
+
* ```
|
|
249
|
+
*
|
|
250
|
+
* The file exports it as `frontendModule`. The backend passes its result to
|
|
251
|
+
* `AddFrontendModule` (adding the private options); `@antelopejs/dms-frontend`
|
|
252
|
+
* calls it with the configuration it evaluates from `antelope.config.ts`, so
|
|
253
|
+
* a frontend builds and starts without asking a backend. It reads nothing
|
|
254
|
+
* but its arguments: no runtime interface, no database, no network. A module
|
|
255
|
+
* that registers no frontend in this configuration returns `undefined`.
|
|
256
|
+
*/
|
|
257
|
+
export type FrontendModuleFunction<TConfig = unknown> = (config: TConfig, context: FrontendModuleContext) => FrontendModuleRegistration | undefined;
|
|
227
258
|
export interface FrontendModuleMetadata {
|
|
228
259
|
name: string;
|
|
229
260
|
sourcePath: string;
|
|
@@ -255,3 +286,16 @@ export interface FrontendModuleMetadata {
|
|
|
255
286
|
}
|
|
256
287
|
/** Returns registered frontend source metadata for server-side module discovery, excluding private options. */
|
|
257
288
|
export declare const GetFrontendModules: () => Promise<FrontendModuleMetadata[]>;
|
|
289
|
+
/**
|
|
290
|
+
* Fired whenever the list {@link GetFrontendModules} returns changes: a
|
|
291
|
+
* module registered its frontend (or replaced it with a higher priority), or
|
|
292
|
+
* a module was taken down with its frontend. Modules start in parallel, so a
|
|
293
|
+
* module that reads the list in its own `start()` may run before another
|
|
294
|
+
* registers: it registers a handler, reads the list once, and reads it again
|
|
295
|
+
* in the handler.
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* FrontendModulesChanged.register(() => void refresh());
|
|
299
|
+
* await refresh(); // reads GetFrontendModules()
|
|
300
|
+
*/
|
|
301
|
+
export declare const FrontendModulesChanged: EventProxy<() => void>;
|
package/dist/page/controllers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GetFrontendModules = exports.AddFrontendModule = exports.NotifyMenuChanged = exports.RegisterPageExtension = exports.RegisterPage = void 0;
|
|
3
|
+
exports.FrontendModulesChanged = exports.GetFrontendModules = exports.AddFrontendModule = exports.NotifyMenuChanged = exports.RegisterPageExtension = exports.RegisterPage = void 0;
|
|
4
4
|
exports.Category = Category;
|
|
5
5
|
exports.PageController = PageController;
|
|
6
6
|
exports.RootPageController = RootPageController;
|
|
@@ -260,4 +260,17 @@ function RootCategory(id, options) {
|
|
|
260
260
|
exports.AddFrontendModule = (0, interface_core_1.InterfaceFunction)();
|
|
261
261
|
/** Returns registered frontend source metadata for server-side module discovery, excluding private options. */
|
|
262
262
|
exports.GetFrontendModules = (0, interface_core_1.InterfaceFunction)();
|
|
263
|
+
/**
|
|
264
|
+
* Fired whenever the list {@link GetFrontendModules} returns changes: a
|
|
265
|
+
* module registered its frontend (or replaced it with a higher priority), or
|
|
266
|
+
* a module was taken down with its frontend. Modules start in parallel, so a
|
|
267
|
+
* module that reads the list in its own `start()` may run before another
|
|
268
|
+
* registers: it registers a handler, reads the list once, and reads it again
|
|
269
|
+
* in the handler.
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* FrontendModulesChanged.register(() => void refresh());
|
|
273
|
+
* await refresh(); // reads GetFrontendModules()
|
|
274
|
+
*/
|
|
275
|
+
exports.FrontendModulesChanged = new interface_core_1.EventProxy("dms.page.FrontendModulesChanged");
|
|
263
276
|
//# sourceMappingURL=controllers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@ import type { ComponentInfo, ComponentFilterContext, ComponentInfoSerialized } f
|
|
|
7
7
|
* left out when it hides them.
|
|
8
8
|
* `loadPermissions` is only called when a button declares a permission. When
|
|
9
9
|
* one declares an `availability`, the layout says which page query it was
|
|
10
|
-
* resolved for (`headerActionsQuery`), so the header
|
|
10
|
+
* resolved for (`headerActionsQuery`, `headerActionsParams`), so the header
|
|
11
|
+
* asks again for another.
|
|
11
12
|
*
|
|
12
13
|
* @internal
|
|
13
14
|
*/
|
|
@@ -21,7 +21,8 @@ async function serveHeaderButton(button, permissions, pagePermissionId, context)
|
|
|
21
21
|
* left out when it hides them.
|
|
22
22
|
* `loadPermissions` is only called when a button declares a permission. When
|
|
23
23
|
* one declares an `availability`, the layout says which page query it was
|
|
24
|
-
* resolved for (`headerActionsQuery`), so the header
|
|
24
|
+
* resolved for (`headerActionsQuery`, `headerActionsParams`), so the header
|
|
25
|
+
* asks again for another.
|
|
25
26
|
*
|
|
26
27
|
* @internal
|
|
27
28
|
*/
|
|
@@ -39,6 +40,7 @@ async function filterLayoutHeaderActions(layout, loadPermissions, context, pageP
|
|
|
39
40
|
};
|
|
40
41
|
if (buttons.some((button) => button.availability)) {
|
|
41
42
|
servedOptions.headerActionsQuery = context.query ?? {};
|
|
43
|
+
servedOptions.headerActionsParams = context.params ?? {};
|
|
42
44
|
}
|
|
43
45
|
return { ...layout, options: servedOptions };
|
|
44
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-filter.js","sourceRoot":"","sources":["../../../src/page/internal/layout-filter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"layout-filter.js","sourceRoot":"","sources":["../../../src/page/internal/layout-filter.ts"],"names":[],"mappings":";;AAqDA,8DAyBC;AAsED,gEAkBC;AAtKD,iFAAkF;AAalF,yDAA4D;AAC5D,oEAGwC;AAExC,KAAK,UAAU,iBAAiB,CAC9B,MAAgC,EAChC,WAAuC,EACvC,gBAAoC,EACpC,OAA+B;IAE/B,MAAM,EACJ,UAAU,EAAE,WAAW,EACvB,YAAY,EAAE,aAAa,EAC3B,YAAY,EACZ,GAAG,MAAM,EACV,GAAG,MAAM,CAAC;IACX,IACE,IAAA,mCAAiB,EAAC,MAAM,CAAC;QACzB,CAAC,CAAC,MAAM,IAAA,qCAAmB,EAAC,MAAM,WAAW,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,EAC3E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAA,6CAAuB,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,yBAAyB,CAC7C,MAAoC,EACpC,eAA2C,EAC3C,OAA+B,EAC/B,gBAAoC;IAEpC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAqD,CAAC;IAC9E,MAAM,OAAO,GAAG,OAAO,EAAE,aAAa,CAAC;IACvC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,MAAwC,CAAC;IAC7C,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAClE,CACF,CAAC;IACF,MAAM,aAAa,GAAmC;QACpD,GAAG,OAAO;QACV,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC;KAC/D,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAClD,aAAa,CAAC,kBAAkB,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,aAAkB,EAAE,CAAC;AACpD,CAAC;AAQD,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,MAAM,eAAe,GAAG,WAAW,CAAC;AACpC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEnC,iEAAiE;AACjE,SAAS,sBAAsB,CAC7B,WAAmB,EACnB,SAAkC;IAElC,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAyB,CAAC;IAClE,MAAM,OAAO,GAAiC,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;SACxE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,gBAAgB,CAAC;SACzD,GAAG,CACF,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACrE,GAAG,MAAM;QACT,EAAE,EAAE,GAAG,WAAW,IAAI,EAAE,IAAI,KAAK,EAAE;QACnC,WAAW;QACX,QAAQ,EAAE,EAAE;KACb,CAAC,CACH,CAAC;IACJ,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QAClE,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK;YAAE,OAAO,OAAO,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,GAAG,WAAW,MAAM;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,gBAAgB;YACpC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,eAAe;YACjC,KAAK,EAAE,gBAAgB;YACvB,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,QAAgB,EAChB,SAAkC;IAElC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1D,iBAAiB,CACf,IAAA,yCAAsB,EAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,EAC1C,KAAK,CAAC,SAAS,CAChB,CACF,CAAC;IACF,OAAO,CAAC,GAAG,sBAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,0BAA0B,CACxC,MAAoC,EACpC,UAAmD;IAEnD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CACpE,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CACjC,CAAC;IACF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAEpC,CAAC;IACF,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE;YACP,GAAG,OAAO;YACV,aAAa,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;SACxD;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -11,6 +11,13 @@ export declare const RequestTenantIdProperty: () => import("@antelopejs/interfac
|
|
|
11
11
|
export declare function readRequestQuery(ctx: Pick<RequestContext, "url">): Record<string, string>;
|
|
12
12
|
/** @internal */
|
|
13
13
|
export declare const RequestQueryProperty: () => import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator;
|
|
14
|
+
/**
|
|
15
|
+
* The route parameters of the request (`:id` of a page's layout route), as a
|
|
16
|
+
* header button's `availability` reads them.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare const RequestRouteParametersProperty: () => import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator;
|
|
14
21
|
/** @internal */
|
|
15
22
|
export declare function isPageInsideModule(pageInfo: PageInfo): boolean;
|
|
16
23
|
/** @internal */
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
//
|
|
6
6
|
// Split out of metadata.ts.
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.RequestQueryProperty = exports.RequestTenantIdProperty = void 0;
|
|
8
|
+
exports.RequestRouteParametersProperty = exports.RequestQueryProperty = exports.RequestTenantIdProperty = void 0;
|
|
9
9
|
exports.readRequestQuery = readRequestQuery;
|
|
10
10
|
exports.isPageInsideModule = isPageInsideModule;
|
|
11
11
|
exports.logModuleRouteGated = logModuleRouteGated;
|
|
@@ -25,7 +25,7 @@ const request_tenant_1 = require("../../request-tenant");
|
|
|
25
25
|
const types_1 = require("../types");
|
|
26
26
|
/** @internal */
|
|
27
27
|
exports.RequestTenantIdProperty = (0, decorators_1.MakeParameterAndPropertyDecorator)((target, key, index) => {
|
|
28
|
-
(0, interface_api_1.SetParameterProvider)(target, key, index, (ctx) => (0, request_tenant_1.
|
|
28
|
+
(0, interface_api_1.SetParameterProvider)(target, key, index, (ctx) => (0, request_tenant_1.resolveRequestTenantId)(ctx));
|
|
29
29
|
});
|
|
30
30
|
/**
|
|
31
31
|
* The query of the request, one value per name (the last one given), as a
|
|
@@ -40,6 +40,17 @@ function readRequestQuery(ctx) {
|
|
|
40
40
|
exports.RequestQueryProperty = (0, decorators_1.MakeParameterAndPropertyDecorator)((target, key, index) => {
|
|
41
41
|
(0, interface_api_1.SetParameterProvider)(target, key, index, readRequestQuery);
|
|
42
42
|
});
|
|
43
|
+
/**
|
|
44
|
+
* The route parameters of the request (`:id` of a page's layout route), as a
|
|
45
|
+
* header button's `availability` reads them.
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
exports.RequestRouteParametersProperty = (0, decorators_1.MakeParameterAndPropertyDecorator)((target, key, index) => {
|
|
50
|
+
(0, interface_api_1.SetParameterProvider)(target, key, index, (ctx) => ({
|
|
51
|
+
...ctx.routeParameters,
|
|
52
|
+
}));
|
|
53
|
+
});
|
|
43
54
|
/** @internal */
|
|
44
55
|
function isPageInsideModule(pageInfo) {
|
|
45
56
|
return pageInfo.fullSlug.startsWith(`${types_1.MODULE_URL_PREFIX}/`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-helpers.js","sourceRoot":"","sources":["../../../src/page/internal/metadata-helpers.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,eAAe;AACf,EAAE;AACF,4BAA4B;;;AAkC5B,4CAIC;
|
|
1
|
+
{"version":3,"file":"metadata-helpers.js","sourceRoot":"","sources":["../../../src/page/internal/metadata-helpers.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,eAAe;AACf,EAAE;AACF,4BAA4B;;;AAkC5B,4CAIC;AAwBD,gDAEC;AAKD,kDAIC;AAvED,6DAGmC;AACnC,sEAA0F;AAC1F,gEAA6D;AAC7D,8EAA8E;AAC9E,2EAA2E;AAC3E,mEAAmE;AACnE,kBAAkB;AAClB,yDAA8D;AAC9D,iEAAiE;AACjE,6DAA6D;AAC7D,6DAA6D;AAC7D,6CAA6C;AAC7C,2CAA2C;AAC3C,oCAA4D;AAC5D,gBAAgB;AACH,QAAA,uBAAuB,GAAG,IAAA,8CAAiC,EACtE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACrB,IAAA,oCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAmB,EAAE,EAAE,CAC/D,IAAA,uCAAsB,EAAC,GAAG,CAAC,CAC5B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,GAAgC;IAEhC,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,gBAAgB;AACH,QAAA,oBAAoB,GAAG,IAAA,8CAAiC,EACnE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACrB,IAAA,oCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC7D,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACU,QAAA,8BAA8B,GAAG,IAAA,8CAAiC,EAC7E,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACrB,IAAA,oCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAmB,EAAE,EAAE,CAAC,CAAC;QACjE,GAAG,GAAG,CAAC,eAAe;KACvB,CAAC,CAAC,CAAC;AACN,CAAC,CACF,CAAC;AAEF,gBAAgB;AAChB,SAAgB,kBAAkB,CAAC,QAAkB;IACnD,OAAO,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,yBAAiB,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE5C,gBAAgB;AAChB,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC5C,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,iBAAO,CAAC,IAAI,CAAC,sBAAsB,QAAQ,uBAAuB,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -8,6 +8,8 @@ export interface RouteCallbackContext {
|
|
|
8
8
|
tenantId: string;
|
|
9
9
|
/** The query of the layout request: the page URL's own. */
|
|
10
10
|
pageQuery: Record<string, string>;
|
|
11
|
+
/** The route parameters of the layout request: the page URL's own. */
|
|
12
|
+
pageParams: Record<string, string>;
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
15
|
* What one registration of a page created, and how to take it back down.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-registration.js","sourceRoot":"","sources":["../../../src/page/internal/page-registration.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,iDAAiD;AACjD,EAAE;AACF,4BAA4B;;;AAE5B,gEAA6D;
|
|
1
|
+
{"version":3,"file":"page-registration.js","sourceRoot":"","sources":["../../../src/page/internal/page-registration.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,iDAAiD;AACjD,EAAE;AACF,4BAA4B;;;AAE5B,gEAA6D;AAwB7D;;;;;;;;;;GAUG;AACH,MAAa,gBAAgB;IACV,SAAS,GAAsB,EAAE,CAAC;IAE5C,KAAK,CAAC,OAAmB;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iBAAO,CAAC,IAAI,CAAC,oCAAoC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AApBD,4CAoBC"}
|
|
@@ -14,24 +14,45 @@ async function filterComponentInfo(comp, permissionId, permissions, componentMap
|
|
|
14
14
|
filtered.options = await filterRequiredPermissionWatches(filtered.options, permissions);
|
|
15
15
|
return filtered;
|
|
16
16
|
}
|
|
17
|
+
const isPlainObject = (value) => !!value &&
|
|
18
|
+
typeof value === "object" &&
|
|
19
|
+
(Object.getPrototypeOf(value) === Object.prototype ||
|
|
20
|
+
Object.getPrototypeOf(value) === null);
|
|
17
21
|
/**
|
|
18
22
|
* The watch actions the caller may run: one gated by `requirePermission` is
|
|
19
23
|
* kept only when the caller holds that permission as everywhere else (an
|
|
20
24
|
* owner's `*` and the permission's ancestors included).
|
|
25
|
+
*
|
|
26
|
+
* Checked on the component's own options and on every component embedded in
|
|
27
|
+
* them: a host serializes what it opens (a table view's forms in a drawer or a
|
|
28
|
+
* modal, a dialog's content) into its options with `serializeSync()`, so those
|
|
29
|
+
* are not nodes of the page's tree. `watchActions` is the transport key the
|
|
30
|
+
* builder alone fills (it strips one a caller passes), so any object holding
|
|
31
|
+
* it is a component's options. A value with no gated watch keeps its identity.
|
|
21
32
|
*/
|
|
22
|
-
async function filterRequiredPermissionWatches(
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const opts = options;
|
|
27
|
-
if (!Array.isArray(opts.watchActions) || opts.watchActions.length === 0) {
|
|
28
|
-
return options;
|
|
33
|
+
async function filterRequiredPermissionWatches(value, permissions) {
|
|
34
|
+
if (Array.isArray(value)) {
|
|
35
|
+
const items = await Promise.all(value.map((item) => filterRequiredPermissionWatches(item, permissions)));
|
|
36
|
+
return items.every((item, index) => item === value[index]) ? value : items;
|
|
29
37
|
}
|
|
30
|
-
|
|
38
|
+
if (!isPlainObject(value))
|
|
39
|
+
return value;
|
|
40
|
+
const entries = await Promise.all(Object.entries(value).map(async ([key, item]) => [
|
|
41
|
+
key,
|
|
42
|
+
await filterRequiredPermissionWatches(item, permissions),
|
|
43
|
+
]));
|
|
44
|
+
const changed = entries.some(([key, item]) => item !== value[key]);
|
|
45
|
+
const next = changed ? Object.fromEntries(entries) : value;
|
|
46
|
+
if (!Array.isArray(next.watchActions))
|
|
47
|
+
return next;
|
|
48
|
+
const watches = next.watchActions;
|
|
49
|
+
const granted = await Promise.all(watches.map(async (w) => !w.requirePermission ||
|
|
31
50
|
(await (0, permissions_1.HasPermission)(permissions, w.requirePermission))));
|
|
51
|
+
if (granted.every(Boolean))
|
|
52
|
+
return next;
|
|
32
53
|
return {
|
|
33
|
-
...
|
|
34
|
-
watchActions:
|
|
54
|
+
...next,
|
|
55
|
+
watchActions: watches.filter((_, index) => granted[index]),
|
|
35
56
|
};
|
|
36
57
|
}
|
|
37
58
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-filter.js","sourceRoot":"","sources":["../../src/page/layout-filter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"layout-filter.js","sourceRoot":"","sources":["../../src/page/layout-filter.ts"],"names":[],"mappings":"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"}
|