@antelopejs/interface-dms 0.10.4 → 0.12.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 +19 -0
- package/README.md +21 -10
- package/dist/attachments.d.ts +15 -2
- package/dist/attachments.js +14 -1
- package/dist/attachments.js.map +1 -1
- package/dist/auth/db/models/sessions.model.d.ts +7 -5
- package/dist/auth/db/models/sessions.model.js +2 -9
- package/dist/auth/db/models/sessions.model.js.map +1 -1
- package/dist/auth/db/models/userExternalIdentities.model.d.ts +7 -5
- package/dist/auth/db/models/users.model.d.ts +7 -5
- package/dist/auth/db/tables/users.table.d.ts +2 -2
- package/dist/auth/db/tables/users.table.js.map +1 -1
- package/dist/auth/index.d.ts +4 -4
- package/dist/auth/internal/jwt-auth-decorator.d.ts +1 -1
- package/dist/auth/internal/jwt-auth-decorator.js +6 -3
- package/dist/auth/internal/jwt-auth-decorator.js.map +1 -1
- package/dist/auth/internal/request-authenticators.d.ts +12 -0
- package/dist/auth/internal/request-authenticators.js +53 -10
- package/dist/auth/internal/request-authenticators.js.map +1 -1
- package/dist/base/activity-feed.d.ts +34 -32
- package/dist/base/activity-feed.js +2 -0
- package/dist/base/activity-feed.js.map +1 -1
- package/dist/base/banner.d.ts +12 -10
- package/dist/base/banner.js +2 -0
- package/dist/base/banner.js.map +1 -1
- package/dist/base/block-registry/internal/describe.js +3 -9
- package/dist/base/block-registry/internal/describe.js.map +1 -1
- package/dist/base/block-registry/internal/ui.js +1 -1
- package/dist/base/block-registry/internal/ui.js.map +1 -1
- package/dist/base/card.d.ts +11 -9
- package/dist/base/card.js +2 -0
- package/dist/base/card.js.map +1 -1
- package/dist/base/chart-card.d.ts +4 -2
- package/dist/base/chart-card.js +2 -0
- package/dist/base/chart-card.js.map +1 -1
- package/dist/base/chart-schemas.d.ts +148 -148
- package/dist/base/chart.d.ts +65 -0
- package/dist/base/chart.js +65 -0
- package/dist/base/chart.js.map +1 -1
- package/dist/base/code-block.d.ts +5 -3
- package/dist/base/code-block.js +2 -0
- package/dist/base/code-block.js.map +1 -1
- package/dist/base/custom.d.ts +5 -0
- package/dist/base/custom.js +5 -0
- package/dist/base/custom.js.map +1 -1
- package/dist/base/data-types/default/address.d.ts +5 -0
- package/dist/base/data-types/default/address.js +5 -0
- package/dist/base/data-types/default/address.js.map +1 -1
- package/dist/base/data-types/default/choices.d.ts +20 -0
- package/dist/base/data-types/default/choices.js +20 -0
- package/dist/base/data-types/default/choices.js.map +1 -1
- package/dist/base/data-types/default/files.d.ts +22 -5
- package/dist/base/data-types/default/files.js +20 -0
- package/dist/base/data-types/default/files.js.map +1 -1
- package/dist/base/data-types/default/numbers.d.ts +15 -0
- package/dist/base/data-types/default/numbers.js +25 -9
- package/dist/base/data-types/default/numbers.js.map +1 -1
- package/dist/base/data-types/default/relations.d.ts +10 -2
- package/dist/base/data-types/default/relations.js +9 -6
- package/dist/base/data-types/default/relations.js.map +1 -1
- package/dist/base/data-types/default/strings.d.ts +25 -0
- package/dist/base/data-types/default/strings.js +25 -0
- package/dist/base/data-types/default/strings.js.map +1 -1
- package/dist/base/data-types/default-types.d.ts +1 -1
- package/dist/base/data-types/field-types.d.ts +10 -0
- package/dist/base/data-types/field-types.js +10 -0
- package/dist/base/data-types/field-types.js.map +1 -1
- package/dist/base/data-types/internal/relation-endpoints.js +1 -0
- package/dist/base/data-types/internal/relation-endpoints.js.map +1 -1
- package/dist/base/data-types/status-type.d.ts +5 -0
- package/dist/base/data-types/status-type.js +5 -0
- package/dist/base/data-types/status-type.js.map +1 -1
- package/dist/base/display.d.ts +6 -6
- package/dist/base/empty-state.d.ts +15 -13
- package/dist/base/empty-state.js +2 -0
- package/dist/base/empty-state.js.map +1 -1
- package/dist/base/form-block-schema.d.ts +50 -50
- package/dist/base/form-schema.d.ts +2 -0
- package/dist/base/form-schema.js +2 -0
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/grid.d.ts +4 -0
- package/dist/base/grid.js +4 -0
- package/dist/base/grid.js.map +1 -1
- package/dist/base/guard.d.ts +30 -28
- package/dist/base/guard.js +2 -0
- package/dist/base/guard.js.map +1 -1
- package/dist/base/helpers/archive-mode-helpers.d.ts +1 -1
- package/dist/base/helpers/file-refs.js +15 -15
- package/dist/base/helpers/file-refs.js.map +1 -1
- package/dist/base/internal/form-schema-validation.js +7 -1
- package/dist/base/internal/form-schema-validation.js.map +1 -1
- package/dist/base/internal/realtime-topics.js.map +1 -1
- package/dist/base/internal/searchable.d.ts +2 -1
- package/dist/base/internal/searchable.js +1 -3
- package/dist/base/internal/searchable.js.map +1 -1
- package/dist/base/key-value-list.d.ts +21 -19
- package/dist/base/key-value-list.js +2 -0
- package/dist/base/key-value-list.js.map +1 -1
- package/dist/base/kpi-card.d.ts +4 -2
- package/dist/base/kpi-card.js +2 -0
- package/dist/base/kpi-card.js.map +1 -1
- package/dist/base/live-toggle.d.ts +2 -0
- package/dist/base/live-toggle.js +2 -0
- package/dist/base/live-toggle.js.map +1 -1
- package/dist/base/meter.d.ts +23 -21
- package/dist/base/meter.js +2 -0
- package/dist/base/meter.js.map +1 -1
- package/dist/base/nav-card-grid.d.ts +24 -19
- package/dist/base/nav-card-grid.js +5 -0
- package/dist/base/nav-card-grid.js.map +1 -1
- package/dist/base/page-toolbar.d.ts +2 -0
- package/dist/base/page-toolbar.js +2 -0
- package/dist/base/page-toolbar.js.map +1 -1
- package/dist/base/period-selector.d.ts +3 -1
- package/dist/base/period-selector.js +2 -0
- package/dist/base/period-selector.js.map +1 -1
- package/dist/base/placeholder.d.ts +2 -0
- package/dist/base/placeholder.js +2 -0
- package/dist/base/placeholder.js.map +1 -1
- package/dist/base/resource-form-schema.d.ts +2 -2
- package/dist/base/searchable.d.ts +3 -2
- package/dist/base/searchable.js +2 -2
- package/dist/base/searchable.js.map +1 -1
- package/dist/base/section.d.ts +6 -2
- package/dist/base/section.js +4 -0
- package/dist/base/section.js.map +1 -1
- package/dist/base/stack.d.ts +6 -0
- package/dist/base/stack.js +6 -0
- package/dist/base/stack.js.map +1 -1
- package/dist/base/stat-group.d.ts +16 -14
- package/dist/base/stat-group.js +2 -0
- package/dist/base/stat-group.js.map +1 -1
- package/dist/base/tab.d.ts +10 -8
- package/dist/base/tab.js +2 -0
- package/dist/base/tab.js.map +1 -1
- package/dist/base/table-view/column-display.d.ts +1 -1
- package/dist/base/table-view/column-display.js.map +1 -1
- package/dist/base/table-view/data-functions.d.ts +10 -4
- package/dist/base/table-view/data-functions.js.map +1 -1
- package/dist/base/table-view/factory.d.ts +5 -0
- package/dist/base/table-view/factory.js +8 -4
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/auth.d.ts +17 -3
- package/dist/base/table-view/internal/auth.js +26 -5
- package/dist/base/table-view/internal/auth.js.map +1 -1
- package/dist/base/table-view/internal/column-conditions.d.ts +8 -1
- package/dist/base/table-view/internal/column-conditions.js +25 -13
- package/dist/base/table-view/internal/column-conditions.js.map +1 -1
- package/dist/base/table-view/internal/column-display.d.ts +1 -2
- package/dist/base/table-view/internal/column-display.js +3 -9
- package/dist/base/table-view/internal/column-display.js.map +1 -1
- package/dist/base/table-view/internal/factory-helpers.d.ts +1 -1
- package/dist/base/table-view/internal/factory-helpers.js +17 -14
- package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
- package/dist/base/table-view/internal/factory-lifecycle-created.d.ts +2 -3
- package/dist/base/table-view/internal/factory-lifecycle-created.js +5 -5
- package/dist/base/table-view/internal/factory-lifecycle-created.js.map +1 -1
- package/dist/base/table-view/internal/factory-lifecycle-filter.d.ts +2 -2
- package/dist/base/table-view/internal/factory-private-actions.d.ts +2 -2
- package/dist/base/table-view/internal/files.d.ts +2 -1
- package/dist/base/table-view/internal/files.js +14 -5
- package/dist/base/table-view/internal/files.js.map +1 -1
- package/dist/base/table-view/internal/footer.d.ts +3 -3
- package/dist/base/table-view/internal/footer.js +16 -15
- package/dist/base/table-view/internal/footer.js.map +1 -1
- package/dist/base/table-view/internal/guards.d.ts +27 -5
- package/dist/base/table-view/internal/guards.js +127 -49
- package/dist/base/table-view/internal/guards.js.map +1 -1
- package/dist/base/table-view/internal/meta-helpers.d.ts +1 -1
- package/dist/base/table-view/internal/meta-helpers.js +3 -4
- package/dist/base/table-view/internal/meta-helpers.js.map +1 -1
- package/dist/base/table-view/internal/meta.js +2 -3
- package/dist/base/table-view/internal/meta.js.map +1 -1
- package/dist/base/table-view/internal/option-contract.d.ts +1 -1
- package/dist/base/table-view/internal/option-footer.d.ts +2 -2
- package/dist/base/table-view/internal/option-row-actions.d.ts +1 -1
- package/dist/base/table-view/internal/realtime.d.ts +52 -11
- package/dist/base/table-view/internal/realtime.js +23 -16
- package/dist/base/table-view/internal/realtime.js.map +1 -1
- package/dist/base/table-view/internal/resource-form.d.ts +1 -1
- package/dist/base/table-view/internal/resource-form.js +1 -1
- package/dist/base/table-view/internal/resource-form.js.map +1 -1
- package/dist/base/table-view/internal/row-actions-schema.d.ts +12 -12
- package/dist/base/table-view/internal/row-rule-shape.d.ts +11 -5
- package/dist/base/table-view/internal/row-rule-shape.js +60 -30
- package/dist/base/table-view/internal/row-rule-shape.js.map +1 -1
- package/dist/base/table-view/internal/row-rules.d.ts +28 -1
- package/dist/base/table-view/internal/row-rules.js +8 -19
- package/dist/base/table-view/internal/row-rules.js.map +1 -1
- package/dist/base/table-view/internal/tabs.d.ts +1 -1
- package/dist/base/table-view/internal/tabs.js +1 -4
- package/dist/base/table-view/internal/tabs.js.map +1 -1
- package/dist/base/table-view/internal/validation.d.ts +2 -2
- package/dist/base/table-view/internal/validation.js +7 -7
- package/dist/base/table-view/internal/validation.js.map +1 -1
- package/dist/base/table-view/meta.d.ts +7 -6
- package/dist/base/table-view/meta.js +12 -7
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/resource-form.d.ts +3 -1
- package/dist/base/table-view/resource-form.js +2 -0
- package/dist/base/table-view/resource-form.js.map +1 -1
- package/dist/base/table-view/routes.d.ts +73 -21
- package/dist/base/table-view/routes.js +13 -10
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +152 -152
- 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 +1 -1
- package/dist/base/table-view.js.map +1 -1
- package/dist/base/top-list-card.d.ts +35 -33
- package/dist/base/top-list-card.js +2 -0
- package/dist/base/top-list-card.js.map +1 -1
- package/dist/base/types/error.js +5 -2
- package/dist/base/types/error.js.map +1 -1
- package/dist/base/types/guards.d.ts +4 -4
- package/dist/base/types/json.d.ts +1 -10
- package/dist/base/types/row-action.d.ts +7 -7
- package/dist/component-options/confirm-dialog.d.ts +2 -0
- package/dist/component-options/confirm-dialog.js.map +1 -1
- package/dist/component-options/data-type.d.ts +2 -2
- package/dist/component-options/data-type.js +7 -7
- package/dist/component-options/data-type.js.map +1 -1
- package/dist/component-options/row-action.d.ts +14 -9
- package/dist/component-slots.d.ts +11 -2
- package/dist/component-slots.js +1 -0
- package/dist/component-slots.js.map +1 -1
- package/dist/component.d.ts +7 -8
- package/dist/component.js +17 -25
- package/dist/component.js.map +1 -1
- package/dist/data-controllers/members.d.ts +11 -7
- package/dist/data-controllers/members.js +1 -1
- package/dist/data-controllers/members.js.map +1 -1
- package/dist/data-controllers/roles.d.ts +32 -10
- package/dist/db/internal/exportJobs.model.d.ts +7 -5
- package/dist/db/internal/inviteResolutions.model.d.ts +7 -5
- package/dist/db/internal/tenantLifecycle.model.d.ts +7 -5
- package/dist/db/models/roles.model.d.ts +7 -5
- package/dist/db/models/tenantMembers.model.d.ts +7 -5
- package/dist/db/models/tenants.model.d.ts +7 -5
- package/dist/db/models/user_invites.model.d.ts +7 -5
- package/dist/guards.d.ts +1 -1
- package/dist/hooks.d.ts +1 -2
- package/dist/hooks.js +33 -26
- package/dist/hooks.js.map +1 -1
- package/dist/internal/attachments.d.ts +2 -2
- package/dist/internal/component-builder.js +2 -1
- package/dist/internal/component-builder.js.map +1 -1
- package/dist/internal/component-serialization.d.ts +2 -4
- package/dist/internal/component-serialization.js +4 -3
- package/dist/internal/component-serialization.js.map +1 -1
- package/dist/internal/component-slots.d.ts +19 -2
- package/dist/internal/component-slots.js +35 -12
- package/dist/internal/component-slots.js.map +1 -1
- package/dist/internal/component-watch-filter.d.ts +11 -0
- package/dist/internal/component-watch-filter.js +22 -0
- package/dist/internal/component-watch-filter.js.map +1 -0
- package/dist/internal/component-watches.js +0 -1
- package/dist/internal/component-watches.js.map +1 -1
- package/dist/internal/own-entry.d.ts +7 -0
- package/dist/internal/own-entry.js +13 -0
- package/dist/internal/own-entry.js.map +1 -0
- package/dist/invite-extension-payloads.d.ts +14 -2
- package/dist/invite-extensions/internal/delivery.js +1 -2
- package/dist/invite-extensions/internal/delivery.js.map +1 -1
- package/dist/invite-extensions/internal/edit.d.ts +2 -1
- package/dist/invite-extensions/internal/edit.js +8 -9
- package/dist/invite-extensions/internal/edit.js.map +1 -1
- package/dist/invite-extensions/internal/form-slot.js +8 -15
- package/dist/invite-extensions/internal/form-slot.js.map +1 -1
- package/dist/invite-extensions/internal/payload-slices.d.ts +33 -3
- package/dist/invite-extensions/internal/payload-slices.js +84 -19
- package/dist/invite-extensions/internal/payload-slices.js.map +1 -1
- package/dist/invite-extensions/internal/types.d.ts +10 -1
- package/dist/invite-resolution.js +6 -4
- package/dist/invite-resolution.js.map +1 -1
- package/dist/json.d.ts +10 -0
- package/dist/json.js +3 -0
- package/dist/json.js.map +1 -0
- package/dist/layout-banners.d.ts +5 -2
- package/dist/layout-banners.js.map +1 -1
- package/dist/page/controllers.d.ts +2 -2
- package/dist/page/internal/extension-validation.js +3 -2
- package/dist/page/internal/extension-validation.js.map +1 -1
- package/dist/page/internal/metadata-layout.js +1 -1
- package/dist/page/internal/metadata-layout.js.map +1 -1
- package/dist/page/internal/metadata-publish.js +3 -2
- package/dist/page/internal/metadata-publish.js.map +1 -1
- package/dist/page/internal/metadata-registration.js +5 -4
- package/dist/page/internal/metadata-registration.js.map +1 -1
- package/dist/page/internal/metadata-upload-registration.d.ts +3 -1
- package/dist/page/internal/metadata-upload-registration.js +9 -0
- package/dist/page/internal/metadata-upload-registration.js.map +1 -1
- package/dist/page/internal/metadata-uploads.d.ts +18 -5
- package/dist/page/internal/metadata-uploads.js +7 -8
- package/dist/page/internal/metadata-uploads.js.map +1 -1
- package/dist/page/internal/page-record.d.ts +2 -3
- package/dist/page/internal/page-record.js +19 -14
- package/dist/page/internal/page-record.js.map +1 -1
- package/dist/page/layout-filter.js +17 -6
- package/dist/page/layout-filter.js.map +1 -1
- package/dist/page/metadata.js +5 -7
- package/dist/page/metadata.js.map +1 -1
- package/dist/request-tenant.d.ts +10 -4
- package/dist/request-tenant.js +16 -34
- package/dist/request-tenant.js.map +1 -1
- package/dist/tenant-export.d.ts +2 -1
- package/dist/tenant-lifecycle.d.ts +13 -4
- package/dist/tenant-lifecycle.js +51 -18
- package/dist/tenant-lifecycle.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/uploads.js +42 -59
- package/dist/uploads.js.map +1 -1
- package/dist/utils/fire-and-forget.js.map +1 -1
- package/dist/utils/internal/decorated-class.d.ts +14 -0
- package/dist/utils/internal/decorated-class.js +37 -0
- package/dist/utils/internal/decorated-class.js.map +1 -0
- package/dist/utils/internal/type-check.d.ts +9 -0
- package/dist/utils/internal/type-check.js +13 -5
- package/dist/utils/internal/type-check.js.map +1 -1
- package/dist/utils/internal/value-parser.d.ts +1 -1
- package/dist/utils/internal/value-parser.js +22 -9
- package/dist/utils/internal/value-parser.js.map +1 -1
- package/dist/watch-actions.d.ts +1 -1
- package/docs/1.core/1.introduction.md +82 -77
- package/docs/1.core/10.layout-banners.md +57 -45
- package/docs/1.core/11.modules-and-dynamic-menus.md +178 -0
- package/docs/1.core/12.frontend-modules-and-request-helpers.md +155 -0
- package/docs/1.core/13.tenant-data-export.md +120 -0
- package/docs/1.core/2.pages-and-modules.md +140 -367
- package/docs/1.core/3.components.md +21 -22
- package/docs/1.core/4.permissions.md +92 -71
- package/docs/1.core/5.tenancy.md +112 -86
- package/docs/1.core/6.invites.md +90 -65
- package/docs/1.core/7.hooks.md +96 -166
- package/docs/1.core/8.realtime.md +44 -45
- package/docs/1.core/9.quick-actions.md +37 -30
- package/docs/2.auth/1.introduction.md +33 -35
- package/docs/2.auth/2.authentication.md +60 -38
- package/docs/2.auth/3.tokens-and-sessions.md +56 -55
- package/docs/2.auth/4.users.md +79 -51
- package/docs/2.auth/5.external-identities.md +25 -26
- package/docs/3.base/1.introduction.md +64 -60
- package/docs/3.base/10.display-blocks.md +15 -16
- package/docs/3.base/11.page-layouts.md +273 -0
- package/docs/3.base/12.table-row-actions.md +122 -0
- package/docs/3.base/13.table-filters-and-forms.md +104 -0
- package/docs/3.base/14.table-events-and-helpers.md +114 -0
- package/docs/3.base/15.table-sources-and-gates.md +24 -0
- package/docs/3.base/2.types.md +44 -41
- package/docs/3.base/3.forms.md +27 -28
- package/docs/3.base/4.tables.md +34 -367
- package/docs/3.base/5.charts-and-widgets.md +28 -29
- package/docs/3.base/6.layout.md +21 -270
- package/docs/3.base/8.data-types.md +39 -40
- package/docs/3.base/9.helpers.md +36 -38
- package/docs/4.notifications/1.introduction.md +22 -26
- package/docs/4.notifications/2.categories-and-subjects.md +58 -55
- package/docs/4.notifications/3.sending.md +72 -68
- package/docs/5.html-render/1.introduction.md +119 -81
- package/docs/5.html-render/2.built-in-emails.md +71 -51
- package/docs/index.md +18 -29
- package/docs/tsconfig.json +4 -0
- package/package.json +11 -11
- package/docs/images/emails-admin-invite.png +0 -0
- package/docs/images/emails-change-notice.png +0 -0
- package/docs/images/emails-change-verification.png +0 -0
- package/docs/images/emails-digest-logo-dark.png +0 -0
- package/docs/images/emails-digest-logo-light.png +0 -0
- package/docs/images/emails-digest.png +0 -0
- package/docs/images/emails-export-partial.png +0 -0
- package/docs/images/emails-export-ready.png +0 -0
- package/docs/images/emails-reset-password.png +0 -0
- package/docs/images/emails-two-factor.png +0 -0
- package/docs/images/emails-user-validation.png +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { PageHeaderButtonDeclared, PageRecordStatus } from "../../component-options/internal/page-layout";
|
|
2
2
|
import type { ComponentFilterContext, ComponentInfo } from "../../component";
|
|
3
|
-
type PageRecord = Readonly<Record<string, unknown>>;
|
|
4
3
|
export type { PageRecordStatus } from "../../component-options/internal/page-layout";
|
|
5
4
|
/** What reading the page's record answered. */
|
|
6
5
|
export interface PageRecordRead {
|
|
7
|
-
record?:
|
|
6
|
+
record?: Readonly<Record<string, unknown>>;
|
|
8
7
|
status: PageRecordStatus;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
@@ -24,4 +23,4 @@ export declare function readPageRecord(layout: ComponentInfo | undefined, contex
|
|
|
24
23
|
*
|
|
25
24
|
* @internal
|
|
26
25
|
*/
|
|
27
|
-
export declare function withPageRecord(button: PageHeaderButtonDeclared, declaresRecord: boolean, record:
|
|
26
|
+
export declare function withPageRecord(button: PageHeaderButtonDeclared, declaresRecord: boolean, record: Readonly<Record<string, unknown>> | undefined): PageHeaderButtonDeclared | undefined;
|
|
@@ -11,13 +11,17 @@ const targetUrl = (target) => {
|
|
|
11
11
|
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Only string URL properties participate in record interpolation; other target variants remain untouched.
|
|
12
12
|
return typeof url === "string" ? url : undefined;
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
: undefined, record);
|
|
14
|
+
const isRecordNode = (value) => !!value && typeof value === "object";
|
|
15
|
+
function leafAt(
|
|
16
|
+
// oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- The record the page's loader read (the published PageRecordLoader and ComponentFilterContext.record), keyed by that page's data and read by the {{record.X}} paths its author writes.
|
|
17
|
+
record, path) {
|
|
18
|
+
const value = path
|
|
19
|
+
.split(PATH_SEPARATOR)
|
|
20
|
+
.reduce((current, key) => (isRecordNode(current) ? current[key] : undefined), record);
|
|
21
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- The record loader owns its schema; the URL interpolation contract encodes only string and number leaves.
|
|
22
|
+
return typeof value === "string" || typeof value === "number"
|
|
23
|
+
? value
|
|
24
|
+
: undefined;
|
|
21
25
|
}
|
|
22
26
|
/**
|
|
23
27
|
* The record the page's layout reads for one request, `undefined` when the
|
|
@@ -53,13 +57,12 @@ function isRecordBound(button) {
|
|
|
53
57
|
* (an address is one query value). A token the record has no value for is
|
|
54
58
|
* left as written.
|
|
55
59
|
*/
|
|
56
|
-
function fillRecordTokens(url,
|
|
60
|
+
function fillRecordTokens(url,
|
|
61
|
+
// oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- The record the page's loader read (the published PageRecordLoader and ComponentFilterContext.record), keyed by that page's data and read by the {{record.X}} paths its author writes.
|
|
62
|
+
record) {
|
|
57
63
|
return url.replace(RECORD_TOKEN, (match, path) => {
|
|
58
|
-
const value =
|
|
59
|
-
|
|
60
|
-
return typeof value === "string" || typeof value === "number"
|
|
61
|
-
? encodeURIComponent(String(value))
|
|
62
|
-
: match;
|
|
64
|
+
const value = leafAt(record, path);
|
|
65
|
+
return value === undefined ? match : encodeURIComponent(String(value));
|
|
63
66
|
});
|
|
64
67
|
}
|
|
65
68
|
/**
|
|
@@ -70,7 +73,9 @@ function fillRecordTokens(url, record) {
|
|
|
70
73
|
*
|
|
71
74
|
* @internal
|
|
72
75
|
*/
|
|
73
|
-
function withPageRecord(button, declaresRecord,
|
|
76
|
+
function withPageRecord(button, declaresRecord,
|
|
77
|
+
// oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- The record the page's loader read (the published PageRecordLoader and ComponentFilterContext.record), keyed by that page's data and read by the {{record.X}} paths its author writes.
|
|
78
|
+
record) {
|
|
74
79
|
if (!declaresRecord || !isRecordBound(button))
|
|
75
80
|
return button;
|
|
76
81
|
if (!record)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-record.js","sourceRoot":"","sources":["../../../src/page/internal/page-record.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"page-record.js","sourceRoot":"","sources":["../../../src/page/internal/page-record.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.filterComponents = filterComponents;
|
|
4
4
|
const permissions_1 = require("../permissions");
|
|
5
|
+
const type_check_1 = require("../utils/internal/type-check");
|
|
5
6
|
async function filterComponentInfo(comp, permissionId, permissions, componentMap, context) {
|
|
6
7
|
const filtered = { ...comp };
|
|
7
8
|
if (filtered.children && filtered.children.length > 0) {
|
|
@@ -14,8 +15,13 @@ async function filterComponentInfo(comp, permissionId, permissions, componentMap
|
|
|
14
15
|
filtered.options = await filterRequiredPermissionWatches(filtered.options, permissions);
|
|
15
16
|
return filtered;
|
|
16
17
|
}
|
|
18
|
+
const isList = (value) => Array.isArray(value);
|
|
19
|
+
const isGatedWatch = (value) => (0, type_check_1.isObject)(value) &&
|
|
20
|
+
!(0, type_check_1.isNull)(value) &&
|
|
21
|
+
(!("requirePermission" in value) ||
|
|
22
|
+
value.requirePermission === undefined ||
|
|
23
|
+
(0, type_check_1.isString)(value.requirePermission));
|
|
17
24
|
const isPlainObject = (value) => !!value &&
|
|
18
|
-
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- This boundary excludes primitives before inspecting plain-object prototypes; it does not validate contributor options.
|
|
19
25
|
typeof value === "object" &&
|
|
20
26
|
(Object.getPrototypeOf(value) === Object.prototype ||
|
|
21
27
|
Object.getPrototypeOf(value) === null);
|
|
@@ -30,8 +36,12 @@ const isPlainObject = (value) => !!value &&
|
|
|
30
36
|
* are not nodes of the page's tree. `watchActions` is the transport key the
|
|
31
37
|
* builder alone fills (it strips one a caller passes), so any object holding
|
|
32
38
|
* it is a component's options. A value with no gated watch keeps its identity.
|
|
39
|
+
* A watch the walker cannot read (not an object, or a `requirePermission` that
|
|
40
|
+
* is no string) is withheld, since no permission could grant it.
|
|
33
41
|
*/
|
|
34
|
-
async function filterRequiredPermissionWatches(
|
|
42
|
+
async function filterRequiredPermissionWatches(
|
|
43
|
+
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Walks the serialized options of whichever component it meets, each typed by its declaring module and able to hold a DefaultValue Date, and narrows each node with Array.isArray or isPlainObject before reading it.
|
|
44
|
+
value, permissions) {
|
|
35
45
|
if (Array.isArray(value)) {
|
|
36
46
|
const items = await Promise.all(value.map((item) => filterRequiredPermissionWatches(item, permissions)));
|
|
37
47
|
return items.every((item, index) => item === value[index]) ? value : items;
|
|
@@ -44,11 +54,12 @@ async function filterRequiredPermissionWatches(value, permissions) {
|
|
|
44
54
|
]));
|
|
45
55
|
const changed = entries.some(([key, item]) => item !== value[key]);
|
|
46
56
|
const next = changed ? Object.fromEntries(entries) : value;
|
|
47
|
-
if (!Array.isArray(next.watchActions))
|
|
48
|
-
return next;
|
|
49
57
|
const watches = next.watchActions;
|
|
50
|
-
|
|
51
|
-
|
|
58
|
+
if (!isList(watches))
|
|
59
|
+
return next;
|
|
60
|
+
const granted = await Promise.all(watches.map(async (watch) => isGatedWatch(watch) &&
|
|
61
|
+
(!watch.requirePermission ||
|
|
62
|
+
(await (0, permissions_1.HasPermission)(permissions, watch.requirePermission)))));
|
|
52
63
|
if (granted.every(Boolean))
|
|
53
64
|
return next;
|
|
54
65
|
return {
|
|
@@ -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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"}
|
package/dist/page/metadata.js
CHANGED
|
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.PageMetadata = void 0;
|
|
37
|
-
const
|
|
37
|
+
const metadata_upload_registration_1 = require("./internal/metadata-upload-registration");
|
|
38
38
|
// oxlint-disable-next-line import/no-cycle -- Category proxies are read after evaluation.
|
|
39
39
|
const metadata = __importStar(require("./internal/metadata-lifecycle"));
|
|
40
40
|
class PageMetadata {
|
|
@@ -378,7 +378,9 @@ class PageMetadata {
|
|
|
378
378
|
await this.bindNativeUploadFields(child.component, `${id}.${child.id}`);
|
|
379
379
|
}
|
|
380
380
|
}
|
|
381
|
-
async bindUploadOptions(
|
|
381
|
+
async bindUploadOptions(
|
|
382
|
+
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Walks the serialized options of a page's component at registration, at any depth its declaration has, and registers every native upload field among them.
|
|
383
|
+
value, name, id, path) {
|
|
382
384
|
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Serialized options may be primitives; recurse only through objects.
|
|
383
385
|
if (!value || typeof value !== "object")
|
|
384
386
|
return;
|
|
@@ -390,11 +392,7 @@ class PageMetadata {
|
|
|
390
392
|
}
|
|
391
393
|
}
|
|
392
394
|
async registerNativeUploadField(node, name, id, path) {
|
|
393
|
-
|
|
394
|
-
if (!phase)
|
|
395
|
-
return;
|
|
396
|
-
phase.options.uploadToken = await (0, uploads_1.SignUploadToken)(phase.registration);
|
|
397
|
-
metadata.finishUploadRegistration(this, phase);
|
|
395
|
+
await (0, metadata_upload_registration_1.registerNativeUploadField)(this, node, name, id, path);
|
|
398
396
|
}
|
|
399
397
|
registerComponentNode(node) {
|
|
400
398
|
metadata.registerComponentNode(this, node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/page/metadata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/page/metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/request-tenant.d.ts
CHANGED
|
@@ -15,9 +15,15 @@ import type { RequestContext } from "@antelopejs/interface-api";
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function getRequestTenantId(ctx: RequestContext): string;
|
|
17
17
|
/**
|
|
18
|
-
* {@link getRequestTenantId} for a provider
|
|
19
|
-
* auth
|
|
20
|
-
*
|
|
21
|
-
*
|
|
18
|
+
* {@link getRequestTenantId} for a provider resolved alongside the route's
|
|
19
|
+
* auth decorators (`TenantScopedModel`, a tenant-scoped `Model`). It waits
|
|
20
|
+
* for the tenant guards and credential checks the route's other providers
|
|
21
|
+
* start, and answers the tenant they verified. Without one, a bearer token is
|
|
22
|
+
* verified here and its tenant bound to the request. A request without a
|
|
23
|
+
* verified credential reads as anonymous: `DEFAULT_TENANT_ID`, and an
|
|
24
|
+
* identity verified on it afterwards is refused.
|
|
25
|
+
*
|
|
26
|
+
* @throws HTTPResult 401 when the request's authentication failed, its
|
|
27
|
+
* credential changed since, or another provider verified a different identity
|
|
22
28
|
*/
|
|
23
29
|
export declare function resolveRequestTenantId(ctx: RequestContext): Promise<string>;
|
package/dist/request-tenant.js
CHANGED
|
@@ -5,8 +5,6 @@ exports.resolveRequestTenantId = resolveRequestTenantId;
|
|
|
5
5
|
const auth_1 = require("./auth");
|
|
6
6
|
const request_authenticators_1 = require("./auth/internal/request-authenticators");
|
|
7
7
|
const constants_1 = require("./constants");
|
|
8
|
-
const BEARER_SCHEME = /^Bearer\s+(\S+)$/i;
|
|
9
|
-
const pendingResolutions = new WeakMap();
|
|
10
8
|
/**
|
|
11
9
|
* The tenant of the request's verified credential: the one bound by the DMS
|
|
12
10
|
* auth decorators (`AuthUser`, `AuthUserWithPermission`, `IfAuthUser` with a
|
|
@@ -24,50 +22,34 @@ const pendingResolutions = new WeakMap();
|
|
|
24
22
|
function getRequestTenantId(ctx) {
|
|
25
23
|
return (0, request_authenticators_1.getAuthenticatedRequestTenantId)(ctx) ?? constants_1.DEFAULT_TENANT_ID;
|
|
26
24
|
}
|
|
27
|
-
async function
|
|
25
|
+
async function verifyToken(token) {
|
|
28
26
|
try {
|
|
29
27
|
const data = await auth_1.internal.IfAuthUserAuthenticator(token);
|
|
30
28
|
if (!data)
|
|
31
|
-
return
|
|
29
|
+
return undefined;
|
|
32
30
|
const user = await auth_1.internal.AuthRawUserValidator(data);
|
|
33
31
|
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- The published validator can return a boolean sentinel rather than an authenticated user.
|
|
34
32
|
if (!user || typeof user === "boolean")
|
|
35
|
-
return
|
|
36
|
-
|
|
37
|
-
(0, request_authenticators_1.bindVerifiedRequestPrincipal)(ctx, { userId: user._id, tenantId });
|
|
38
|
-
return tenantId;
|
|
33
|
+
return undefined;
|
|
34
|
+
return { userId: user._id, tenantId: data.tenantId || constants_1.DEFAULT_TENANT_ID };
|
|
39
35
|
}
|
|
40
36
|
catch {
|
|
41
|
-
return
|
|
37
|
+
return undefined;
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
40
|
/**
|
|
45
|
-
* {@link getRequestTenantId} for a provider
|
|
46
|
-
* auth
|
|
47
|
-
*
|
|
48
|
-
*
|
|
41
|
+
* {@link getRequestTenantId} for a provider resolved alongside the route's
|
|
42
|
+
* auth decorators (`TenantScopedModel`, a tenant-scoped `Model`). It waits
|
|
43
|
+
* for the tenant guards and credential checks the route's other providers
|
|
44
|
+
* start, and answers the tenant they verified. Without one, a bearer token is
|
|
45
|
+
* verified here and its tenant bound to the request. A request without a
|
|
46
|
+
* verified credential reads as anonymous: `DEFAULT_TENANT_ID`, and an
|
|
47
|
+
* identity verified on it afterwards is refused.
|
|
48
|
+
*
|
|
49
|
+
* @throws HTTPResult 401 when the request's authentication failed, its
|
|
50
|
+
* credential changed since, or another provider verified a different identity
|
|
49
51
|
*/
|
|
50
52
|
async function resolveRequestTenantId(ctx) {
|
|
51
|
-
|
|
52
|
-
if (bound)
|
|
53
|
-
return bound;
|
|
54
|
-
const header = ctx.rawRequest?.headers?.authorization;
|
|
55
|
-
const token =
|
|
56
|
-
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Only a string authorization header can carry a bearer token for tenant verification.
|
|
57
|
-
typeof header === "string" ? header.match(BEARER_SCHEME)?.[1] : undefined;
|
|
58
|
-
if (!token)
|
|
59
|
-
return constants_1.DEFAULT_TENANT_ID;
|
|
60
|
-
const request = ctx.rawRequest;
|
|
61
|
-
const pending = pendingResolutions.get(request);
|
|
62
|
-
if (pending)
|
|
63
|
-
return pending;
|
|
64
|
-
const resolution = verifyRequestTenantId(ctx, token);
|
|
65
|
-
pendingResolutions.set(request, resolution);
|
|
66
|
-
try {
|
|
67
|
-
return await resolution;
|
|
68
|
-
}
|
|
69
|
-
finally {
|
|
70
|
-
pendingResolutions.delete(request);
|
|
71
|
-
}
|
|
53
|
+
return (await (0, request_authenticators_1.resolveRequestTenant)(ctx, verifyToken)) ?? constants_1.DEFAULT_TENANT_ID;
|
|
72
54
|
}
|
|
73
55
|
//# sourceMappingURL=request-tenant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-tenant.js","sourceRoot":"","sources":["../src/request-tenant.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"request-tenant.js","sourceRoot":"","sources":["../src/request-tenant.ts"],"names":[],"mappings":";;AAsBA,gDAEC;AA6BD,wDAIC;AAxDD,iCAAkC;AAClC,mFAGgD;AAChD,2CAAgD;AAEhD;;;;;;;;;;;;;GAaG;AACH,SAAgB,kBAAkB,CAAC,GAAmB;IACpD,OAAO,IAAA,wDAA+B,EAAC,GAAG,CAAC,IAAI,6BAAiB,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,eAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,eAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACvD,mJAAmJ;QACnJ,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACzD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,6BAAiB,EAAE,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,sBAAsB,CAC1C,GAAmB;IAEnB,OAAO,CAAC,MAAM,IAAA,6CAAoB,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,6BAAiB,CAAC;AAC7E,CAAC"}
|
package/dist/tenant-export.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Readable } from "node:stream";
|
|
2
|
+
import type { JsonValue } from "./json";
|
|
2
3
|
/**
|
|
3
4
|
* Sink handed to `Hook.TENANT_DATA_EXPORT` contributors.
|
|
4
5
|
*
|
|
@@ -10,7 +11,7 @@ import type { Readable } from "node:stream";
|
|
|
10
11
|
*/
|
|
11
12
|
export interface TenantExportArchive {
|
|
12
13
|
/** Serializes `data` as a JSON entry. */
|
|
13
|
-
addJson(path: string, data:
|
|
14
|
+
addJson(path: string, data: JsonValue): Promise<void>;
|
|
14
15
|
/** Adds an artifact already materialized on disk. */
|
|
15
16
|
addFile(path: string, localPath: string): Promise<void>;
|
|
16
17
|
/** Adds a remote or generated dump without ever holding it in memory. */
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Admits one invocation. Work must await every producer effect and start no
|
|
3
3
|
* detached writer. Failure retains its admission; an independent replay must
|
|
4
|
-
* never retire this invocation's identity.
|
|
4
|
+
* never retire this invocation's identity. Each call takes its own admission,
|
|
5
|
+
* so work never calls this again for the same tenant.
|
|
5
6
|
*
|
|
6
|
-
* A deliberate refusal (an HTTP 4xx)
|
|
7
|
-
* effect has none left in flight once it
|
|
8
|
-
* would only block the tenant's deletion
|
|
7
|
+
* A success, and a deliberate refusal (an HTTP 4xx), are the exceptions: work
|
|
8
|
+
* that awaits every effect has none left in flight once it finishes or
|
|
9
|
+
* refuses, so keeping the admission would only block the tenant's deletion
|
|
10
|
+
* forever. The release is tried {@link RELEASE_ATTEMPTS} times. If every try
|
|
11
|
+
* fails, the admission stays and the call rejects, so the blocked deletion is
|
|
12
|
+
* reported instead of hidden: with an `AggregateError` of the refusal and the
|
|
13
|
+
* release failure after a refusal, with the release failure after a success.
|
|
14
|
+
*
|
|
15
|
+
* A refusal is read by shape, not `instanceof`, because it can come from
|
|
16
|
+
* another module's copy of the API interface (a dms-saas seat limit raised
|
|
17
|
+
* from a hook, for instance).
|
|
9
18
|
*/
|
|
10
19
|
export declare function runTenantLifecycleOperation<T>(tenantId: string, work: () => Promise<T>): Promise<T>;
|
|
11
20
|
/**
|
package/dist/tenant-lifecycle.js
CHANGED
|
@@ -10,29 +10,52 @@ const interface_database_decorators_1 = require("@antelopejs/interface-database-
|
|
|
10
10
|
const tenantLifecycle_model_1 = require("./db/internal/tenantLifecycle.model");
|
|
11
11
|
const HTTP_CLIENT_ERROR_MIN = 400;
|
|
12
12
|
const HTTP_SERVER_ERROR_MIN = 500;
|
|
13
|
+
const RELEASE_ATTEMPTS = 3;
|
|
13
14
|
/**
|
|
14
|
-
* Whether
|
|
15
|
-
* than an effect whose outcome is unknown.
|
|
16
|
-
* because the refusal can come from another module's copy of the API
|
|
17
|
-
* interface (a dms-saas seat limit raised from a hook, for instance).
|
|
15
|
+
* Whether a status is an HTTP 4xx: a refusal on purpose, a decision rather
|
|
16
|
+
* than an effect whose outcome is unknown.
|
|
18
17
|
*/
|
|
19
|
-
function
|
|
20
|
-
// oxlint-disable-next-line anti-slop/require-safety-comment-for-type-assertion -- Legacy refusal detection reads getStatus from any thrown value without validating its shape; adding validation would change proxy and getter behavior.
|
|
21
|
-
const getStatus = error?.getStatus;
|
|
22
|
-
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Refusals can originate in another copy of the API; the existing callable shape check intentionally avoids instanceof.
|
|
23
|
-
if (typeof getStatus !== "function")
|
|
24
|
-
return false;
|
|
25
|
-
const status = getStatus.call(error);
|
|
18
|
+
function isClientErrorStatus(status) {
|
|
26
19
|
return status >= HTTP_CLIENT_ERROR_MIN && status < HTTP_SERVER_ERROR_MIN;
|
|
27
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Releases the admission of an invocation whose effects are all known: it
|
|
23
|
+
* finished, or it refused on purpose. Releasing is idempotent, so a failed
|
|
24
|
+
* release is tried again; the failure of the last try is returned, never
|
|
25
|
+
* swallowed.
|
|
26
|
+
*/
|
|
27
|
+
async function releaseAttempt(model, tenantId, attemptId) {
|
|
28
|
+
let failure;
|
|
29
|
+
for (let attempt = 0; attempt < RELEASE_ATTEMPTS; attempt++) {
|
|
30
|
+
try {
|
|
31
|
+
await model.finish(tenantId, attemptId);
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
catch (releaseFailure) {
|
|
35
|
+
failure = new Error("Tenant lifecycle release failed", {
|
|
36
|
+
cause: releaseFailure,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return failure;
|
|
41
|
+
}
|
|
28
42
|
/**
|
|
29
43
|
* Admits one invocation. Work must await every producer effect and start no
|
|
30
44
|
* detached writer. Failure retains its admission; an independent replay must
|
|
31
|
-
* never retire this invocation's identity.
|
|
45
|
+
* never retire this invocation's identity. Each call takes its own admission,
|
|
46
|
+
* so work never calls this again for the same tenant.
|
|
47
|
+
*
|
|
48
|
+
* A success, and a deliberate refusal (an HTTP 4xx), are the exceptions: work
|
|
49
|
+
* that awaits every effect has none left in flight once it finishes or
|
|
50
|
+
* refuses, so keeping the admission would only block the tenant's deletion
|
|
51
|
+
* forever. The release is tried {@link RELEASE_ATTEMPTS} times. If every try
|
|
52
|
+
* fails, the admission stays and the call rejects, so the blocked deletion is
|
|
53
|
+
* reported instead of hidden: with an `AggregateError` of the refusal and the
|
|
54
|
+
* release failure after a refusal, with the release failure after a success.
|
|
32
55
|
*
|
|
33
|
-
* A
|
|
34
|
-
*
|
|
35
|
-
*
|
|
56
|
+
* A refusal is read by shape, not `instanceof`, because it can come from
|
|
57
|
+
* another module's copy of the API interface (a dms-saas seat limit raised
|
|
58
|
+
* from a hook, for instance).
|
|
36
59
|
*/
|
|
37
60
|
async function runTenantLifecycleOperation(tenantId, work) {
|
|
38
61
|
const model = (0, interface_database_decorators_1.GetModel)(tenantLifecycle_model_1.TenantLifecycleModel, tenantId);
|
|
@@ -43,12 +66,22 @@ async function runTenantLifecycleOperation(tenantId, work) {
|
|
|
43
66
|
result = await work();
|
|
44
67
|
}
|
|
45
68
|
catch (error) {
|
|
46
|
-
|
|
47
|
-
|
|
69
|
+
// oxlint-disable-next-line anti-slop/require-safety-comment-for-type-assertion -- Legacy refusal detection reads getStatus from any thrown value without validating its shape; adding validation would change proxy and getter behavior.
|
|
70
|
+
const getStatus = error?.getStatus;
|
|
71
|
+
if (
|
|
72
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Refusals can originate in another copy of the API; the existing callable shape check intentionally avoids instanceof.
|
|
73
|
+
typeof getStatus === "function" &&
|
|
74
|
+
isClientErrorStatus(getStatus.call(error))) {
|
|
75
|
+
const releaseFailure = await releaseAttempt(model, tenantId, attemptId);
|
|
76
|
+
if (releaseFailure) {
|
|
77
|
+
throw new AggregateError([error, releaseFailure], "Tenant lifecycle admission refused the work but could not release; deletion of this tenant stays blocked");
|
|
78
|
+
}
|
|
48
79
|
}
|
|
49
80
|
throw error;
|
|
50
81
|
}
|
|
51
|
-
await model
|
|
82
|
+
const releaseFailure = await releaseAttempt(model, tenantId, attemptId);
|
|
83
|
+
if (releaseFailure)
|
|
84
|
+
throw releaseFailure;
|
|
52
85
|
return result;
|
|
53
86
|
}
|
|
54
87
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-lifecycle.js","sourceRoot":"","sources":["../src/tenant-lifecycle.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"tenant-lifecycle.js","sourceRoot":"","sources":["../src/tenant-lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1 +1,21 @@
|
|
|
1
|
+
import type { ControllerClass } from "@antelopejs/interface-api";
|
|
1
2
|
export type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
/** An image stored by key, as the image data type and `User.avatar` hold it. */
|
|
4
|
+
export interface ImageValue {
|
|
5
|
+
key: string;
|
|
6
|
+
alt?: string;
|
|
7
|
+
principal?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The page a component is placed on, as its `onCreated` hook receives it once
|
|
11
|
+
* the page registers. `PageMetadata` implements it.
|
|
12
|
+
*/
|
|
13
|
+
export interface CreatedPage {
|
|
14
|
+
/** The page controller the component is placed on. */
|
|
15
|
+
readonly target: ControllerClass;
|
|
16
|
+
/** The id and slug the page registered under, from the root category. */
|
|
17
|
+
readonly pageInfo?: {
|
|
18
|
+
readonly fullId: string;
|
|
19
|
+
readonly fullSlug: string;
|
|
20
|
+
};
|
|
21
|
+
}
|